Add files via upload
This commit is contained in:
parent
ccf38d18f5
commit
c819abbb20
2 changed files with 129 additions and 0 deletions
129
echo.py
Normal file
129
echo.py
Normal file
|
@ -0,0 +1,129 @@
|
|||
# coding=utf-8
|
||||
|
||||
import os
|
||||
from selenium import webdriver
|
||||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
from selenium.webdriver.common.keys import Keys
|
||||
import time
|
||||
import os
|
||||
from googletrans import Translator
|
||||
|
||||
def getfile_local(name1): # just a functions that finds the path to files in the same directory as this one.
|
||||
name = os.path.basename(__file__)
|
||||
path = os.path.abspath(__file__)
|
||||
print path
|
||||
for i in range(len(name)):
|
||||
path = path[:len(path)-1]
|
||||
print path
|
||||
for i in range(len(name1)):
|
||||
path = path + name1[i]
|
||||
print path
|
||||
return path
|
||||
|
||||
def backw(strng):
|
||||
return strng[::-1]
|
||||
|
||||
def translate(text):
|
||||
translator = Translator()
|
||||
return translator.translate(text).text
|
||||
|
||||
def sqr(strng):
|
||||
out = ""
|
||||
for i in range(len(strng)):
|
||||
out += strng[i:] + strng[:i] + "\n"
|
||||
return out
|
||||
|
||||
def noFucks(text):
|
||||
if text == text[:]:
|
||||
return "ok."
|
||||
|
||||
def playInterested(text):
|
||||
newText = text.replace(".","").replace(",","").replace("!","").replace("?","").replace(";","").replace(":","").replace("(","").replace(")","")
|
||||
while newText[-1] == " ":
|
||||
newText = newText[:-1]
|
||||
return "Jaja, " + newText.split(" ")[-1] + ", interessant."
|
||||
|
||||
def isThere(name):
|
||||
try:
|
||||
title = driver.find_element_by_class_name("pane-chat-header")
|
||||
if name in title.text:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
except:
|
||||
return False
|
||||
|
||||
def boot_driver():
|
||||
os.environ['MOZ_HEADLESS'] = '1'
|
||||
path_to_firefox = getfile_local("geckodriver.exe")
|
||||
path_to_profile = getfile_local("profile")
|
||||
profile = webdriver.FirefoxProfile(path_to_profile)
|
||||
driver = webdriver.Firefox(executable_path=path_to_firefox, firefox_profile = profile)
|
||||
return driver
|
||||
|
||||
def boot_whatsapp_interface():
|
||||
driver = boot_driver()
|
||||
driver.get("https://web.whatsapp.com/")
|
||||
WebDriverWait(driver, 60)
|
||||
return driver
|
||||
|
||||
def process_messages(driver, botVar, spareList, lastText):
|
||||
|
||||
try:
|
||||
unread = driver.find_element_by_class_name("unread")
|
||||
unread.click()
|
||||
|
||||
except:
|
||||
isSpared = False
|
||||
for name in spareList:
|
||||
if isThere(name):
|
||||
isSpared = True
|
||||
|
||||
if not isSpared:
|
||||
|
||||
try:
|
||||
in_messages = driver.find_elements_by_class_name("message-in")
|
||||
last_message = in_messages[-1].find_element_by_class_name("selectable-text")
|
||||
|
||||
if last_message.text == "":
|
||||
last_message = in_messages[-1].find_element_by_class_name("large-emoji-container")
|
||||
|
||||
text = last_message.text#.encode('utf-8')
|
||||
|
||||
if text != lastText: # this is the echo.
|
||||
input_box = driver.find_element_by_class_name("pluggable-input-body")
|
||||
input_box.click()
|
||||
input_box.send_keys((
|
||||
botVar(text)
|
||||
) + Keys.ENTER) # this actually types the echo.
|
||||
lastText = text
|
||||
return lastText
|
||||
|
||||
else:
|
||||
return lastText
|
||||
except:
|
||||
pass
|
||||
|
||||
return lastText
|
||||
|
||||
def manage_whatsapp(maxWaitTime, botVar, spareList):
|
||||
driver = boot_whatsapp_interface()
|
||||
waitTime = 1
|
||||
lastText = ""
|
||||
secondToLastText = ""
|
||||
|
||||
while True:
|
||||
print waitTime
|
||||
time.sleep(waitTime)
|
||||
lastText = process_messages(driver, botVar, spareList, lastText)
|
||||
|
||||
if not secondToLastText == lastText:
|
||||
waitTime = 1
|
||||
elif not waitTime > maxWaitTime:
|
||||
waitTime += waitTime
|
||||
|
||||
secondToLastText = lastText
|
||||
|
||||
if __name__ == '__main__':
|
||||
spareList = ["Geburtstagsfeier 30.10.", "MSS 13", "KMV Ober-Flörsheim"]
|
||||
manage_whatsapp(15, backw, spareList)
|
BIN
geckodriver.exe
Normal file
BIN
geckodriver.exe
Normal file
Binary file not shown.
Loading…
Reference in a new issue