Magazine Internet

Python et taper des lignes de commandes depuis son Twitter

Publié le 01 octobre 2009 par Mikebrant

Vous n’avez plus d’accès ssh à votre serveur ? vous devez faire une chose importante dessus ?
Et bien ce petit programme est là pour ça :
vous allez pouvoir, depuis votre twitter, éxécuter des lignes de commandes sur un ordinateur distant !

Bon, ok…ça sert à rien, mais j’ai trouvé marrant d’y faire, donc voilà un petit tuto, tout petit, vu que le script est court.

D’abord il nous faut le module python-twitter.

Et ensuite, voilà le joli code :

#-*- coding:utf-8 -*-
import twitter
import time
from subprocess import Popen#,PIPE,STDOUT

#voilà un twitt type : shell:maCommande -i saucisson -o chocolat

NOM = «  »#l’utilisateur qui va taper des lignes de commandes
FLAG = « shell:« #le flag qui indique que l’utilisateur veut tapper une ligne de commande doit être placé au tout début du twitt
SLEEP = 60#le sleep en secondes
SORTIE_FICHIER =  « temp.txt »#le fichier contenant la sortie

NOM_ENVOYEUR
= «  »#mettre des chaines vides si vous ne voulez pas envoyez le résultat de la sortie
PASS_ENVOYEUR = «  »#à l’utilisateur NOM

api = twitter.Api(username=NOM_ENVOYEUR,password=PASS_ENVOYEUR)

idDernierTwittCommande = 0#l’id du dernier twittCommande

while True:
   utilisateur = api.GetUser(NOM)#retourne l’utilisateur (instance de la classe twitter.User)
   dernierTwitt = utilisateur.GetStatus()#retourne son dernier twitt (instance de la classe twitter.Status)

   if(dernierTwitt.text.startswith(FLAG) and idDernierTwittCommande!=dernierTwitt.id):
   idDernierTwittCommande = dernierTwitt.id#on change l’id du dernier twittCommande

   commande = dernierTwitt.text.split(FLAG)[1]#on prend la commande
   print(commande)
   commande = commande.split(‘ ‘)# paramètres séparés par 1 espace

   fichier = open(SORTIE_FICHIER,’w+’)
   ps = Popen(commande,stdout=fichier, stderr=fichier)#on éxécute la commande
   ps.communicate()
   fichier.close()
   print(« commande éxécutée »)

   if NOM_ENVOYEUR :#si on a un envoyeur:
   #on envoie via MP la sortie de la commande  à l’utilisateur l’ayant tapé.
   import codecs
   fichier = codecs.open(SORTIE_FICHIER,’r',encoding= »utf-8″)
   api.PostDirectMessage(NOM,fichier.read())
   fichier.close()
   print(« sortie envoyée »)

   time.sleep(SLEEP)

Je pense que les commentaires devraient suffire à vous expliquer le fonctionnement de ce petit script.
Remplacez NOM par le nom de la personne tapant les lignes de commande.

Si vous voulez envoyer le retour de la ligne en MP, remplissez les champs NOM_ENVOYEUR et PASS_ENVOYEUR , sinon mettez des chaines vides.

D’ailleurs voici mon twitter.


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • Faire cohabiter plusieurs versions de Python

    Par défaut sur ma distribution de Linux Ubuntu 8.10 je possède deux versions de Python, 2.4 et 2.5. Prévoyant de développer du code Python seulement pour... Lire la suite

    Par  Ekevin
    HIGH TECH, INFORMATIQUE, INTERNET
  • Stats Twitter

    Stats Twitter

    Twitter est une saloperie 2.0 chronophage. Un outil a été dévellopé pour vous montrer avec qui vous twittez, quand et à quel rythme. Je rappelle que vous... Lire la suite

    Par  Dagrouik
    INTERNET, WEB2.0
  • Statistiques Twitter

    C'est le sympathique Dagrouik qui nous fait découvrir un nouveau machin absolument indispensable : TweetStats. Ca nous permet de savoir avec qui on fait le... Lire la suite

    Par  Nicolas J
    INTERNET, WEB2.0
  • Twitter @ Cannes

    Le Festival a commencé depuis quelques jours et on note que la présence de Twitterers grandit. Outre le fait que Twitter est en passe de devenir le meilleur... Lire la suite

    Par  Stephane Zibi
    INTERNET, WEB2.0
  • Les utilisateurs de Twitter n'utilisent pas Twitter

    utilisateurs Twitter n'utilisent

    Etes-vous l'une de ces personnes qui avez un compte Twitter mais qui ne vous en servez pas ? Si oui, alors vous n'êtes pas seul ! Lire la suite

    Par  Christophe Da Silva
    EMARKETING, FOCUS EMPLOI, INTERNET, MARKETING & PUBLICITÉ
  • Twitter: Iranelection

    Twitter: Iranelection

    Si vous n'avez pas encore été regarder la 'mer de vert' virtuelle, vous êtes en train de rater quelque chose. Quelque chose d'important? Sans doute. Deux... Lire la suite

    Par  Samiahurst
    INTERNET, SOCIÉTÉ, WEB2.0
  • Espresso Allongé – Call TV à TQS Piton ou Python ?

    Espresso Allongé Call Piton Python

    C’est déjà vendredi ! Et comme à chaque vendredi, voici le Espresso Allongé, la pause détente qui saura vous divertir, vous fera peut-être découvrir certaines... Lire la suite

    Par  Yannick Manuri
    EMARKETING, FOCUS EMPLOI, INTERNET, MARKETING & PUBLICITÉ

A propos de l’auteur


Mikebrant 9 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog