import sys import os import gzip import json sys.path.append('../py') from modules import ALL_MODULES from post import PostEncoder from modules.pixiv_app import PixivAppBase module = ALL_MODULES['pixiv_app'][0] module.init() search = PixivAppBase(module) target = sys.argv[1] with gzip.open(target, 'rb') as f: obj = json.loads(f.read()) mtime = os.path.getmtime(target) print(json.dumps(search.remake_post(obj['raw_responses'], mtime), cls=PostEncoder)) ''' log = Logger('deleted_posts.log') def rewrite_post(path): print(f'Rewriting post @ {path}') with gzip.open(path, 'rb') as f: obj = json.loads(f.read()) post = search.remake_post(obj['raw_responses'], obj['dates'][str(DateType.RETRIEVED.value)]) if not post: log.write(path) return #print(json.dumps(post, indent=4, cls=PostEncoder)) with gzip.open(path, 'wb') as f: f.write(json.dumps(post, cls=PostEncoder).encode('utf-8')) def dump_raw_response(path, target): print(f'Extracting raw_response from {path}') with gzip.open(path, 'rb') as f: obj = json.loads(f.read()) if 'api' in obj['raw_responses']: hasher = hashlib.new('sha256') data = json.dumps(json.loads(obj['raw_responses']['api'])).encode('utf-8') hasher.update(data) output = f'{target}/{hasher.hexdigest()}.json.gz' with gzip.open(output, 'wb+') as f: f.write(data) target = sys.argv[1] raw_responses = f'{target}/raw_responses' if not os.path.isdir(raw_responses): os.mkdir(raw_responses) for user in os.listdir(target): if user == 'raw_responses': continue for file in os.listdir(f'{target}/{user}'): if file.split('.')[-1] == 'gz': dump_raw_response(f'{target}/{user}/{file}', raw_responses) #rewrite_post(f'{target}/{user}/{file}') '''