Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Classificazioni degli albi pretori #7

Closed
nelsonmau opened this issue Sep 6, 2016 · 48 comments
Closed

Classificazioni degli albi pretori #7

nelsonmau opened this issue Sep 6, 2016 · 48 comments

Comments

@nelsonmau
Copy link
Collaborator

nelsonmau commented Sep 6, 2016

Sta emergendo una necessità di effettuare una classificazione degli albi. Faccio alcuni esempio di casi d'uso, che possano favorire la discussione e il ragionamento:

Come faccio a selezionare solo:

  • gli albi pop dei capoluoghi di regione
  • gli albi pop dei capoluoghi di provincia
  • gli albi pop dei comuni colpiti dal sisma
  • gli alpi pop di una singola regione
@jenkin
Copy link
Member

jenkin commented Sep 6, 2016

La soluzione è semplice: gestire bene i tag <category> previsti dal formato RSS, sia a livello di <channel> (es. comune, provincia, regione, tipologia di pa, latitudine e longitudine), che a livello di <item> (es. post-terremoto), magari condividendo un set di domini (attributo domain) predefinito. Ma la valorizzazione di quei tag è a carico degli scraper...

@nelsonmau
Copy link
Collaborator Author

falla! 💃

@aborruso
Copy link
Collaborator

aborruso commented Sep 6, 2016

@jenkin costruisci un esempio ciao mondo per un feed RSS tipo, e poi per l'implementazione mi ci metto per il momento io?

@jenkin
Copy link
Member

jenkin commented Sep 6, 2016

Prendo come spunto il feed di Amatrice, eliminando i tag personalizzati di feedburner. L'ideale sarebbe sfruttare l'attributo domain del tag <category> (vedi qui), ma non so bene come farlo al meglio... :)

<channel>
 <title>AlboPOP Amatrice</title>
 <link>https://script.google.com/macros/s/AKfycbwnSCtl7mPwzyjt1CyHhkmSmciwqOuBDz6A-1m78_Uu2ej--xam/exec</link>
 <description>*non ufficiale* RSS feed dell'Albo Pretorio di Amatrice</description>
 <language>it</language>
 <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
 <image><link>http://creativecommons.org/licenses/by/3.0/</link>
 <url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />

 <category domain="comune">Amatrice</category>
 <category domain="provincia">Rieti</category>
 <category domain="regione">Lazio</category>
 <category domain="latitudine">42.629381</category>
 <category domain="longitudine">13.288372</category>
 <category domain="tipologia_pa">Comune</category>

 <item>
  <title>VINCOLO IDROGEOLOGICO. SIG. RAPONI SERGIO.</title>
  <link>http://halleyweb.com/c057002/mc/mc_gridev_dettaglio.php?x=&amp;interno=1&amp;id_pubbl=5772</link>
  <description>VINCOLO IDROGEOLOGICO. SIG. RAPONI SERGIO.</description>
  <pubDate>Mon, 22 Aug 2016 10:00:00 +0000</pubDate>
  <guid>http://halleyweb.com/c057002/mc/mc_gridev_dettaglio.php?x=&amp;interno=1&amp;id_pubbl=5772</guid>

  <category domain="custom">Post-terremoto 24 agosto 2016</category>

 </item>
</channel>

@jenkin
Copy link
Member

jenkin commented Sep 6, 2016

Hmm, c'è comunque da gestire opportunamente la possibilità di indicare valori multipli di location ed eventualmente aggiungere la variabile generica category: https://github.com/ondata/albopop-enhanced/blob/develop/feed/fromes.inc.php.

@aborruso
Copy link
Collaborator

aborruso commented Sep 6, 2016

@jenkin ho fatto un piccolo avanzamento sulla parte di canale http://feeds.feedburner.com/AlbopopAmatrice

Per ora sto usando le API di OpenCage in modo da stare open, per estrarre provincia, regione e coppia di coordinate. Valori come LAZ per la regione sono quelli esposti da OpenCage.

C'è da allineare i vari script, ma si fa. Inizierò dal fare un'anagrafica degli script.

@ebergam
Copy link

ebergam commented Sep 6, 2016

@aborruso @jenkin che faccio mi fermo finché non abbiamo capito il metodo da tenere? Anzi magari continuo ma senza buttarli su feedburner tenendo traccia degli script google in un'altra colonna, così poi facciamo prima ad andarli a prendere?

