buypeeb/settings.py

53 lines
1.4 KiB
Python
Raw Normal View History

import json, os, pickle
from os import path
import functions
from listing import YahooAuctionsItem
class BuypeebSettings:
def __init__(self, location: str):
self.updateInterval = 10 * 60
self.favouriteUpdateInterval = 5 * 60
self.updateIntervalCritical = 60
self.favouriteUpdateIntervalCritical = 30
self.watchlist = {}
self.jwatchlist = {}
self.location = location
def save(self):
for id, item in self.watchlist.items():
self.jwatchlist[id] = {
"name": item.name,
"original_name": item.original_name,
"favourite": False
}
self.watchlist = {}
print(self.__dict__)
json.dump(self.__dict__, open(self.location + "config.json", 'w'))
def load(self):
if not path.isfile(self.location + "config.json"):
os.makedirs(self.location, 0o755, True)
open(self.location + "config.json", 'x')
else:
try:
j = json.load(open(self.location + "config.json", 'r'))
for key in j:
setattr(self, key, j[key])
for key in self.jwatchlist:
self.watchlist[key] = YahooAuctionsItem(None, from_json = self.jwatchlist[key], id = key)
2020-08-21 10:35:53 +00:00
self.jwatchlist = {}
2020-08-21 10:35:53 +00:00
except:
raise
print("Couldn't load settings - using defaults")
def watch(self, url: str, name: str = None):
id = functions.id_from_url(url)
self.watchlist[id] = YahooAuctionsItem(url, id, name)
for item in self.watchlist.values():
print(item.name, item.price)