Files
astrbot_plugin_jx3/core/function_basic.py
T
2026-01-03 19:14:49 +08:00

81 lines
1.9 KiB
Python

from pathlib import Path
from datetime import datetime,date
def load_template(template_name):
"""
从模板文件加载模板内容
Args:
template_name: 模板文件名(不带路径)
Returns:
str: 模板内容
"""
# 获取模板文件路径
plugin_dir = Path(__file__).parent.parent
template_path = plugin_dir / "templates" / template_name
# 检查文件是否存在
if not template_path.exists():
raise FileNotFoundError(f"模板文件不存在: {template_path}")
# 读取模板内容
with open(template_path, 'r', encoding='utf-8') as f:
return f.read()
def gold_to_string(gold_amount):
"""
将金钱数值转换为字符串表示形式
Args:
gold_amount (int): 金钱数值,单位为铜币
Returns:
str: 格式化后的金钱字符串,例如 "1金2银3铜"
"""
if not gold_amount:
return "无价格"
parts = []
started = False # 标记是否已经遇到第一个非零位
bricks = gold_amount // 100000000
gold = (gold_amount % 100000000) // 10000
silver = (gold_amount % 10000) // 100
copper = gold_amount % 100
for value, unit in [(bricks, "砖"), (gold, "金"), (silver, "银"), (copper, "铜")]:
if value != 0:
started = True
if started:
parts.append(f"{value}{unit}")
return "".join(parts)
def week_to_num(week :str):
week_map = {
"一": 0,
"二": 1,
"三": 2,
"四": 3,
"五": 4,
"六": 5,
"日": 6,
}
return week_map.get(week,None)
def compare_date_str(date_str: str) -> str:
"""
date_str 格式:YYYY-MM-DD
"""
d = datetime.strptime(date_str, "%Y-%m-%d").date()
today = date.today()
if d < today:
return "过去"
elif d == today:
return "今天"
else:
return "将来"