Ejemplo n.º 1
0
class Cosmetics(db.Model):
    __tablename__ = "cosmetics"
    id = db.Column(db.Integer, primary_key=True)  # Auto increment id
    user_id = db.Column(db.String(255),
                        nullable=False)  # Discord user id of user of cosmetics
    css = db.Column(db.Boolean(),
                    nullable=False)  # If they can create/edit custom CSS
    css_limit = db.Column(db.Integer, nullable=False,
                          server_default="0")  # Custom CSS Limit
    webhook_icon = db.Column(
        db.Boolean(), nullable=False, server_default=db.false(
        ))  # If they can set the webhook icon for all guilds

    def __init__(self, user_id, **kwargs):
        self.user_id = user_id

        if "css" in kwargs:
            self.css = kwargs["css"]
        else:
            self.css = False

        if "css_limit" in kwargs:
            self.css_limit = kwargs["css_limit"]
        else:
            self.css_limit = 0

        if "webhook_icon" in kwargs:
            self.webhook_icon = kwargs["webhook_icon"]
        else:
            self.webhook_icon = False
Ejemplo n.º 2
0
class GuildMembers(Base):
    __tablename__ = "guild_members"
    id = db.Column(db.Integer, primary_key=True)  # Auto incremented id
    guild_id = db.Column(db.BigInteger)  # Discord guild id
    user_id = db.Column(db.BigInteger)  # Discord user id
    username = db.Column(db.String(255))  # Name
    discriminator = db.Column(db.Integer)  # User discriminator
    nickname = db.Column(db.String(255))  # User nickname
    avatar = db.Column(db.String(255))  # The avatar str of the user
    active = db.Column(db.Boolean())  # If the user is a member of the guild
    banned = db.Column(db.Boolean())  # If the user is banned in the guild
    roles = db.Column(db.Text())  # Member roles

    def __init__(self, guild_id, user_id, username, discriminator, nickname,
                 avatar, active, banned, roles):
        self.guild_id = guild_id
        self.user_id = user_id
        self.username = username
        self.discriminator = discriminator
        self.nickname = nickname
        self.avatar = avatar
        self.active = active
        self.banned = banned
        self.roles = roles

    def __repr__(self):
        return '<GuildMembers {0} {1} {2} {3} {4}>'.format(
            self.id, self.guild_id, self.user_id, self.username,
            self.discriminator)
Ejemplo n.º 3
0
class GuildMembers(db.Model):
    __tablename__ = "guild_members"
    id = db.Column(db.Integer, primary_key=True)    # Auto incremented id
    guild_id = db.Column(db.BigInteger)            # Discord guild id
    user_id = db.Column(db.BigInteger)             # Discord user id
    username = db.Column(db.String(255))            # Name
    discriminator = db.Column(db.Integer)           # User discriminator
    nickname = db.Column(db.String(255))            # User nickname
    avatar = db.Column(db.String(255))              # The avatar str of the user
    active = db.Column(db.Boolean())                # If the user is a member of the guild
    banned = db.Column(db.Boolean())                # If the user is banned in the guild
    roles = db.Column(db.Text())                    # Member roles
Ejemplo n.º 4
0
class Guilds(db.Model):
    __tablename__ = "guilds"
    id = db.Column(db.Integer, primary_key=True)  # Auto incremented id
    guild_id = db.Column(db.String(255), nullable=False)  # Discord guild id
    name = db.Column(db.String(255), nullable=False)  # Name
    unauth_users = db.Column(db.Boolean(), nullable=False,
                             default=1)  # If allowed unauth users
    visitor_view = db.Column(
        db.Boolean(), nullable=False,
        default=0)  # If users are automatically "signed in" and can view chat
    chat_links = db.Column(db.Boolean(), nullable=False,
                           default=1)  # If users can post links
    bracket_links = db.Column(
        db.Boolean(), nullable=False,
        default=1)  # If appending brackets to links to prevent embed
    mentions_limit = db.Column(
        db.Integer, nullable=False,
        default=11)  # If there is a limit on the number of mentions in a msg
    roles = db.Column(db.Text(4294967295), nullable=False)  # Guild Roles
    channels = db.Column(db.Text(4294967295), nullable=False)  # Guild channels
    webhooks = db.Column(db.Text(4294967295), nullable=False)  # Guild webhooks
    emojis = db.Column(db.Text(4294967295), nullable=False)  # Guild Emojis
    owner_id = db.Column(db.String(255),
                         nullable=False)  # Snowflake of the owner
    icon = db.Column(db.String(255))  # The icon string, null if none
    discordio = db.Column(db.String(255))  # Custom Discord.io Invite Link

    def __init__(self, guild_id, name, roles, channels, webhooks, emojis,
                 owner_id, icon):
        self.guild_id = guild_id
        self.name = name
        self.unauth_users = True  # defaults to true
        self.visitor_view = False
        self.chat_links = True
        self.bracket_links = True
        self.mentions_limit = -1  # -1 = unlimited mentions
        self.roles = roles
        self.channels = channels
        self.webhooks = webhooks
        self.emojis = emojis
        self.owner_id = owner_id
        self.icon = icon

    def __repr__(self):
        return '<Guilds {0} {1}>'.format(self.id, self.guild_id)

    def set_unauthUsersBool(self, value):
        self.unauth_users = value
        db.session.commit()
        return self.unauth_users
Ejemplo n.º 5
0
class Guilds(Base):
    __tablename__ = "guilds"
    id = db.Column(db.Integer, primary_key=True)  # Auto incremented id
    guild_id = db.Column(db.String(255))  # Discord guild id
    name = db.Column(db.String(255))  # Name
    unauth_users = db.Column(db.Boolean())  # If allowed unauth users
    visitor_view = db.Column(db.Boolean(
    ))  # If users are automatically "signed in" and can view chat
    webhook_messages = db.Column(
        db.Boolean())  # Use webhooks to send messages instead of the bot
    webhook_icon = db.Column(db.String(255),
                             default=None)  # Webhook icon url, None if unset
    chat_links = db.Column(db.Boolean())  # If users can post links
    bracket_links = db.Column(
        db.Boolean())  # If appending brackets to links to prevent embed
    mentions_limit = db.Column(
        db.Integer)  # If there is a limit on the number of mentions in a msg
    roles = db.Column(db.Text().with_variant(db.Text(length=4294967295),
                                             'mysql'))  # Guild Roles
    channels = db.Column(db.Text().with_variant(db.Text(length=4294967295),
                                                'mysql'))  # Guild channels
    webhooks = db.Column(db.Text().with_variant(db.Text(length=4294967295),
                                                'mysql'))  # Guild webhooks
    emojis = db.Column(db.Text().with_variant(db.Text(length=4294967295),
                                              'mysql'))  # Guild Emojis
    owner_id = db.Column(db.String(255))  # Snowflake of the owner
    icon = db.Column(db.String(255))  # The icon string, null if none
    discordio = db.Column(db.String(255))  # Custom Discord.io Invite Link

    def __init__(self, guild_id, name, roles, channels, webhooks, emojis,
                 owner_id, icon):
        self.guild_id = guild_id
        self.name = name
        self.unauth_users = True  # defaults to true
        self.visitor_view = False
        self.webhook_messages = False
        self.webhook_icon = None
        self.chat_links = True
        self.bracket_links = True
        self.mentions_limit = -1  # -1 = unlimited mentions
        self.roles = roles
        self.channels = channels
        self.webhooks = webhooks
        self.emojis = emojis
        self.owner_id = owner_id
        self.icon = icon

    def __repr__(self):
        return '<Guilds {0} {1}>'.format(self.id, self.guild_id)
Ejemplo n.º 6
0
class UserCSS(db.Model):
    __tablename__ = "user_css"
    id = db.Column(db.Integer, primary_key=True)  # Auto increment id
    name = db.Column(db.String(255), nullable=False)  # CSS Name
    user_id = db.Column(
        db.String(255),
        nullable=False)  # Discord client ID of the owner of the css (can edit)
    css_var_bool = db.Column(
        db.Boolean(), nullable=False, server_default="0"
    )  # If css variables should be taken into consideration
    css_variables = db.Column(db.Text())  # Customizeable CSS Variables
    css = db.Column(db.Text().with_variant(db.Text(4294967295),
                                           'mysql'))  # CSS contents

    def __init__(self,
                 name,
                 user_id,
                 css_var_bool=False,
                 css_variables=None,
                 css=None):
        self.name = name
        self.user_id = user_id
        self.css_var_bool = css_var_bool
        self.css_variables = css_variables
        self.css = css
