import logging

from bs4 import BeautifulSoup

# 获取日志记录器
logger = logging.getLogger(__name__)


# 对日报的html的添加style，方便前端渲染
# 日报添加style
def beautiful_report(html):
    try:
        logger.info("开始给日报添加style")

        soup = BeautifulSoup(html, "lxml")

        # 找到所有 <p> 标签设置对应的样式
        list_p = soup.find_all("p")

        for i in range(len(list_p)):
            if i == 0:
                list_p[i]["class"] = "title"

            if i == 1:
                list_p[i]["class"] = "subtitle"

            # 第3、6、8、10、11、12的标签的字体一致
            if i == 2 or i == 5 or i == 7 or i == 9 or i == 11:
                list_p[i]["class"] = f"point{i}"

            # 第3、4、6，8，10，12
            if i == 3 or i == 4 or i == 6 or i == 8 or i == 10 or i == 12:
                list_p[i]["class"] = f"content{i}"

            if i == 14 or i == 15 or i == 16 or i == 17:
                list_p[i]["class"] = f"table_title{i}"

        # 给表格设置样式，由于表格样式统一，因此不用单独设置
        list_tables = soup.find_all("table")

        # 为每个表格设置统一样式
        for i, table in enumerate(list_tables):
            # 设置表格整体样式
            table["class"] = f"table{i}"

            # # 设置表头样式
            # for th in table.find_all('th'):
            #     th['style'] = 'background-color: #4CAF50; color: white; font-weight: bold; padding: 10px; text-align: center;'
            #
            # # 设置表格行样式
            # for tr in table.find_all('tr'):
            #     tr['style'] = 'border-bottom: 1px solid #ddd;'
            #
            # # 设置表格单元格样式
            # for td in table.find_all('td'):
            #     td['style'] = 'border: 1px solid #000; padding: 8px; text-align: left; width: 150px; height: 45px;text-align: center;'

        html = soup.prettify()

        return html

    except Exception as e:
        logger.exception(f"给日报添加style的方法执行失败：{e}")


if __name__ == "__main__":
    test_path = r"E:\work_data\work\test_result\日报的html.html"
    beautiful_report(test_path)
