Les prérequis :
Voici donc ce que j’ai fait pour avoir mes données sous Grafana.
Je vais sur Twitter Analytics : https://analytics.twitter.com/about et je télécharge les fichiers CSV (By Tweet, et non By Day). Normalement j’ai un fichier CSV par mois.
Je concatène tous les fichiers CSV dans un seul fichier en supprimant les entetes :
J’ai fait une version 2 qui permet de voir l’intéraction avec les utilisateurs : les sources sont disponibles ici : https://github.com/farias06/Grafana/blob/master/Twitter_CSV_insert_v2.py )
import csv
from datetime import datetime
import mysql.connector
import re
from mysql.connector import errorcode
from mysql.connector import (connection)
cnx = connection.MySQLConnection(user='twitter', password='twitter',
host='127.0.0.1',
database='TWITTERS')
cursor = cnx.cursor();
now = datetime.now().date();
#cursor.execute("DROP TABLE TWITTER;");
#cursor.execute("CREATE TABLE TWITTER (IDENTIFIANT varchar(30) UNIQUE,PERMALIEN varchar(200),TEXTE varchar(500),DATE datetime,IMPRESSION float,ENGAGEMENT float,TAUX_ENGAGEMENT float, RETWEET float,REPONSE float, JAIME float, CLIC_PROFIL float, CLIC_URL float, CLIC_HASTAG float, OUVERTURE_DETAIL float, CLIC_PERMALIEN float, OUVERTURE_APP int, INSTALL_APP int, ABONNEMENT int, EMAIL_TWEET int, COMPOSER_NUMERO int, VUE_MEDIA int, ENGAGEMENT_MEDIA int);");
#cursor.execute("CREATE TABLE TWITTER_USER (USER varchar(20),IDENTIFIANT varchar(30), DATE datetime, PRIMARY KEY (USER,IDENTIFIANT));");
cursor.execute("DELETE FROM TWITTER_USER")
cursor.execute("DELETE FROM TWITTER");
cnx.commit();
with open('input.csv', 'r') as csvfile:
reader = csv.reader(csvfile, quotechar='"')
for row in reader:
MyDate=row[3].replace(" +0000", ":00")
MyTexte=row[2].replace("'", " ")
MyTexte=MyTexte.replace(",", " ")
MyC4=row[4].replace("Infinity", "0")
MyC5=row[5].replace("Infinity", "0")
MyC6=row[6].replace("Infinity", "0")
MyC6=MyC6.replace("NaN", "0")
MyC7=row[7].replace("Infinity", "0")
User = re.findall(r'(?<=\W)[@]\S*', MyTexte)
for MyUser in User:
try :
cursor.execute("INSERT INTO TWITTER_USER (IDENTIFIANT,USER,DATE) VALUES ('"+row[0]+"','"+MyUser+"','"+MyDate+"');");
except mysql.connector.Error as err:
print("Something went wrong: {}".format(err))
if err.errno == errorcode.ER_BAD_TABLE_ERROR:
print("Creating table TWITTER_USER")
else:
None
try :
cursor.execute("INSERT INTO TWITTER (IDENTIFIANT,PERMALIEN,TEXTE,DATE,IMPRESSION,ENGAGEMENT,TAUX_ENGAGEMENT,RETWEET,REPONSE, JAIME, CLIC_PROFIL, CLIC_URL, CLIC_HASTAG, OUVERTURE_DETAIL, CLIC_PERMALIEN, OUVERTURE_APP, INSTALL_APP, ABONNEMENT, EMAIL_TWEET, COMPOSER_NUMERO, VUE_MEDIA, ENGAGEMENT_MEDIA) VALUES ('"+row[0]+"', '"+row[1]+"', '"+MyTexte+"','"+MyDate+"', "+MyC4+", "+MyC5+", "+MyC6+", "+MyC7+", "+row[8]+","+row[9]+", "+row[10]+", "+row[11]+","+row[12]+","+row[13]+","+row[14]+","+row[15]+","+row[16]+","+row[17]+","+row[18]+","+row[19]+","+row[20]+","+row[21]+");");
except mysql.connector.Error as err:
print("Something went wrong: {}".format(err))
if err.errno == errorcode.ER_BAD_TABLE_ERROR:
print("Creating table TWITTER")
else:
None
cnx.commit();
cursor.close();
cnx.close();
Il faut donc faire la requête suivante :
Résultat de l’affichage de la page : https://www.cyber-neurones.org/2018/11/test-dintegration-de-twitter-sur-wordpress-gilets-jaunes/ . 7 secondes pour afficher 57 Tweets, c’est pas top.
C’est dommage avec Twitter Analytic on ne peut remonter que 4 mois avant …
Et si je regarde avec Google Analytics le nombre de personne qui sont rediriger depuis Twitters sur les 4 derniers mois :
Le pic correspond a cet article : https://www.cyber-neurones.org/2017/05/wannacry-nouvelle-grosse-faille-de-securite-sous-windows/ : WannaCry / WannaCrypt ( ransomware ) : Nouvelle grosse faille de sécurité sous Windows !
Twitters ne doit même pas faire 1% des visites (pour être exact 0,68%):
Je viens d’essayer https://mamot.fr/ suite à la lecture de cet article : https://www.joffredolebrun.fr/mathonautes/comment-jai-repris-en-main-ma-vie-numerique/ .
Pour l’instant j’ai pas l’impression qu’il y ait beaucoup de monde … mon compte @CYBERNEURONES .
A lire :
Mastodon.social ressemble tant à Twitter que l’on pourrait se croire en train de naviguer sur le réseau social au petit oiseau bleu. Pourtant, des éléments de taille séparent ce nouveau réseau de son concurrent : il est totalement libre, open source et décentralisé.
Sur Twitter il y a trop de comptes anonymes qui insultent et lancent de fausses informations. Il faudrait donc que des comptes authentifiés, ou bien il faudrait ne pas pouvoir répondre à un compte authentifié si nous même on n’est pas authentifiés.
La seule fois où il a du dire quelque chose d’intelligent : Fausses citations, injures, insultes, racisme, fausses informations et tout cela assumé au nom de la liberté d expression derrière des pseudos. Et je suis bien d’accord avec lui.