33 lines
793 B
Python
33 lines
793 B
Python
from redis import Redis
|
|
|
|
|
|
class EventAttr:
|
|
event_attr = dict()
|
|
|
|
def __init__(self, rdb: Redis):
|
|
self.rdb = rdb
|
|
|
|
def get_event_attr(self, key):
|
|
attr = self.event_attr.get(key)
|
|
if not attr:
|
|
self.event_attr[key] = self.rdb.smembers(key) or set()
|
|
return self.event_attr[key]
|
|
|
|
def set_event_attr(self, key, *data):
|
|
self.rdb.sadd(key, *data)
|
|
self.event_attr[key] = data
|
|
|
|
def check_attr(self, db, data):
|
|
event_name = data.get('#event_name')
|
|
if not event_name:
|
|
return
|
|
|
|
key = f'{db}_event_{event_name}'
|
|
|
|
attr = self.get_event_attr(key)
|
|
data_attr = set(data)
|
|
extra_attr = data_attr - attr
|
|
|
|
if extra_attr:
|
|
self.set_event_attr(key, *extra_attr)
|