尚未偵測到更新。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/* на функцыю