added source_from field to contactPojo

This commit is contained in:
2025-03-28 09:25:57 +01:00
parent b6b94cb58a
commit c14a6f8274
3 changed files with 29 additions and 13 deletions
+20 -10
View File
@@ -18,7 +18,7 @@ DEFAULT_SERIAL_TO_IGNORE = ["47e7e36b", "bitbrowser"]
def upload_contacts_list(): def upload_contacts_list():
_contacts_to_book = read_contacts(str(Path.home()) + "/Desktop/extracted_aol_contacts_292_24_03_mac.xlsx") _contacts_to_book = read_contacts(str(Path.home()) + "/Desktop/extracted_yahoo_contacts_129_24_03_win.xlsx")
return _contacts_to_book return _contacts_to_book
@@ -76,7 +76,7 @@ def write_new_contacts_to_excel(valid_contacts: list, file_name=str(datetime.dat
# Create a workbook and add a worksheet. # Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('contact_list_{}.xlsx'.format(file_name)) workbook = xlsxwriter.Workbook('contact_list_{}.xlsx'.format(file_name))
header_data = ['name', 'phone', 'passport', 'email', 'store', 'serial', 'ip_country', 'ua', header_data = ['name', 'phone', 'passport', 'email', 'store', 'serial', 'ip_country', 'ua',
'resident_card_number'] 'resident_card_number', 'source_from']
worksheet = workbook.add_worksheet() worksheet = workbook.add_worksheet()
header_format = workbook.add_format({'bold': True}) header_format = workbook.add_format({'bold': True})
@@ -94,12 +94,13 @@ def write_new_contacts_to_excel(valid_contacts: list, file_name=str(datetime.dat
worksheet.write(row, col + 6, info.ip_country) worksheet.write(row, col + 6, info.ip_country)
worksheet.write(row, col + 7, info.ua) worksheet.write(row, col + 7, info.ua)
worksheet.write(row, col + 8, info.resident_card_number) worksheet.write(row, col + 8, info.resident_card_number)
worksheet.write(row, col + 9, info.source_from)
row += 1 row += 1
workbook.close() workbook.close()
def generate_valid_contact_list_for_day(segment_number=1): def generate_valid_contact_list_for_day(segment_number=1):
_collection_name = "2025-03-14" _collection_name = "2025-03-27"
_valid_contact_list = MONGO_STORE_MANAGER.get_all_successful_items_for_one_day(_collection_name) _valid_contact_list = MONGO_STORE_MANAGER.get_all_successful_items_for_one_day(_collection_name)
_all_contacts = MONGO_STORE_MANAGER.get_all_contacts_to_book() _all_contacts = MONGO_STORE_MANAGER.get_all_contacts_to_book()
_contact_to_save = [] _contact_to_save = []
@@ -148,11 +149,20 @@ def generate_valid_contact_list_for_day(segment_number=1):
def write_list_with_segment_number(file_name, _contact_to_save_list, segment_number): def write_list_with_segment_number(file_name, _contact_to_save_list, segment_number):
for i in range(0, segment_number): _mac_list = []
_step = int(len(_contact_to_save_list) / segment_number) _win_list = []
_sublist = _contact_to_save_list[i * _step:_step * (i + 1)] for _contact in _contact_to_save_list:
_file_name = file_name + "_" + str(i + 1) if _contact.source_from == "rdv" or _contact.source_from == "lpan":
write_new_contacts_to_excel(_sublist, file_name=_file_name) _mac_list.append(_contact)
else:
_win_list.append(_contact)
write_new_contacts_to_excel(_mac_list, file_name=file_name + "_mac")
write_new_contacts_to_excel(_win_list, file_name=file_name + "_win")
# for i in range(0, segment_number):
# _step = int(len(_contact_to_save_list) / segment_number)
# _sublist = _contact_to_save_list[i * _step:_step * (i + 1)]
# _file_name = file_name + "_" + str(i + 1)
# write_new_contacts_to_excel(_sublist, file_name=_file_name)
def merge_contact_list_files(file_list: list, final_file_name="merged_contact_list"): def merge_contact_list_files(file_list: list, final_file_name="merged_contact_list"):
@@ -253,7 +263,7 @@ if __name__ == '__main__':
# contacts_to_book = upload_contacts_list() # contacts_to_book = upload_contacts_list()
# MONGO_STORE_MANAGER.upload_contact_list(contacts_to_book) # MONGO_STORE_MANAGER.upload_contact_list(contacts_to_book)
# print("start at {}".format(datetime.datetime.now())) # print("start at {}".format(datetime.datetime.now()))
# generate_valid_contact_list_for_day(segment_number=2) generate_valid_contact_list_for_day(segment_number=2)
# generate_contact_from_mail_list("/Users/lpan/Downloads/邮箱及密码_23_03_25_yahoo.xlsx") # generate_contact_from_mail_list("/Users/lpan/Downloads/邮箱及密码_23_03_25_yahoo.xlsx")
# print("end at {}".format(datetime.datetime.now())) # print("end at {}".format(datetime.datetime.now()))
# update_contact_list_not_received_mail() # update_contact_list_not_received_mail()
@@ -266,4 +276,4 @@ if __name__ == '__main__':
# "/Users/lpan/Desktop/contact_list_2024-11-08.xlsx", # "/Users/lpan/Desktop/contact_list_2024-11-08.xlsx",
# "/Users/lpan/Desktop/contact_list_2024-11-06.xlsx" # "/Users/lpan/Desktop/contact_list_2024-11-06.xlsx"
# ]) # ])
fix_phone_number_format(str(Path.home()) + "/Desktop/real_name_contacts_500_27_03_25.xlsx") # fix_phone_number_format(str(Path.home()) + "/Desktop/real_name_contacts_292_win.xlsx")
+4 -1
View File
@@ -37,6 +37,7 @@ class ContactPojo:
self.current_ip = "" self.current_ip = ""
self.ua = "" self.ua = ""
self.serial = "" self.serial = ""
self.source_from = ""
def __hash__(self): def __hash__(self):
return hash(self.mail) return hash(self.mail)
@@ -53,7 +54,8 @@ class ContactPojo:
u'ip_country': self.ip_country, u'ip_country': self.ip_country,
u'current_ip': self.current_ip, u'current_ip': self.current_ip,
u'ua': self.ua, u'ua': self.ua,
u'serial': self.serial u'serial': self.serial,
u'source_from': self.source_from
} }
return dest return dest
@@ -90,6 +92,7 @@ class ContactPojo:
if source.get('source_from'): if source.get('source_from'):
model = source['source_from'] model = source['source_from']
result.model = model result.model = model
result.source_from = model
if source.get('resident_card_number'): if source.get('resident_card_number'):
resident_card_number = source['resident_card_number'] resident_card_number = source['resident_card_number']
result.resident_card_number = resident_card_number result.resident_card_number = resident_card_number
+5 -2
View File
@@ -4,12 +4,10 @@ import string
import pandas as pandas import pandas as pandas
import validators as validators import validators as validators
import xlsxwriter
from src.db.mongo_manager import MONGO_STORE_MANAGER from src.db.mongo_manager import MONGO_STORE_MANAGER
from src.pojo.contact_pojo import ContactPojo from src.pojo.contact_pojo import ContactPojo
from src.pojo.mail.mail_pojo import MailAddress from src.pojo.mail.mail_pojo import MailAddress
from src.utils.contacts.generate_random_passport_id import get_random_passport_id_number
fr_phone_number_prefix = ['75', fr_phone_number_prefix = ['75',
'76', '76',
@@ -61,12 +59,17 @@ def read_contacts(file_name) -> list:
if contact_dict.get('ua') is not None: if contact_dict.get('ua') is not None:
ua = contact_dict['ua'] ua = contact_dict['ua']
source_from = ""
if contact_dict.get('source_from') is not None:
source_from = contact_dict['source_from']
contact = ContactPojo(phone_number=contact_dict['phone'], contact = ContactPojo(phone_number=contact_dict['phone'],
last_name=last_name, last_name=last_name,
first_name=first_name, first_name=first_name,
passport=contact_dict['passport'], passport=contact_dict['passport'],
mail=contact_dict['email'], store=store) mail=contact_dict['email'], store=store)
contact.source_from = source_from
if contact_dict.get('serial') is not None: if contact_dict.get('serial') is not None:
serial = contact_dict['serial'] serial = contact_dict['serial']
contact.serial = serial contact.serial = serial