mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-02-06 23:21:16 +08:00
64 lines
2.2 KiB
TypeScript
64 lines
2.2 KiB
TypeScript
import { BotFather, WorkflowInput } from "../bot_father";
|
||
|
||
const WEEKDAY_NAMES = ["日", "一", "二", "三", "四", "五", "六"] as const;
|
||
|
||
class CoffeeBot extends BotFather {
|
||
constructor() {
|
||
super("Coffee Bot");
|
||
}
|
||
|
||
protected override getAdditionalInstructions(): string[] {
|
||
return [
|
||
"You are responsible for 发布每日抽奖早安贴。",
|
||
"创建帖子时,确保标题、奖品信息、开奖时间以及领奖方式完全符合 CLI 查询提供的细节。",
|
||
"正文需亲切友好,简洁明了,鼓励社区成员互动。",
|
||
"开奖说明需明确告知中奖者需私聊站长 @nagisa 领取奖励。",
|
||
"确保只发布一个帖子,避免重复调用 create_post。",
|
||
];
|
||
}
|
||
|
||
protected override getCliQuery(): string {
|
||
const now = new Date();
|
||
const beijingNow = new Date(
|
||
now.toLocaleString("en-US", { timeZone: "Asia/Shanghai" })
|
||
);
|
||
const weekday = WEEKDAY_NAMES[beijingNow.getDay()];
|
||
|
||
const drawTime = new Date(beijingNow);
|
||
drawTime.setHours(15, 0, 0, 0);
|
||
const drawTimeText = drawTime
|
||
.toLocaleTimeString("zh-CN", {
|
||
hour: "2-digit",
|
||
minute: "2-digit",
|
||
hour12: false,
|
||
timeZone: "Asia/Shanghai",
|
||
})
|
||
.replace(/^24:/, "00:");
|
||
|
||
return `
|
||
请立即在 https://www.open-isle.com 使用 create_post 发表一篇全新帖子,遵循以下要求:
|
||
1. 标题固定为「大家星期${weekday}早安--抽一杯咖啡」。
|
||
2. 正文包含:
|
||
- 亲切的早安问候;
|
||
- 明确奖品写作“Coffee x 1”;
|
||
- 奖品图片链接:https://openisle-1307107697.cos.accelerate.myqcloud.com/dynamic_assert/0d6a9b33e9ca4fe5a90540187d3f9ecb.png;
|
||
- 公布开奖时间为今天下午 15:00(北京时间,写成 ${drawTimeText});
|
||
- 标注“领奖请私聊站长 @nagisa”;
|
||
- 鼓励大家留言互动。
|
||
3. 帖子语言使用简体中文,格式可用 Markdown,使关键信息醒目。
|
||
4. 完成后只输出“已发布咖啡抽奖贴”,不额外生成总结。
|
||
`.trim();
|
||
}
|
||
}
|
||
|
||
const coffeeBot = new CoffeeBot();
|
||
|
||
export const runWorkflow = async (workflow: WorkflowInput) => {
|
||
return coffeeBot.runWorkflow(workflow);
|
||
};
|
||
|
||
if (require.main === module) {
|
||
coffeeBot.runCli();
|
||
}
|
||
|