清大與陽明交大最新公開貼文河道,依校區、平台、活動類型與主辦單位篩選,快速掌握兩校社團和校方動態。
Translation pending
SocialPython · HTMLGitHub @skyhong2002OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
竹梅活動觀測站 — 清大 × 陽明交大校園活動自動彙整(社團 IG/FB/Threads/X、校園公告 → LLM 抽取 → 網站/Telegram/RSS/ICS)
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
清大 × 陽明交大校園活動自動彙整 從公開公告與社群貼文整理活動,提供網站、推播、行事曆、RSS、Bot 與 AI 查詢介面。 「竹梅」取自梅竹賽的梅(清華,梅貽琦)與竹(交大,凌竹銘),倒過來唸——都有梅竹了,怎麼能沒有竹梅呢?Read the full README ↗
「竹梅」取自梅竹賽的梅(清華,梅貽琦)與竹(交大,凌竹銘),倒過來唸——都有梅竹了,怎麼能沒有竹梅呢?
https://chumei.observe.tw/mcp),讓支援 MCP 的 AI 助理搜尋活動、查名錄與建立訂閱網址。竹梅只彙整公開資訊,主要來源包括:
data/sources/,以兩校官方社團名冊為底。活動時間、地點、報名方式與例行社課時段由 LLM 從貼文文字及海報擷取,再經程式後驗、來源歸戶與跨來源去重。資訊不足或信心偏低的結果會標示「待確認」;實際資訊仍以主辦單位原始公告為準。
flowchart LR
A[公開公告與社群來源] --> B[抓取與正規化]
B --> C[(Inbox JSONL)]
C --> D[LLM 文字與海報抽取]
D --> E[後驗、去重、單位歸戶]
E --> F[靜態網站與 PWA]
E --> G[RSS、ICS、JSON API]
E --> H[Telegram、Push、Bot、MCP]
I[OAuth 帳號與使用者偏好] --> F
I --> G
I --> H
| 路徑 | 用途 |
|---|---|
data/sources/*.csv | 人工維護的社團、單位、社群帳號、公告站與場地座標名冊 |
data/feeds/inbox/ | 各來源 adapter 正規化後的 JSONL |
scripts/fetch_*.py | 公告、Instagram、Facebook、Threads、X、WordPress 與限動抓取器 |
scripts/extract_events.py | LLM 活動判別、文字/海報欄位抽取與快取 |
scripts/build_site.py | 合併、去重、單位歸戶、場地定位,產生網站、feeds 與 API |
scripts/auth_server.py | OAuth、Session、個人頁、「我會去」、回報與帳號型自訂訂閱 |
scripts/apify_contributions.py | 社群 Apify 帳號驗證、加密保存、排行榜與動態抓取加速 |
scripts/push_server.py | Web Push 訂閱 API 與帳號綁定 |
scripts/publish_push.py | 依偏好滴灌新活動與「我會去」提醒 |
scripts/publish_telegram.py | 以原始貼文為單位發布 Telegram 訊息 |
scripts/bot_core.py | Telegram/LINE 共用的自然語句活動查詢核心 |
scripts/mcp_server.py | 唯讀 MCP server,資料源為目前已發布版本 |
scripts/run_pipeline.py | 定期抓取、抽取、建站與發布的 orchestrator |
site/ | 網站範本、品牌資產及本機建站/抓取快取 |
published/current | Caddy 提供的已驗證正式版本(原子 symlink 切換) |
deploy/ | macOS launchd 服務與 Caddy 路由範本 |
docs/SCHEMA.md | Inbox 與抽取資料格式 |
目前有效的維護指南是 架構與維運,其中集中列出服務、發布/回復、備份、監控與功能驗收。請依工作選擇對應流程:
PLAN.md 是 2026-08-21 的歷史紀錄;不再用作待辦清單。進行中的工作以 Issues 為準。
登入、訂閱簽章與 Apify 貢獻加密設定由被 Git 忽略的 .env/.env.apify(權限 0600)或程序環境變數提供;網站不再讀取 macOS Keychain。Web Push VAPID 私鑰仍保存在受保護的 state/push/,隨推播狀態備份。請勿把 OAuth secret、Telegram token、社群 cookie 或 state/ 內的使用者資料提交到 repository。完整 pipeline 會存取外部供應商並可能消耗額度;日常程式驗證使用上述隔離 CI 流程。
NYCU OAuth Authorization Code 應用程式的 callback:
https://chumei.observe.tw/auth/nycu/callback
Google OAuth 2.0 Web application 的 callback:
https://chumei.observe.tw/auth/google/callback
清大登入走 NTHUMods Auth(OpenID Connect,public client chumei-observe,PKCE S256,沒有 client secret)。NTHUMods 登記的 redirect URI 不帶 provider 段:
https://chumei.observe.tw/auth/callback
服務會用 JWKS 驗 id_token 的簽章、iss、aud、exp 與 nonce,帳號以 sub(學號)為鍵,顯示名稱取 name。若之後 NTHUMods 另外登記 /auth/nthu/callback,設定 CHUMEI_NTHU_OAUTH_REDIRECT_PATH 即可切換;CHUMEI_NTHU_OAUTH_CLIENT_ID 留空可關閉清大登入。
開發及正式環境均可在 .env 設定(純 KEY=value,不要加引號或 export):
CHUMEI_NYCU_OAUTH_CLIENT_ID=
CHUMEI_NYCU_OAUTH_CLIENT_SECRET=
CHUMEI_GOOGLE_OAUTH_CLIENT_ID=
CHUMEI_GOOGLE_OAUTH_CLIENT_SECRET=
CHUMEI_NTHU_OAUTH_CLIENT_ID=chumei-observe
CHUMEI_NTHU_OAUTH_REDIRECT_PATH=/auth/callback
CHUMEI_AUTH_PUBLIC_BASE_URL=https://chumei.observe.tw
CHUMEI_FEED_SIGNING_KEY=
CHUMEI_APIFY_CONTRIBUTION_KEY=
上述登入、訂閱簽章與 Apify 貢獻加密設定只由環境檔與程序環境變數提供。.env.apify 會覆蓋 .env 同名項目,程序中的 CHUMEI_* 設定再覆蓋檔案;環境檔與備份均須限制權限。舊機的 Keychain 值需要在部署前一次性移入 .env,並保留實際生效的訂閱簽章與 Apify 加密金鑰,詳見 停用 Keychain 與金鑰遷移。舊 Keychain 項目可保留但程式不會再使用。
三種登入可在帳號頁互相綁定。若該身分已有帳號,系統會把追蹤、參加標記、回報、已儲存訂閱與 Session 合併到目前帳號;解除綁定時至少保留一種登入方式。
/account/:帳號設定、登入方式、行事曆、回報、自訂訂閱與刪除帳號;/account/privacy 說明資料保留。/contribute/:社群 Apify 額度貢獻、每日優先點數、排行榜與已註冊帳號池。/@handle:新帳號預設不公開,可由使用者在設定中主動公開。/auth/calendar/{token}.ics:「我會去」活動的私密行事曆,可由帳號頁換發。/feeds/custom.ics、/feeds/custom.xml:不需登入的多維條件組合。/feeds/s/{signed-token}.ics、.xml:帳號儲存的私密訂閱;修改條件不更換網址,除非使用者主動換發。CHUMEI_FEED_SIGNING_KEY 未另外設定時,服務會從 NYCU OAuth client secret 做用途隔離後衍生簽章金鑰;資料庫只保存 public ID,不保存可直接使用的完整 signed token。
CHUMEI_APIFY_CONTRIBUTION_KEY 未另外設定時,同樣會從 NYCU OAuth client secret 做用途隔離後衍生 Fernet 金鑰。貢獻者的 Apify token 在寫入 SQLite 前即加密;公開 API、排行榜與 log 只使用遮罩代號和額度資訊。
帳號服務由 deploy/tw.observe.chumei.auth.plist 常駐在 127.0.0.1:8324。Caddy 需將 /auth/*、/account*、/contribute*、/@*、/feeds/custom.* 與 /feeds/s/* 反代到該服務。
CHUMEI_TELEGRAM_ENABLED=true 啟用;正式發送前可執行 scripts/publish_telegram.py --check 與 --dry-run。state/。登入者可從 /submit/ 或帳號頁提交活動/帳號連結。scripts/process_submissions.py 會定期:
每人每日最多 10 筆,相同連結會去重。可公開驗證的學校單位或社團帳號會進入來源審核流程。
site/assets/og-default.png(1200 × 630)site/assets/brand/logo-square-*.pngsite/assets/favicon.svg 與 site/assets/brand/logo-mark-*.pngsite/assets/fonts/chumei-brand*.woff2活動資訊有誤、主辦單位希望調整或下架,可從網站登入後回報,或寄信至 [email protected]。GitHub Issues 僅處理程式問題;轉載的海報與貼文均附原始來源,主辦單位要求即下架。
程式碼採用 MIT License;活動內容版權屬各主辦單位。