From 78badf2eaa27d638ad3daf7b67a6fa955d023005 Mon Sep 17 00:00:00 2001 From: Dream Hunter Date: Thu, 16 May 2024 12:57:23 +0800 Subject: [PATCH] feat: telegram bot (#238) --- frontend/src/views/Admin.vue | 6 + frontend/src/views/admin/Telegram.vue | 77 +++++ frontend/src/views/common/About.vue | 11 +- vitepress-docs/docs/en/cli.md | 2 + vitepress-docs/docs/zh/guide/cli/worker.md | 14 + .../zh/guide/feature/config-smtp-proxy.md | 2 + .../docs/zh/guide/feature/mail-api.md | 4 +- vitepress-docs/docs/zh/guide/ui/worker.md | 7 + worker/.gitignore | 1 + worker/package.json | 16 +- worker/patches/telegraf@4.16.3.patch | 163 +++++++++++ worker/pnpm-lock.yaml | 189 ++++++++++-- worker/src/admin_api/index.js | 7 +- worker/src/common.js | 27 +- worker/src/{constants.js => constants.ts} | 5 + worker/src/email.js | 10 + worker/src/mails_api/index.js | 7 +- worker/src/telegram_api/index.ts | 49 ++++ worker/src/telegram_api/telegram.ts | 269 ++++++++++++++++++ worker/src/utils.js | 16 +- worker/src/worker.js | 2 + worker/tsconfig.json | 15 + worker/wrangler.toml.template | 2 + 23 files changed, 844 insertions(+), 57 deletions(-) create mode 100644 frontend/src/views/admin/Telegram.vue create mode 100644 worker/patches/telegraf@4.16.3.patch rename worker/src/{constants.js => constants.ts} (76%) create mode 100644 worker/src/telegram_api/index.ts create mode 100644 worker/src/telegram_api/telegram.ts create mode 100644 worker/tsconfig.json diff --git a/frontend/src/views/Admin.vue b/frontend/src/views/Admin.vue index 0d3db940..f783d0c5 100644 --- a/frontend/src/views/Admin.vue +++ b/frontend/src/views/Admin.vue @@ -17,6 +17,7 @@ import MailsUnknow from './admin/MailsUnknow.vue'; import About from './common/About.vue'; import Maintenance from './admin/Maintenance.vue'; import Appearance from './common/Appearance.vue'; +import Telegram from './admin/Telegram.vue'; const { localeCache, adminAuth, showAdminAuth, adminTab, loading, globalTabplacement @@ -46,6 +47,7 @@ const { t } = useI18n({ unknow: 'Mails with unknow receiver', senderAccess: 'Sender Access Control', sendBox: 'Send Box', + telegram: 'Telegram Bot', statistics: 'Statistics', maintenance: 'Maintenance', appearance: 'Appearance', @@ -64,6 +66,7 @@ const { t } = useI18n({ unknow: '无收件人邮件', senderAccess: '发件权限控制', sendBox: '发件箱', + telegram: '电报机器人', statistics: '统计', maintenance: '维护', appearance: '外观', @@ -121,6 +124,9 @@ onMounted(async () => { + + + diff --git a/frontend/src/views/admin/Telegram.vue b/frontend/src/views/admin/Telegram.vue new file mode 100644 index 00000000..9c3eed8c --- /dev/null +++ b/frontend/src/views/admin/Telegram.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/frontend/src/views/common/About.vue b/frontend/src/views/common/About.vue index 75801650..cd77c819 100644 --- a/frontend/src/views/common/About.vue +++ b/frontend/src/views/common/About.vue @@ -5,22 +5,19 @@ import { GithubAlt, Discord, Telegram } from '@vicons/fa'