我做了一個寶可夢每日看板:從錯過秋季遠足限時調查開始
目錄
會開始做這個寶可夢每日看板,是因為沒有及時完成「秋季遠足」的限時調查。
我一直很喜歡特殊裝扮的皮卡丘。只要活動裡出現戴帽子、穿服裝或其他限定造型的皮卡丘,我通常特別注意。秋季遠足的限時調查也是一樣,原本很想完成,朋友也有提醒過我,但我最後還是忘記了。
等到我再次想起來時,活動已經結束,調查也消失了。
那種感覺不是「少拿了一個遊戲獎勵」而已,而是明明知道自己喜歡、也曾經打算完成,最後卻因為資訊散在太多地方,讓它安靜地過期。
我每天可能看新聞會看到 Pokémon GO 活動、限時調查、社群消息和朋友傳來的提醒。資訊其實一直都在,只是它們沒有待在一個我每天都會打開,而且能清楚告訴我「這件事還沒完成」的地方。
既然總是容易忘記,只好用 AI 幫自己解決這個問題。
我先告訴 AI:我到底會忘記什麼
一開始,我沒有直接要求 AI 寫一個網站。而是先整理自己每天真正想知道的事情:
- 現在有哪些 Pokémon GO 活動正在進行?
- 接下來兩週有什麼活動,什麼時候開始、什麼時候結束?
- 哪些限時調查還沒做完,而且已經快到期?
- 最近有沒有新的寶可夢商品或台灣活動消息?
- 看到想保留的消息,能不能先收藏起來?
- 活動結束後,可不可以自動移走,不要一直擠在目前的清單裡?
我真正需要的不是另一個內容很多的資訊網站,而是一張每天會打開的桌面。它要先把最重要的事情放在前面,再繼續往下查看細節。
我也很快確定了一個原則:活動和任務不能混在一起。
活動是一段客觀存在的時間,我哪有空每一場都要參加;任務才有「我完成了沒有」的狀態。如果兩者都放一個勾選框,畫面看起來很整齊,意思卻會變得混亂。
這些需求整理清楚後,才開始和 AI 一起規劃資料怎麼取得、畫面要分成哪些頁,以及每個狀態要保存在哪裡。
先把散落的資訊,變成一條每天會自己運作的流程
看板每天台灣時間凌晨 1 點,由 GitHub Actions 啟動 Python 程式。爬蟲會讀取 LeekDuck、ScrapedDuck、巴哈姆特 Pokémon GO 哈啦板、寶可夢官網、新聞來源和 PChome 24h,再把不同格式的內容整理成活動、任務、商品與新聞四種資料。
GitHub Actions 每天凌晨 1 點執行
↓
Python 讀取活動、任務、商品與新聞
↓
統一欄位、翻譯名稱、合併重複消息
↓
Google Apps Script 接收資料
↓
Google 試算表保存內容
↓
網頁看板顯示,Discord 負責到期提醒
Google 試算表在這裡不是拿來手動填資料,而是一個容易查看的資料庫。Google Apps Script 則同時負責接收 GitHub Actions 傳來的內容、提供網頁資料、保存每個人的任務進度,以及發送 Discord 提醒。
整套流程正式運作後不會每天呼叫 AI(太花token了…)。AI 幫我把問題整理成規格、協助寫程式和檢查邏輯;每天的資料分類、名稱翻譯與新聞合併則使用固定規則。這樣不會花 token,結果也比較容易重現和追查。
接下來的七個分頁,就是我把「不要再錯過一次」拆成的七個回答。
第一頁:總覽先告訴我,今天最該注意什麼
我希望打開看板的第一眼,不需要先研究一整張活動表。
所以總覽最上方只有四個數字:進行中的活動、24 小時內會結束的項目、任務完成進度,以及今天新上架的商品數量。
再往下才是「快結束了,還沒完成」。這一塊就是從秋季遠足的教訓長出來的。只要任務還沒做完,而且已經進入結束前 48 小時,它就會被拉到首頁,不必等我主動想起來才去任務頁尋找。
總覽下面也會列出今天的新商品。它不是最緊急的資訊,所以排在提醒之後,但仍然能讓我每天順手掃過一次。
第二頁:GO 活動讓我看見時間,而不是只看見標題
活動頁解決的是「最近到底有哪些事情同時發生」。
Pokémon GO 的活動很多,有聚焦時刻、極巨化、團體戰、GO Pass、限時調查和其他活動。如果只依抓到資料的順序排列,我還是得一項一項讀。
所以看板會先把活動分成六類,再依類型、開始時間和結束時間排序。分類可以多選,想看團體戰和極巨化時,不必在其他活動裡慢慢找。
每一列除了活動名稱,也會顯示開始、結束與剩餘時間。還沒開始的活動會直接寫「未開始」,進行中的活動則用進度條讓時間感更直覺。桌面版使用表格,手機版會換成卡片,避免在小螢幕上左右拖曳一張很寬的表格。
活動結束後不需要我手動勾選,系統會把它移到封存。因為對我來說,活動不需要被「完成」,只需要在正確的時間出現在正確的位置。
第三頁:任務待辦記住進度,也在我忘記時提醒我
這一頁是整個看板最初的原因。
任務資料來自目前的田野調查、LeekDuck 活動頁上的限時調查,以及巴哈姆特情報文裡玩家整理的任務。每一組都顯示開始時間、結束時間、剩餘時間和完成比例。
限時調查通常要依順序完成,因此勾選第 N 項時,前面的步驟會一起勾起來;取消其中一步時,後面的進度也會一起取消。田野調查彼此獨立,則不套用這個規則。
修改會先留在畫面上,按下頁面最上方的「儲存」後才一次寫入。我不想讓每次點選都立刻送出請求,也希望離開頁面前能看見自己還有變更尚未保存。
如果真的不打算完成某個任務,也可以按「放棄」。它會移到封存、不再提醒,但仍然可以復原。因為我知道自己不只會忘記,也可能按錯,或隔天又改變主意。
最重要的是 Discord 提醒。任務結束前兩天,系統會先提醒一次;進入最後四小時後,如果仍未完成,就會每小時再提醒。
第四頁:既然每天都會開,就順便整理新商品
開始做看板時,我最在意的是活動和任務。做到一半,我想到自己平常也會找寶可夢聯名商品,卻一樣要在不同頁面來回查看。
於是我把 PChome 24h 最近上架的寶可夢商品也收進來。商品可以搜尋名稱,也能依價格或上架時間排序。看到有興趣的內容,可以直接按右上角的星號收藏。
這一頁只保留最近七天。看板不是商品歷史資料庫,我只想知道最近有什麼新東西;讓舊資料自然離開,反而能保持每天打開時的清楚感。
第五頁:新聞只出現一次,而且知道它從哪裡來
同一件寶可夢消息常常會被很多媒體報導。如果直接把所有來源都列出來,數量看起來很多,實際上卻一直在讀同一件事。
所以活動與新聞頁會先把相似消息合併,再標示還有幾家媒體也報導過。來源則分成官方、新聞和活動,可以多選篩選。
我想看的不是哪個來源發了最多篇,而是最近發生了哪些不同的事情。這個差異讓新聞頁從一條很長的 RSS 清單,變成我真的能快速瀏覽的摘要。
第六頁:我的最愛不是一個連結,而是一份當時的快照
新聞和商品都只保留七天,但有些內容我不想七天後就找不到。
因此星號收藏的不是單純的資料 ID,而是按下當下的內容快照。就算原始商品下架、新聞離開最近消息清單,我的最愛仍會保留當時的標題、來源、價格和網址,並標示它已經下架。
每個 Google 帳號都有自己的收藏和任務進度,手機與電腦可以同步,不同使用者又不會互相影響。對我來說,這一頁不是公開排行榜,而是看板裡真正屬於自己的小抽屜。
第七頁:封存讓結束的事情離開,也讓我記得為什麼開始
封存頁收納已結束的活動,以及已放棄或已到期的任務。
畫面裡的「限時調查:秋季遠足」,正是整個看板開始的原因。它已經結束,也不可能因為我做了這個網站就重新回來。但我希望下一次再遇到喜歡的特殊裝扮皮卡丘時,事情不會又在不同網站、聊天訊息和腦中的待辦之間消失。
封存不是單純把舊資料藏起來。它讓目前頁面保持乾淨,也留下事情怎麼結束的紀錄。主動放棄的任務會標示「不再提醒」,還沒過期時也能按下復原;自然結束的活動則留下結束時間。
AI 沒有替我記住活動,而是幫我做出適合自己的工具
這個看板不是 AI 每天替我閱讀 Pokémon 網站,再猜測我可能喜歡什麼。
我用 AI 的地方,是把一次很具體的遺憾變成可以實作的需求:我要看到剩餘時間、要保存任務進度、要在快到期時收到提醒,也要讓結束的事情自動離開。
AI 協助我規劃架構、拆分功能、撰寫和檢查程式;GitHub Actions、Python、Google 試算表與 Apps Script 則讓這套流程每天穩定運作。最後得到的不是一個什麼都知道的聊天機器人,而是一個非常偏向我自己使用習慣的小工具。
我還是可能忘記事情,朋友也還是可能提醒我。但現在,每天只要打開同一個入口,我就能知道哪些活動正在進行、什麼快要開始、任務還剩多少,以及哪一件事真的不能再拖。
秋季遠足的限時調查已經錯過了,希望下一次皮卡丘的限時調查任務不會再錯過。
專案原始碼
想了解這個寶可夢每日看板如何運作,或查看完整程式碼,可以前往 GitHub: