import traceback

from feishu import FeiShuHelper
from gpt_tag import get_tag
from config import set_config
from log import Log
config_ = set_config()
log_ = Log()


def main(sheet_info_config):
    text_spreadsheet_token = sheet_info_config['text_spreadsheet_token']
    text_sheet_id = sheet_info_config['text_sheet_id']
    read_start_row = sheet_info_config['read_start_row']
    text_index = sheet_info_config['text_index']
    res_spreadsheet_token = sheet_info_config['res_spreadsheet_token']
    res_sheet_id = sheet_info_config['res_sheet_id']
    write_start_row = sheet_info_config['write_start_row']
    write_start_col = sheet_info_config['write_start_col']
    write_end_col = sheet_info_config['write_end_col']

    # 1. 读取飞书表格,获取视频asr_res
    feishu_helper = FeiShuHelper()
    data = feishu_helper.get_data(spreadsheet_token=text_spreadsheet_token, sheet_id=text_sheet_id)
    for i, item in enumerate(data[read_start_row:]):
        try:
            log_.info(f"i: {i}, videoId: {item[0]}")
            # print(item)
            text = item[text_index]
            # print(text)
            # 5. gpt产出结果
            gpt_res = get_tag(text=text)
            print(gpt_res)
            log_.info(f"gpt_res = {gpt_res}")
            # 6. 结果写入飞书表格
            log_.info(f"start_row: {write_start_row + i}")
            feishu_helper.update_values(
                sheet_token=res_spreadsheet_token,
                sheet_id=res_sheet_id,
                data=[[gpt_res]],
                start_row=write_start_row+i,
                start_column=write_start_col,
                end_column=write_end_col
            )
            log_.info(f"write to feishu success!")
        except Exception as e:
            log_.error(e)
            log_.error(traceback.format_exc())
            continue


if __name__ == '__main__':
    sheet_info = {
        '每日标题审核记录': {
            'text_spreadsheet_token': 'DkiUsqwJ6hmBxstBYyEcNE4ante',
            'text_sheet_id': '08d4cc',
            'read_start_row': 1,
            'res_spreadsheet_token': 'DkiUsqwJ6hmBxstBYyEcNE4ante',
            'res_sheet_id': '08d4cc',
            'write_start_row': 2,
            'write_start_col': 'I',
            'write_end_col': 'I',
            'text_index': 3
        },
        'top 视频需要识别内容主题等信息': {
            'text_spreadsheet_token': 'DkiUsqwJ6hmBxstBYyEcNE4ante',
            'text_sheet_id': 'LErgi2',
            'read_start_row': 1,
            'res_spreadsheet_token': 'DkiUsqwJ6hmBxstBYyEcNE4ante',
            'res_sheet_id': 'LErgi2',
            'write_start_row': 2,
            'write_start_col': 'H',
            'write_end_col': 'H',
            'text_index': 2
        }
    }

    for sheet_tag, sheet_item in sheet_info.items():
        print(sheet_tag)
        main(sheet_info_config=sheet_item)