@ebergam
Copy link

ebergam commented Sep 7, 2016

@aborruso @jenkin Ora ho visto bene cosa volete fare. Io mi sono fermato prima di toccare feedburner perché non ho capito come aggiungere quei tag a posteriori (date un occhio al foglio). Ma volete modificare lo script di matteo? Se inseriamo altre categorie nel foglio meta colonna G e qua in qualche modo settiamo la categoria in questa parte:

function doGet() { 
  var ss = SpreadsheetApp.openById(ID_SPREADSHEET);

  var metaSheet = ss.getSheetByName('meta');

  var RSSFeedTitle = metaSheet.getRange('G1').getValue();
  var RSSFeedURL = decodeURIComponent(metaSheet.getRange('G2').getValue().trim());
  var RSSFeedDesc = metaSheet.getRange('G3').getValue();

  var dataSheet = ss.getSheetByName('clean');

  var rss=makeRss();

  rss.setTitle(RSSFeedTitle);
  rss.setLink(RSSFeedURL);
  rss.setDescription(RSSFeedDesc);
  rss.setLanguage('it');
  rss.setAtomlink(RSSFeedURL);

  for (var i=2; i < 1000; i++) {
    var riga=dataSheet.getRange(i,1,1,3).getValues();
    var myguid=riga[0][I_HREF];
    var titolo=riga[0][I_TITLE];
    var pDate=riga[0][I_PUBDATE]; 

    //Logger.log('Riga ' + i + ' myguid ' + myguid);
    if (myguid.length == 0) {
      break;
    }

    //var pattern = /(\d{2})\/(\d{2})\/(\d{4})/;
    //var pDateFix=pDate.replace(pattern,'$2/$1/$3')
    var pDateFix=pDate;

    var pubDateDate = new Date(pDateFix + " 12:00");

    rss.addItem({title: titolo,
                 guid:myguid,
                 link: myguid,
                 description: titolo,
                 pubDate: pubDateDate
                             });
        }

  var rssStr=rss.toString();

  //Logger.log(rssStr)

  return ContentService.createTextOutput(rssStr).setMimeType(ContentService.MimeType.RSS);
}

@aborruso
Copy link
Collaborator

aborruso commented Sep 7, 2016

caro @ebergam ,
ci sono da modificare gli script. Uno molto usato è quello di Matteo e per quelli della zona del sisma abbiamo usato questi.

Io ho fatto proprio come dici. Ho aggiunto nel foglio meta questi valori:

tipologia_pa > Comune
comune > Amatrice
provincia > RI
regione > LAZ
latitude > 42.6292367
longitude > 13.2891755

E modificato così lo script (che è ancora brutto e rozzo):

var comune = metaSheet.getRange('F5').getValue();
var comune_value = metaSheet.getRange('G5').getValue();  
var provincia = metaSheet.getRange('F6').getValue();
var provincia_value = metaSheet.getRange('G6').getValue();  
var regione = metaSheet.getRange('F7').getValue();
var regione_value = metaSheet.getRange('G7').getValue();  
var latitudine = metaSheet.getRange('F8').getValue();
var latitudine_value = metaSheet.getRange('G8').getValue();  
var longitudine = metaSheet.getRange('F9').getValue();
var longitudine_value = metaSheet.getRange('G9').getValue();                    


                        ch.addContent(createElement('category', tipologia_pa_value)
                                     .setAttribute('domain',tipologia_pa)
                                     );
                       ch.addContent(createElement('category', comune_value)
                                     .setAttribute('domain',comune)
                                     );
                       ch.addContent(createElement('category', provincia_value)
                                     .setAttribute('domain',provincia)
                                     );
                       ch.addContent(createElement('category', regione_value)
                                     .setAttribute('domain',regione)
                                     );
                       ch.addContent(createElement('category', latitudine_value)
                                     .setAttribute('domain',latitudine)
                                     );
                       ch.addContent(createElement('category', longitudine_value)
                                     .setAttribute('domain',longitudine)
                                     );

Qui trovi il foglio d'esempio che puoi copiare https://docs.google.com/spreadsheets/d/1Ywh38OU49rdBSZ_RgShaztgpvsPNbzzBXlj3EKqesCA/edit?usp=sharing

