new
This commit is contained in:
parent
be789cb732
commit
c23eb924c3
85 changed files with 7090 additions and 253 deletions
49
diff.py
49
diff.py
|
|
@ -1,22 +1,37 @@
|
|||
# diff.py
|
||||
import csv
|
||||
import logging
|
||||
from typing import Dict, List
|
||||
|
||||
def read_csv_to_dict(filename):
|
||||
d = {}
|
||||
with open(filename, newline='', encoding='utf-8') as f:
|
||||
reader = csv.DictReader(f)
|
||||
for row in reader:
|
||||
d[row["Artist Name"]] = row
|
||||
return d
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def detect_changes(old_data, new_data):
|
||||
|
||||
def read_csv_to_dict(filename: str) -> Dict[str, Dict[str, str]]:
|
||||
data = {}
|
||||
try:
|
||||
with open(filename, newline="", encoding="utf-8") as f:
|
||||
reader = csv.DictReader(f)
|
||||
for row in reader:
|
||||
if "Artist Name" in row and row["Artist Name"]:
|
||||
data[row["Artist Name"]] = row
|
||||
except FileNotFoundError:
|
||||
logger.warning(f"CSV file not found: {filename}")
|
||||
except Exception as e:
|
||||
logger.error(f"Error reading CSV file {filename}: {e}", exc_info=True)
|
||||
return data
|
||||
|
||||
|
||||
def detect_changes(
|
||||
old_data: Dict[str, Dict[str, str]], new_data: Dict[str, Dict[str, str]]
|
||||
) -> List[str]:
|
||||
changes = []
|
||||
|
||||
old_keys = set(old_data.keys())
|
||||
new_keys = set(new_data.keys())
|
||||
|
||||
removed = old_keys - new_keys
|
||||
added = new_keys - old_keys
|
||||
common = old_keys & new_keys
|
||||
removed = sorted(list(old_keys - new_keys))
|
||||
added = sorted(list(new_keys - old_keys))
|
||||
common = sorted(list(old_keys & new_keys))
|
||||
|
||||
for artist in removed:
|
||||
changes.append(f"❌ Removed: **{artist}**")
|
||||
|
|
@ -28,15 +43,15 @@ def detect_changes(old_data, new_data):
|
|||
old_row = old_data[artist]
|
||||
new_row = new_data[artist]
|
||||
|
||||
if old_row["URL"] != new_row["URL"]:
|
||||
if old_row.get("URL") != new_row.get("URL"):
|
||||
changes.append(f"🔗 Link changed for **{artist}**")
|
||||
if old_row["Credit"] != new_row["Credit"]:
|
||||
if old_row.get("Credit") != new_row.get("Credit"):
|
||||
changes.append(f"✏️ Credit changed for **{artist}**")
|
||||
if old_row["Links Work"] != new_row["Links Work"]:
|
||||
if old_row.get("Links Work") != new_row.get("Links Work"):
|
||||
changes.append(f"🔄 Links Work status changed for **{artist}**")
|
||||
if old_row["Updated"] != new_row["Updated"]:
|
||||
if old_row.get("Updated") != new_row.get("Updated"):
|
||||
changes.append(f"🕒 Updated date changed for **{artist}**")
|
||||
if old_row["Best"] != new_row["Best"]:
|
||||
if old_row.get("Best") != new_row.get("Best"):
|
||||
changes.append(f"⭐ Best flag changed for **{artist}**")
|
||||
|
||||
return changes
|
||||
return changes
|
||||
Loading…
Add table
Add a link
Reference in a new issue