Tuipi: differenze tra le versioni
m (link a Git) |
m (menu (grazie Vitt!)) |
||
Riga 1: | Riga 1: | ||
'''Tuipi''' è un simpatico programmello [[Tecnopolitica|tecnopolitico]] sbarazzino, | '''Tuipi''' è un simpatico programmello [[Tecnopolitica|tecnopolitico]] sbarazzino, attualmente in via di sviluppo. Speriamo che continui a migliorare; puoi contribuire inviandoci impressioni e suggerimenti, scrivendo la documentazione o il codice, [[Gephi#Salvare_e_condividere_i_dati_raccolti|condividendo dati da analizzare]], etc. | ||
Il codice sorgente di Tuipi [https://git.eigenlab.org/rakk/tuipi si trova] sul [[GitLab| | Il codice sorgente di Tuipi [https://git.eigenlab.org/rakk/tuipi si trova] sul nostro repository [[GitLab|Git]]. | ||
= Come creare un bot = | = Come creare un bot = | ||
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 | 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>. | ||
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 | 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. | ||
Ecco un esempio di utilizzo di Tuipi | |||
<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> | |||
= Appunti sparsi = | = Appunti sparsi = | ||
Riga 61: | Riga 98: | ||
Altri suggerimenti: | Altri suggerimenti: | ||
* 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. | ||
= Wishlist = | = Wishlist = |
Versione delle 05:39, 27 dic 2016
Tuipi è un simpatico programmello tecnopolitico sbarazzino, attualmente in via di sviluppo. Speriamo che continui a migliorare; puoi contribuire inviandoci impressioni e suggerimenti, scrivendo la documentazione o il codice, condividendo dati da analizzare, etc.
Il codice sorgente di Tuipi si trova sul nostro repository Git.
Come 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é
- non ti piace lavorare;
- Twitter 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 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.
Ecco una procedura per attivare un robot; non è l'unica possibile e ha delle criticità (v. sotto). Vai da un rivenditore Lyca. Le stazioni ferroviarie sono un ottimo posto in cui cercare perché vi si concentrano attorno negozi col logo Lyca esposto fuori; inoltre in quelle più grandi e nei giorni feriali (specialmente da tarda primavera fino a tutta l'estate) ci puoi trovare gli operatori Lyca con la pettorina che smerciano proprio quello che interessa a te: le schede SIM a zero euro! I negozianti in una bottega affiliata a Lyca saranno molto più restii a darti le schede a zero euro, preferiranno piuttosto venderti quelle con già del credito dentro, facendoti pagare. Le schede con zero euro vengono shippate in un cartoncino blu con scritto grosso sopra "0 €" e sono aggratis.[1] Quando hai in mano le schede ancora non le puoi usare, devi aspettare che l'operatore te le attivi: normalmente ci vogliono meno di 24 ore.
Occhio: questo metodo non garantisce alcuna riservatezza perché per la legge italiana si devono dare un documento d'identità e il codice fiscale per avere una scheda SIM. Di buono c'è che Lyca ti può dare fino a 5 schede SIM con un documento. Dopo qualche tempo ne prendi altre 5 in un altro negozio e chiedi che ti disattivi prima le vecchie cinque; puoi anche riconsegnargliele a quel punto.
Occhei, ora hai una SIM che utilizzerai con un solo account robotico. Ti serve anche aprire una nuova casella email su Gmail, da utilizzare nella fase di registrazione dei nuovi account su Twitter (v. sotto). Di buono c'è che puoi utilizzarne una sola per tutti, con un trucchetto: se p.e. hai aperto una casella con indirizzo provolone@gmail.com puoi usarla per registrare il primo account, poi aggiungere dei punti per i successivi: p.rovolone@gmail.com per il secondo, pr.ovolone@gmail.com per il terzo... p.r.o.v.o.l.o.n.e@gmail.com per il duecentocinquantaseiesimo. Tutti gli indirizzi Gmail ottenuti aggiungendo dei punti confluiscono nella stessa casella.
Creare un nuovo account Twitter, registrare una app e connetterci Tuipi
Usa un browser in modalità "privato" o "incognito" o quel che è, senza altre schede aperte. Non loggarti a Facebook, Gmail o altro. Apri un nuovo account su Twitter. Fai le seguenti operazioni, ove possibile in un ordine casuale diverso da quello qui sotto:
- scegli uno screen_name (più corto possibile), un nome utente e una password robusta;
- non collegarlo a Gmail ne' a Facebook ne' altre schifezze, non dargli (ancora) numeri di telefono;
- seleziona un sottoinsieme degli account consigliati da seguire. Non seguirli tutti ma una manciata tra cui gli evergreen tipo il papa ci sta bene. Concludi la registrazione.
- fai un tweet;
- twitta taggando qualcuno;
- segui qualcuno;
- ritwitta uno status;
- scrivi una bio, scegli una locazione geografica (anche fittizia, tipo "Legoland" o "Eta Carinae"), scegli una data di compleanno;
- cambia le immagini del profilo e dell'intestazione: sceglile ganze.
Conferma cellulare con una SIM Lyca
Occhei, supponiamo di aver appena creato un utente chiamato Guglielmo Libri Carucci dalla Sommaja e screen_name @GCSbookz; dobbiamo dare il numero di telefono di Guglielmo a Twitter. Prendi una schedina Lyca e schiaffala nel cellulare, accendilo e aspetta qualche minuto. Se l'operatore ti ha attivato la scheda, ti arriveranno dei messaggini di benvenuto. Digita *132#
oppure 97#
e poi chiama, ti apparirà un messaggio col numero telefonico di quella scheda. Inseriscilo nella pagina dei telefoni di Twitter e aspetta l'SMS di conferma, che poi va fornito alla stessa pagina.
Registrare una app e ottenere le credenziali per la API
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 https://apps.twitter.com/
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. questo, questo, questo, questo, questo, questo, questo, questo, questo o 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)[2]. Queste quattro stringhe vanno fornite a Tuipi nei dizionari che si trovano in config/costanti.py
.
Finito: tu e il tuo nuovo robot siete pronti all'azione.
Suggerimenti
Se vorrai salvare (com'è probabile, per semplificarsi la vita) le informazioni circa
- le schede SIM: i numeri telefonici associati, i PUK, le utenze Twitter associate...
- la casella Gmail: username, password, utenze Twitter associate...
- gli account Twitter: screen_name, ID, password, credenziali della app per accedere alla API...
è comodo usare una applicazione come Keepass per criptare ed organizzare queste informazioni.
Mi hanno bloccato/sospeso/terminato un account!
Questa sezione è ancora da scrivere.
Come usare Tuipi
Non abbiamo ancora scritto un manuale, però il codice è ben documentato: usa la funzione help()
su un oggetto per capire cosa è, come funziona, come usarlo, etc.
Ecco un esempio di utilizzo di Tuipi
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:
Appunti sparsi
Tuipi consta di un tot di scriptini in Python che usano la libreria tweepy, che a sua volta si interfaccia con la 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:
- 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 la ricerca avanzata di Twitter.
Wishlist
Ci sono delle funzioni che desideri? Scrivilo quih!