Giter Club home page Giter Club logo

debatgemist's Introduction

Tweede Kamer

DebatGemist

Node module DebatGemist doet HTTP verzoeken naar debatgemist.tweedekamer.nl en initialiseert een server side jQuery implementatie om de DOM uit te lezen.

Installeren met NPM

npm install debatgemist

Let op: deze module gebruikt deasync-promise voor het synchroniseren van Promise objecten en mijn mu.js voor het initialiseren van jQuery op een externe DOM. Indien je debatgemist downloadt van GitHub en niet via NPM installeert dan moet je zorgen dat die dependencies aanwezig zijn. NPM geinstalleerd? Ga naar de map debatgemist en voer simpelweg npm install uit.

Initialiseren

var DebatGemist = require('debatgemist')

Methoden

Deze module kent momenteel de volgende methoden.

DebatGemist.info(url)

Geeft informatie over een debat terug als Object. (titel, datum, beschrijving, afbeelding en mp4 url)

var DebatGemist = require('debatgemist')
var debat = DebatGemist.info('https://debatgemist.tweedekamer.nl/debatten/data-analytics')
console.log(debat)

De uitvoer van Debat.info is bijvoorbeeld:

{
   "title": "Data & analytics",
   "meta": {
      "datetime": "4 juli 2017",
      "description": "Vaste commissie voor Financiën",
      "image": "https://debatgemist.tweedekamer.nl/profiles/debatgemist/modules/custom/debatgemist_custom/images/debatetype_images/commissievergaderingen/thorbeckezaal.jpg"
   },
   "mp4": "https://debatgemist.tweedekamer.nl/Thorbeckezaal_20170704170424_720p.mp4"
}

DebatGemist.recent(aantal)

Haalt meest recente debatten als URL string van de hoofdpagina, roept dan intern DebatGemist.info op elk item en geeft een lijst met debat objecten terug. Het argument aantal is nieuw en dat is het maximale aantal debatten dat wordt gefetcht. Misschien heb je namelijk aan de eerste of eerste twee genoeg. Standaardwaarde van aantal is 100 maar zo veel staan er nooit op de website hoofdpagina.

var DebatGemist = require('debatgemist')
var recent = DebatGemist.recent() 
console.log(recent)

/* of met een aantal argument, in dit geval maximaal 3 */
var eersteDrieResultaten = DebatGemist.recent(3)
console.log(eersteDrieResultaten)

...

[
   {
      "title": "Data & analytics",
      "meta": {
         "datetime": "4 juli 2017",
         "description": "Vaste commissie voor Financiën",
         "image": "https://debatgemist.tweedekamer.nl/profiles/debatgemist/modules/custom/debatgemist_custom/images/debatetype_images/commissievergaderingen/thorbeckezaal.jpg"
      },
      "mp4": "https://debatgemist.tweedekamer.nl/Thorbeckezaal_20170704170424_720p.mp4"
   },
   {
      "title": "Schadeafhandeling Groningen",
      "meta": {
         "datetime": "4 juli 2017",
         "description": "",
         "image": "https://debatgemist.tweedekamer.nl/sites/default/files/debate_type_images/Vergadering-14.jpg"
      },
      "mp4": "https://debatgemist.tweedekamer.nl/Plenaire_zaal_20170704164504_720p.mp4"
   },
   {
      "title": "Vervanging onderzeeboten",
      "meta": {
         "datetime": "4 juli 2017",
         "description": "Vaste commissie voor Defensie",
         "image": "https://debatgemist.tweedekamer.nl/profiles/debatgemist/modules/custom/debatgemist_custom/images/debatetype_images/commissievergaderingen/troelstrazaal.jpg"
      },
      "mp4": "https://debatgemist.tweedekamer.nl/Troelstrazaal_20170704163210_720p.mp4"
   },
   {
      "title": "Reactie petitie Justice for Johan",
      "meta": {
         "datetime": "4 juli 2017",
         "description": "",
         "image": "https://debatgemist.tweedekamer.nl/sites/default/files/debate_type_images/Vergadering-12.jpg"
      },
      "mp4": "https://debatgemist.tweedekamer.nl/Plenaire_zaal_20170704162423_720p.mp4"
   },
   {
      "title": "Tbs en forensische zorg",
      "meta": {
         "datetime": "4 juli 2017",
         "description": "",
         "image": "https://debatgemist.tweedekamer.nl/sites/default/files/debate_type_images/Vergadering-18.jpg"
      },
      "mp4": "https://debatgemist.tweedekamer.nl/Plenaire_zaal_20170704160359_720p.mp4"
   },
   ...
]

Update 5 juli 2017

De functie recent() accepteert nu een argument met aantal. Zie hierboven. In de map voorbeeld staan nu 2 voorbeelden. Het synchroon en asynchroon downloaden van de video of de HTML pagina van een debat.

Todo

De volgende dingen was ik al mee bezig en zal ik afmaken als ik me een keer verveel.

  • Query debatten in een bepaalde periode (tussen date & date)
  • Query debatten op zoekterm
  • Query debatten op spreker
  • Voorbeeldje van een HTTP server die een debat URL pipet naar een HTML5 video element


Jochem Stoel

Involuntary public figure.

debatgemist's People

Contributors

jochemstoel avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

slkth

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.