def getResumePoint(self): from codecs import open as co if not xbmcvfs.exists(self.resumedb) or self.content == 2: return {} with co(self.resumedb, 'r') as fp: items = pickle.load(fp) self.resume = items.get(self.asin, {}).get('resume') fp.close() return items
def saveResumePoint(self): from codecs import open as co if self.content == 2: return items = self.getResumePoint() with co(self.resumedb, 'wb+') as fp: if self.watched and self.asin in items.keys(): del items[self.asin] else: items.update({self.asin: {'resume': self.video_lastpos}}) pickle.dump(items, fp, 2) fp.close()
def getResumePoint(self): from codecs import open as co if not xbmcvfs.exists(self.resumedb) or self.content == 2: return {} with co(self.resumedb, 'rb') as fp: try: items = pickle.load(fp) except (KeyError, pickle.UnpicklingError): items = {} self.resume = items.get(self.asin, {}).get('resume', 0) fp.close() return items
def saveResumePoint(self): from codecs import open as co if self.content == 2: return items = self.getResumePoint() with co(self.resumedb, 'w+') as fp: if self.watched and self.asin in items.keys(): del items[self.asin] else: items.update({self.asin: {'resume': self.video_lastpos}}) pickle.dump(items, fp, 2) fp.close()
def LogJSON(o, url): from json import dump if not o: return from codecs import open as co from datetime import datetime try: LogJSON.counter += 1 except: LogJSON.counter = 0 with co(OSPJoin(g.DATA_PATH, '{}_{}.json'.format(datetime.now().strftime('%Y%m%d_%H%M%S%f'), LogJSON.counter)), 'w+', 'utf-8') as f: f.write('/* %s */\n' % url) dump(o, f, sort_keys=True, indent=4)
def LogJSON(o, comment=None, optionalName=None): from json import dump if (not o) or (not s.dumpJSON): return from codecs import open as co from datetime import datetime try: LogJSON.counter += 1 except: LogJSON.counter = 0 fn = '{}_{}{}.json'.format(datetime.now().strftime('%Y%m%d_%H%M%S%f'), LogJSON.counter, '_' + optionalName if optionalName else '') with co(OSPJoin(g.DATA_PATH, fn), 'w+', 'utf-8') as f: if comment: f.write('/* %s */\n' % comment) dump(o, f, sort_keys=True, indent=4) Log('Saved JSON data with filename “{}”'.format(fn), Log.DEBUG)
from codecs import open as co FN1 = 'old.json' # Oldest UUID achievement JSON file FN2 = 'new.json' # Newest UUID achievement JSON file FNOUT = 'merged.json' # Output # Hic sunt dracones ################### # There be dragons #################### def Merge(o, n): for k in n.keys(): if k not in o: o[k] = n[k] elif isinstance(n[k], dict): Merge(o[k], n[k]) else: # String/bool if 'done' == k: # Bool o[k] = o[k] or n[k] # Strings are timestamps, so we keep the oldest with co(FN1, 'r', 'utf-8') as f: data = json.load(f) with co(FN2, 'r', 'utf-8') as f: Merge(data, json.load(f)) with co(FNOUT, 'w+', 'utf-8') as f: json.dump(data, f, indent=2, sort_keys=True)