Ejemplo n.º 7
0
class Cosmetics(db.Model):
    __tablename__ = "cosmetics"
    user_id = db.Column(
        db.BigInteger, nullable=False,
        primary_key=True)  # Discord user id of user of cosmetics
    css = db.Column(db.Boolean(),
                    nullable=False)  # If they can create/edit custom CSS
    css_limit = db.Column(db.Integer, nullable=False,
                          server_default="0")  # Custom CSS Limit
    guest_icon = db.Column(db.Boolean(),
                           nullable=False,
                           server_default=db.false()
                           )  # If they can set the guest icon for all guilds
    send_rich_embed = db.Column(
        db.Boolean(), nullable=False, server_default=db.false(
        ))  # If they can set the send rich embed for all guilds
    badges = db.Column(
        db.String(255), nullable=False,
        server_default="[]")  # JSON list of all the badges the user has

    def __init__(self, user_id, **kwargs):
        self.user_id = user_id

        if "css" in kwargs:
            self.css = kwargs["css"]
        else:
            self.css = False

        if "css_limit" in kwargs:
            self.css_limit = kwargs["css_limit"]
        else:
            self.css_limit = 0

        if "guest_icon" in kwargs:
            self.guest_icon = kwargs["guest_icon"]
        else:
            self.guest_icon = False

        if "send_rich_embed" in kwargs:
            self.send_rich_embed = kwargs["send_rich_embed"]
        else:
            self.send_rich_embed = False

        if "badges" in kwargs:
            self.badges = json.dumps(kwargs["badges"])
        else:
            self.badges = "[]"
Ejemplo n.º 8
0
class UnauthenticatedUsers(db.Model):
    __tablename__ = "unauthenticated_users"
    id = db.Column(db.Integer, primary_key=True,
                   nullable=False)  # Auto increment id
    guild_id = db.Column(
        db.String(255),
        nullable=False)  # Guild pretaining to the unauthenticated user
    username = db.Column(db.String(255),
                         nullable=False)  # The username of the user
    discriminator = db.Column(
        db.Integer, nullable=False
    )  # The discriminator to distinguish unauth users with each other
    user_key = db.Column(
        db.Text(),
        nullable=False)  # The secret key used to identify the user holder
    ip_address = db.Column(db.String(255),
                           nullable=False)  # The IP Address of the user
    last_timestamp = db.Column(
        db.TIMESTAMP, nullable=False
    )  # The timestamp of when the user has last sent the heartbeat
    revoked = db.Column(
        db.Boolean(), nullable=False
    )  # If the user's key has been revoked and a new one is required to be generated

    def __init__(self, guild_id, username, discriminator, ip_address):
        self.guild_id = guild_id
        self.username = username
        self.discriminator = discriminator
        self.user_key = "".join(
            random.choice(string.ascii_letters) for _ in range(0, 32))
        self.ip_address = ip_address
        self.last_timestamp = datetime.datetime.fromtimestamp(
            time.time()).strftime('%Y-%m-%d %H:%M:%S')
        self.revoked = False

    def __repr__(self):
        return '<UnauthenticatedUsers {0} {1} {2} {3} {4} {5} {6} {7}>'.format(
            self.id, self.guild_id, self.username, self.discriminator,
            self.user_key, self.ip_address, self.last_timestamp, self.revoked)

    def isRevoked(self):
        return self.revoked

    def changeUsername(self, username):
        self.username = username
        db.session.commit()
        return self.username

    def revokeUser(self):
        self.revoked = True
        db.session.commit()
        return self.revoked

    def bumpTimestamp(self):
        self.last_timestamp = datetime.datetime.fromtimestamp(
            time.time()).strftime('%Y-%m-%d %H:%M:%S')
        db.session.commit()
        return self.last_timestamp
