spaghetti-open-data / twitAntonio

TweetYourMep fork for the Italian 2013 Elections
http://www.twitantonio.it
GNU Affero General Public License v3.0
16 stars 10 forks source link

Harvester su api 1.1 di Twitter #82

Closed marcopagliarulo closed 11 years ago

marcopagliarulo commented 11 years ago

per allineamento avviare lo script con parametro allday=YYYY-MM-DD partendo da 2013-01-27 ed a seguire per ogni giornata, tira giù molti dati quindi ho messo un timeout alto

consiglio la creazione di una nuova collection per non inquinare i tweet già scaricati in caso si verifichino problemi.

In tal caso definire una nuova collection in config ed aggiornare riga 21 del nuovo harvester con il riferimento alla nuova collection

marcopagliarulo commented 11 years ago

@paolomainardi in alcuni casi sulla richiesta per tutta la giornata lo script resta appeso e fa sempre la stessa chiamata. In locale mi si è verificato al giorno 31 ma non sono riuscito a capire perchè, Magari tira giù i dati del 27, del 28 e del 29 così ho il tempo di individuare quel problema.

paolomainardi commented 11 years ago

Marco sono da mobile.

Una domanda al volo, come lo poaso mettere in cron ? Devo sempre dargli la data ? Il giorno 03/feb/2013 22:51, "Marco Pagliarulo" notifications@github.com ha scritto:

per allineamento avviare lo script con parametro allday=YYYY-MM-DD partendo da 2013-01-27 ed a seguire per ogni giornata, tira giù molti dati quindi ho messo un timeout alto

consiglio la creazione di una nuova collection per non inquinare i tweet già scaricati in caso si verifichino problemi.

In tal caso definire una nuova collection in config ed aggiornare riga 21

del nuovo harvester con il riferimento alla nuova collection

You can merge this Pull Request by running

git pull https://github.com/Morpheus80ta/twitAntonio master

Or view, comment on, or merge it at:

https://github.com/spaghetti-open-data/twitAntonio/pull/82 Commit Summary

  • harvest cron su api 1.1 e funzionalità di import avanzate
  • Aggiunta dello schema relativo alla risposta delle api di twitter versione 1.1

File Changes

  • M config.js.developmenthttps://github.com/spaghetti-open-data/twitAntonio/pull/82/files#diff-0(29)
  • M config.js.productionhttps://github.com/spaghetti-open-data/twitAntonio/pull/82/files#diff-1(29)
  • A harvest/harvest-cron1.1.jshttps://github.com/spaghetti-open-data/twitAntonio/pull/82/files#diff-2(331)

Patch Links:

marcopagliarulo commented 11 years ago

no la data serve per prendere tutti i tweet di un giorno, per prendere i nuovi lancialo senza parametri, per quello funziona come l'altro

marcopagliarulo commented 11 years ago

adesso lancialo spot con le date del 27/28/29 così ci portiamo avanti per 3 giorni e posso fixare il bug conosciuto senza distogliermi dal mapping tra tweet e candidati. Metti in cron solo il recupero dei successivi ogni 15 min magari, quando vediamo che gira liscio come l'olio mettiamo un crone a 00:01 che recupera i tweet del giorno precedente così da recuperare eventuali tweet persi durante la giornata

paolomainardi commented 11 years ago

Perfetto, ti aggiorno tra poco :) Il giorno 03/feb/2013 23:05, "Marco Pagliarulo" notifications@github.com ha scritto:

adesso lancialo spot con le date del 27/28/29 così ci portiamo avanti per 3 giorni e posso fixare il bug conosciuto senza distogliermi dal mapping tra tweet e candidati. Metti in cron solo il recupero dei successivi ogni 15 min magari, quando vediamo che gira liscio come l'olio mettiamo un crone a 00:01 che recupera i tweet del giorno precedente così da recuperare eventuali tweet persi durante la giornata

— Reply to this email directly or view it on GitHubhttps://github.com/spaghetti-open-data/twitAntonio/pull/82#issuecomment-13056164.

paolomainardi commented 11 years ago

@Morpheus80ta Sto testando in locale, sbaglio qualcosa ?

node harvest/harvest-cron1.1.js allday=2012-01-27
{ until: '2012-1-28',
  count: 100,
  q: '#twitantonio since:2012-1-27',
  result_type: 'recent' }
albertocottica commented 11 years ago

@Morpheus80ta mi sono accorto che non sei nella pagina dei credits. Cm'è il tuo twitter?

paolomainardi commented 11 years ago

Ho aggiunto una nuova variabile "db_collection_twitter11" cosi possiamo comunque usare una collection separata.

marcopagliarulo commented 11 years ago

@paolomainardi corretto così, quello in console sono i parametri di ricerca @albertocottica è Morpheus80ta

paolomainardi commented 11 years ago

@Morpheus80ta però non mi importa nulla, scusa non ho postato l'output completo:

node harvest/harvest-cron1.1.js allday=2012-01-27
{ until: '2012-1-28',
  count: 100,
  q: '#twitantonio since:2012-1-27',
  result_type: 'recent' }
No fresh data available.
paolomainardi commented 11 years ago

Funziona invece, senza alcun parametro:

node harvest/harvest-cron1.1.js 
{ count: 100, q: '#twitantonio', result_type: 'recent' }
{ count: 100, q: '#twitantonio', result_type: 'recent' }
Imported: 100 tweets.
no callback
marcopagliarulo commented 11 years ago

Senza alcun parametro recupera i più recenti, come l'altro harvester, con il parametro allday recupera tutta la giornata, non vorrei che siamo fuori tempo massimo per il 27, comunque in tal caso ho in locale i dati del 27 per twitantonio e per elezioni2013

paolomainardi commented 11 years ago

@Morpheus80ta neanche le altre giornate mi vanno:

paolo@macbook-di-paolo-mainardi ~//twitantonio $ node harvest/harvest-cron1.1.js allday=2012-01-30
{ until: '2012-1-31',
  count: 100,
  q: '#twitantonio since:2012-1-30',
  result_type: 'recent' }
No fresh data available.
paolo@macbook-di-paolo-mainardi ~//twitantonio $ node harvest/harvest-cron1.1.js allday=2012-01-29
{ until: '2012-1-30',
  count: 100,
  q: '#twitantonio since:2012-1-29',
  result_type: 'recent' }
No fresh data available.
paolo@macbook-di-paolo-mainardi ~//twitantonio $ node harvest/harvest-cron1.1.js allday=2012-02-01
{ until: '2012-2-2',
  count: 100,
  q: '#twitantonio since:2012-2-1',
  result_type: 'recent' }
No fresh data available.
marcopagliarulo commented 11 years ago

@paolomainardi stai richiedendo i dati del 2012!!!!

paolomainardi commented 11 years ago

@Morpheus80ta che epicfail! :dancer: Si vede che ho del sonno arretrato :-1:

marcopagliarulo commented 11 years ago

Beh @paolomainardi io non riesco a risolvere un bug semplice semplice e domani devo debuggare il core di Drupal per capire dove si verifica un bug pessimo su un progetto a lavoro. Stiamo tirando come matti per Twitantonio, però sono contento che si vedono i risultati

paolomainardi commented 11 years ago

@Morpheus80ta Ultima domanda:

node harvest/harvest-cron1.1.js allday=2013-02-01
{ max_id: 297225026434912260,
  count: 100,
  q: '#twitantonio since:2013-2-1',
  result_type: 'recent' }
No fresh data available.

E' corretto non avere risultati per Febbraio ?

paolomainardi commented 11 years ago

@Morpheus80ta Per adesso ho importato batch (manualmente) fino al 31/01/2013 senza alcun problema, ma Febbraio non mi tira giù nulla, anche lanciandolo senza parametri.

marcopagliarulo commented 11 years ago

secondo me li hai, probabilmente te li ha tirati giù la prima volta che hai lanciato senza parametri, ho estratto il record dal mio db in locale ed il tweet con id 297225026434912260 è del primo febbraio alle 7:09 quindi è possibile che prima non ce ne siano altri, prova a lanciare questa query su db db.tweets11s.find({created_at : {$gte: ISODate("2013-02-01T00:00:00Z"), $lte : ISODate("2013-02-01T23:59:59Z")}}).count() ed avrai il totale dei tweet per il primo febbraio, sinceramente non sono sicuro del comportamento variando l'ordine nel lanciare gli aggiornamenti. Mi dispiace ma per il week end che ho avuto non sono riuscito a finalizzare come dovuto.

paolomainardi commented 11 years ago

@Morpheus80ta Qualche problema di Twitter, ora funziona correttamente!

marcopagliarulo commented 11 years ago

ok, anche a me twitter ha fatto lo scherzo di non rispondermi con errori ma darmi 0 items per poi darmi risultati alla chiamata successiva identica alla precedente

paolomainardi commented 11 years ago

Ho lanciato lo script per il recupero dei vecchi tweets usando diversi timer impostati con "at" ed ha importato circa 1450 tweets, di più in realtà di quanti ne abbiamo con il vecchio harvester, non è che ci sono dei doppioni ?

Se vuoi ti posso girare un dump, ora sta girando in cron.

marcopagliarulo commented 11 years ago

Mandami il dump che controllo

marcopagliarulo commented 11 years ago

@paolomainardi effettivamente ci sono dei duplicati, su 1500 record ho trovato 300 duplicati circa, ho fixato il problema e creato uno script che elimina i duplicati, ho fatto la pull request #94