Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. #import for twitter
  2. import tweepy
  3. #import for sms services
  4. from twilio.rest import Client
  5. #import for U.I
  6. from tkinter import Entry, Label, Button
  7. import tkinter
  8. #imports for IBM watson
  9. import json
  10. from ibm_watson import NaturalLanguageUnderstandingV1
  11. from ibm_watson.natural_language_understanding_v1 import Features, EntitiesOptions, KeywordsOptions
  12. from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
  13.  
  14. #twitter junk
  15. consumer_key = "ATeqhfNJuUpmhMXMzpWJpKKO8"
  16. consumer_secret = "c5a1f9ZCwYBVadyT4f4U43rbmwP7P5qHNSmHsMlp8IG5SVydzS"
  17. access_token = "1185355043329007618-NhvHcq1eq7cacdlKicyB6pIkjt3tnz"
  18. access_token_secret = "2I0GRurGSSIFrkf3C6jxaixNHJy8WbIpQlEBj4CL2IcxG"
  19. auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
  20. auth.set_access_token(access_token, access_token_secret)
  21. api = tweepy.API(auth)
  22. #twilio connection
  23. client = Client("ACd0cb738534cb36fb721055a82fc0ef05", "f1d4d81f81745da4eeffc771defd1bb0")
  24.  
  25. #ibm watson authentification
  26. authenticator = IAMAuthenticator('lE0Mf4IHxc3hfyG8ZyDTLQ9Tepz8PmiJGPO301FpaSgM')
  27. service = NaturalLanguageUnderstandingV1(
  28. version='2018-03-16',
  29. authenticator=authenticator)
  30. #connects to the language api
  31. service.set_service_url('https://gateway.watsonplatform.net/natural-language-understanding/api')
  32.  
  33.  
  34. def proces():
  35. file = open("PhoneNumbers.txt", "a+")
  36. number1=Entry.get(E1)
  37.  
  38. file.write(str(number1)+ '\n')
  39. file.close()
  40.  
  41. top = tkinter.Tk()
  42. top.title("Twitter Notification System")
  43. L1 = Label(top, text="Recieve Text Messages now!",font=("Arial Bold",10)).grid(row=0,column=1)
  44. L2 = Label(top, text="Phone Number",font=("Arial Bold",8)).grid(row=2,column=0)
  45. L2 = Label(top, text="",).grid(row=3,column=0)
  46. L2 = Label(top, text="",).grid(row=3,column=0)
  47. L2 = Label(top, text="",).grid(row=4,column=0)
  48. L2 = Label(top, text="",).grid(row=5,column=0)
  49. L2 = Label(top, text="",).grid(row=6,column=0)
  50. top.geometry('350x150')
  51. E1 = Entry(top, bd =5)
  52. E1.grid(row=2,column=1)
  53. B=Button(top, text ="Submit",command = proces).grid(row=4,column=1,)
  54. C=Button(top, text ="close",command = top.destroy).grid(row=5,column=1)
  55.  
  56. top.mainloop()
  57.  
  58. class MyStreamListener(tweepy.StreamListener):
  59.  
  60. def on_status(self, tweet):
  61. #checks if tweet is not a retweet
  62. if (not tweet.retweeted) and ('RT @' not in tweet.text):
  63. file=open("tweet_data.txt", "a+")
  64. #data saved for watson to read
  65. pl = (tweet.text + "\n")
  66. file.write(pl)
  67. file.close()
  68. #text message
  69. data = ("Alert!" + "\n" + tweet.user.screen_name + " has just sent a notification regarding a wildfire in the Location " + tweet.user.location + "\nContent: " + tweet.text)
  70.  
  71.  
  72. #opens tweet text file
  73. file=open("tweet_data.txt", "r")
  74. if file.mode == 'r':
  75. reader =file.readlines()
  76. #put data into watson
  77. for x in reader:
  78. response = service.analyze(
  79. text=x,
  80. features=Features(entities=EntitiesOptions(),
  81. keywords=KeywordsOptions())).get_result()
  82. print("---")
  83. #print(response)
  84. # print(type(response))
  85. dataAsJSON = json.dumps(response)
  86. print(dataAsJSON)
  87. # print(json.dumps(response, indent=2))
  88.  
  89. print("code works here")
  90. #if response["entities]
  91. # loop through response["entities]
  92. # if(entity["relevance"] > .95) do code below then break out of loop
  93. if entities["relevance"] > .95:
  94. print("hello")
  95. file_phones=open("PhoneNumbers.txt", "r")
  96. #checks if file is in read mode
  97. if file_phones.mode == 'r':
  98. #reads each line from file
  99. fl =file_phones.readlines()
  100. for x in fl:
  101. #texts user
  102. client.messages.create(to="+1" + x,
  103. from_="+12083143964",
  104. body=data)
  105. file_phones.close()
  106. #close file
  107. file.close()
  108.  
  109.  
  110. #handles twitter feed listener
  111. myStreamListener = MyStreamListener()
  112. myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
  113. myStream.filter(track=['#testcsi'])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement