From 821c606b8d572c7b5a52fd63a4fa159cfd7d731d Mon Sep 17 00:00:00 2001 From: Aevann Date: Fri, 16 Feb 2024 13:44:25 +0200 Subject: [PATCH] move mods and exiles to hole_relationships.py --- files/classes/exiles.py | 23 ----------------------- files/classes/hole_relationship.py | 24 ++++++++++++------------ files/classes/mod.py | 20 -------------------- files/classes/user.py | 2 -- files/helpers/actions.py | 2 +- 5 files changed, 13 insertions(+), 58 deletions(-) delete mode 100644 files/classes/exiles.py delete mode 100644 files/classes/mod.py diff --git a/files/classes/exiles.py b/files/classes/exiles.py deleted file mode 100644 index 9486efdc8..000000000 --- a/files/classes/exiles.py +++ /dev/null @@ -1,23 +0,0 @@ -import time - -from sqlalchemy import Column, ForeignKey -from sqlalchemy.orm import relationship -from sqlalchemy.sql.sqltypes import * - -from files.classes import Base - -class Exile(Base): - __tablename__ = "exiles" - user_id = Column(Integer, ForeignKey("users.id"), primary_key=True) - hole = Column(String, ForeignKey("holes.name"), primary_key=True) - exiler_id = Column(Integer, ForeignKey("users.id")) - created_utc = Column(Integer) - - exiler = relationship("User", primaryjoin="User.id==Exile.exiler_id") - - def __init__(self, *args, **kwargs): - if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time()) - super().__init__(*args, **kwargs) - - def __repr__(self): - return f"<{self.__class__.__name__}(user_id={self.user_id}, hole={self.hole})>" diff --git a/files/classes/hole_relationship.py b/files/classes/hole_relationship.py index d26eeb1ac..a231ad862 100644 --- a/files/classes/hole_relationship.py +++ b/files/classes/hole_relationship.py @@ -1,7 +1,7 @@ import time from sqlalchemy import Column, ForeignKey -from sqlalchemy.orm import declared_attr +from sqlalchemy.orm import relationship from sqlalchemy.sql.sqltypes import * from files.classes import Base @@ -10,17 +10,9 @@ class HoleRelationship(Base): __tablename__ = NotImplemented __abstract__ = True - @declared_attr - def user_id(self): - return Column(Integer, ForeignKey("users.id"), primary_key=True) - - @declared_attr - def hole(self): - return Column(String(20), ForeignKey("holes.name"), primary_key=True) - - @declared_attr - def created_utc(self): - return Column(Integer) + user_id = Column(Integer, ForeignKey("users.id"), primary_key=True) + hole = Column(String, ForeignKey("holes.name"), primary_key=True) + created_utc = Column(Integer) def __init__(self, *args, **kwargs): if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time()) @@ -37,3 +29,11 @@ class HoleBlock(HoleRelationship): class HoleFollow(HoleRelationship): __tablename__ = "hole_follows" + +class Mod(HoleRelationship): + __tablename__ = "mods" + +class Exile(HoleRelationship): + __tablename__ = "exiles" + exiler_id = Column(Integer, ForeignKey("users.id")) + exiler = relationship("User", primaryjoin="User.id==Exile.exiler_id") diff --git a/files/classes/mod.py b/files/classes/mod.py deleted file mode 100644 index c5664dfb4..000000000 --- a/files/classes/mod.py +++ /dev/null @@ -1,20 +0,0 @@ -import time - -from sqlalchemy import Column, ForeignKey -from sqlalchemy.sql.sqltypes import * - -from files.classes import Base -from files.helpers.lazy import * - -class Mod(Base): - __tablename__ = "mods" - user_id = Column(Integer, ForeignKey("users.id"), primary_key=True) - hole = Column(String, ForeignKey("holes.name"), primary_key=True) - created_utc = Column(Integer) - - def __init__(self, *args, **kwargs): - if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time()) - super().__init__(*args, **kwargs) - - def __repr__(self): - return f"<{self.__class__.__name__}(user_id={self.user_id}, hole={self.hole})>" diff --git a/files/classes/user.py b/files/classes/user.py index b2126c2fe..1b79dbf72 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -26,10 +26,8 @@ from .alts import Alt from .award import AwardRelationship from .badges import * from .clients import * -from .exiles import * from .follows import * from .hats import * -from .mod import * from .mod_logs import * from .notifications import Notification from .saves import * diff --git a/files/helpers/actions.py b/files/helpers/actions.py index e14b30f57..3130005e5 100644 --- a/files/helpers/actions.py +++ b/files/helpers/actions.py @@ -12,7 +12,7 @@ from files.classes.mod_logs import ModAction from files.classes.notifications import Notification from files.classes.polls import CommentOption, PostOption from files.classes.award import AwardRelationship -from files.classes.exiles import Exile +from files.classes.hole_relationship import Exile from files.helpers.alerts import send_repeatable_notification, push_notif from files.helpers.config.const import *