Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import for twitter
- import tweepy
- #import for sms services
- from twilio.rest import Client
- #import for U.I
- from tkinter import Entry, Label, Button
- import tkinter
- #imports for IBM watson
- import json
- from ibm_watson import NaturalLanguageUnderstandingV1
- from ibm_watson.natural_language_understanding_v1 import Features, EntitiesOptions, KeywordsOptions
- from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
- #twitter junk
- consumer_key = "ATeqhfNJuUpmhMXMzpWJpKKO8"
- consumer_secret = "c5a1f9ZCwYBVadyT4f4U43rbmwP7P5qHNSmHsMlp8IG5SVydzS"
- access_token = "1185355043329007618-NhvHcq1eq7cacdlKicyB6pIkjt3tnz"
- access_token_secret = "2I0GRurGSSIFrkf3C6jxaixNHJy8WbIpQlEBj4CL2IcxG"
- auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
- auth.set_access_token(access_token, access_token_secret)
- api = tweepy.API(auth)
- #twilio connection
- client = Client("ACd0cb738534cb36fb721055a82fc0ef05", "f1d4d81f81745da4eeffc771defd1bb0")
- #ibm watson authentification
- authenticator = IAMAuthenticator('lE0Mf4IHxc3hfyG8ZyDTLQ9Tepz8PmiJGPO301FpaSgM')
- service = NaturalLanguageUnderstandingV1(
- version='2018-03-16',
- authenticator=authenticator)
- #connects to the language api
- service.set_service_url('https://gateway.watsonplatform.net/natural-language-understanding/api')
- def proces():
- file = open("PhoneNumbers.txt", "a+")
- number1=Entry.get(E1)
- file.write(str(number1)+ '\n')
- file.close()
- top = tkinter.Tk()
- top.title("Twitter Notification System")
- L1 = Label(top, text="Recieve Text Messages now!",font=("Arial Bold",10)).grid(row=0,column=1)
- L2 = Label(top, text="Phone Number",font=("Arial Bold",8)).grid(row=2,column=0)
- L2 = Label(top, text="",).grid(row=3,column=0)
- L2 = Label(top, text="",).grid(row=3,column=0)
- L2 = Label(top, text="",).grid(row=4,column=0)
- L2 = Label(top, text="",).grid(row=5,column=0)
- L2 = Label(top, text="",).grid(row=6,column=0)
- top.geometry('350x150')
- E1 = Entry(top, bd =5)
- E1.grid(row=2,column=1)
- B=Button(top, text ="Submit",command = proces).grid(row=4,column=1,)
- C=Button(top, text ="close",command = top.destroy).grid(row=5,column=1)
- top.mainloop()
- class MyStreamListener(tweepy.StreamListener):
- def on_status(self, tweet):
- #checks if tweet is not a retweet
- if (not tweet.retweeted) and ('RT @' not in tweet.text):
- file=open("tweet_data.txt", "a+")
- #data saved for watson to read
- pl = (tweet.text + "\n")
- file.write(pl)
- file.close()
- #text message
- data = ("Alert!" + "\n" + tweet.user.screen_name + " has just sent a notification regarding a wildfire in the Location " + tweet.user.location + "\nContent: " + tweet.text)
- #opens tweet text file
- file=open("tweet_data.txt", "r")
- if file.mode == 'r':
- reader =file.readlines()
- #put data into watson
- for x in reader:
- response = service.analyze(
- text=x,
- features=Features(entities=EntitiesOptions(),
- keywords=KeywordsOptions())).get_result()
- print("---")
- #print(response)
- # print(type(response))
- dataAsJSON = json.dumps(response)
- print(dataAsJSON)
- # print(json.dumps(response, indent=2))
- print("code works here")
- #if response["entities]
- # loop through response["entities]
- # if(entity["relevance"] > .95) do code below then break out of loop
- if entities["relevance"] > .95:
- print("hello")
- file_phones=open("PhoneNumbers.txt", "r")
- #checks if file is in read mode
- if file_phones.mode == 'r':
- #reads each line from file
- fl =file_phones.readlines()
- for x in fl:
- #texts user
- client.messages.create(to="+1" + x,
- from_="+12083143964",
- body=data)
- file_phones.close()
- #close file
- file.close()
- #handles twitter feed listener
- myStreamListener = MyStreamListener()
- myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
- myStream.filter(track=['#testcsi'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement