Example #1
0
class ServerPlan(db.Model):
    __tablename__ = "server_plan"

    rowid = db.Column(db.Integer, primary_key=True)
    server_id = db.Column(
        db.Integer,
        db.ForeignKey("server.server_id", onupdate="cascade"),
        nullable=False,
    )
    plan_id = db.Column(db.Integer, db.ForeignKey("plan.plan_id"), nullable=False)
    created_at = db.Column(
        db.String, nullable=False, default=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    )
    updated_at = db.Column(
        db.String,
        nullable=False,
        default=datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        onupdate=current_time,
    )

    def to_dict(self):
        entry = {}
        entry["plan_id"] = self.plan_id
        entry["server_id"] = self.server_id

        return entry

    def reinitialize(self):
        self.record_seconds = 0
        self.infraction_count = 0
Example #2
0
class Author(db.Model):
    __tablename__ = "author"

    user_id = db.Column(db.Integer, primary_key=True)
    infraction_count = db.Column(db.Integer, nullable=False, default=0)
    created_at = db.Column(
        db.String,
        nullable=False,
        default=datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    updated_at = db.Column(
        db.String,
        nullable=False,
        default=datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        onupdate=current_time,
    )
    infractions = db.relationship("AuthorInfraction")

    def to_dict(self):
        entry = {}
        entry["user_id"] = self.user_id
        entry["infraction_count"] = self.infraction_count
        entry["updated_at"] = self.updated_at
        entry["infractions"] = [
            infraction.to_dict() for infraction in self.infractions
        ]

        return entry
class Ban(db.Model):
    __tablename__ = "server_banned_word"

    rowid = db.Column(db.Integer, primary_key=True)
    banned_word = db.Column(db.String, nullable=False, default="defaultbannedword")
    server_id = db.Column(db.Integer, db.ForeignKey("server.server_id"), nullable=False)
    infracted_at = db.Column(
        db.String, nullable=False, default=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    )
    calledout_at = db.Column(
        db.String,
        nullable=False,
        default=(datetime.now() - timedelta(weeks=52)).strftime("%Y-%m-%d %H:%M:%S"),
    )
    record = db.relationship(
        "BanRecord", uselist=False, cascade="delete", backref="server_banned_word"
    )

    def to_dict(self):
        entries = {}
        entries["server_id"] = self.server_id
        entries["rowid"] = self.rowid
        entries["banned_word"] = self.banned_word
        entries["infracted_at"] = self.infracted_at
        entries["calledout_at"] = self.calledout_at
        entries["record"] = self.record.to_dict()

        return entries
Example #4
0
class Server(db.Model):
    __tablename__ = "server"

    server_id = db.Column(db.Integer, primary_key=True)
    awake = db.Column(db.Boolean, default=True)
    prefix = db.Column(db.String, nullable=False, default="!vt")
    timeout_duration_seconds = db.Column(db.Integer,
                                         nullable=False,
                                         default=1800)
    infracted_at = db.Column(db.String, nullable=False, default="-1")
    calledout_at = db.Column(db.String, nullable=False, default="-1")
    banned_words = db.relationship("Ban")
    plan_mapping = db.relationship("ServerPlan",
                                   uselist=False,
                                   cascade="delete",
                                   backref="server")

    def to_dict(self):
        entries = {}
        entries["server_id"] = self.server_id
        entries["timeout_duration_seconds"] = self.timeout_duration_seconds
        entries["banned_words"] = [
            word.to_dict() for word in self.banned_words
        ]
        entries["awake"] = self.awake
        entries["plan"] = self.plan_mapping.plan.to_dict()
        entries["prefix"] = self.prefix

        return entries

    def get_plan(self):
        return self.plan_mapping.plan
Example #5
0
class BanRecord(db.Model):
    __tablename__ = "ban_record"

    rowid = db.Column(db.Integer, primary_key=True)
    ban_id = db.Column(
        db.Integer,
        db.ForeignKey("server_banned_word.rowid", onupdate="cascade"),
        nullable=False,
    )
    record_seconds = db.Column(db.Integer, nullable=False, default=0)
    infraction_count = db.Column(db.Integer, nullable=False, default=0)
    created_at = db.Column(
        db.String,
        nullable=False,
        default=datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    updated_at = db.Column(
        db.String,
        nullable=False,
        default=datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        onupdate=current_time,
    )

    def to_dict(self):
        entry = {}
        entry["record_seconds"] = self.record_seconds
        entry["infraction_count"] = self.infraction_count
        entry["updated_at"] = self.updated_at

        return entry

    def reinitialize(self):
        self.record_seconds = 0
        self.infraction_count = 0
Example #6
0
class AuthorInfraction(db.Model):
    __tablename__ = "author_infraction"

    rowid = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(
        db.Integer,
        db.ForeignKey("author.user_id", onupdate="cascade"),
        nullable=False,
    )
    ban_id = db.Column(
        db.Integer,
        db.ForeignKey("server_banned_word.rowid", onupdate="cascade"),
        nullable=False,
    )
    infraction_count = db.Column(db.Integer, nullable=False, default=0)

    created_at = db.Column(
        db.String,
        nullable=False,
        default=datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    updated_at = db.Column(
        db.String,
        nullable=False,
        default=datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        onupdate=current_time,
    )

    def to_dict(self):
        entry = {}
        entry["user_id"] = self.user_id
        entry["ban_id"] = self.ban_id
        entry["infraction_count"] = self.infraction_count
        entry["updated_at"] = self.updated_at

        return entry
class Plan(db.Model):
    __tablename__ = "plan"

    plan_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    bannings_allowed = db.Column(db.Integer, nullable=False)
    created_at = db.Column(db.String, nullable=False, default=current_time())
    updated_at = db.Column(db.String,
                           nullable=False,
                           default=current_time(),
                           onupdate=current_time)
    server_mapping = db.relationship("ServerPlan",
                                     cascade="delete",
                                     backref="plan")

    def to_dict(self):
        entry = {}
        entry["plan_id"] = self.plan_id
        entry["name"] = self.name
        entry["bannings_allowed"] = self.bannings_allowed

        return entry