forked from Kylmakalle/tgvkbot
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathpickle2json.py
More file actions
executable file
·116 lines (104 loc) · 3.36 KB
/
Copy pathpickle2json.py
File metadata and controls
executable file
·116 lines (104 loc) · 3.36 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# A simple chat client for matrix.
# This sample will allow you to connect to a room, and send/recieve messages.
# Args: host:port username password room
# Error Codes:
# 1 - Unknown problem has occured
# 2 - Could not find the server.
# 3 - Bad URL Format.
# 4 - Bad username/password.
# 11 - Wrong room format.
# 12 - Couldn't find room.
import sys
import logging
import time
import datetime
import json
import os
import pickle
import traceback
import vk
#import ujson
import config as conf
def get_exception_traceback_descr(e):
tb_str = traceback.format_exception(etype=type(e), value=e, tb=e.__traceback__)
result=""
for msg in tb_str:
result+=msg
return result
def save_json(data):
global log
log.debug("=start function=")
log.debug("save to data_file:%s"%conf.data_file)
try:
#data_file=open(conf.data_file,"wb")
data_file=open(conf.data_file,"w")
except Exception as e:
log.error(get_exception_traceback_descr(e))
log.error("open(%s) for writing"%conf.data_file)
return False
try:
data_file.write(json.dumps(data, indent=4, sort_keys=True,ensure_ascii=False))
#pickle.dump(data,data_file)
data_file.close()
except Exception as e:
log.error(get_exception_traceback_descr(e))
log.error("json.dump to '%s'"%conf.data_file)
print(json.dumps(event, indent=4, sort_keys=True,ensure_ascii=False))
sys.exit(1)
return False
return True
def load_pickle():
global log
log.debug("=start function=")
tmp_data_file=conf.data_file
if os.path.exists(tmp_data_file):
log.debug("Загружаем файл промежуточных данных: '%s'" % tmp_data_file)
data_file = open(tmp_data_file,'rb')
try:
data=pickle.load(data_file)
data_file.close()
log.debug("Загрузили файл промежуточных данных: '%s'" % tmp_data_file)
if not "users" in data:
log.warning("Битый файл сессии - сброс")
return None
except Exception as e:
log.error(get_exception_traceback_descr(e))
log.warning("Битый файл сессии - сброс")
return None
else:
log.warning("Файл промежуточных данных не существует")
return None
#debug_dump_json_to_file("debug_data_as_json.json",data)
return data
def main():
data=load_pickle()
for user in data["users"]:
item=data["users"][user]
if "vk" in item and "session" in item["vk"]:
print(item["vk"]["session"])
del item["vk"]["session"]
# print(json.dumps(data, indent=4, sort_keys=True,ensure_ascii=False))
save_json(data)
if __name__ == '__main__':
log= logging.getLogger("pickle2json")
if conf.debug:
log.setLevel(logging.DEBUG)
else:
log.setLevel(logging.INFO)
# create the logging file handler
fh = logging.FileHandler(conf.log_path)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s:%(lineno)d - %(funcName)s() %(levelname)s - %(message)s')
fh.setFormatter(formatter)
if conf.debug:
# логирование в консоль:
#stdout = logging.FileHandler("/dev/stdout")
stdout = logging.StreamHandler(sys.stdout)
stdout.setFormatter(formatter)
log.addHandler(stdout)
# add handler to logger object
log.addHandler(fh)
log.info("Program started")
main()
log.info("Program exit!")