J'ai écrit ce script pour m'envoyer un SMS lorsque le fichier results.txt est modifié. Il envoie le contenu du fichier dans un texte à mon téléphone (j'ai changé les numéros dans la question). Cela fonctionne, mis à part le fait que je reçois deux SMS identiques par modification et je ne peux pas, pour la vie de moi, comprendre pourquoi.Script Python Twilio/Watchguard envoyant 2 messages au lieu de 1 attendu
import time
import sys, os
from twilio.rest import Client
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
class MyHandler(PatternMatchingEventHandler):
patterns = ["./results.txt"]
def process(self, event):
with open('results.txt', 'r') as myfile:
newtweet=myfile.read().replace('\n', '')
client = Client("ACac14lkjdchlkdhfdhb448d175335fbd8", "hduhdhdhddhidh39837382783232")
client.messages.create(from_="+44145698039",
to="+44778974188",
body=newtweet)
def on_modified(self, event):
self.process(event)
if __name__ == '__main__':
args = sys.argv[1:]
observer = Observer()
observer.schedule(MyHandler(), path=args[0] if args else '.')
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
EDIT **
est le fichier ici qui est écrit à results.txt:
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
text = status.text
name = status.user.screen_name
uid = status.user.id
print (text)
print (uid, text, name, file=open("results.txt", "w"))
def on_error(self, status_code):
if status_code == 420:
return False
myStreamListener = MyStreamListener()
users = ['22776208', '2845678578']
stream = tweepy.Stream(auth = api.auth, listener=myStreamListener, include_entities=True)
stream.filter(follow=users, languages=["en"])
keywords = ["Trump"]
stream.filter(track=keywords, languages=["en"])
Qu'est-ce qui modifie 'results.txt'? Il est possible qu'il modifie deux fois le fichier ou qu'il génère au moins deux événements modifiés. J'essaierais probablement de consigner les événements que vous recevez pour voir ce qui se passe. – philnash
Bonjour, J'ai maintenant ajouté le fichier qui écrit à results.txt – neilH