138 lines
3.1 KiB
Python
138 lines
3.1 KiB
Python
import datetime
|
|
|
|
from peewee import (
|
|
SqliteDatabase,
|
|
Model,
|
|
BigIntegerField,
|
|
CharField,
|
|
TextField,
|
|
DateTimeField,
|
|
AutoField,
|
|
FloatField,
|
|
BooleanField,
|
|
CompositeKey,
|
|
ForeignKeyField,
|
|
)
|
|
|
|
db = SqliteDatabase("heimdallr.db")
|
|
|
|
|
|
class Infractions(Model):
|
|
id = AutoField()
|
|
guild_id = BigIntegerField()
|
|
user_id = BigIntegerField()
|
|
at_time = DateTimeField(default=datetime.datetime.now)
|
|
weight = FloatField(default=1.0)
|
|
reason = TextField(null=True)
|
|
given_by = BigIntegerField()
|
|
silent = BooleanField(default=False)
|
|
|
|
class Meta:
|
|
table_name = "Infractions"
|
|
database = db
|
|
|
|
|
|
class GuildSettings(Model):
|
|
guild_id = BigIntegerField(primary_key=True)
|
|
admin_channel = BigIntegerField(null=True)
|
|
use_name_filter = BooleanField(default=False)
|
|
use_gatekeep = BooleanField(default=False)
|
|
use_joinleave = BooleanField(default=True)
|
|
use_logging = BooleanField(default=False)
|
|
|
|
class Meta:
|
|
table_name = "GuildSettings"
|
|
database = db
|
|
|
|
|
|
class JoinLeave(Model):
|
|
guild_id = BigIntegerField(primary_key=True)
|
|
join_message = TextField(null=True)
|
|
leave_message = TextField(null=True)
|
|
message_channel = BigIntegerField(null=True)
|
|
join_message_enabled = BooleanField(default=True)
|
|
leave_message_enabled = BooleanField(default=False)
|
|
|
|
class Meta:
|
|
table_name = "JoinLeave"
|
|
database = db
|
|
|
|
|
|
class SelfRoles(Model):
|
|
guild_id = BigIntegerField()
|
|
role_id = BigIntegerField()
|
|
role_name = TextField()
|
|
role_description = TextField()
|
|
requires = BigIntegerField()
|
|
|
|
class Meta:
|
|
primary_key = CompositeKey("guild_id", "role_id")
|
|
table_name = "SelfRoles"
|
|
database = db
|
|
|
|
|
|
class ConditionalRoles(Model):
|
|
guild_id = BigIntegerField()
|
|
role_id = BigIntegerField()
|
|
condition = CharField(max_length=16)
|
|
condition_data = TextField()
|
|
|
|
class Meta:
|
|
primary_key = CompositeKey("guild_id", "role_id")
|
|
table_name = "ConditionalRoles"
|
|
database = db
|
|
|
|
|
|
class BotMessages(Model):
|
|
guild_id = BigIntegerField()
|
|
channel_id = BigIntegerField()
|
|
message_id = BigIntegerField()
|
|
|
|
class Meta:
|
|
primary_key = CompositeKey("guild_id", "channel_id", "message_id")
|
|
table_name = "BotMessages"
|
|
database = db
|
|
|
|
|
|
class Resources(Model):
|
|
id = AutoField()
|
|
guild_id = BigIntegerField()
|
|
title = TextField()
|
|
description = TextField()
|
|
url = TextField()
|
|
|
|
class Meta:
|
|
table_name = "Resources"
|
|
database = db
|
|
|
|
|
|
class ResourceTags(Model):
|
|
resource_id = ForeignKeyField(Resources, to_field="id")
|
|
tag = TextField()
|
|
|
|
class Meta:
|
|
primary_key = CompositeKey("resource_id", "tag")
|
|
table_name = "ResourceTags"
|
|
database = db
|
|
|
|
|
|
class BadNames(Model):
|
|
id = AutoField()
|
|
guild_id = BigIntegerField()
|
|
regex = TextField()
|
|
|
|
class Meta:
|
|
table_name = "BadNames"
|
|
database = db
|
|
|
|
|
|
class NotifyWords(Model):
|
|
id = AutoField()
|
|
guild_id = BigIntegerField()
|
|
word = TextField()
|
|
user_to_notify = BigIntegerField()
|
|
|
|
class Meta:
|
|
table_name = "NotifyWords"
|
|
database = db
|