android_mt6572_jiabo/lineage/slackbot/plugins/db.py
2025-09-05 16:56:03 +08:00

49 lines
1.4 KiB
Python

from __future__ import print_function
from __future__ import unicode_literals
from datetime import datetime
from mongoengine import connect, Document, StringField, DateTimeField
import json
class _Data(Document):
plugin = StringField(required=True)
key = StringField(required=True, unique_with="plugin")
value = StringField(required=True)
date = DateTimeField(default=datetime.now)
connect("slackbot")
class DataStore(object):
@classmethod
def get(cls, plugin, key, default=None):
'''Given a key, get its value'''
data = _Data.objects(plugin=plugin, key=key).first()
if data:
return json.loads(data.value)
else:
return default
@classmethod
def save(cls, plugin, key, value):
'''Takes a key:val pair and stores it
value can be anything that is json serializable
'''
data = _Data.objects(plugin=plugin, key=key).first()
if data:
data.value = json.dumps(value)
data.save()
else:
data = _Data(plugin=plugin, key=key, value=json.dumps(value)).save()
return True
@classmethod
def delete(cls, plugin, key):
'''Takes a key and deletes it'''
data = _Data.objects(plugin=plugin, key=key)
if data:
data.delete()
return True
else:
return False