samsung-stock-mastodon-bot/main.py

51 lines
1.7 KiB
Python
Raw Normal View History

2024-02-06 15:10:56 +09:00
import requests
from bs4 import BeautifulSoup
from dotenv import load_dotenv
from apscheduler.schedulers.background import BlockingScheduler
import os
load_dotenv()
def get_price(company_code):
url = f"https://finance.naver.com/item/main.nhn?code={company_code}"
result = requests.get(url)
bs_obj = BeautifulSoup(result.content, "html.parser")
no_today = bs_obj.find("p", {"class": "no_today"})
blind_now = no_today.find("span", {"class": "blind"})
return blind_now.text
def postStatus():
2024-02-06 15:18:37 +09:00
try:
company_code = '005930'
price = get_price(company_code).replace(",", "")
status = ""
2024-02-06 15:10:56 +09:00
2024-02-06 15:18:37 +09:00
if int(price) >= 80000:
try:
open("eightyk", "r")
status = f"현재 삼성전자의 주가는 {price}원 입니다."
except:
status = f"현재 삼성전자의 주가는 {price}원 입니다.\n드디어 팔만전자를 달성했습니다!"
open("eightyk", "x")
2024-02-06 15:18:37 +09:00
else:
delta_to_80000 = 80000 - int(price)
status = f"현재 삼성전자의 주가는 {price}원 입니다.\n팔만전자까지 {delta_to_80000}원 남았습니다."
2024-02-06 15:10:56 +09:00
2024-02-06 15:18:37 +09:00
data={
"i": os.getenv("ACCESS_TOKEN"),
"text": status,
"visibility": "public"
}
res = requests.post(f"https://{os.getenv('INSTANCE')}/api/notes/create", json=data)
print(res.status_code, res.json())
except:
print("Error...")
2024-02-06 15:10:56 +09:00
if __name__ == "__main__":
sched = BlockingScheduler()
sched.add_job(postStatus, "cron", hour="10,12,16", day_of_week="0-4", id="job1")
2024-02-06 15:10:56 +09:00
sched.start()
print("The bot is started!")