diff --git a/src/mail/mail_constants.py b/src/mail/mail_constants.py index 3dad17b..92ad891 100755 --- a/src/mail/mail_constants.py +++ b/src/mail/mail_constants.py @@ -18,7 +18,9 @@ DOMAIN_GMX_NET = "gmx.net" DOMAIN_GMX_AT = "gmx.at" DOMAIN_GMX_FR = "gmx.fr" DOMAIN_GMX_US = "gmx.us" +DOMAIN_GMX_SG = "gmx.sg" DOMAIN_GMX_CH = "gmx.ch" +DOMAIN_GMX_PT = "gmx.pt" DOMAIN_ONET = "onet.pl" DOMAIN_GAZETA_PL = "gazeta.pl" DOMAIN_NAVER = "naver.com" @@ -86,8 +88,9 @@ def create_imap(login: str): elif DOMAIN_YAHOO in login: imap = imaplib.IMAP4_SSL(YAHOO_IMAP_SERVER) elif DOMAIN_FIREMAIL_DE in login: - imap = imaplib.IMAP4_SSL(SERVER_FIREMAIL_DE) - elif DOMAIN_GMX in login or DOMAIN_GMX_FR in login or DOMAIN_GMX_US in login or DOMAIN_GMX_CH in login: + # imap = imaplib.IMAP4_SSL(SERVER_FIREMAIL_DE) + imap = IMAPClient(SERVER_FIREMAIL_DE, use_uid=True) + elif DOMAIN_GMX in login or DOMAIN_GMX_FR in login or DOMAIN_GMX_US in login or DOMAIN_GMX_CH in login or DOMAIN_GMX_PT in login or DOMAIN_GMX_SG in login: imap = imaplib.IMAP4_SSL(SERVER_GMX) elif DOMAIN_SINA in login: # imap = imaplib.IMAP4_SSL(IMAP_SERVER_SINA) diff --git a/src/person_name/contact_manager.py b/src/person_name/contact_manager.py index 0089854..8f1ea94 100755 --- a/src/person_name/contact_manager.py +++ b/src/person_name/contact_manager.py @@ -11,7 +11,7 @@ from src.utils.excel_reader import read_contacts, fr_phone_number_prefix, get_ra def upload_contacts_list(): - _contacts_to_book = read_contacts("/Users/lpan/Desktop/contact_list_2024-06-17.xlsx") + _contacts_to_book = read_contacts("/Users/lpan/Desktop/contact_list_2024-09-16.xlsx") return _contacts_to_book @@ -144,22 +144,10 @@ if __name__ == '__main__': # MONGO_STORE_MANAGER.upload_contact_list(contacts_to_book) # print("start at {}".format(datetime.datetime.now())) # generate_valid_contact_list_for_day(segment_number=2) - # generate_contact_from_mail_list("/Users/panlei/Downloads/邮箱及密码.xlsx") + # generate_contact_from_mail_list("/Users/lpan/Downloads/邮箱及密码.xlsx") # print("end at {}".format(datetime.datetime.now())) generate_all_contact_list() # merge_contact_list_files( - # ["/Users/lpan/Desktop/contact_list_2024-05-07.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-05-06.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-05-04.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-05-03.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-05-02.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-30.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-26.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-25.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-24.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-23.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-22.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-20.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-18.xlsx", - # "/Users/lpan/Desktop/contact_list_2024-04-19.xlsx"]) + # ["/Users/lpan/Desktop/contact_list_all_old_not_used_contact.xlsx", + # "/Users/lpan/Desktop/contact_list_2024-06-26.xlsx"]) # fix_phone_number_format("/Users/lpan/Desktop/15_05_to_test.xlsx") diff --git a/src/person_name/cython_extract_methods.pyx b/src/person_name/cython_extract_methods.pyx index 2489c12..a5832c2 100755 --- a/src/person_name/cython_extract_methods.pyx +++ b/src/person_name/cython_extract_methods.pyx @@ -1,3 +1,4 @@ +import csv import itertools import random from concurrent.futures import ThreadPoolExecutor @@ -7,6 +8,7 @@ import xlsxwriter from src.db.mongo_manager import MongoDbManager, MONGO_STORE_MANAGER from src.pojo.contact_pojo import ContactPojo +from src.pojo.mail.mail_pojo import MailAddress from src.utils.contacts.generate_random_passport_id import get_random_passport_id_number from src.utils.excel_reader import get_random_fr_phone_numbers @@ -76,11 +78,11 @@ def check_name(word_to_test: str, pinyin_name_list: list): return last_name, first_name return None -def generate_name_from_email(mail_address, pinyin_name_list): +def generate_name_from_email(mail_address: list, pinyin_name_list: list): all_combines = get_ordered_combines(mail_address) all_combines.sort(key=len, reverse=True) cdef list no_duplicated_list = [] - cdef int min_length = 4, max_length = 18 + cdef int min_length = 5, max_length = 18 for word in list(all_combines): if word not in list(no_duplicated_list) and len(word) >= min_length: print("add word {}".format(word)) @@ -149,6 +151,25 @@ def generate_contact_from_mail_list(_start_position: int, _end_position: int, executor.submit(find_contact, generate_contacts, mail, pinyin_name_list) write_new_contacts_to_excel(generate_contacts) +def generate_contact_from_csv_file(file_path: str, + name_list_file_path="all_new_name_list.txt"): + _mail_list = [] + with open(file_path, newline='\n') as csvfile: + reader = csv.DictReader(csvfile) + for row in reader: + _mail = row['mail'] + _password = row['password'] + _mail_list.append(MailAddress(_mail, _password)) + print("mail_list size before filter is {}".format(len(_mail_list))) + print("mail_list size after filter is {}".format(len(_mail_list))) + cdef list generate_contacts = [] + pinyin_name_list = read_pinyin_list_from_file(name_list_file_path) + # random.shuffle(pinyin_name_list) + with ThreadPoolExecutor(max_workers=len(_mail_list)) as executor: + for mail in _mail_list: + executor.submit(find_contact, generate_contacts, mail, pinyin_name_list) + write_new_contacts_to_excel(generate_contacts) + def filter_already_validated_contacts(_list_to_extract): _already_validated_contact_list = MONGO_STORE_MANAGER.get_all_contacts_to_book() for _validated_contact in _already_validated_contact_list: diff --git a/src/person_name/extract_name_with_pinyinlist.py b/src/person_name/extract_name_with_pinyinlist.py index 5408d9a..cdbc7d0 100755 --- a/src/person_name/extract_name_with_pinyinlist.py +++ b/src/person_name/extract_name_with_pinyinlist.py @@ -1,3 +1,5 @@ +import csv + import itertools import random from concurrent.futures import ThreadPoolExecutor @@ -6,6 +8,7 @@ import xlsxwriter from src.db.mongo_manager import MongoDbManager, MONGO_STORE_MANAGER from src.pojo.contact_pojo import ContactPojo +from src.pojo.mail.mail_pojo import MailAddress from src.utils.excel_reader import get_random_fr_phone_numbers, ExcelHelper from src.utils.contacts.generate_random_passport_id import get_random_passport_id_number @@ -237,10 +240,29 @@ def filter_already_validated_contacts(_list_to_extract): _list_to_extract.remove(_extracted_contact) +def generate_contact_from_csv_file(file_path: str, + name_list_file_path="all_new_name_list.txt"): + _mail_list = [] + with open(file_path, newline='\n') as csvfile: + reader = csv.DictReader(csvfile) + for row in reader: + _mail = row['mail'] + _password = row['password'] + _mail_list.append(MailAddress(_mail, _password)) + print("mail_list size before filter is {}".format(len(_mail_list))) + print("mail_list size after filter is {}".format(len(_mail_list))) + generate_contacts = [] + pinyin_name_list = read_pinyin_list_from_file(name_list_file_path) + # random.shuffle(pinyin_name_list) + with ThreadPoolExecutor(max_workers=len(_mail_list)) as executor: + for mail in _mail_list: + executor.submit(find_contact, generate_contacts, mail, pinyin_name_list) + write_new_contacts_to_excel(generate_contacts) + + if __name__ == '__main__': start_position = 1 end_position = 3 - # x = range(start_position, end_position, 100) step = 1 step_list = range(start_position, end_position, step) print(step_list[-1]) diff --git a/src/person_name/generate_name_for_email_creation.py b/src/person_name/generate_name_for_email_creation.py index ab3732a..a64fad3 100644 --- a/src/person_name/generate_name_for_email_creation.py +++ b/src/person_name/generate_name_for_email_creation.py @@ -48,7 +48,7 @@ def generate_mail_address(name): if __name__ == '__main__': pinyin_name_list = read_pinyin_list_from_file() random.shuffle(pinyin_name_list) - _size = 500 + _size = 100 _name_list = pinyin_name_list[0:_size] # write to excel _recovery_mail_list = get_recover_mail_list(_size) diff --git a/src/person_name/start_extraction.py b/src/person_name/start_extraction.py index 8a6b9db..498d93f 100644 --- a/src/person_name/start_extraction.py +++ b/src/person_name/start_extraction.py @@ -1,22 +1,25 @@ from cython_extract_methods import generate_contact_from_mail_list -# from extract_name_with_pinyinlist import generate_contact_from_mail_list +from extract_name_with_pinyinlist import generate_contact_from_csv_file if __name__ == '__main__': - start_position = 1 - end_position = 202 - # x = range(start_position, end_position, 100) - step = 200 - step_list = range(start_position, end_position, step) - print(step_list[-1]) - for x in step_list: - print(x) - _from_position = x - _end_position = x + step - print("_from_position is {},_end_position is {}".format(_from_position, _end_position)) - if _end_position <= step_list[-1]: - print("start extraction from {} to {}".format(_from_position, _end_position)) - generate_contact_from_mail_list(_from_position, _end_position, - name_list_file_path="/Users/lpan/Documents/workspace/appointment_tool/src/person_name/all_new_name_list.txt") - else: - print("stop with {},{}".format(_from_position, _end_position)) + generate_contact_from_csv_file('/Users/lpan/Downloads/gmx_sg_100.csv', + name_list_file_path="/Users/lpan/Documents/workspace/appointment_tool/src/person_name/all_new_name_list.txt") + # + # start_position = 20827 + # end_position = 21528 + # # x = range(start_position, end_position, 100) + # step = 700 + # step_list = range(start_position, end_position, step) + # print(step_list[-1]) + # for x in step_list: + # print(x) + # _from_position = x + # _end_position = x + step + # print("_from_position is {},_end_position is {}".format(_from_position, _end_position)) + # if _end_position <= step_list[-1]: + # print("start extraction from {} to {}".format(_from_position, _end_position)) + # generate_contact_from_mail_list(_from_position, _end_position, + # name_list_file_path="/Users/lpan/Documents/workspace/appointment_tool/src/person_name/all_new_name_list.txt") + # else: + # print("stop with {},{}".format(_from_position, _end_position)) diff --git a/src/pojo/mail/mail_pojo.py b/src/pojo/mail/mail_pojo.py index fb054e0..d6747e1 100644 --- a/src/pojo/mail/mail_pojo.py +++ b/src/pojo/mail/mail_pojo.py @@ -1,4 +1,5 @@ class MailAddress: + def __init__(self, mail, password): self.mail = mail self.password = password diff --git a/src/templates/confirmed_rdv.html b/src/templates/confirmed_rdv.html index 94ab813..abb83a7 100644 --- a/src/templates/confirmed_rdv.html +++ b/src/templates/confirmed_rdv.html @@ -3,81 +3,9 @@
- + @@ -109,36 +37,37 @@| Dear Madam / Dear - Sir, + | Chère Madame, Cher + Monsieur, |
| We are pleased to - confirm your appointment. + | Nous avons le + plaisir de vous confirmer votre rendez-vous. |
| You will be welcomed - on Jan 16, 2023 in our store at 24 Faubourg Saint-Honoré at - 5:40 PM. + | Nous vous + accueillerons le 7 sept. 2024 au 24 Faubourg Saint-Honoré à + 14:25. |
| The given hour might - be subject to change. Please kindly follow up on your - appointment status on https://rendezvousparis.hermes.com/client/97C7S9 + | Cet horaire + indicatif est susceptible de varier. Vous pouvez suivre son + évolution sur le site https://rendezvousparis.hermes.com/client/UETAQQ |
| As your appointment - approaches, we invite you to introduce yourself to one of - our receptionists. + | A l’approche de + votre rendez-vous, nous vous invitons à vous présenter à + l’un de nos Chargés d’Accueil. |
| Please bring the - proof of identity used on our website. + | Nous vous remercions + de vous munir de la pièce d’identité utilisée sur notre + site. |