本项目是主题创建程序的后端,需要结合ThemeWeb(前端网页界面)使用
interface BotConfig {
botApi:string
}
interface DBConfig {
username:string
password:string
}
let devObject:BotConfig={
botApi:""
}
let proObject:BotConfig={
botApi: ""
}
let dbConfig:DBConfig={
username:"",
password:"",
}
export let dbConfigPro:DBConfig={
username:"",
password:"",
}
export {devObject, proObject,dbConfig,DBConfig}
项目中定义了两个主要的数据库模型,用于存储主题切换记录和编辑日志:
-
jump_to_theme
:- 字段:
type
: 主题类型(0 表示 Android,1 表示桌面)。theme_name
: 主题名称。date
: 切换时间。
- 字段:
-
theme_editor_log
:- 字段:
kind
: 日志种类。ip
: 用户 IP 地址。date
: 操作时间。
- 字段:
import { initModels } from './db/models/init-models';
import { Sequelize } from 'sequelize';
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'mysql',
});
initModels(sequelize);
sequelize.sync();
服务启动后,将同时运行 HTTP API 和 Telegram Bot。相关初始化逻辑位于 server.ts
文件中:
import { initBot } from "./src/bot/bot";
import { initHttp } from "./src/express/http-config";
// 启动 HTTP 服务
initHttp();
// 启动 Telegram Bot
initBot();
用户可以通过发送 /start
命令并附带参数来发送主题。例如:
/start ${themeNameA}
:切换到名为themeName
的 Android 主题。/start ${themeNameD}
:切换到名为themeName
的桌面主题。
本项目提供了一组 RESTful API 接口,用于管理 Telegram 主题(.attheme
文件)、生成预览、编辑模板以及记录日志。以下是详细的 HTTP API 说明。
- 服务器地址:
http://<your-server-ip>:3000
- 跨域支持: 允许所有来源 (
*
) - 静态文件目录:
-
/public/tempelete/tohuemodle
(存储模板文件)- 每 一个模板文件都对应一个ts文件
-
/public/myserver-bot-public/attheme
-
/public/myserver-bot-public/desk
-
- URL:
/attheme
- Method:
GET
- Description: 返回当前可用的 Android 主题列表。
- URL:
/desk
- Method:
GET
- Description: 返回当前可用的桌面主题列表。
- URL:
/colorlist
- Method:
POST
- Description: 根据请求数据生成颜色图片。
- URL:
/attheme-create
- Method:
POST
- Description: 根据请求数据生成不透明的 Android 主题文件。
- Request Body:
- URL:
/attheme-create/tran
- Method:
POST
- Description: 根据请求数据生成透明的 Android 主题文件。
- Request Body:
- URL:
/tdesktop-create
- Method:
POST
- Description: 根据请求数据生成桌面主题文件。
- Request Body:
- URL:
/templete-info
- Method:
GET
- Description: 返回当前支持的模板信息。
- Response:
- URL:
/templete-editor/
- Method:
POST
- Description: 根据请求数据应用模板并生成新的主题文件。
- Request Body:
{
"kind": "android", // 或 "desktop"
"type": "black", // 或 "white"
"model": "default",
"hue": 200,
"sat": 50,
"lig": 75,
"alpha": 0.8
}