summaryrefslogtreecommitdiff
path: root/src/portal/py/tests/rewrite_post.py
blob: f00cfc7e07928d0a41db69af8968ae673a2c14e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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}')
'''