Tuipi: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
3 021 byte aggiunti ,  15 mar 2017
m
→‎Codifica: pseudo-fix
m (link a Git)
m (→‎Codifica: pseudo-fix)
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
'''Tuipi''' è un simpatico programmello [[Tecnopolitica|tecnopolitico]] sbarazzino, ma è 'na mmerda da configurare e usare, al momento. Speriamo migliori presto; puoi contribuire inviandoci impressioni e suggerimenti, scrivendo la documentazione o il codice, [[Gephi#Salvare_e_condividere_i_dati_raccolti|condividendo dati da analizzare]], etc.
'''Tuipi''' è un simpatico programmello [[Tecnopolitica|tecnopolitico]] sbarazzino, che sviluppiamo connettere le lotte di piazza con la Rete. Scritto prevalentemente in linguaggio Python, Tuipi utilizza le [https://dev.twitter.com/overview/api API di Twitter] interfacciandosi con la libreria [http://docs.tweepy.org tweepy].


Il codice sorgente di Tuipi [https://git.eigenlab.org/rakk/tuipi si trova] sul [[GitLab|nostro repo Git]].
Il codice sorgente di Tuipi [https://git.eigenlab.org/rakk/tuipi si trova] sul nostro repository [[GitLab|Git]]; devi registrarti e poi chiedere di essere inseritx nel gruppo di sviluppo. Questa precauzione (che sembra contrastare con i princìpi di [[OpenSource|apertura]]) ci è necessaria per evitare l'assorbimento dei nostri algoritmi da parte di twitter e altri [[Big data]], che abbasserebbe drasticamente l'efficacia del nostro lavoro; speriamo di giungere presto ad un livello di maturità del codice e di condivisione di valori e scopi nel suo utilizzo che ci permetta di fornire accesso incondizionato a tuttx.


= Come creare un bot =
= Creare un bot =
Un ''robot'' (dallo slavo ''rabota'', "servitù") è una macchina che lavora al posto tuo. Probabilmente vuoi creare altri account Twitter fittizi (bot) '''diversi''' dal tuo account personale perché
Un robot<ref>Dallo slavo ''rabota'', "servitù".</ref> è una macchina che lavora al posto tuo. Probabilmente vuoi creare altri account Twitter fittizi (bot) '''diversi''' dal tuo account personale perché
* non ti piace lavorare;
* non ti piace lavorare, e ti alletta l'idea di una macchina che ti permette di ottenere grandi risultati con poco sforzo;
* Twitter [https://support.twitter.com/articles/93870 non vede di buon occhio] l'attività robotica e a volte può sospendere, bloccare o terminare degli account che considera sospetti: non vuoi che questo succeda col tuo account personale.
* Twitter [https://support.twitter.com/articles/93870 non vede di buon occhio] l'attività robotica e a volte può sospendere, bloccare o terminare degli account che considera sospetti: non vuoi che questo succeda col tuo account personale.


Inoltre Twitter [https://dev.twitter.com/rest/reference/get/application/rate_limit_status limita] il numero di operazioni che è possibile fare in un quarto d'ora con Tuipi, che però supera questa limitazione supportando un numero arbitrario di account gestiti in armonia con i loro limiti attuali. La partecipazione di tanti account aumenta la "potenza di fuoco" durante un [[tweetstorm]] e migliora anche la capacità di analisi che puoi sviluppare; ma ti rende anche più difficile gestire tanti account con precisione: comincia prima usando un solo robot, e poi aumenta gradualmente senza farti prendere la mano.
Inoltre Twitter [https://dev.twitter.com/rest/reference/get/application/rate_limit_status limita] il numero di operazioni che è possibile fare in un quarto d'ora attraverso le API; Tuipi però supera questa limitazione supportando un numero arbitrario di account gestiti in sincrona armonia con i loro limiti attuali. La partecipazione di tanti account aumenta la "potenza di fuoco" durante un [[tweetstorm]] e migliora anche la capacità di analisi che puoi sviluppare; ma ti rende anche più difficile gestire tanti account con precisione: comincia prima usando un solo robot, e poi aumenta gradualmente senza farti prendere la mano.


[[File:Twitter-profile-rakk g.jpg|miniatura|Il profilo [http://twitter.com/rakk_g @rakk_g] è gestito da 14 persone, più o meno umane.]]
[[File:Twitter-profile-rakk g.jpg|miniatura|Il profilo [http://twitter.com/rakk_g @rakk_g] è gestito da 14 persone, più o meno umane.]]
Riga 40: Riga 40:
Ora dovrai registrare una app, un passaggio formale per permetterti di gestire il nuovo account tramite Tuipi.
Ora dovrai registrare una app, un passaggio formale per permetterti di gestire il nuovo account tramite Tuipi.
Senza fare il logout da Twitter vai a questo indirizzo <code>[https://apps.twitter.com/ https://apps.twitter.com/]</code> per registrare una nuova applicazione (non dovresti averne nessuna già attiva al momento). Scegli un nome (non "Tuipi"), una descrizione decente, un sito web (scegli un sito pertinente, p.e. [http://www.tweepy.org/ questo], [http://www.stats.ox.ac.uk/~snijders/siena/ questo], [http://www.insna.org/ questo], [https://tweetdeck.twitter.com/ questo], [http://gephi.org/ questo], [https://www.python.org/ questo], [http://www.xda-developers.com/ questo], [http://developer.ubuntu.com/community/ questo], [http://www.sciencedirect.com/science/journal/03788733 questo] o [http://www.tandfonline.com/toc/gmas20/current quest'altro]) e accetta le condizioni.
Senza fare il logout da Twitter vai a questo indirizzo <code>[https://apps.twitter.com/ https://apps.twitter.com/]</code> per registrare una nuova applicazione (non dovresti averne nessuna già attiva al momento). Scegli un nome (non "Tuipi"), una descrizione decente, un sito web (scegli un sito pertinente, p.e. [http://www.tweepy.org/ questo], [http://www.stats.ox.ac.uk/~snijders/siena/ questo], [http://www.insna.org/ questo], [https://tweetdeck.twitter.com/ questo], [http://gephi.org/ questo], [https://www.python.org/ questo], [http://www.xda-developers.com/ questo], [http://developer.ubuntu.com/community/ questo], [http://www.sciencedirect.com/science/journal/03788733 questo] o [http://www.tandfonline.com/toc/gmas20/current quest'altro]) e accetta le condizioni.
Accertati che l'applicazione appena creata abbia i permessi in ''Lettura, scrittura e messaggi diretti'', poi vai alla pagina "Chiavi e token d'accesso" e prenditi le ''Consumer Key'' (API Key + API Secret) e i ''Access Token'' (Access Token + Access Token Secret, forse devi generarli col bottone se non le hai già). Queste quattro stringhe vanno fornite a Tuipi nel dizionario che si trova in <code>config/costanti.py</code>. Fai il logout.
Accertati che l'applicazione appena creata abbia i permessi in ''Lettura, scrittura e messaggi diretti'', poi vai alla pagina "Chiavi e token d'accesso" e prenditi le ''Consumer Key'' (API Key + API Secret) e i ''Access Token'' (Access Token + Access Token Secret)<ref>Forse devi generarli col bottone se non li hai già.</ref>. Queste quattro stringhe vanno fornite a Tuipi nei dizionari che si trovano in <code>config/costanti.py</code>.


Ora il tuo nuovo robot è pronto.
Finito: tu e il tuo nuovo robot siete pronti all'azione.


=== Suggerimenti ===
=== Suggerimenti ===
Riga 55: Riga 55:


= Come usare Tuipi =
= Come usare Tuipi =
Non abbiamo ancora scritto un manuale, però il codice è ben documentato; usa la funzione <code>help()</code> su un oggetto per capire cosa è, come funziona, come usarlo, etc.
Non abbiamo ancora scritto un manuale, però il codice è ben documentato: usa la funzione <code>help()</code> su un oggetto per capire cosa è, come funziona, come usarlo, etc.
 
Se non si vogliono manipolare gli script a mano, Tuipi offre un'interfaccia interattiva semplificata con lo script <code>simple.py</code>; per lanciarla apri un terminale, spostati (con il comando <code>cd</code>) nella directory dove risiede il programma e lancia lo script in modo interattivo col comando <code>python -i simple.py</code>:
<pre>
gianna@epta ~/src/tuipi (git)-[master] % python -i simple.py
Bevenut@, gianna!
Per abortire un prompt (compresa la console) invia EOF (in genere, CTRL+D),
mentre con CTRL+C puoi abortire un comando; fallo solo in caso di necessità.
Sto leggendo ...50%...99%. : disponi di 842M di dati in 47 file (12 profili, 7 stati, 6 HTs,
21 grafi, 1 timeseries).
 
----------------------------------
-[[ TUIPI - menu prinpiciale  ]]-
API: gnna1475 DM_analisys
Profili: @Iddio @laMadonna @eigenLab_Pisa
Stati:
Hashtags: #NonUnaDiMeno #NoBorders
---------------------------------
A ) Connetti interfacce
RL) Calcola munizioni rimaste (rate limits)
S ) Carica la Sandbox (as sb)
U ) Carica batteria di profili
Ui) Inserisci a mano un utente (screen_name o user_id)
Um) Mostra utenti
Ud) Rimuovi duplicati utenti
Uc) Ripulisci lista utenti
T ) Carica un file di tweet
H ) Carica un file di hashtags
C ) Carica un file di commenti
L ) Carica un file di links
G ) Carica un grafo
R ) Esplora relazioni
Ts) Calcola timeseries
Sm) Strategia monitor/select/spread
FS) Griglia FSNR
Co) Torna alla console
Scelta:
</pre>
 
