85 lines
3.4 KiB
Python
85 lines
3.4 KiB
Python
import json
|
|
|
|
import pandas as pandas
|
|
|
|
import definitions
|
|
import params
|
|
from pojo.SimInfoPojo import SimInfoPojo
|
|
from pojo.contact_pojo import ContactPojo
|
|
from utils.operator import check_operator
|
|
|
|
|
|
class ExcelHelper:
|
|
|
|
def __init__(self):
|
|
self._df = pandas.Series()
|
|
|
|
def write_to_exel(self, file_name, data_list: list):
|
|
new_df = pandas.Series(data_list)
|
|
self._df = pandas.concat([self._df, new_df])
|
|
self._df.to_excel(file_name)
|
|
|
|
def generate_exel_from_txt(self):
|
|
f = open("../phone_list.txt")
|
|
lines = f.read()
|
|
self.write_to_exel("phone_list.xlsx", lines.split(","))
|
|
ccid_file = open("../ccid_list.txt")
|
|
ccids = ccid_file.read()
|
|
self.write_to_exel("ccid_list.xlsx", ccids.split(","))
|
|
print(lines)
|
|
|
|
def read_user_agent_list(self):
|
|
# read the contact list from the exel file
|
|
contact_list_in_json = pandas.read_excel(definitions.ROOT_DIR + "/docs/mobile_user_agent_list.xlsx").to_json(
|
|
orient='records')
|
|
contact_dict_list = json.loads(contact_list_in_json)
|
|
user_agents = []
|
|
for contact_dict in contact_dict_list:
|
|
user_agent = contact_dict['user_agent']
|
|
user_agents.append(user_agent)
|
|
return user_agents
|
|
|
|
def read_sim_info(self) -> list:
|
|
sim_info_list_in_json = pandas.read_excel(definitions.ROOT_DIR + "/docs/sim_infos.xlsx").to_json(orient='records')
|
|
sim_info_dict_list = json.loads(sim_info_list_in_json)
|
|
sim_info_list = []
|
|
for contact_dict in sim_info_dict_list:
|
|
position = contact_dict['position']
|
|
slot_position = int(int(position) / len(params.MODEM_POOL_PORTS)) + 1
|
|
sim_position = int(position) % len(params.MODEM_POOL_PORTS)
|
|
ccid = contact_dict['ccid']
|
|
operator = check_operator(ccid).name
|
|
siminfo = SimInfoPojo(phone=contact_dict['phone'],
|
|
name=contact_dict['name'],
|
|
ccid=ccid,
|
|
passport=contact_dict['passport'],
|
|
position=contact_dict['position'],
|
|
slot_position=slot_position,
|
|
sim_position=sim_position,
|
|
operator=operator,
|
|
email=contact_dict['email'])
|
|
sim_info_list.append(siminfo)
|
|
return sim_info_list
|
|
|
|
def read_contacts(self, file_name="/contact_all.xlsx") -> list:
|
|
contact_list_in_json = pandas.read_excel(definitions.ROOT_DIR + file_name).to_json(orient='records')
|
|
contact_dict_list = json.loads(contact_list_in_json)
|
|
contact_list = []
|
|
for contact_dict in contact_dict_list:
|
|
name = contact_dict['name'].split(' ')
|
|
first_name = name[0]
|
|
last_name = name[-1]
|
|
contact = ContactPojo(phone_number=contact_dict['phone'],
|
|
last_name=last_name,
|
|
first_name=first_name,
|
|
passport_number=contact_dict['passport'],
|
|
mail=contact_dict['email'])
|
|
contact_list.append(contact)
|
|
return contact_list
|
|
|
|
|
|
if __name__ == '__main__':
|
|
helper = ExcelHelper()
|
|
# helper.generate_exel_from_txt()
|
|
print(helper.read_sim_info())
|