- bot 註冊(將資訊存入DB 並每日抓取發送)
- 發送每日收盤資訊(個股收盤價、三大法人買賣超、三大法人個股買賣超)
- 每日ROLEX錶店價格整理
-
根據不同USER 發送不同追蹤的股票資訊
- /start 開始訂閱機器人(會收到訊息)
- /end 取消訂閱機器人
pip install python-telegram-bot --upgrade
pip install configparser
pip install dataframe-image
pip install tabulate
pip install tabulate
pip install prettytable
pip install pyTelegramBotAPI
pip install fredapi
[DEFAULT]
TOKEN = YOUR BOT TOKEN
DATABASE = YOUR BOT DATABASE
USER = YOUR BOT USER
PASSWORD = YOUR BOT PASSWORD
PORT = YOUR BOT PORT
FRED_API_KEY=YOUR FRED API KEY 自己去fred網站辦帳號拿KEY
token改為這樣取 然後heroku要設定 Settings -> Config Vars -> 新增一個key = TOKEN ,value = 你的TOKEN 填寫自己bot的TOKEN
heroku上面的是使用SSL連線 不需要那麼多資訊 只要Heroku上面的url就行(因為在同一包內)
token = os.environ['TOKEN']
databaseUrl = os.environ['DATABASE_URL']
heroku Scheduled 是使用UTC時間 記得要轉換
fileName | Schedule說明 | 執行時間 |
---|---|---|
sendStockDayPrice.py | 個股收盤價 | 每天14:00 |
sendThree.py | 三大法人買賣超 | 每天15:00 |
sendStockBuySell.py | 三大法人個股買賣超 | 每天16:30 |
sendYfinance.py | 美股三大指數收盤 | 每天08:30 |
sendUsaStock.py | 美股個股收盤 | 每天08:30 |
sendCrypto.py | 加密貨幣價格 | 每天08:30 |
在裡面看到可以使用這種方法攔截接收訊息 就不用再做一個webhook了
@bot.message_handler(commands=['start'])
INSERT INTO public.follow_stock(user_id,stock_code)
VALUES
(1, '2330'),
(1, '2377'),
(1, '2308'),
(1, '2382'),
(1, '2886'),
(1, '2603'),
(1, '2609'),
(1, '2606'),
(1, '2615');
);
INSERT INTO public.system_parameter(name,value,update_on)
VALUES ('LAST_FRED_SEND_DATE', '0', now())
,('LAST_US_MARKET_SEND_DATE', '0', now())
,('LAST_US_STOCK_SEND_DATE', '0', now())
,('LAST_CRYPTO_SEND_DATE', '0', now())
update system_parameter set value = '0' where name = 'LAST_CRYPTO_SEND_DATE';
update system_parameter set value = '0' where name = 'LAST_US_MARKET_SEND_DATE';
update accounts set telegram_push_crypto_enabled
= true where telegram_push_enabled = true;
- 有時三大法人資料會延遲 導致沒抓到資料 預計解法為 各個排成都要有一個當日有無發送成功的紀錄(未成功就要一直發) 問題為不想一直跑排程
- 根據個人去區分follow_stock