-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathmain.py
70 lines (59 loc) · 2.72 KB
/
main.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
from contactList import writeContactList
from sendMessage import sendSingleMessage, sendMultipleMessages
from chatLog import doWebScrapOfContact
from utils import connectToBrowser
from argparse import ArgumentParser
import time, os.path
import sys
def executeFirstTime():
os.system('PATH='+os.getcwd()+';%PATH%')
def parse_args():
parser = ArgumentParser(description = 'Utiliza um bot que automatiza ações do Whatsapp')
parser.add_argument('bot_operation', help = 'Ação a ser realizada pelo bot (\'sendmsg\' para enviar mensagem, \'scrap\' para extração de informações)')
parser.add_argument('-c', dest="contactsFile", required = True, help = 'Arquivo contendo lista de contatos')
parser.add_argument('-m', dest = 'messagesFile', required = False, help = 'Arquivo contendo lista de mensagens (para sendmsg)')
parser.add_argument('-d', dest="thresholdDay", help = 'Checar mensagens até essa data (para scrap).')
arguments = parser.parse_args()
if arguments.bot_operation == 'sendmsg' or arguments.bot_operation == 'scrap':
if arguments.bot_operation == 'sendmsg':
if arguments.messagesFile is None:
print("ERRO: faltou informar parâmetro -m (arquivo de mensagem txt).")
print("Pressione qualquer coisa para encerrar...")
input()
exit()
elif arguments.bot_operation == 'scrap':
if arguments.thresholdDay is None:
print("ERRO: faltou informar parâmetro -d (data limite de busca).")
print("Pressione qualquer coisa para encerrar...")
input()
exit()
return arguments
else:
print("ERRO:", arguments.bot_operation, 'não é operação válida.\nOpções válidas: sendmsg ou scrap.')
print("Pressione qualquer coisa para encerrar...")
input()
exit()
def main():
executeFirstTime()
args = parse_args()
browser = connectToBrowser("https://web.whatsapp.com/")
print("Aperte ENTER após estar conectado via QR CODE e com a página do Whatsapp carregada.")
input()
if args.bot_operation == 'sendmsg':
f = open(args.contactsFile, "r", encoding='utf-8')
contacts = f.read().split(",")
f.close()
messages = []
with open(args.messagesFile, "r", encoding='utf-8') as file:
for line in file:
messages.append(line)
sendMultipleMessages(browser, contacts, messages)
else:
f = open(args.contactsFile, "r", encoding='utf-8')
contacts = f.read().split(",")
f.close()
for c in contacts:
doWebScrapOfContact(browser, c, args.thresholdDay)
browser.close()
if __name__ == "__main__":
main()