Skip to content

exinfinite/readmoo_activity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Readmoo 優惠監控與郵件通知系統

這是一個自動化腳本,透過 Google Gemini CLI 和 Playwright 來抓取 Readmoo 讀墨電子書平台的每日與每週優惠書籍資訊,並將結果透過電子郵件發送。

整個流程由 GitHub Actions 自動化執行,無需手動操作。

主要功能

  • 自動抓取資訊:使用 Gemini CLI 結合 Playwright MCP,模擬瀏覽器操作,訪問 Readmoo 網站並取得最新的優惠書籍名稱與日期。
  • 定時執行:透過 GitHub Actions 設定排程 (cron),每天凌晨1點 (UTC+8 時區) 自動執行一次抓取與郵件發送任務。
  • 郵件通知:執行完畢後,使用 swaks 工具將抓取到的優惠資訊格式化為 HTML 郵件並發送給指定收件人。
  • 手動觸發:除了定時任務,也允許在 GitHub Actions 頁面手動觸發 (workflow_dispatch)。

技術棧

工作流程 (.github/workflows/main.yml)

  1. 觸發:排程任務 (0 17 * * *) 或手動觸發。
  2. 環境設定:在 ubuntu-latest 環境中,安裝 Node.js、swaks 以及 npm 依賴套件。
  3. 執行查詢
    • 執行 npx gemini 命令,並傳入一個 Prompt,指示它使用 Playwright 查詢 Readmoo 網站。
    • Prompt 的內容是要求 Gemini 找出「本日優惠」與「本週優惠」的書名和日期。
    • 將 Gemini 的輸出結果轉換為 HTML 格式。
  4. 發送郵件
    • 呼叫 send_mail.sh 腳本。
    • 該腳本會讀取 GitHub Secrets 中預存的 SMTP 伺服器設定與收件人資訊,並透過 swaks 發送 HTML 郵件。

設定

要讓此專案正常運作,需要在專案的 GitHub Repository 中設定以下 Secrets:

  • GEMINI_API_KEY:你的 Google Gemini API 金鑰。
  • SMTP_SERVER:你的 SMTP 郵件伺服器地址 (例如:smtp.office365.com)。
  • SMTP_PORT:SMTP 伺服器端口 (例如:587)。
  • SMTP_USER:你的郵件帳號。
  • SMTP_PASS:你的郵件應用程式密碼 (注意:通常不是登入密碼)。
  • SMTP_EHLO_DOMAIN:你的郵件伺服器 EHLO 域名 (通常是你的郵箱域名)。
  • MAIL_TO:收件人的電子郵件地址。

腳本說明

send_mail.sh

這是一個用來發送郵件的 Bash 腳本。它會從環境變數中讀取所有必要的 SMTP 設定和郵件內容,然後使用 swaks 工具來執行發送。在執行前,腳本會檢查 swaks 是否已安裝以及所有必要的環境變數是否都已設定。

About

Readmoo 優惠監控與郵件通知系統

Resources

Stars

Watchers

Forks

Contributors

Languages