|
|
@@ -9,9 +9,12 @@ from src.excel_tools.writers import (
|
|
|
CompetitiveAnalysisWriter,
|
|
|
ProductInfoWriter
|
|
|
)
|
|
|
-from src.manager import DbManager
|
|
|
+from src.manager import DbManager,StorageManager
|
|
|
from utils.logu import get_logger
|
|
|
from config.settings import OUTPUT_DIR
|
|
|
+from src.models.asin_model import TrafficKeywordModel, ProductInfoModel,AsinExtraResultModel
|
|
|
+
|
|
|
+
|
|
|
logger = get_logger('excel')
|
|
|
|
|
|
class ExcelFileManager:
|
|
|
@@ -21,7 +24,7 @@ class ExcelFileManager:
|
|
|
self.output_path = Path(output_path)
|
|
|
self.template_path = template_path or self.TEMPLATE_PATH
|
|
|
self.writers: Dict[str, ExcelWriterBase] = {}
|
|
|
- self.db = DbManager()
|
|
|
+ self.s3_storage_manager = StorageManager()
|
|
|
self.wb:Workbook = self._prepare_workbook()
|
|
|
logger.info(f"{self.wb.sheetnames}")
|
|
|
logger.info(f"{self.wb.worksheets}")
|
|
|
@@ -34,32 +37,25 @@ class ExcelFileManager:
|
|
|
return load_workbook(self.output_path)
|
|
|
|
|
|
def save_all(self):
|
|
|
- self.write_competie_sheet()
|
|
|
self.wb.save(self.output_path)
|
|
|
self.wb.close()
|
|
|
|
|
|
- def write_competie_sheet(self, sheet_name: str = "竞品关键词调研", sheet_index: int = 0, overwrite: bool = False):
|
|
|
+ def write_competitive_sheet(self, extract_data:dict, sheet_name: str = "竞品关键词调研", sheet_index: int = 0, overwrite: bool = False):
|
|
|
if overwrite and sheet_name in self.wb.sheetnames:
|
|
|
self.wb.remove(self.wb[sheet_name])
|
|
|
if sheet_name not in self.wb.sheetnames:
|
|
|
- extract_data = self.load_s3_extract_data()
|
|
|
competitive_sheet_writer = CompetitiveAnalysisWriter(self.wb, sheet_name=sheet_name, sheet_index=sheet_index)
|
|
|
competitive_sheet_writer.add_data(extract_data)
|
|
|
- def load_s3_extract_data(self):
|
|
|
- list_model = self.db.get_asin_completed()
|
|
|
- input_data = []
|
|
|
- for model in list_model:
|
|
|
- extra_result_data = json.loads(read_file(model.extra_result_path))
|
|
|
- model_dump = model.model_dump()
|
|
|
- model_dump['extra_result_data'] = extra_result_data
|
|
|
- input_data.append(model_dump)
|
|
|
- # self.add_data('competitive', input_data)
|
|
|
- return input_data
|
|
|
+ def load_s3_extract_data(self) -> list[AsinExtraResultModel]:
|
|
|
+ return self.s3_storage_manager.load_s3_complete_extract_data()
|
|
|
|
|
|
def main():
|
|
|
- excel_file = ExcelFileManager(r"G:\code\amazone\copywriting_production\output\resource\multi_data.xlsx")
|
|
|
- # excel_file.write_competie_sheet()
|
|
|
- excel_file.save_all()
|
|
|
+ self = ExcelFileManager(r"G:\code\amazone\copywriting_production\output\resource\multi_data.xlsx")
|
|
|
+ extract_data_lsit = self.load_s3_extract_data()
|
|
|
+ logger.info(f"{extract_data_lsit}")
|
|
|
+ logger.info(f"{len(extract_data_lsit)}")
|
|
|
+ # self.write_competie_sheet(extract_data)
|
|
|
+ # self.save_all()
|
|
|
return
|
|
|
competi_sheet = CompetitiveAnalysisWriter(excel_file.output_path)
|
|
|
|