55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
import json
|
|
import os
|
|
|
|
data_dir = 'prefetched'
|
|
|
|
def set_workdir(dir):
|
|
global data_dir
|
|
data_dir = str(dir)
|
|
|
|
def get_workdir():
|
|
global data_dir
|
|
return data_dir
|
|
|
|
class SongTags:
|
|
def __init__(self, title='', artist='', album=''):
|
|
self.artist = artist
|
|
self.title = title
|
|
self.album = album
|
|
|
|
|
|
def get_data(name):
|
|
file_path = os.path.join(data_dir, f"{name}.json")
|
|
try:
|
|
with open(file_path, 'r') as file:
|
|
data = json.load(file)
|
|
return data
|
|
except FileNotFoundError:
|
|
print(f"File {name}.json not found.")
|
|
return {}
|
|
except json.JSONDecodeError:
|
|
print(f"Error decoding JSON from {name}.json.")
|
|
return {}
|
|
|
|
def save_data(data, name):
|
|
def remove_available_markets(obj):
|
|
if isinstance(obj, dict):
|
|
return {key: remove_available_markets(value) for key, value in obj.items() if key != 'available_markets'}
|
|
elif isinstance(obj, list):
|
|
return [remove_available_markets(item) for item in obj]
|
|
else:
|
|
return obj
|
|
|
|
data = remove_available_markets(data)
|
|
|
|
os.makedirs(data_dir, exist_ok=True)
|
|
|
|
file_path = os.path.join(data_dir, f"{name}.json")
|
|
with open(file_path, 'w') as file:
|
|
json.dump(data, file, indent=4, ensure_ascii=False)
|
|
|
|
|
|
print(f"Data saved to {file_path}.")
|
|
|
|
|
|
|