/price-tracker-bot

Primary LanguagePythonMIT LicenseMIT

簡介

price-tracker-bot is a telegram bot that can trace the price on momoshop.


功能

  • 降價通知 降價通知
  • 上架通知 上架通知
  • 收藏商品 收藏商品
  • 清空已收藏商品 清空已收藏商品
  • 顯示目前已收藏商品 顯示目前已收藏商品

Demo Bot

Telegram bot search @momo_price_tracker_bot


環境建置

database

  • PostgreSQL 10

執行 sqls folder底下放置的SQL file,或者可以自行使用其他db migration 工具

環境變數

環境變數 說明
DB_HOST Database host
DB_NAME Database name
DB_USER Database user
DB_PASSWORD Database user's password
BOT_TOKEN Telegram bot token
WEBHOOK_URL(Optional) If you use Heroku url like this https://{AppName}.herokuapp.com
PERIOD_HOUR Resync latest good's price time period
TELEGRAM_BOT_MODE default: polling, [polling,webhook]

Telegram bot

加入 telegram botfather並建立一個機器人,取得 token,後續須設定環境變數 BOT_TOKEN

Bot 接收訊息方式

設定環境變數 TELEGRAM_BOT_MODE

  • polling 測試使用上方便,不需要對外網址,效能上較webhook差
  • webhook 如果要在local 測試 webhook,可使用 ngrok

heroku

如果是使用免費方案,服務太久沒有收到request,就會被暫時關閉,如果要長時間維持服務,需要定時發送一些request保持服務運作。 Scheduler新增curl --location --request GET 'https://{AppName}.herokuapp.com',把AppName替換成Heroku上建立的application name

預期中的Add-ons


deploy

Heroku git deploy


執行方式

python3 App.py

Build simple local postgres env (optional)

docker run -d -p 5432:5432 --name mypostgres --restart always -v postgresql-data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=1234 -d postgres:10.17-alpine3.14

機器人指令


對話輸入momo商品網址可直接加入追蹤

  • /start 顯示目前所支援的指令
  • /my 顯示目前所有追蹤物品清單,以及當下所記錄價格
  • /clear 清除目前所有追蹤物品清單

Command menu

You need to say these to @BotFather.

Bot can show command menu