Socket
Book a DemoInstallSign in
Socket

metagroup-schema-tools

Package Overview
Dependencies
Maintainers
2
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

metagroup-schema-tools

Metagroup (like vigotech.org) schema tools

latest
Source
npmnpm
Version
1.0.8
Version published
Maintainers
2
Created
Source

Metagroup schema tools

Este conxunto de ferramentas pretende simplificar a validación e o parseado da estrutura json creada no seu momento para vigotech.org.

Esta estructura de grupos ven definida por un fichero metagroup.json (segundo o schema definido en https://vigotech.org/vigotech-schema.json)

Básicamente esta estructura permite definir o Metagrupo (co seu logo, links a redes sociais e fontes de eventos) e os grupos membros de dito metagrupo, cada membro, tambien dispon de fontes definidas de onde estraer informacion dos eventos, videos, etc. Por exemplo (extraido de https://vigotech.org/vigotech.json):

.... "phpvigo": { "name": "PHPVigo", "logo": "https://vigotech.org/images/php_vigo.jpg", "links": { "web": "http://phpvigo.com/", "meetup": "https://www.meetup.com/es-ES/PHPVigo/", "twitter": "https://twitter.com/phpvigo", "github": "https://github.com/phpvigo", "youtube": "https://www.youtube.com/c/phpvigo" }, "events": [ { "type": "meetup", "meetupid": "phpvigo" } ], "videos": [ { "type": "youtube", "channel_id": "UCzcSOwRc7bfKs9jPehJRNxQ" } ] }, ....

A chave events poder ser un obxecto único ou un array de obxectos, que define as fontes de eventos de dito grupo

As fontes posibles actuais son:

  • Meetup: { "type": "meetup", "meetupid": "AIndustriosa" }
  • Eventbrite: { "type": "eventbrite", "eventbriteid": "17365087639" }
  • Json: { "type": "json", "source": "https://www.python-vigo.es/events.json" }

Mais info en https://github.com/VigoTech/vigotech.github.io

Ferramenta

Esta ferramente define 3 obxectos:

Source

Provee métodos para validar a estructura do json

  • Source.validate(data, schema)

    source é o contido do metagroup.json schema é o contido do vigotech-schema.json

Events

Provee métodos para importar e normalizar os próximos das distintas fontes

  • Events.getEventsEmitter() obten o EventEmitter do obxecto Events, os eventos disparados son:

    • getNextFromSourceInit o que se lle pasan os parametros source e options
    • getNextFromSourceCompleted o que se lle pasan os parametros nextEvents e options

    Exemplo de como capturar un evento:

    eventEmitter.on('getNextFromSourceInit', (source, options) => { console.log(``Getting upcoming events json for ${options.member.name} from ${source.type}``); })

  • getGroupNextEvents(sources, options) obten todos os eventos (independentemente da fonte) dun grupo, ordeados por data de más próximo a máis lonxano.

  • getNextFromSource(source, options) obten os eventos dunha fonte

  • getGroupPrevEvents(sources, options) obten todos os eventos (independentemente da fonte) pasados dun grupo, ordeados por data de más próximo a máis lonxano.

  • getPrevFromSource(source, options) obten os eventos pasado dunha fonte

  • sortByDate(events)

En todos os casos options é un obxecto no que se pasan elementos que poden precisar cada un dos importadores, por exemplo, o importador de eventbrite precisa o eventbriteToken para poder funcionar.

Videos

Provee métodos para importar e normalizar os videos de cada grupo

  • Videos.getEventsEmitter() obten o EventEmitter do obxecto Videos, os eventos disparados son:

    • getVideosFromSourceInit o que se lle pasan os parametros source e options
    • getVideosFromSourceCompleted o que se lle pasan os parametros videos e options
  • getGroupVideos(sources, limit, options) obten todos os videos (independentemente da fonte) dun grupo. Método asíncrono

  • getVideosFromSource(source, limit, options) obten os videos dunha fonte. Método asíncrono

En todos os casos options é un obxecto no que se pasan elementos que poden precisar cada un dos importadores, por exemplo, o importador de youtube precisa o youtubeApiKey para poder funcionar.

Exemplo de importador

Un exemplo de importador pode atoparse no prepare-json.js en https://github.com/VigoTech/vigotech.github.io

Neste ficheiro obtense o seguinte evento de cada grupo e a lista de videos e se xenera un ficheiro vigotech-generated.json con esta información engadida o vigotech.json para facilitar o seu uso no resto da web.

FAQs

Package last updated on 31 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts