198 lines
5.5 KiB
Python
198 lines
5.5 KiB
Python
from datetime import datetime
|
|
|
|
from mongoengine import Document
|
|
from mongoengine.fields import (
|
|
BooleanField,
|
|
DateTimeField,
|
|
DictField,
|
|
DynamicField,
|
|
IntField,
|
|
ListField,
|
|
LongField,
|
|
StringField,
|
|
)
|
|
|
|
|
|
class SnowflakeField(LongField):
|
|
pass
|
|
|
|
|
|
class Autopurge(Document):
|
|
guild = SnowflakeField(required=True)
|
|
channel = SnowflakeField(required=True)
|
|
delay = IntField(min_value=1, max_value=300, default=30)
|
|
admin = SnowflakeField(required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Autoreact(Document):
|
|
guild = SnowflakeField(required=True)
|
|
channel = SnowflakeField(required=True)
|
|
reactions = ListField(field=StringField())
|
|
admin = SnowflakeField(required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Ban(Document):
|
|
active = BooleanField(default=True)
|
|
admin = SnowflakeField(required=True)
|
|
user = SnowflakeField(required=True)
|
|
username = StringField(required=True)
|
|
discrim = IntField(min_value=1, max_value=9999, required=True)
|
|
duration = IntField(min_value=1, max_value=744, required=False)
|
|
guild = SnowflakeField(required=True)
|
|
type = StringField(default="perm", max_length=4, required=True)
|
|
reason = StringField(max_length=100, required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Config(Document):
|
|
key = StringField(required=True)
|
|
value = DynamicField(required=True)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Guess(Document):
|
|
correct = BooleanField(default=False)
|
|
guess = StringField(max_length=800, required=True)
|
|
user = SnowflakeField(required=True)
|
|
|
|
meta = {"db_alias": "ctc2"}
|
|
|
|
|
|
class Joke(Document):
|
|
rid = StringField()
|
|
body = StringField()
|
|
title = StringField()
|
|
created_utc = DateTimeField()
|
|
over_18 = BooleanField()
|
|
score = IntField()
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Kick(Document):
|
|
admin = SnowflakeField(required=True)
|
|
guild = SnowflakeField(required=True)
|
|
reason = StringField(max_length=100, required=True)
|
|
user = SnowflakeField(required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Lock(Document):
|
|
active = BooleanField(default=True)
|
|
admin = SnowflakeField(required=True)
|
|
channel = SnowflakeField(required=True)
|
|
duration = IntField(min_value=1, max_value=300, default=10)
|
|
guild = SnowflakeField(required=True)
|
|
reason = StringField(max_length=100, required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Mute(Document):
|
|
active = BooleanField(default=True)
|
|
user = SnowflakeField(required=True)
|
|
admin = SnowflakeField(required=True)
|
|
duration = IntField(min_value=1, max_value=300, default=10)
|
|
guild = SnowflakeField(required=True)
|
|
reason = StringField(max_length=100, required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Purge(Document):
|
|
admin = SnowflakeField(required=True)
|
|
channel = SnowflakeField(required=True)
|
|
guild = SnowflakeField(required=True)
|
|
count = IntField(min_value=1, default=10)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Reminder(Document):
|
|
active = BooleanField(default=True)
|
|
user = SnowflakeField(required=True)
|
|
guild = SnowflakeField(required=True)
|
|
message = StringField(max_length=100, required=True)
|
|
remind_at = DateTimeField(required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Roleping(Document):
|
|
active = BooleanField(default=True)
|
|
role = SnowflakeField(required=True)
|
|
guild = SnowflakeField(required=True)
|
|
admin = SnowflakeField(required=True)
|
|
bypass = DictField()
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Setting(Document):
|
|
guild = SnowflakeField(required=True)
|
|
setting = StringField(required=True)
|
|
value = DynamicField()
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Star(Document):
|
|
index = IntField(required=True)
|
|
message = SnowflakeField(required=True)
|
|
channel = SnowflakeField(required=True)
|
|
starboard = SnowflakeField(required=True)
|
|
guild = SnowflakeField(required=True)
|
|
admin = SnowflakeField(required=True)
|
|
star = SnowflakeField(required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Starboard(Document):
|
|
channel = SnowflakeField(required=True)
|
|
guild = SnowflakeField(required=True)
|
|
admin = SnowflakeField(required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Unban(Document):
|
|
user = SnowflakeField(required=True)
|
|
username = StringField(required=True)
|
|
discrim = IntField(min_value=1, max_value=9999, required=True)
|
|
guild = SnowflakeField(required=True)
|
|
admin = SnowflakeField(required=True)
|
|
reason = StringField(max_length=100, required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|
|
|
|
|
|
class Warning(Document):
|
|
active = BooleanField(default=True)
|
|
admin = SnowflakeField(required=True)
|
|
user = SnowflakeField(required=True)
|
|
guild = SnowflakeField(required=True)
|
|
duration = IntField(min_value=1, max_value=120, default=24)
|
|
reason = StringField(max_length=100, required=True)
|
|
created_at = DateTimeField(default=datetime.utcnow)
|
|
|
|
meta = {"db_alias": "main"}
|