Ejemplo n.º 9
0
class Cosmetics(db.Model):
    __tablename__ = "cosmetics"
    id = db.Column(db.Integer, primary_key=True)                    # Auto increment id
    user_id = db.Column(db.String(255), nullable=False)             # Discord user id of user of cosmetics
    css = db.Column(db.Boolean(), nullable=False)                   # If they can create/edit custom CSS
    
    def __init__(self, user_id, **kwargs):
        self.user_id = user_id
        
        if "css" in kwargs:
            self.css = kwargs["css"]
        else:
            self.css = False
Ejemplo n.º 10
0
class UnauthenticatedUsers(db.Model):
    __tablename__ = "unauthenticated_users"
    id = db.Column(db.Integer, primary_key=True)  # Auto increment id
    guild_id = db.Column(
        db.BigInteger)  # Guild pretaining to the unauthenticated user
    username = db.Column(db.String(255))  # The username of the user
    discriminator = db.Column(
        db.Integer
    )  # The discriminator to distinguish unauth users with each other
    user_key = db.Column(
        db.Text())  # The secret key used to identify the user holder
    ip_address = db.Column(db.String(255))  # The IP Address of the user
    revoked = db.Column(
        db.Boolean()
    )  # If the user's key has been revoked and a new one is required to be generated
Ejemplo n.º 11
0
class Guilds(db.Model):
    __tablename__ = "guilds"
    guild_id = db.Column(db.BigInteger, primary_key=True)  # Discord guild id
    name = db.Column(db.String(255))  # Name
    unauth_users = db.Column(db.Boolean())  # If allowed unauth users
    visitor_view = db.Column(db.Boolean(
    ))  # If users are automatically "signed in" and can view chat
    webhook_messages = db.Column(
        db.Boolean())  # Use webhooks to send messages instead of the bot
    guest_icon = db.Column(db.String(255),
                           default=None)  # Guest icon url, None if unset
    chat_links = db.Column(db.Boolean())  # If users can post links
    bracket_links = db.Column(
        db.Boolean())  # If appending brackets to links to prevent embed
    unauth_captcha = db.Column(
        db.Boolean(), nullable=False,
        server_default="1")  # Enforce captcha on guest users
    mentions_limit = db.Column(
        db.Integer)  # If there is a limit on the number of mentions in a msg
    roles = db.Column(db.Text().with_variant(db.Text(length=4294967295),
                                             'mysql'))  # Guild Roles
    channels = db.Column(db.Text().with_variant(db.Text(length=4294967295),
                                                'mysql'))  # Guild channels
    webhooks = db.Column(db.Text().with_variant(db.Text(length=4294967295),
                                                'mysql'))  # Guild webhooks
    emojis = db.Column(db.Text().with_variant(db.Text(length=4294967295),
                                              'mysql'))  # Guild Emojis
    owner_id = db.Column(db.BigInteger)  # Snowflake of the owner
    icon = db.Column(db.String(255))  # The icon string, null if none
    invite_link = db.Column(db.String(255))  # Custom Discord Invite Link
    post_timeout = db.Column(
        db.Integer, nullable=False, server_default="5"
    )  # Seconds to elapse before another message can be posted from the widget
    max_message_length = db.Column(
        db.Integer, nullable=False, server_default="300"
    )  # Chars length the message should be before being rejected by the server
    banned_words_enabled = db.Column(
        db.Boolean(), nullable=False,
        server_default="0")  # If banned words are enforced
    banned_words_global_included = db.Column(
        db.Boolean(), nullable=False,
        server_default="0")  # Add global banned words to the list
    banned_words = db.Column(
        db.Text(), nullable=False,
        server_default="[]")  # JSON list of strings to block from sending
