dokku-comp

This commit is contained in:
2023-09-11 23:04:53 +03:00
parent 4be2dc3a45
commit b9a98f1e56
25 changed files with 646 additions and 460 deletions

View File

@@ -10,8 +10,9 @@ storage = Redis.from_url(REDIS_URL)
# хранение необходимой информации о пользователях
Profile = ProfileObj(storage)
# достаёт из хранилища jsonы по маске и количеству
def scan(match='usr-*', count=100):
def scan(match="usr-*", count=100):
cursor = 0
keys = []
r = storage
@@ -27,9 +28,9 @@ def scan(match='usr-*', count=100):
# Parse the JSON data from each value
items = []
for value in values:
value_str = value.decode('utf-8')
value_str = value.decode("utf-8")
i = json.loads(value_str)
items.append(i)
print(f'scan found {len(items)} items')
print(f"scan found {len(items)} items")
return keys, items
return keys, items

View File

@@ -2,38 +2,33 @@ import json
class Profile:
def __init__(self, storage):
self.storage = storage
def create(self, member_id, msg=None):
s = {
"id": member_id,
"parents": [],
"children": [],
"chats": []
}
s = {"id": member_id, "parents": [], "children": [], "chats": []}
if msg:
if 'from' in msg:
sender = msg.get('from')
s["mention"] = sender.get('username')
s["name"] = f"{sender['first_name']} {sender.get('last_name', '')}".strip()
if "from" in msg:
sender = msg.get("from")
s["mention"] = sender.get("username")
s[
"name"
] = f"{sender['first_name']} {sender.get('last_name', '')}".strip()
if 'chat' in msg:
chat_id = str(msg['chat']['id'])
if chat_id not in s['chats']:
if "chat" in msg:
chat_id = str(msg["chat"]["id"])
if chat_id not in s["chats"]:
s["chats"].append(chat_id)
self.storage.set(f'usr-{member_id}', json.dumps(s))
self.storage.set(f"usr-{member_id}", json.dumps(s))
return s
def save(self, s):
self.storage.set(f'usr-{s["id"]}', json.dumps(s))
def get(self, member_id, msg=None):
data = self.storage.get(f'usr-{member_id}')
data = self.storage.get(f"usr-{member_id}")
if data is None:
r = self.create(member_id, msg)
else: