TweetyourMEP
$ npm install
$ cp config.js.development config.js
$ cd import
$ node import-meps-json.js
$ cd ..
$ node app.js
TweetyourMEP
License: GNU Affero General Public License v3.0
Avrei un'idea da proporre: un aggregatore di tweet organizzato per trend correlati al PE (e.g. #budget2013, #PAC,#Sacharov, ecc.), per offrire ad utenti, blogger e giornalisti una panoramica sempre aggiornata sul punto di vista dei vari parlamentari sui temi caldi.
Che ne pensate?
Di documentazione sulle twitter API e sul data mining ce n'è a volontà, la realizzazione quindi non dovrebbe essere eccessivamente complicata.
claudio
open connection on
http://www.epnewshub.eu/feederfrontendapi/contributors/1?limit=8000&offset=0
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: Object # has no method 'existsSync'
at NativeConnection. (../tweetyourmep/import/import-meps.js:54:11)
at NativeConnection.g (events.js:154:14)
at NativeConnection.emit (events.js:64:17)
at open (../tweetyourmep/node_modules/mongoose/lib/connection.js:394:10)
at NativeConnection.onOpen (../tweetyourmep/node_modules/mongoose/lib/connection.js:401:5)
at ../tweetyourmep/node_modules/mongoose/lib/connection.js:372:10
at ../tweetyourmep/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:47:5
at ../tweetyourmep/node_modules/mongoose/node_modules/mongodb/lib/mongodb/db.js:258:14
at [object Object]. (../tweetyourmep/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:230:7)
at [object Object].g (events.js:154:14)
invece di inserire un "back on top" o di usare un box ricerca flottante, la soluzione migliore è una semplice riga in css di fixed position per la main bar, che anche su schermo piccolo non è invasiva (il menù si raggruppa senza problemi)
Salvini, Costa etc sono ripetuti più volte.
Salvini in particolare risulta 4 volte pur non avendo definito l'account twitter
http://www.apposta.biz:7777/?mep_name=Salvini&mep_localParty=&mep_country=&mep_faction=
Vedere anche se è possiamo farlo in termini di licenza.
Il download potrebbe essere fatto durante l'import, @seralf Che ne dici ? :)
Stampare un "counter" dei tweet per MEP e la data dell'ultimo tweet in formato "time ago".
Un nuovo sorting che permetta di avere in pagina i MEP più attivi su Twitter.
I box grigi di MEP senza avatar e degli account di gruppi hanno altezze diverse, converrebbe renderli tutti uguali così da agevolare futuri ritocchi al layout
...come suggerito da Paolo qui: #87
Would be nice to move all the logic stuff outside of template files, for example:https://github.com/spaghetti-open-data/tweetyourmep/blob/master/views/index.ejs#L188
We should move this piece of code to the frontend (mainController) in order to create an object to be just printed on the template layer.
I put this issue as an enhancement, it's not blocking for next release.
Segnalo un problema di visualizzazione della menubar su dispositivi mobili, vedi screenshot.
La soluzione è aggiungere queste righe in public/stylesheets/application.css
@media (max-width: 979px) {
body {
padding-top: 0px;
}
}
I dati vengono importati ugualmente, ma poi la connessione rimane aperta. Lo script di importazione deve essere interrotto manualmente e genera molti errori del tipo Unhandled rejection ReferenceError: doc is not defined
Ora che @seralf ha ripristinato TWYMEP e aggiornato i suoi dati, entriamo nella fase in cui la trasformiamo in uno strumento per campagne di informazione e mobilitazione.
Come prima fase, si tratta di inserire del testo nel tweet che viene generato quando l'utente ha scelto il MEP. Se non ricordo male (Alfredo, perdonami ma sono in vacanza e non me la sento di mettermi a smanettare per fare girare TWYMEP in locale) un po' di roba c'era già – anzi ci deve essere, perché ci deve essere @mepname
perché la cosa funzioni. Si tratta quindi solo di fare un edit molto semplice.
Alf, di questo posso occuparmi io se mi segnali qual è il file, nel codice, che precarica il tweet.
Example: http://apps.spaghettiopendata.org/tweetyourmep?mep_name=paolo&mep_localParty=&mep_country
If you don't pass all the expected query params, the application hangs.
Implementare la ricerca per "local_party", ora la struttura che abbiamo sul DB è questa:
Sul DB è strutturato in questo modo:
{ "mep_localParty" : "Partitu di a Nazione Corsa" }
Dunque non esiste un ID per identificarli univocamente, sono solo in formato stringa completo.
Sarebbe simpatico vedere sotto ad ogni profilo, l'ultimo tweet inviato.
Volontari ?
Sembra che dopo l'ultimo aggiornamento di bootstrap, qualcosa si sia rotto nel bottone more, anche se nel template .ejs la stampa è corretta, il markup viene comunque "escaped".
Alessio, nell'aggiornamento che hai fatto, c'erano anche i sorgenti JS da aggiornare ?
Gestire i casi speciali come: Youtube, Flickr, Sito personale ecc. Identificando e formattando correttamente i link.
Un esempio di dato strutturato:
"mep_additionalProperties" : "[{\"additionalSite1\":\"http://stenskott.wordpress.com/\"},{\"Member\":\"European Parliament\"},{\"Substitute\":\"Committee on Budgetary Control\"}]"
Al momento l'handling è gestito da qui:
https://github.com/spaghetti-open-data/tweetyourmep/blob/master/views/index.ejs#L188
rifattorizzando le funzioni sostituendo i singoli parametri con un unico oggetto options rendiamo omogenee le ricerche ed è facile introdurre paginazioni (con i parametri limit e offset)
Nelal home farebbe molto comodo che il box di ricerca fosse scrolalbile con la pagina.
per farlo con i css non dovrebbe essere difficiel dovrebbe bastare un position:fixed
buon lavoro continuate così!
sarebbe bello che i MEP apparissero in modalità random
nella visualizzazione verticale da tablet (iPad) l'altezza dei MEPbox non è uguale per tutti.
il testo all'interno non si ridimensiona in base alla larghezza disponibile
sarebbe bene inserire la modalità infinity scroll e caricare solo le prime 2 righe di MEP.
a quanto è impostata la larghezza Max? io la metterei a 940px in questo modo potete definire la dimensione Max del font
mancano in javascripts/select2 i seguenti files:
select2.css
select2.js
select2.png
spinner.gif
Aggiungere nella left sidebar un pulsante che lanci la ricerca con hashtag #tweetyourmep
Ciao Alessio, ti assegno questa issue.
Come puoi vedere dall'ultimo merge ho rifatto la form, vedi maggiori dettaglio nel merge.
Dovrebbe dare una sistemata al blocchetto con le informazioni utente, rendere magari più visibile la differenza tra le label ed il campo vero e proprio, oltre a sistemare il padding.
Thanks.
JSON Meps output with filtering enabled
potremmo aggiungere una sorta di micro-documentazione in linea usando qualcosa del genere.
http://www.codylindley.com/blogstuff/js/jtip/
che ne pensate?
I suggest you to use the async library for loops.
When you use for () {} in /views/index.ejs you are actually writing blocking code.
Il Boxino 'more' dovrebbe contenere informazioni importate da Twitter come la bio (poi ci possiamo mettere quello che vogliamo, il limite è la fantasia).
Bozzetto di codice scritto al volo:
$.ajax({
url : "http://api.twitter.com/1/users/show.json?screen_name=dottorblaster",
dataType : "jsonp",
success : function(data)
{
alert(data.name + ' : ' + data.description);
},
error : function()
{
alert("Failure!");
},
});
Ho aggiornato Bootstrap alla 2.2.0.
Per ora sembra andare, date un'occhiata anche voi sul mio branch dedicato
https://github.com/dottorblaster/tweetyourmep/tree/bootstrap-220
Se va bene @paolomainardi faccio un merge e una pull request.
dunque ho provato con la app appena scaricata: installo tutti i moduli, sistemo il db name, e lancio l'import... ecco l'errore:
"Find users problems, please check mongodb connection."
il json viene correttamente scaricato in cache. Qualche idea?
Sarebbe interessante poter lanciare la ricerca direttamente da quell'informazione, lasciando comunque invariata la funzionalità del tooltip che c'è attualmente.
@seralf scusa se ti stresso ma mi sono accorto che il database non è aggiornato. MEPS.json contiene i MEP della scorsa legislatura!
Move search functions to a different object, abstract the filters functions.
Implement a Reset button to search form.
Vogliamo creare una macchina virtuale di facile riproduzione per le prove locali.
Bisognerebbe definire una configurazione che faccia le seguenti cose:
NOTE:
Al momento si presenta cosi:
https://raw.github.com/spaghetti-open-data/tweetyourmep/master/public/screenshots/hp_alpha2.png
Mi stavo chiedendo se non sarebbe il caso di usare qualche form framework, come ad esempio questo: https://github.com/caolan/forms
in views/index.ejs c'è il vecchio link all'icona twitter.
il nuovo corretto è https://abs.twimg.com/errors/logo23x19.png
se si clicca su about:
http://apps.spaghettiopendata.org/tweetyourmeptweetyourmeptweetyourmep...about
idem analizzando le richieste della pagina con i chrome tools ci sono ad esempio richieste a:
http://apps.spaghettiopendata.org/tweetyourmeptweetyourmeptweetyourmeptweetyourmepjavascripts/application.js
che alla fine riesce a risolvere trovando il file.
Probabilmente è un problema di redirect, da configurare (immagino) su apache
eseguendo più ricerche concatenate, si perde la ricerca per country: andrebbe pre-caricato lo stato in base ad un parametro di request, così come per la ricerca per nome
... così ci facciamo su un po' di prove.
@seralf che non valga la pena che tu faccia una pull request?
Qualche volontario che mette in piedi questo servizio ? Oppure l'ha già abilitato e ci da accesso ?
We should use some jquery plugin to beautify this element.
Examples: http://ivaynberg.github.com/select2/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.