Ejemplo n.º 12
0
class UnauthenticatedUsers(db.Model):
    __tablename__ = "unauthenticated_users"
    id = db.Column(db.Integer, primary_key=True,
                   nullable=False)  # Auto increment id
    guild_id = db.Column(
        db.BigInteger,
        nullable=False)  # Guild pretaining to the unauthenticated user
    username = db.Column(db.String(255),
                         nullable=False)  # The username of the user
    discriminator = db.Column(
        db.Integer, nullable=False
    )  # The discriminator to distinguish unauth users with each other
    user_key = db.Column(
        db.Text(),
        nullable=False)  # The secret key used to identify the user holder
    ip_address = db.Column(db.String(255),
                           nullable=False)  # The IP Address of the user
    revoked = db.Column(
        db.Boolean(), nullable=False
    )  # If the user's key has been revoked and a new one is required to be generated

    def __init__(self, guild_id, username, discriminator, ip_address):
        self.guild_id = guild_id
        self.username = username
        self.discriminator = discriminator
        self.user_key = "".join(
            random.choice(string.ascii_letters) for _ in range(0, 32))
        self.ip_address = ip_address
        self.revoked = False

    def __repr__(self):
        return '<UnauthenticatedUsers {0} {1} {2} {3} {4} {5} {6}>'.format(
            self.id, self.guild_id, self.username, self.discriminator,
            self.user_key, self.ip_address, self.revoked)

    def isRevoked(self):
        return self.revoked

    def changeUsername(self, username):
        self.username = username
        return self.username

    def revokeUser(self):
        self.revoked = True
        return self.revoked
Ejemplo n.º 13
0
class UnauthenticatedUsers(Base):
    __tablename__ = "unauthenticated_users"
    id = db.Column(db.Integer, primary_key=True)  # Auto increment id
    guild_id = db.Column(
        db.String(255))  # Guild pretaining to the unauthenticated user
    username = db.Column(db.String(255))  # The username of the user
    discriminator = db.Column(
        db.Integer
    )  # The discriminator to distinguish unauth users with each other
    user_key = db.Column(
        db.Text())  # The secret key used to identify the user holder
    ip_address = db.Column(db.String(255))  # The IP Address of the user
    last_timestamp = db.Column(
        db.TIMESTAMP
    )  # The timestamp of when the user has last sent the heartbeat
    revoked = db.Column(
        db.Boolean()
    )  # If the user's key has been revoked and a new one is required to be generated

    def __repr__(self):
        return '<UnauthenticatedUsers {0} {1} {2} {3} {4} {5} {6} {7}>'.format(
            self.id, self.guild_id, self.username, self.discriminator,
            self.user_key, self.ip_address, self.last_timestamp, self.revoked)
Ejemplo n.º 14
0
class Guilds(db.Model):
    __tablename__ = "guilds"
    guild_id = db.Column(db.BigInteger, nullable=False,
                         primary_key=True)  # Discord guild id
    unauth_users = db.Column(db.Boolean(), nullable=False,
                             default=1)  # If allowed unauth users
    visitor_view = db.Column(
        db.Boolean(), nullable=False,
        default=0)  # If users are automatically "signed in" and can view chat
    webhook_messages = db.Column(
        db.Boolean(), nullable=False,
        default=0)  # Use webhooks to send messages instead of the bot
    guest_icon = db.Column(db.String(255),
                           default=None)  # Guest icon url, None if unset
    chat_links = db.Column(db.Boolean(), nullable=False,
                           default=1)  # If users can post links
    bracket_links = db.Column(
        db.Boolean(), nullable=False,
        default=1)  # If appending brackets to links to prevent embed
    unauth_captcha = db.Column(
        db.Boolean(), nullable=False,
        server_default="1")  # Enforce captcha on guest users
    mentions_limit = db.Column(
        db.Integer, nullable=False,
        default=11)  # If there is a limit on the number of mentions in a msg
    invite_link = db.Column(db.String(255))  # Custom Discord Invite Link
    post_timeout = db.Column(
        db.Integer, nullable=False, server_default="5"
    )  # Seconds to elapse before another message can be posted from the widget
    max_message_length = db.Column(
        db.Integer, nullable=False, server_default="300"
    )  # Chars length the message should be before being rejected by the server
    banned_words_enabled = db.Column(
        db.Boolean(), nullable=False,
        server_default="0")  # If banned words are enforced
    banned_words_global_included = db.Column(
        db.Boolean(), nullable=False,
        server_default="0")  # Add global banned words to the list
    banned_words = db.Column(
        db.Text(), nullable=False,
        server_default="[]")  # JSON list of strings to block from sending
    autorole_unauth = db.Column(
        db.BigInteger, nullable=True, server_default=None
    )  # Automatic Role inherit for unauthenticated users
    autorole_discord = db.Column(
        db.BigInteger, nullable=True,
        server_default=None)  # Automatic Role inherit for discord users
    file_upload = db.Column(
        db.Boolean(), nullable=False,
        server_default="0")  # Allow file uploading for server

    def __init__(self, guild_id):
        self.guild_id = guild_id
        self.unauth_users = True  # defaults to true
        self.visitor_view = False
        self.webhook_messages = False
        self.guest_icon = None
        self.chat_links = True
        self.bracket_links = True
        self.unauth_captcha = True
        self.mentions_limit = -1  # -1 = unlimited mentions

    def __repr__(self):
        return '<Guilds {0}>'.format(self.guild_id)

    def set_unauthUsersBool(self, value):
        self.unauth_users = value
        return self.unauth_users
