Tuipi: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
1 847 byte aggiunti ,  15 mar 2017
m
→‎Codifica: pseudo-fix
m (menu (grazie Vitt!))
m (→‎Codifica: pseudo-fix)
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
'''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.
'''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 nostro repository [[GitLab|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 57: Riga 57:
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.


Ecco un esempio di utilizzo di Tuipi
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>
<pre>
gianna@epta ~/src/tuipi (git)-[master] % python -i simple.py  
gianna@epta ~/src/tuipi (git)-[master] % python -i simple.py  
Riga 93: Riga 93:
Scelta:  
Scelta:  
</pre>
</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 anche 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 107: Riga 117:


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

contributi

Menu di navigazione