kuulatoribot

📅 2023-10-17T14:08:59.543Z
👁️ 156 katselukertaa
🔓 Julkinen


import requests
import os
import json

from bs4 import BeautifulSoup
from time import sleep

discord_webhook = os.environ["WEBHOOK"]

def send_discord_notification(item):
    discord_embed = data = {
        "content" : "New kuulatori item just dropped!",
        "username" : "Kuulatori watcher"
    }

    discord_embed["embeds"] = [
        {
            "description" : item["price"] + " - https://kuulatori.fi/item/" + item["id"],
            "title" : item["title"]
        }
    ]


    result = requests.post(discord_webhook, json = discord_embed)

    try:
        result.raise_for_status()
    except requests.exceptions.HTTPError as err:
        print(err)
    else:
        print("Payload delivered successfully, code {}.".format(result.status_code))

def check_listings():
    f = open('data.json')
    database = json.load(f)
    f.close()

    r = requests.get("https://kuulatori.fi/")
    soup = BeautifulSoup(r.text, 'html.parser')

    listings = soup.find_all("div", class_="panel panel-default panel-item")

    for listing in listings:
        item = {}
        item["id"] = listing.find_all(href=True)[0]["href"].replace("/item/", "")
        item["title"] = listing.find("a").text
        item["price"] = listing.find("strong").text

        if not item["id"] in database:
            print(item)
            database[item["id"]] = item
            with open('data.json', 'w') as f:
                json.dump(database, f)
            send_discord_notification(item)

while True:
    try:
        check_listings()
    except Exception as e: print(e)
    sleep(60*5)