Ejemplo n.º 15
0
class Guilds(db.Model):
    __tablename__ = "guilds"
    guild_id = db.Column(db.BigInteger, nullable=False,
                         primary_key=True)  # Discord guild id
    name = db.Column(db.String(255), nullable=False)  # Name
    unauth_users = db.Column(db.Boolean(), nullable=False,
                             default=1)  # If allowed unauth users
    visitor_view = db.Column(
        db.Boolean(), nullable=False,
        default=0)  # If users are automatically "signed in" and can view chat
    webhook_messages = db.Column(
        db.Boolean(), nullable=False,
        default=0)  # Use webhooks to send messages instead of the bot
    guest_icon = db.Column(db.String(255),
                           default=None)  # Guest icon url, None if unset
    chat_links = db.Column(db.Boolean(), nullable=False,
                           default=1)  # If users can post links
    bracket_links = db.Column(
        db.Boolean(), nullable=False,
        default=1)  # If appending brackets to links to prevent embed
    unauth_captcha = db.Column(
        db.Boolean(), nullable=False,
        server_default="1")  # Enforce captcha on guest users
    mentions_limit = db.Column(
        db.Integer, nullable=False,
        default=11)  # If there is a limit on the number of mentions in a msg
    roles = db.Column(db.Text().with_variant(db.Text(4294967295), 'mysql'),
                      nullable=False)  # Guild Roles
    channels = db.Column(db.Text().with_variant(db.Text(4294967295), 'mysql'),
                         nullable=False)  # Guild channels
    webhooks = db.Column(db.Text().with_variant(db.Text(4294967295), 'mysql'),
                         nullable=False)  # Guild webhooks
    emojis = db.Column(db.Text().with_variant(db.Text(4294967295), 'mysql'),
                       nullable=False)  # Guild Emojis
    owner_id = db.Column(db.BigInteger,
                         nullable=False)  # Snowflake of the owner
    icon = db.Column(db.String(255))  # The icon string, null if none
    invite_link = db.Column(db.String(255))  # Custom Discord Invite Link
    post_timeout = db.Column(
        db.Integer, nullable=False, server_default="5"
    )  # Seconds to elapse before another message can be posted from the widget
    max_message_length = db.Column(
        db.Integer, nullable=False, server_default="300"
    )  # Chars length the message should be before being rejected by the server
    banned_words_enabled = db.Column(
        db.Boolean(), nullable=False,
        server_default="0")  # If banned words are enforced
    banned_words_global_included = db.Column(
        db.Boolean(), nullable=False,
        server_default="0")  # Add global banned words to the list
    banned_words = db.Column(
        db.Text(), nullable=False,
        server_default="[]")  # JSON list of strings to block from sending

    def __init__(self, guild_id, name, roles, channels, webhooks, emojis,
                 owner_id, icon):
        self.guild_id = guild_id
        self.name = name
        self.unauth_users = True  # defaults to true
        self.visitor_view = False
        self.webhook_messages = False
        self.guest_icon = None
        self.chat_links = True
        self.bracket_links = True
        self.unauth_captcha = True
        self.mentions_limit = -1  # -1 = unlimited mentions
        self.roles = roles
        self.channels = channels
        self.webhooks = webhooks
        self.emojis = emojis
        self.owner_id = owner_id
        self.icon = icon

    def __repr__(self):
        return '<Guilds {0} {1}>'.format(self.id, self.guild_id)

    def set_unauthUsersBool(self, value):
        self.unauth_users = value
        return self.unauth_users