-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuser.py
More file actions
97 lines (78 loc) · 2.94 KB
/
user.py
File metadata and controls
97 lines (78 loc) · 2.94 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
import json
from azure.cosmos.exceptions import CosmosResourceNotFoundError
class User:
def __init__(self, id_="", name="", email="", lang="en") -> None:
self.id_ = id_
self.name = name
self.email = email
self.lang = lang
self.upvote = ""
self.downvote = ""
self.last_active = 0
self.banned = 0
self.ban_message = ""
self.ban_reason = ""
self.ban_most_quoted = ""
self.ban_appeal = ""
self.report_post_id = ""
self.report_reason = ""
self.report_quote = ""
self.is_active = True
self.is_authenticated = False
self.is_anonymous = False
self.is_broadcaster = False
def get_id(self) -> str:
return self.id_
def uimport(self, user_container, user_id: str) -> None:
"""
Use this functions when sure the user is authenticated
"""
try:
user = user_container.read_item(user_id, partition_key=user_id)
except CosmosResourceNotFoundError:
return None
self.id_ = user["id"]
self.name = user["name"]
self.email = user["email"]
self.lang = user["lang"]
self.upvote = user["upvote"]
self.downvote = user["downvote"]
self.last_active = user["last_active"]
if user.get("ban"):
self.banned = 1
self.ban_message = user["ban"]["message"]
self.ban_reason = user["ban"]["reason"]
self.ban_most_quoted = user["ban"]["most_quoted"]
self.ban_appeal = user["ban"]["appeal"]
if user.get("report"):
self.report_post_id = user["report"]["post_id"]
self.report_reason = user["report"]["reason"]
self.report_quote = user["report"]["quote"]
self.is_active = not bool(self.banned)
self.is_authenticated = True
self.is_anonymous = False
self.is_broadcaster = False
return True
def uexport(self, user_container):
with open("samples/sample_user_part.json", "r", encoding="utf-8") as sample_user:
user = json.load(sample_user)
user["id"] = self.id_
user["name"] = self.name
user["email"] = self.email
user["lang"] = self.lang
user["upvote"] = self.upvote
user["downvote"] = self.downvote
user["last_active"] = self.last_active
if self.banned:
user["ban"] = {}
user["ban"]["message"] = self.ban_message
user["ban"]["reason"] = self.ban_reason
user["ban"]["most_quoted"] = self.ban_most_quoted
user["ban"]["appeal"] = self.ban_appeal
if self.report_post_id:
user["report"] = {}
user["report"]["post_id"] = self.report_post_id
user["report"]["reason"] = self.report_reason
user["report"]["quote"] = self.report_quote
user_container.upsert_item(user)
return True