47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import time
|
||
|
||
from downloader import download_zip_and_extract_html, download_xlsx
|
||
from parser import generate_csv
|
||
from diff import read_csv_to_dict, detect_changes
|
||
from archive import archive_all_urls
|
||
from notify import send_discord_message
|
||
from utils import hash_file
|
||
|
||
last_csv_hash = None
|
||
last_csv_data = {}
|
||
|
||
def update_loop():
|
||
global last_csv_hash, last_csv_data
|
||
|
||
while True:
|
||
try:
|
||
download_zip_and_extract_html()
|
||
download_xlsx()
|
||
generate_csv()
|
||
|
||
current_hash = hash_file("artists.csv")
|
||
current_data = read_csv_to_dict("artists.csv")
|
||
|
||
if last_csv_hash is None:
|
||
print("ℹ️ Initial CSV hash stored.")
|
||
elif current_hash != last_csv_hash:
|
||
print("🔔 CSV has changed! Archiving URLs...")
|
||
|
||
changes = detect_changes(last_csv_data, current_data)
|
||
if changes:
|
||
message = "**CSV Update Detected:**\n" + "\n".join(changes)
|
||
send_discord_message(message)
|
||
else:
|
||
print("ℹ️ No detectable content changes found.")
|
||
|
||
archive_all_urls()
|
||
else:
|
||
print("ℹ️ CSV unchanged. No archiving needed.")
|
||
|
||
last_csv_hash = current_hash
|
||
last_csv_data = current_data
|
||
|
||
except Exception as e:
|
||
print(f"⚠️ Error updating files: {e}")
|
||
|
||
time.sleep(600)
|