From c7ee78a2c536dc37393629f688a5f043088f4971 Mon Sep 17 00:00:00 2001 From: Sablin Sergey Date: Fri, 31 Jan 2020 00:49:29 +0300 Subject: [PATCH] User class updates base.json file instead of rewritting it --- Python-bot/data/base.json | 2 +- Python-bot/server.py | 6 ++---- Python-bot/user.py | 24 +++++++++++++++++++++--- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Python-bot/data/base.json b/Python-bot/data/base.json index d3abb84..a8d2533 100644 --- a/Python-bot/data/base.json +++ b/Python-bot/data/base.json @@ -1 +1 @@ -{"205589546": {"2020-01-29|13:39:28.778879": "a", "2020-01-29|13:39:35.527274": "aa", "2020-01-29|13:39:40.711174": "aaa"}} \ No newline at end of file +{"109297779": {"2020-01-31|00:44:18.564365": "U", "2020-01-31|00:45:24.275123": "U", "2020-01-31|00:45:26.304239": "I", "2020-01-31|00:45:31.617543": "T"}} \ No newline at end of file diff --git a/Python-bot/server.py b/Python-bot/server.py index ef2d086..8b4966b 100644 --- a/Python-bot/server.py +++ b/Python-bot/server.py @@ -4,6 +4,7 @@ import datetime from user import UserList + class Server: group_id = 191177272 access_token = 'access_token=f068c796542cba0f4dbdd0f6e39ba656a489731d36cfdcbdf7cee30de822ae000aa9e1aa8293bc61d77c7' @@ -21,7 +22,6 @@ def getLongPollServer(self): self.server = data['response']['server'] self.key = data['response']['key'] self.ts = data['response']['ts'] - # print(self.server, self.key, self.ts) def simple_request(self): method = self.server + '?act=a_check&key=' + self.key + '&ts=' + self.ts + "&wait=25" @@ -30,7 +30,6 @@ def simple_request(self): def simple_loop(self): reply = json.loads(self.simple_request().text) self.ts = reply['ts'] - # print(json.dumps(reply, indent='\t')) if reply['updates']: message = reply['updates'][0]['object']['message']['text'] user_id = reply['updates'][0]['object']['message']['from_id'] @@ -38,8 +37,7 @@ def simple_loop(self): random_id = random.randint(0, 100) method = 'messages.send?' + 'user_id=' + str(user_id) + '&random_id=' + str(random_id) \ + '&message=' + message - r = requests.get("&".join([Server.body + method, Server.v, Server.access_token])) - print("&".join([Server.body + method, Server.v, Server.access_token])) + requests.get("&".join([Server.body + method, Server.v, Server.access_token])) self.simple_loop() diff --git a/Python-bot/user.py b/Python-bot/user.py index 8bf1afd..0d6fe46 100644 --- a/Python-bot/user.py +++ b/Python-bot/user.py @@ -1,3 +1,4 @@ +import ast import json @@ -20,8 +21,9 @@ class UserList: def __init__(self, data_dir="./data/base.json"): self.data_dir = data_dir f = open(data_dir, 'r') - for key, value in json.loads(f.read()).items(): - self.all_users[key] = User(value) + if f.seek(0, 0): + for key, value in json.loads(f.read()).items(): + self.all_users[key] = User(value) f.close() def add_rec(self, user_id, user_events=None): @@ -34,6 +36,22 @@ def add_rec(self, user_id, user_events=None): self.update_file() def update_file(self): + f = open(self.data_dir, 'r') + old_users = f.read() + if old_users: + old_users = ast.literal_eval(old_users) + else: + old_users = dict() + f.close() + new_users = self.all_users + for user in old_users: + if user not in self.all_users: + new_users[user] = old_users[user] + else: + # new_users[user] = dict(old_users[user]).update(dict(self.all_users[user])) + new_users[user] = {**old_users[user], **self.all_users[user]} + print(new_users) f = open(self.data_dir, 'w') - f.write(json.dumps(self.all_users)) + if not new_users == {}: + f.write(json.dumps(new_users)) f.close()