Tuipi

Da EigenWiki.
Versione del 15 mar 2017 alle 02:00 di Rakk (discussione | contributi) (→‎Codifica: pseudo-fix)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Tuipi è un simpatico programmello tecnopolitico sbarazzino, che sviluppiamo connettere le lotte di piazza con la Rete. Scritto prevalentemente in linguaggio Python, Tuipi utilizza le API di Twitter interfacciandosi con la libreria tweepy.

Il codice sorgente di Tuipi si trova sul nostro repository Git; devi registrarti e poi chiedere di essere inseritx nel gruppo di sviluppo. Questa precauzione (che sembra contrastare con i princìpi di 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.

Creare un bot

Un robot[1] è 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, e ti alletta l'idea di una macchina che ti permette di ottenere grandi risultati con poco sforzo;
  • 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 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.

 
Il profilo @rakk_g è gestito da 14 persone, più o meno umane.

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.[2] 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)[3]. 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.

Se non si vogliono manipolare gli script a mano, Tuipi offre un'interfaccia interattiva semplificata con lo script simple.py; per lanciarla apri un terminale, spostati (con il comando cd) nella directory dove risiede il programma e lancia lo script in modo interattivo col comando python -i simple.py:

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: 

Problemi

Per usare Tuipi hai bisogno di Python, versione 3 o superiore.

Codifica

Se ottieni un errore simile a tweepy.error.TweepError: Failed to send request: 'str' object has no attribute 'decode', 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

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.

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 anche con altri strumenti come Gephi o la ricerca avanzata di Twitter.
  • Un elenco di librerie supportate da Twitter
  • Curl esteso con OAuth: qui
  • media upload e upload multipli
  • reference per l'acquisizione geolocalizzata dei trending topics

Wishlist

Ci sono delle funzioni che desideri? Scrivilo quih!

Note

  1. Dallo slavo rabota, "servitù".
  2. Da qualche tempo è diventato praticamente impossibile reperire le schede a zero euro; si trovano solo quelle da cinque.
  3. Forse devi generarli col bottone se non li hai già.