Example #1
0
def runReminder():
    from webwhatsapi import WhatsAPIDriver

    print("Environment", os.environ)
    try:
        os.environ["SELENIUM"]
    except KeyError:
        print("Please set the environment variable SELENIUM to Selenium URL")
        sys.exit(1)

    from PIL import Image

    from resizeimage import resizeimage

    ##Save session on "/firefox_cache/localStorage.json".
    ##Create the directory "/firefox_cache", it's on .gitignore
    ##The "app" directory is internal to docker, it corresponds to the root of the project.
    ##The profile parameter requires a directory not a file.

    from pyzbar.pyzbar import decode
    dir_path = os.path.dirname(os.path.realpath(__file__))

    print(")(AFYN)(ANY*FU(A*UKFA(E*FU*****************************)))")
    print(")(AFYN)(ANY*FU(A*UKFA(E*FU*****************************)))")
    print(")(AFYN)(ANY*FU(A*UKFA(E*FU*****************************)))")
    print(")(AFYN)(ANY*FU(A*UKFA(E*FU*****************************))),",
          dir_path)
    returned_value = os.system('export PATH="' + dir_path +
                               ':$PATH"')  # returns the exit code in unix

    profiledir = os.path.join(".", "firefox_cache")
    if not os.path.exists(profiledir):
        os.makedirs(profiledir)

    driver = WhatsAPIDriver(profile=profiledir,
                            client="remote",
                            command_executor=os.environ["SELENIUM"])

    profiledir = os.path.join(".", "firefox_cache")
    if not os.path.exists(profiledir):
        os.makedirs(profiledir)

    driver = WhatsAPIDriver(profile=profiledir,
                            client="remote",
                            command_executor=os.environ["SELENIUM"])

    import timg

    obj = timg.Renderer()

    print("Waiting for QR")
    driver.wait_for_login()
    print("Saving session")

    # from qrtools import qrtools
    # from PIL import Image
    # import zbarlight
    # qr = qrtools.QR()

    #
    # from PIL import Image

    # import os
    # import numpy as np
    # import pyboof as pb

    # # pb.init_memmap() #Optional
    #
    # class QR_Extractor:
    #     # Src: github.com/lessthanoptimal/PyBoof/blob/master/examples/qrcode_detect.py
    #     def __init__(self):
    #         self.detector = pb.FactoryFiducial(np.uint8).qrcode()
    #
    #     def extract(self, img_path):
    #         if not os.path.isfile(img_path):
    #             print('File not found:', img_path)
    #             return None
    #         image = pb.load_single_band(img_path, np.uint8)
    #         self.detector.detect(image)
    #         qr_codes = []
    #         for qr in self.detector.detections:
    #             qr_codes.append({
    #                 'text': qr.message,
    #                 'points': qr.bounds.convert_tuple()
    #             })
    #         return qr_codes

    # qr_scanner = QR_Extractor()

    print("AAA")
    c = 0
    s = 60
    status = "NotLoggedIn"
    while status is not "LoggedIn":
        c += 1
        print("status", status)

        # print("Checking qr, status", driver.get_status())

        print("AAAAAAAAAAAAA")
        # img = driver.get_qr("static/img/newQR.png")
        im_path = os.path.join("newQR.png")
        pathlib.Path().absolute()
        os.system("cp newQR.png sample/static/img/newQR.png")

        img = driver.get_qr("newQR.png")
        # from PIL import Image
        print("BBBBBBBBBBBBBBB")
        decoded = decode(Image.open(im_path))
        # print(decoded, "#######################")
        # print(decoded, "#######################")
        # print(decoded, "#######################")
        # print(decoded, "#######################")
        # print(decoded, "#######################")
        # print(decoded, "#######################")
        # print(decoded, "#######################")

        for barcode in decoded:
            print("@@@@@@@@@@@@@@@@@@@")
            # the barcode data is a bytes object so if we want to draw it
            # on our output image we need to convert it to a string first
            barcodeData = barcode.data.decode("utf-8")
            barcodeType = barcode.type
            # draw the barcode data and barcode type on the image
            text = "{} ({})".format(barcodeData, barcodeType)
            print(text)
            print("@@@@@@@@@@@@@@@@@@@")
            printQR(barcodeData)
            print("@@@@@@@@@@@@@@@@@@@X")

        status = driver.get_status()
        # output = qr_scanner.extract(img)
        # print(output,"!!!!!!!!!!!!!!!!WDIOUSICNOIUCJ)(Z*UCINJ)(ZP*DFJYUF)((P*SUD)(UASIDMUJ))")
        # print(qr.decode(img))
        # print(qr.data)

        # print("BBBB2")
        # with open(img, 'r+b') as f:
        #     with Image.open(f) as image:
        #         cover = resizeimage.resize_cover(image, [57, 57])
        #         cover.save(img, image.format)
        # #
        # qr.decode(img)
        # print (qr.data)
        # print(retval,"!!!!!!!!!!!!!!!!!!!")
        #
        # print("CCC",img)
        # obj.load_image_from_file(img)

        # obj.resize(s,s)
        # s-=1
        # print(obj)
        # obj.render(timg.Ansi24HblockMethod)
        # print("DDD",s,s,s,s)
        # time.sleep(10)
        # driver.save_firefox_profile(remove_old=False)
        # time.sleep(3)
        # try:
        #     driver.reload_qr()
        # except:
        #     print("refresh finised")
    print("Bot started")

    while True:
        time.sleep(.71)
        print("Checking for more messages, status", driver.get_status())
        for contact in driver.get_unread():
            for message in contact.messages:
                print(json.dumps(message.get_js_obj(), indent=4))
                sender = message.get_js_obj(
                )["chat"]["contact"]["formattedName"]

                for contact in driver.get_contacts():
                    # print("CCCC",contact.get_safe_name() )
                    if sender in contact.get_safe_name():
                        chat = contact.get_chat()
                        chat.send_message("Hi " + sender + " !!!*" + message +
                                          "*")

                print()
                print()
                print(sender)
                print()
                print()
                print("class", message.__class__.__name__)
                print("message", message)
                print("id", message.id)
                print("type", message.type)
                print("timestamp", message.timestamp)
                print("chat_id", message.chat_id)
                print("sender", message.sender)
                print("sender.id", message.sender.id)
                print("sender.safe_name", message.sender.get_safe_name())
                if message.type == "chat":
                    print("-- Chat")
                    print("safe_content", message.safe_content)
                    print("content", message.content)
                    # contact.chat.send_message(message.safe_content)
                elif message.type == "image" or message.type == "video":
                    print("-- Image or Video")
                    print("filename", message.filename)
                    print("size", message.size)
                    print("mime", message.mime)
                    print("caption", message.caption)
                    print("client_url", message.client_url)
                    message.save_media("./")
                else:
                    print("-- Other")
Example #2
0
from webwhatsapi import WhatsAPIDriver

driver = WhatsAPIDriver(username="******")
print('get_unread: ',
      driver.get_unread(include_me=True, include_notifications=True))
print('get_contacts: ', driver.get_contacts())
# print('save_firefox_profile: ', driver.save_firefox_profile())
getChatFrom = driver.get_chat_from_phone_number(628999871008)
print('get_chat_from_phone_number: ', getChatFrom)
# print('get_all_messages_in_chat: ', driver.get_all_messages_in_chat(getChatFrom.id, include_me=True, include_notifications=True))
print(driver.get_qr())
print('get_all_chats: ', driver.get_all_chats())
print(driver.wait_for_login())
# print('get_safe_name', driver.get_safe_name())
print('get_unread: ', driver.get_unread())
# print('view_unread: ', driver.view_unread())
Example #3
0
        'database': 'tbc_wpp',
        'user': '******',
        'password': '******',
    }
}

db = DatabaseManager(config)
Model.set_connection_resolver(db)



class Driver(Model):
	 __table__ = 'drivers'
	 pass
print("Buscando motoristas...")
contacts = wppDriver.get_contacts()
print(str(len(contacts)) + " Contatos")
drivers = Driver.where_raw('options_stage = 0').get()

phones_that_received = map(lambda x: x.phone, drivers)

new_contacts = [a for a in contacts if a.id not in phones_that_received]

print(str(len(new_contacts)) + "Novos contatos esperando mensagens")
print(datetime.datetime.now())


iteraction = 0
for driver in new_contacts:    
    print("iteração: "+ str(iteraction))
    iteraction += 1
Example #4
0
# for contact in driver.get_contacts():
#     print("CCCC",contact.get_safe_name() )
#     if  "@@@@@@@@@@@@@@@@@@@@@@@@@" in contact.get_safe_name():
#         chat = contact.get_chat()
#         chat.send_message("Hi Jack")

lastm = None
while True:
	time.sleep(.71)
	print("Checking for more messages, status", driver.get_status())
	for contact in driver.get_unread():
		for message in contact.messages:
			lastm = message
			print(json.dumps(message.get_js_obj(), indent=4))
			sender = message.get_js_obj()["chat"]["contact"]["formattedName"]
			for contact in driver.get_contacts():
				# print("CCCC",contact.get_safe_name() )
				if  sender in contact.get_safe_name():
					chat = contact.get_chat()
					chat.send_message("Hi "+sender+" !!!*"+message.content+"*")
			print()
			print()
			print(sender)
			print()
			print()
			print("class", message.__class__.__name__)
			print("message", message)
			print("id", message.id)
			print("type", message.type)
			print("timestamp", message.timestamp)
			print("chat_id", message.chat_id)