== Problemi ==
Per usare Tuipi hai bisogno di Python, versione 3 o superiore.
 
=== Codifica ===
Se ottieni un errore simile a <code>tweepy.error.TweepError: Failed to send request: 'str' object has no attribute 'decode'</code>, o altri segnali che qualcosa di malvagio sta accadendo a causa della codifica del testo, una cosa che talvolta funziona (p.e. con la distribuzione Debian) è installare la libreria Tweepy attraverso pip, anziché tramite il pacchetto sui repository.


= Appunti sparsi =
= Appunti sparsi =
Tuipi consta di un tot di scriptini in Python che usano la libreria [http://tweepy.readthedocs.io tweepy], che a sua volta si interfaccia con la [https://dev.twitter.com/ API di Twitter]. Settando adeguatamente i permessi, funziona sia in lettura (per analisi, statistiche, preparazione delle strategie, etc.) che in scrittura (twittando, ritwittando, mettendo il cuoricino, DM, follow/unfollow, media upload, cambio impostazioni, etc.); si può usare sia l'interfaccia REST che quella di streaming, quest'ultima molto utile nelle applicazioni in tempo reale.
Tuipi consta di un tot di scriptini in Python che usano la libreria [http://tweepy.readthedocs.io tweepy], che a sua volta si interfaccia con la [https://dev.twitter.com/ API di Twitter]. Settando adeguatamente i permessi, funziona sia in lettura (per analisi, statistiche, preparazione delle strategie, etc.) che in scrittura (twittando, ritwittando, mettendo il cuoricino, DM, follow/unfollow, media upload, cambio impostazioni, etc.); si può usare sia l'interfaccia REST che quella di streaming, quest'ultima molto utile nelle applicazioni in tempo reale.


Altri suggerimenti:
== Altre risorse ==
* Tuipi automatizza il possibile, ma non tutto; ha bisogno comunque di una supervisione umana (tranne che per le funzioni di calendarizzazione) e la qualità dei risultati finali dipende molto dalla cura con cui si preparano i dati di partenza. È utile farsi un'idea della dinamica che si sta affrontando con altri strumenti come [[Gephi]] o [https://support.twitter.com/articles/354008 la ricerca avanzata] di Twitter.
* Tuipi automatizza il possibile, ma non tutto; ha bisogno comunque di una supervisione umana (tranne che per le funzioni di calendarizzazione) e la qualità dei risultati finali dipende molto dalla cura con cui si preparano i dati di partenza. È utile farsi un'idea della dinamica che si sta affrontando anche con altri strumenti come [[Gephi]] o [https://support.twitter.com/articles/354008 la ricerca avanzata] di Twitter.
* Un [https://dev.twitter.com/resources/twitter-libraries elenco] di librerie supportate da Twitter
* Curl esteso con OAuth: [https://github.com/twitter/twurl qui]
* [https://dev.twitter.com/rest/reference/post/media/upload media upload] e [https://github.com/tweepy/tweepy/issues/724 upload multipli]
* [https://dev.twitter.com/rest/reference/get/trends/place reference] per l'acquisizione geolocalizzata dei trending topics


= Wishlist =
= Wishlist =
Riga 70: Riga 117:


[[Categoria:Tecnopolitica]]
[[Categoria:Tecnopolitica]]
[[Categoria:HowTo]]
509

contributi

Menu di navigazione