-
Notifications
You must be signed in to change notification settings - Fork 0
/
trollbot.py
103 lines (77 loc) · 2.95 KB
/
trollbot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import InvalidElementStateException, StaleElementReferenceException
from chatterbotapi import ChatterBotFactory, ChatterBotType
import time
factory = ChatterBotFactory()
#bot = factory.create(ChatterBotType.CLEVERBOT)
bot = factory.create(ChatterBotType.PANDORABOTS, 'b0dafd24ee35a477')
botsession = bot.create_session()
def checkForStart( browser ):
try:
message = ""
while(message != "You're now chatting with a random stranger. Say hi!"):
message = browser.find_element_by_css_selector('.statuslog')
message = message.get_attribute('innerHTML')
return
except StaleElementReferenceException:
checkForStart( browser )
browser = webdriver.Firefox();
browser.get('https://www.omegle.com');
spymodebtn = browser.find_element_by_id('spymodebtn')
spymodebtn.send_keys(Keys.ENTER)
time.sleep(2)
startbutton = browser.find_element_by_css_selector("#tryspymodetext button")
buttonval = startbutton.get_attribute('innerHTML')
if(buttonval != 'Check it out!'):
startbutton = browser.find_element_by_css_selector("#tryspymodetext a")
startbutton.send_keys(Keys.ENTER)
time.sleep(2)
while(True):
checkForStart( browser )
last_message = ""
still_convo = True
botsession = bot.create_session()
question = browser.find_element_by_css_selector('.questionText').get_attribute('innerHTML')
mymessage = botsession.think(question)
print " - - -- - - - - -- - - - - - - - - - -- - - -- "
print "Question: " + question; print
try:
chatbox = browser.find_element_by_css_selector('.chatmsg ')
chatbox.send_keys(mymessage.lower())
time.sleep(len(mymessage.split()) * .5) # 70 WPM LOL
chatbox.send_keys(Keys.RETURN)
print "Trollbot> " + mymessage
except InvalidElementStateException:
True
while(still_convo):
messages = browser.find_elements_by_css_selector('.strangermsg span')
if(len(messages) > 0):
message = messages[len(messages)-1].get_attribute('innerHTML')
if(message != last_message):
time.sleep(len(message.split()) * .5)
last_message = message
mymessage = botsession.think(message)
print "Stanger > " + last_message
print "Trollbot> " + mymessage
try:
if(mymessage.endswith('.')):
mymessage = mymessage[:len(mymessage)-1]
chatbox = browser.find_element_by_css_selector('.chatmsg ')
chatbox.send_keys(mymessage.lower())
time.sleep(len(mymessage.split()) * .7) # 70 WPM LOL
chatbox.send_keys(Keys.RETURN)
except InvalidElementStateException:
True
log = browser.find_elements_by_css_selector('.statuslog')
for l in log:
try:
log_m = l.get_attribute('innerHTML')
if ( log_m == 'Stranger has disconnected.'):
print "Stranger has disconnected."
discobutton = browser.find_element_by_css_selector('.disconnectbtn')
discobutton.send_keys(Keys.ENTER)
still_convo = False
break;
except StaleElementReferenceException:
True