49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
from loguru import logger
|
||
from rich.console import Console
|
||
|
||
from config.config import load_config
|
||
from utils.pptx_utils import replace_text_in_slide, replace_picture
|
||
|
||
# 如果你之前没有全局定义 console,这里定义一个
|
||
console = Console()
|
||
|
||
# ==========================================
|
||
# 1. 配置区域 (Configuration)
|
||
# ==========================================
|
||
config = load_config()
|
||
|
||
|
||
def replace_one_page(prs, name, class_name):
|
||
"""替换第一页信息"""
|
||
replace_text_in_slide(prs, 0, "name", name)
|
||
replace_text_in_slide(prs, 0, "class", class_name)
|
||
|
||
|
||
def replace_two_page(prs, comments, teacher_name):
|
||
"""替换第二页信息"""
|
||
replace_text_in_slide(prs, 1, "comments", comments)
|
||
replace_text_in_slide(prs, 1, "teacher_name", teacher_name)
|
||
|
||
|
||
def replace_three_page(prs, info_dict, me_image=None):
|
||
"""替换第三页信息"""
|
||
# 使用字典解包传递多个字段,减少参数数量
|
||
fields = ["name", "english_name", "sex", "birthday", "zodiac", "friend", "hobby", "game", "food"]
|
||
for field in fields:
|
||
replace_text_in_slide(prs, 2, field, info_dict.get(field, ""))
|
||
if me_image:
|
||
replace_picture(prs, 2, "me_image", me_image)
|
||
else:
|
||
logger.warning(f"⚠️ 警告: {info_dict.get('name', '未知姓名')} 缺少个人照片('me_image')")
|
||
|
||
|
||
def replace_four_page(prs, class_image):
|
||
"""替换第四页信息"""
|
||
replace_picture(prs, 3, "class_image", class_image)
|
||
|
||
|
||
def replace_five_page(prs, image1, image2):
|
||
"""替换第五页信息"""
|
||
replace_picture(prs, 4, "image1", image1)
|
||
replace_picture(prs, 4, "image2", image2)
|