-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmeta_data_manager.py
More file actions
48 lines (39 loc) · 1.33 KB
/
Copy pathmeta_data_manager.py
File metadata and controls
48 lines (39 loc) · 1.33 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
# coding: utf-8
class UserMetaDataManager(object):
def __init__(self):
self.__meta_data = {}
def append_user_meta_data(
self,
session_id,
user_name=None,
user_picture_url=None
):
self.__meta_data[session_id] = UserMetaData(
user_name,
user_picture_url
)
def update_meta_data(self, session_id, key, value):
if session_id not in self.__meta_data.keys():
raise
self.__meta_data[session_id].__dict__[key] = value
def remove_user_meta_data(self, session_id):
if session_id in self.__meta_data.keys():
self.__meta_data.pop(session_id)
def get_user_meta_data(self, session_id):
if session_id in self.__meta_data.keys():
return self.__meta_data[session_id]
def get_user_meta_data_by_state(self, state):
for k in self.__meta_data.keys():
user_meta_data = self.__meta_data[k]
if 'state' not in user_meta_data.__dict__.keys():
continue
if user_meta_data.state == state:
return user_meta_data
class UserMetaData(object):
def __init__(
self,
user_name,
user_picture_url
):
self.user_name = user_name
self.user_picture_url = user_picture_url