Al momento l'albo di Amatrice si sta svuotando

image

@ebergam
Copy link

ebergam commented Sep 7, 2016

Grazie mille @aborruso, esattamente quello che mi serviva per proseguire! Come mai l'hanno svuotato secondo te? Io intanto sistemo col nuovo script quelli già fatti e aggiorno il tutto. Poi cerco altre liste di comuni terremotati per andare avanti.
Cheers

@ebergam
Copy link

ebergam commented Sep 7, 2016

@aborruso scusa, mi sento stupido, ma mi sono incagliato sulla formattazione della casella dove faccio l'import in lat e lng. Ho impostato plain text ma quando fa l'import la mangia come numero e sballa. Non riesco a vedere da te che non sono in edit. Come l'hai impostata?

@aborruso
Copy link
Collaborator

aborruso commented Sep 7, 2016

@ebergam ho impostato il foglio all'americana, che in qualche modo è più "standard"

image

@aborruso
Copy link
Collaborator

aborruso commented Sep 7, 2016

2016-09-07 15:29 GMT+02:00 Enrico Bergamini notifications@github.com:

Come mai l'hanno svuotato secondo te?

Non ne ho idea. Magari perché sono items scaduti (in albo dopo alcuni
giorni, in dipendenza dal tipo di pubblicazione, l'elemento deve essere
rimosso dalla pubblicazione).
Il tempo passa, e probabilmente i meccanismi di rimozione dalla
pubblicazione funzionano bene. Ma sono automatici, e non hanno bisogno di
personale che ci lavori sopra da un postazione.

Mentre per inserire nuovi elementi ci deve essere il personale disponibile
e una postazione di lavoro. E per ora, è dura :(

@nelsonmau
Copy link
Collaborator Author

Cmq io farei una nuova tabella. Colonna 1 = url singolo albopop, da colonna 2 in poi tutte le classificazioni... una specie di anagrafica degli albi, senza complicarci la vita...

Credo che sia la soluzione più semplice, nonché la più duttile ed efficace. Non voglio che mi si dica grazie per questo eh :D sux @jenkin

@ebergam
Copy link

ebergam commented Sep 8, 2016

@aborruso occhio, lo script che abbiamo usato ieri non funziona bene. Se vedi https://docs.google.com/spreadsheets/d/1UJJk1Kz-klJBvyu0EdPGJ036UAqqn4Ntc0INy-nMuE0/edit#gid=0 nella colonna 'controllato' ho messo messo i problemi. Generalmente inverte la data e non mette le categorie

@aborruso
Copy link
Collaborator

aborruso commented Sep 8, 2016

@ebergam mi dai accesso in scrittura e mi scrivi qui l'URL di uno spreadsheet in cui ci sono i problemi di cui parli?

Grazie

@aborruso
Copy link
Collaborator

aborruso commented Sep 8, 2016

Caro @ebergam ho fatto delle piccole modifiche nel foglio di Arquata del Tronto. Non ho cambiato nulla nello script, ma due sono stati gli elementi essenziali:

  • ho introdotto una colonna (era così in Amatrice) dove faccio in modo che la data sia già in formato RFC-822. L'ho fatto in modo arzigogolato e puoi cambiare le funzioni, ma basta che sia come Tue, 06 Sep 2016 00:00:00 +0200;
  • le categorie non si vedevano perché delle volte è necessario forzare un refresh, pubblicando una nuova versione (vedi immagine sotto) della web app.

image

Una volta fatto il geocoding, sfruttando opencage, rimuovi per favore il calcolo e appiattisci il testo. In questo modo non verranno fatte centinaia di chiamate a OpenCage. Che è free fino a un certo limite. Tanto il comune non si sposta :)

@ebergam
Copy link

ebergam commented Sep 8, 2016

@aborruso fatto! Grazie mille di nuovo :) @nelsonmau dunque qui: https://docs.google.com/spreadsheets/d/1UJJk1Kz-klJBvyu0EdPGJ036UAqqn4Ntc0INy-nMuE0/edit#gid=0 c'è la tabella con quelli del terremoto fatti finora. L'importante è avere queste informazioni ordinate poi si possono aggiungere tutte le varie colonne per fare un'anagrafica più precisa

@nelsonmau
Copy link
Collaborator Author

grazie @ebergam, riuscite con quel maraglio di @jenkin a mettere online una versione "solo-sisma" del nostro albopop enhanched?

@jenkin
Copy link
Member

jenkin commented Sep 9, 2016

Ok, direi che ci siamo, ma per mettere tutto in piedi devo fare delle modifiche alla configurazione di logstash e (temo) anche al plugin logstash-input-rss che avevo già modificato a suo tempo...

@jenkin
Copy link
Member

jenkin commented Sep 10, 2016

Scusate ragazzi, mi sono reso conto ora che c'è stato un equivoco... i tag <category> vanno bene, ma devono stare dentro ogni <item>! Lo so che sarebbero ripetuti tali e quali per tutti gli item, ma è fondamentale perché poi tutti i feed vengono aggregati in uno solo e i metadati associati ai singoli feed si perdono in quello aggregato. Rimangono invece quelli associati ai singoli item... @aborruso @ebergam

@aborruso
Copy link
Collaborator

@jenkin ok. Ma sono completamente bollito? Nello schema che ci hai proposto qui non stanno dentro il channel?

A breve modifico lo script. Grazie

@jenkin
Copy link
Member

jenkin commented Sep 12, 2016

E me so' sbagliato... 👎

@jenkin
Copy link
Member

jenkin commented Sep 13, 2016

Intanto ho aggiunto al feed il supporto alle tag multiple (esempio per i comuni del terremoto)...

@jenkin
Copy link
Member

jenkin commented Sep 13, 2016

Ed ecco come verrebbe il motore di ricerca sui soli comuni colpiti dal terremoto (comuni identificati per nome come tag): http://dev.dataninja.it/AlboPOP-enhanced/ :)

@ebergam
Copy link

ebergam commented Sep 14, 2016

Grande @jenkin. Quindi è definitivo o io e @aborruso dobbiamo modificare lo script?

@jenkin
Copy link
Member

jenkin commented Sep 14, 2016

@ebergam è necessario che lo scraper produca un rss con tutte le informazioni utili in modo strutturato (es. in forma di category), io sono arrivato a quel risultato con un workaround (editando a mano i nomi dei feed dell'aggregatore). Ergo c'è da mettere i tag category che avete già inserito all'interno di ogni item, non solo a livello di channel... :)

@jenkin
Copy link
Member

jenkin commented Sep 14, 2016

Ecco qua, ho scritto una bozza di specifiche: https://github.com/jenkin/albo-pop/blob/albopop-specs/specs.md... :)

@aborruso
Copy link
Collaborator

Caro @jenkin che bel lavoro!

Ecco una prima versione: http://feeds.feedburner.com/AmatriceCimarellix
Manca ancora qualcosetta ma mi sembra che ci siamo.

Per @ebergam: qui c'è il foglio (e il codice) di cui puoi fare copia https://docs.google.com/spreadsheets/d/10FPEBTWhRWcaEu6OzlVXY3lxUnZXMuHoE6-_D_aQG7k/edit?usp=sharing

Che piacere fare questa cosa

@ebergam
Copy link

ebergam commented Sep 21, 2016

@jenkin ottimo, grazie! @aborruso nel weekend ci lavoro e vedo di aggiornare tutti quelli del Centro Italia. (ho dato uno sguardo veloce al foglio e non funziona però, occhio) :)

@aborruso
Copy link
Collaborator

@ebergam funziona, solo che nel frattempo è cambiato l'albo di Amatrice.

Usa questo https://docs.google.com/spreadsheets/d/1JbSBnZoqS1rrW1d3JCGe6NMkV2A-wNkhkuVVYU2bd4A/edit?usp=sharing

@aborruso
Copy link
Collaborator

@ebergam questa la segnalazione ricevuta per Amatrice: http://albopop.it/comune/amatrice/#comment-2906270429

La aggiungo, perché è una cosa bella

@jenkin
Copy link
Member

jenkin commented Sep 21, 2016

Aggiornate le specifiche del feed! :)

@aborruso
Copy link
Collaborator

@jenkin nell'output di esempio, per l'item, c'è due volte il type con i due significati previsti

image

@jenkin
Copy link
Member

jenkin commented Sep 21, 2016

Il primo è sbagliato, lo tolgo! :)

