尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
💃 Апошні вальс — Telegram Mini App Ліцэя БДУ Пошук пары на вальс апошняга званка: анкета з класам, полам і фота, стужка супрацьлеглага полу, прагляд профіляў па класах, лайкі, мэтчы з апавяшчэннямі і мадэрацыя скаргаў. Інтэрфейс цалкам на беларускай мове. • Vercel — хостынг (serverless-функцыя api/index.js + статыка з public/) • Neon Postgres — база даных (анкеты, лайкі, скаргі, фота) • grammY — Telegram-бот праз webhook /api/tg-webhook • Express + multer — API, фота сціскаюцца ў браўзеры і захоўваюцца ў базе (bytea)查看完整 README ↗
Пошук пары на вальс апошняга званка: анкета з класам, полам і фота, стужка супрацьлеглага полу, прагляд профіляў па класах, лайкі, мэтчы з апавяшчэннямі і мадэрацыя скаргаў. Інтэрфейс цалкам на беларускай мове.
Бот: @aposhni_vals_bot · Прод: https://lyceum-dusky.vercel.app
api/index.js + статыка з public/)/api/tg-webhookbytea)initData Telegram (HMAC), правяраецца на кожны запыт. Адзін акаўнт Telegram = адна анкета./api/photo/<uuid> з нязменным кэшам; UUID выпадковы, таму спасылку не падабраць.main аўтаматычна дэплоіцца на Vercel.| Зменная | Прызначэнне |
|---|---|
BOT_TOKEN | токен бота ад @BotFather |
WEBAPP_URL | адрас праграмы, напр. https://lyceum-dusky.vercel.app |
WEBHOOK_SECRET | сакрэт для праверкі запытаў Telegram |
ADMIN_ID | Telegram ID адміністратара; некалькі — праз коску |
lyceum_DATABASE_URL | дадаецца аўтаматычна пры падключэнні Neon |
Пасля змены зменных патрэбны Redeploy.
# webhook
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" -H "Content-Type: application/json" ^
-d "{\"url\":\"https://<домен>/api/tg-webhook\",\"secret_token\":\"<WEBHOOK_SECRET>\"}"
# кнопка меню ў чаце
curl -X POST "https://api.telegram.org/bot<TOKEN>/setChatMenuButton" -H "Content-Type: application/json" ^
-d "{\"menu_button\":{\"type\":\"web_app\",\"text\":\"Апошні званок\",\"web_app\":{\"url\":\"https://<домен>\"}}}"
| Каманда | Дзеянне |
|---|---|
/admin | спіс каманд |
/stats | статыстыка: анкеты, лайкі, мэтчы, скаргі |
/reports | спіс анкет са скаргамі |
/ban <tg_id> | заблакаваць карыстальніка |
/unban <tg_id> | разблакаваць |
/approve <tg_id> | вярнуць схаваную анкету ў стужку і скінуць скаргі |
Патрэбны .env (гл. .env.example) і доступ да базы. Спачатку зніміце webhook, інакш polling атрымае памылку 409:
curl "https://api.telegram.org/bot<TOKEN>/deleteWebhook"
npm install
npm start
Каб вярнуць прод — зноў выканайце setWebhook з каманды вышэй.
api/index.js — уваход serverless-функцыі Vercel
src/app.js — Express-праграма: API, webhook, фота
src/bot.js — бот: /start, каманды адміна, апавяшчэнні
src/auth.js — праверка подпісу initData
src/db.js — злучэнне з Postgres і схема табліц
public/ — Mini App (index.html, app.js, style.css)
vercel.json — маршрутызацыя /api/* на функцыю