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}')
'''
|