@jenkin
Copy link
Member

jenkin commented Sep 21, 2016

Intanto funziona! :) In TTRSS vengono riconosciute correttamente le categorie del channel e vengono associate ai singoli item! :)

ape-tags

@aborruso
Copy link
Collaborator

Entro domani sera aggiorno lo script. Scusami @ebergam se non riesco a fare prima.

@jenkin tutto questo mi piace molto

@ebergam
Copy link

ebergam commented Sep 23, 2016

@aborruso nessun problema, io ho tempo tutto il fine settimana, quando hai lo script mi dici da dove replicarlo su tutti gli sheets, senza fretta, buon weekend ;)

@jenkin
Copy link
Member

jenkin commented Sep 27, 2016

@aborruso che si dice? :)

@ebergam
Copy link

ebergam commented Oct 4, 2016

@aborruso andy forse ho perso un passaggio io, devo adattare gli altri da questo che è già pronto?
https://docs.google.com/spreadsheets/d/10FPEBTWhRWcaEu6OzlVXY3lxUnZXMuHoE6-_D_aQG7k/edit#gid=375343210
Se invece non hai lo script so che sei impegnatissimo nessuna fretta, solo che tra tutti gli sheets mi son perso :)

@aborruso
Copy link
Collaborator

aborruso commented Oct 5, 2016

caro @ebergam riemergo. Ecco il feed di Amatrice: http://feeds.feedburner.com/AlbopopAmatrice

Qui lo sheet con lo script da cui partire.

@jenkin ti scrivo da un'altra parte su una faccenda di specifice

@jenkin
Copy link
Member

jenkin commented Oct 7, 2016

@aborruso e @ebergam finora io ho questi feed legati al terremoto...

feed-tci

Quando gli scraper sono tutti aggiornati alle nuove specifiche, mi avvertite? Così sistemo la strutturazione dei dati e siamo a posto... :)

@aborruso
Copy link
Collaborator

aborruso commented Oct 7, 2016

@jenkin sei nei nostri pensieri sempre e sarai il primo a saperlo :)

@jenkin
Copy link
Member

jenkin commented Oct 12, 2016

@aborruso @ebergam mi pare ci sia un piccolo errore, le categorie a livello di channel hanno nel domain l'url alle specifiche a livello di item...

9486

@aborruso
Copy link
Collaborator

@jenkin colpa mia e del balletto item/channel :)

Ho aggiornato script e al prossimo aggiornamento la struttura sarà corretta.

@ebergam
Copy link

ebergam commented Oct 12, 2016

@aborruso Di tutti o devo fare un giro di script anch'io?

Il mercoledì 12 ottobre 2016, Andrea Borruso notifications@github.com ha
scritto:

@jenkin https://github.com/jenkin colpa mia e del balletto item/channel
:)

Ho aggiornato script e al prossimo aggiornamento la struttura sarà
corretta.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#7 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANKE2py7r9F-zAxoAEtWwSrT9NNGh2Hkks5qzVX6gaJpZM4J1ks3
.

Sorry for typos sent by mobile

jenkin pushed a commit that referenced this issue Oct 12, 2016
…lugin (rss input) and configuration file, fix bugs
@jenkin
Copy link
Member

jenkin commented Oct 13, 2016

Ho poi aggiornato il tutto, ma devo ricontrollare i risultati, mi pare che norcia rompa troppo le scatole... :)

@aborruso
Copy link
Collaborator

On 13 October 2016 at 12:59, Alessio Cimarelli notifications@github.com
wrote:

Ho poi aggiornato il tutto, ma devo ricontrollare i risultati, mi pare che
norcia rompa troppo le scatole... :)

Ale grazie :)

Ho appena visto Norcia
http://feeds.feedburner.com/AlbopopNorcia?format=xml e mi sembra buono.
Cosa ha che non va?

Questa issue la chiuderei e ora andrei di fino con segnalazioni più
specifiche.


Andrea Borruso
website: http://blog.spaziogis.it
38° 7' 48" N, 13° 21' 9" E, EPSG:4326


"cercare e saper riconoscere chi e cosa,
in mezzo all’inferno, non è inferno,
e farlo durare, e dargli spazio"

Italo Calvino

@jenkin jenkin closed this as completed Oct 13, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants