import random import time from db.mongo_manager import MONGO_STORE_MANAGER from excel_reader import read_contacts from models.contact_pojo import ContactPojo from queue_message.receiver import Receiver from workers.sender import Sender IPFIY = 'http://api.ipify.org' HERMES_REGISTER = "https://rendezvousparis.hermes.com/client/register" NGROK_TEST = "https://bcc6-193-164-156-53.ngrok-free.app" def is_already_sent(contact: ContactPojo) -> bool: already_sent_contacts = MONGO_STORE_MANAGER.get_all_successful_items_for_day() for required_contact in already_sent_contacts: if contact.mail == required_contact.email: return True return False def filter_contacts(_contact_list: list) -> list: already_sent_contacts = MONGO_STORE_MANAGER.get_all_successful_items_for_day() _contact_list_to_book = [] for contact in _contact_list: _to_add = True for booked in already_sent_contacts: if contact.mail == booked.email: _to_add = False if _to_add: _contact_list_to_book.append(contact) return _contact_list_to_book def on_message(ch, method, properties, body): print(f" [x] Received {body}") sender = Sender(body.decode("UTF-8")) contact_list = read_contacts('/Users/panlei/Desktop/yahoo_aol_valid_26-2.xlsx') # remove already booked contacts sub_contact_list = filter_contacts(contact_list) random.shuffle(sub_contact_list) if len(sub_contact_list) > 0: for con in sub_contact_list: # if not is_already_sent(con): print(con.mail) time.sleep(random.randint(1, 5)) can_continue = sender.send_request(HERMES_REGISTER, con) if not can_continue: print("cannot continue") break # else: # print(con.mail + "--> skip") ch.basic_ack(delivery_tag=method.delivery_tag) else: print("empty list") if __name__ == '__main__': receiver = Receiver() receiver.set_up_connection() receiver.listen_to_queue(on_message) # if __name__ == '__main__': # sender = Sender() # contact_list = read_contacts('/Users/panlei/Desktop/yahoo_aol_valid_26-1.xlsx') # sub_contact_list = contact_list[200:300] # for con in sub_contact_list: # if not is_already_sent(con): # time.sleep(random.randint(2, 10)) # can_continue = sender.send_request(HERMES_REGISTER, con) # if not can_continue: # print("cannot continue") # break # else: # print(con.mail + "--> skip") # print(con.mail) # sender.send_request(HERMES_REGISTER, contact_list[-5])