Column -> mapped_column
parent
ecd64e1999
commit
7b0632bdc7
|
@ -1,6 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -8,10 +9,10 @@ from files.classes import Base
|
|||
class Alt(Base):
|
||||
__tablename__ = "alts"
|
||||
|
||||
user1 = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
user2 = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
is_manual = Column(Boolean, default=False)
|
||||
created_utc = Column(Integer)
|
||||
user1: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user2: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
is_manual: Mapped[bool] = mapped_column(default=False)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -12,15 +12,15 @@ from files.helpers.lazy import lazy
|
|||
class AwardRelationship(Base):
|
||||
__tablename__ = "award_relationships"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"))
|
||||
post_id = Column(Integer, ForeignKey("posts.id"))
|
||||
comment_id = Column(Integer, ForeignKey("comments.id"))
|
||||
kind = Column(String)
|
||||
awarded_utc = Column(Integer)
|
||||
created_utc = Column(Integer)
|
||||
price_paid = Column(Integer, default = 0)
|
||||
note = Column(String)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"))
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"))
|
||||
kind: Mapped[str]
|
||||
awarded_utc: Mapped[int]
|
||||
created_utc: Mapped[int]
|
||||
price_paid: Mapped[int] = mapped_column(default = 0)
|
||||
note: Mapped[str]
|
||||
|
||||
user = relationship("User", primaryjoin="AwardRelationship.user_id==User.id", back_populates="awards")
|
||||
post = relationship("Post", primaryjoin="AwardRelationship.post_id==Post.id", back_populates="awards")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -11,10 +11,10 @@ from files.helpers.lazy import lazy
|
|||
class BadgeDef(Base):
|
||||
__tablename__ = "badge_defs"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
name = Column(String)
|
||||
description = Column(String)
|
||||
created_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
|
||||
name: Mapped[str]
|
||||
description: Mapped[str]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
@ -32,11 +32,11 @@ class Badge(Base):
|
|||
|
||||
__tablename__ = "badges"
|
||||
|
||||
user_id = Column(Integer, ForeignKey('users.id'), primary_key=True)
|
||||
badge_id = Column(Integer, ForeignKey('badge_defs.id'), primary_key=True)
|
||||
description = Column(String)
|
||||
url = Column(String)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey('users.id'), primary_key=True)
|
||||
badge_id: Mapped[int] = mapped_column(ForeignKey('badge_defs.id'), primary_key=True)
|
||||
description: Mapped[str]
|
||||
url: Mapped[str]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", back_populates="badges")
|
||||
badge = relationship("BadgeDef", primaryjoin="Badge.badge_id == BadgeDef.id", lazy="joined", innerjoin=True)
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import json
|
||||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -13,15 +13,15 @@ CASINO_GAME_KINDS = ['blackjack', 'slots', 'roulette']
|
|||
class CasinoGame(Base):
|
||||
__tablename__ = "casino_games"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"))
|
||||
created_utc = Column(Integer)
|
||||
active = Column(Boolean, default=True)
|
||||
currency = Column(String)
|
||||
wager = Column(Integer)
|
||||
winnings = Column(Integer)
|
||||
kind = Column(String)
|
||||
game_state = Column(JSON)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
created_utc: Mapped[int]
|
||||
active: Mapped[bool] = mapped_column(default=True)
|
||||
currency: Mapped[str]
|
||||
wager: Mapped[int]
|
||||
winnings: Mapped[int]
|
||||
kind: Mapped[str]
|
||||
game_state: Mapped[str] = mapped_column(JSON)
|
||||
|
||||
user = relationship("User")
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import time
|
||||
|
||||
from flask import g
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship, load_only
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, load_only, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -15,13 +15,13 @@ from .post import Post
|
|||
class OauthApp(Base):
|
||||
__tablename__ = "oauth_apps"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
client_id = Column(String)
|
||||
app_name = Column(String)
|
||||
redirect_uri = Column(String)
|
||||
description = Column(String)
|
||||
author_id = Column(Integer, ForeignKey("users.id"))
|
||||
created_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
client_id: Mapped[str]
|
||||
app_name: Mapped[str]
|
||||
redirect_uri: Mapped[str]
|
||||
description: Mapped[str]
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
created_utc: Mapped[int]
|
||||
|
||||
author = relationship("User", back_populates="apps")
|
||||
|
||||
|
@ -51,10 +51,10 @@ class OauthApp(Base):
|
|||
|
||||
class ClientAuth(Base):
|
||||
__tablename__ = "client_auths"
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
oauth_client = Column(Integer, ForeignKey("oauth_apps.id"), primary_key=True)
|
||||
access_token = Column(String)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
oauth_client: Mapped[int] = mapped_column(ForeignKey("oauth_apps.id"), primary_key=True)
|
||||
access_token: Mapped[str]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User")
|
||||
application = relationship("OauthApp")
|
||||
|
|
|
@ -4,9 +4,9 @@ from random import randint
|
|||
from urllib.parse import parse_qs, urlencode, urlparse
|
||||
from flask import g
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.dialects.postgresql import TSVECTOR
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.schema import FetchedValue
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
|
@ -172,47 +172,47 @@ def add_options(self, body, v):
|
|||
class Comment(Base):
|
||||
__tablename__ = "comments"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
author_id = Column(Integer, ForeignKey("users.id"))
|
||||
parent_post = Column(Integer, ForeignKey("posts.id"))
|
||||
wall_user_id = Column(Integer, ForeignKey("users.id"))
|
||||
created_utc = Column(Integer)
|
||||
edited_utc = Column(Integer, default=0)
|
||||
is_banned = Column(Boolean, default=False)
|
||||
ghost = Column(Boolean, default=False)
|
||||
bannedfor = Column(String)
|
||||
chuddedfor = Column(String)
|
||||
distinguished = Column(Boolean, default=False)
|
||||
deleted_utc = Column(Integer, default=0)
|
||||
is_approved = Column(Integer, ForeignKey("users.id"))
|
||||
level = Column(Integer, default=1)
|
||||
parent_comment_id = Column(Integer, ForeignKey("comments.id"))
|
||||
top_comment_id = Column(Integer)
|
||||
is_bot = Column(Boolean, default=False)
|
||||
stickied = Column(String)
|
||||
stickied_utc = Column(Integer)
|
||||
num_of_pinned_children = Column(Integer, default=0)
|
||||
sentto = Column(Integer, ForeignKey("users.id"))
|
||||
app_id = Column(Integer, ForeignKey("oauth_apps.id"))
|
||||
upvotes = Column(Integer, default=1)
|
||||
downvotes = Column(Integer, default=0)
|
||||
realupvotes = Column(Integer, default=1)
|
||||
body = Column(String)
|
||||
body_html = Column(String)
|
||||
body_ts = Column(TSVECTOR(), server_default=FetchedValue())
|
||||
ban_reason = Column(String)
|
||||
treasure_amount = Column(String)
|
||||
slots_result = Column(String)
|
||||
ping_cost = Column(Integer, default=0)
|
||||
blackjack_result = Column(String)
|
||||
casino_game_id = Column(Integer, ForeignKey("casino_games.id"))
|
||||
chudded = Column(Boolean, default=False)
|
||||
rainbowed = Column(Boolean, default=False)
|
||||
queened = Column(Boolean, default=False)
|
||||
sharpened = Column(Boolean, default=False)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
parent_post: Mapped[int] = mapped_column(ForeignKey("posts.id"))
|
||||
wall_user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
created_utc: Mapped[int]
|
||||
edited_utc: Mapped[int] = mapped_column(default=0)
|
||||
is_banned: Mapped[bool] = mapped_column(default=False)
|
||||
ghost: Mapped[bool] = mapped_column(default=False)
|
||||
bannedfor: Mapped[str]
|
||||
chuddedfor: Mapped[str]
|
||||
distinguished: Mapped[bool] = mapped_column(default=False)
|
||||
deleted_utc: Mapped[int] = mapped_column(default=0)
|
||||
is_approved: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
level: Mapped[int] = mapped_column(default=1)
|
||||
parent_comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"))
|
||||
top_comment_id: Mapped[int]
|
||||
is_bot: Mapped[bool] = mapped_column(default=False)
|
||||
stickied: Mapped[str]
|
||||
stickied_utc: Mapped[int]
|
||||
num_of_pinned_children: Mapped[int] = mapped_column(default=0)
|
||||
sentto: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
app_id: Mapped[int] = mapped_column(ForeignKey("oauth_apps.id"))
|
||||
upvotes: Mapped[int] = mapped_column(default=1)
|
||||
downvotes: Mapped[int] = mapped_column(default=0)
|
||||
realupvotes: Mapped[int] = mapped_column(default=1)
|
||||
body: Mapped[str]
|
||||
body_html: Mapped[str]
|
||||
body_ts: Mapped[str] = mapped_column(TSVECTOR(), server_default=FetchedValue())
|
||||
ban_reason: Mapped[str]
|
||||
treasure_amount: Mapped[str]
|
||||
slots_result: Mapped[str]
|
||||
ping_cost: Mapped[int] = mapped_column(default=0)
|
||||
blackjack_result: Mapped[str]
|
||||
casino_game_id: Mapped[int] = mapped_column(ForeignKey("casino_games.id"))
|
||||
chudded: Mapped[bool] = mapped_column(default=False)
|
||||
rainbowed: Mapped[bool] = mapped_column(default=False)
|
||||
queened: Mapped[bool] = mapped_column(default=False)
|
||||
sharpened: Mapped[bool] = mapped_column(default=False)
|
||||
|
||||
if FEATURES['NSFW_MARKING']:
|
||||
nsfw = Column(Boolean, default=False)
|
||||
nsfw: Mapped[bool] = mapped_column(default=False)
|
||||
else:
|
||||
nsfw = False
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class BannedDomain(Base):
|
||||
__tablename__ = "banneddomains"
|
||||
domain = Column(String, primary_key=True)
|
||||
reason = Column(String)
|
||||
created_utc = Column(Integer)
|
||||
domain: Mapped[str] = mapped_column(primary_key=True)
|
||||
reason: Mapped[str]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -8,14 +9,14 @@ from files.classes import Base
|
|||
class Emoji(Base):
|
||||
__tablename__ = "emojis"
|
||||
|
||||
name = Column(String, primary_key=True)
|
||||
kind = Column(String)
|
||||
author_id = Column(Integer, ForeignKey("users.id"))
|
||||
tags = Column(String)
|
||||
count = Column(Integer, default=0)
|
||||
submitter_id = Column(Integer, ForeignKey("users.id"))
|
||||
created_utc = Column(Integer)
|
||||
nsfw = Column(Boolean, default=False)
|
||||
name: Mapped[str] = mapped_column(primary_key=True)
|
||||
kind: Mapped[str]
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
tags: Mapped[str]
|
||||
count: Mapped[int] = mapped_column(default=0)
|
||||
submitter_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
created_utc: Mapped[int]
|
||||
nsfw: Mapped[bool] = mapped_column(default=False)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class Follow(Base):
|
||||
__tablename__ = "follows"
|
||||
target_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
target_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", uselist=False, primaryjoin="User.id==Follow.user_id", back_populates="following")
|
||||
target = relationship("User", uselist=False, primaryjoin="User.id==Follow.target_id", back_populates="followers")
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.types import Integer
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -12,11 +11,11 @@ from .group_membership import *
|
|||
|
||||
class Group(Base):
|
||||
__tablename__ = "groups"
|
||||
name = Column(String, primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
owner_id = Column(Integer, ForeignKey("users.id"))
|
||||
description = Column(String)
|
||||
description_html = Column(String)
|
||||
name: Mapped[str] = mapped_column(primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
owner_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
description: Mapped[str]
|
||||
description_html: Mapped[str]
|
||||
|
||||
memberships = relationship("GroupMembership", primaryjoin="GroupMembership.group_name==Group.name", order_by="GroupMembership.approved_utc")
|
||||
owner = relationship("User", primaryjoin="Group.owner_id==User.id")
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.types import Integer, String, Boolean
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class GroupMembership(Base):
|
||||
__tablename__ = "group_memberships"
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
group_name = Column(String, ForeignKey("groups.name"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
approved_utc = Column(Integer)
|
||||
is_mod = Column(Boolean, default=False)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
group_name: Mapped[str] = mapped_column(ForeignKey("groups.name"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
approved_utc: Mapped[int]
|
||||
is_mod: Mapped[bool] = mapped_column(default=False)
|
||||
|
||||
user = relationship("User", uselist=False)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
from flask import g
|
||||
|
||||
|
@ -12,13 +12,13 @@ from files.helpers.slurs_and_profanities import censor_slurs_profanities
|
|||
class HatDef(Base):
|
||||
__tablename__ = "hat_defs"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
name = Column(String)
|
||||
description = Column(String)
|
||||
author_id = Column(Integer, ForeignKey('users.id'))
|
||||
price = Column(Integer)
|
||||
submitter_id = Column(Integer, ForeignKey("users.id"))
|
||||
created_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
name: Mapped[str]
|
||||
description: Mapped[str]
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey('users.id'))
|
||||
price: Mapped[int]
|
||||
submitter_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
created_utc: Mapped[int]
|
||||
|
||||
author = relationship("User", primaryjoin="HatDef.author_id == User.id", back_populates="designed_hats")
|
||||
submitter = relationship("User", primaryjoin="HatDef.submitter_id == User.id")
|
||||
|
@ -48,10 +48,10 @@ class HatDef(Base):
|
|||
class Hat(Base):
|
||||
__tablename__ = "hats"
|
||||
|
||||
user_id = Column(Integer, ForeignKey('users.id'), primary_key=True)
|
||||
hat_id = Column(Integer, ForeignKey('hat_defs.id'), primary_key=True)
|
||||
equipped = Column(Boolean, default=False)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey('users.id'), primary_key=True)
|
||||
hat_id: Mapped[int] = mapped_column(ForeignKey('hat_defs.id'), primary_key=True)
|
||||
equipped: Mapped[bool] = mapped_column(default=False)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
hat_def = relationship("HatDef")
|
||||
owners = relationship("User", back_populates="owned_hats")
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
import random
|
||||
import time
|
||||
from typing import Annotated
|
||||
|
||||
from sqlalchemy import Column
|
||||
from sqlalchemy.ext.mutable import MutableList
|
||||
from sqlalchemy.orm import relationship, deferred
|
||||
from sqlalchemy.types import *
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.dialects.postgresql import ARRAY
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -15,20 +14,20 @@ from .hole_relationship import *
|
|||
|
||||
class Hole(Base):
|
||||
__tablename__ = "holes"
|
||||
name = Column(String, primary_key=True)
|
||||
sidebar = Column(String)
|
||||
sidebar_html = Column(String)
|
||||
sidebarurls = Column(MutableList.as_mutable(ARRAY(String)), default=MutableList([]))
|
||||
bannerurls = Column(MutableList.as_mutable(ARRAY(String)), default=MutableList([]))
|
||||
marseyurl = Column(String)
|
||||
css = deferred(Column(String))
|
||||
stealth = Column(Boolean, default=False)
|
||||
public_use = Column(Boolean, default=False)
|
||||
created_utc = Column(Integer)
|
||||
name: Mapped[str] = mapped_column(primary_key=True)
|
||||
sidebar: Mapped[str]
|
||||
sidebar_html: Mapped[str]
|
||||
sidebarurls: Mapped[list[str]] = mapped_column(MutableList.as_mutable(ARRAY(String)), default=MutableList([]))
|
||||
bannerurls: Mapped[list[str]] = mapped_column(MutableList.as_mutable(ARRAY(String)), default=MutableList([]))
|
||||
marseyurl: Mapped[str]
|
||||
css: Mapped[str] = mapped_column(deferred=True)
|
||||
stealth: Mapped[bool] = mapped_column(default=False)
|
||||
public_use: Mapped[bool] = mapped_column(default=False)
|
||||
created_utc: Mapped[int]
|
||||
if SITE_NAME == 'WPD':
|
||||
snappy_quotes = None
|
||||
else:
|
||||
snappy_quotes = deferred(Column(String))
|
||||
snappy_quotes: Mapped[Annotated[str, HOLE_SNAPPY_QUOTES_LENGTH]] = mapped_column(deferred=True)
|
||||
|
||||
blocks = relationship("HoleBlock", primaryjoin="HoleBlock.hole==Hole.name")
|
||||
followers = relationship("HoleFollow", primaryjoin="HoleFollow.hole==Hole.name")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
from flask import g
|
||||
|
||||
|
@ -13,15 +13,15 @@ from files.helpers.sorting_and_time import make_age_string
|
|||
|
||||
class HoleAction(Base):
|
||||
__tablename__ = "hole_actions"
|
||||
id = Column(Integer, primary_key=True)
|
||||
hole = Column(String, ForeignKey("holes.name"))
|
||||
user_id = Column(Integer, ForeignKey("users.id"))
|
||||
kind = Column(String)
|
||||
target_user_id = Column(Integer, ForeignKey("users.id"))
|
||||
target_post_id = Column(Integer, ForeignKey("posts.id"))
|
||||
target_comment_id = Column(Integer, ForeignKey("comments.id"))
|
||||
_note = Column(String)
|
||||
created_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
hole: Mapped[str] = mapped_column(ForeignKey("holes.name"))
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
kind: Mapped[str]
|
||||
target_user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
target_post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"))
|
||||
target_comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"))
|
||||
_note: Mapped[str]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", primaryjoin="User.id==HoleAction.user_id")
|
||||
target_user = relationship("User", primaryjoin="User.id==HoleAction.target_user_id")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, relationship, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -10,9 +10,9 @@ class HoleRelationship(Base):
|
|||
__tablename__ = NotImplemented
|
||||
__abstract__ = True
|
||||
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
hole = Column(String, ForeignKey("holes.name"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
hole: Mapped[str] = mapped_column(ForeignKey("holes.name"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
@ -35,5 +35,5 @@ class Mod(HoleRelationship):
|
|||
|
||||
class Exile(HoleRelationship):
|
||||
__tablename__ = "exiles"
|
||||
exiler_id = Column(Integer, ForeignKey("users.id"))
|
||||
exiler_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
exiler = relationship("User", primaryjoin="User.id==Exile.exiler_id")
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class IPLog(Base):
|
||||
__tablename__ = "ip_logs"
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
ip = Column(String, primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
last_used = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
ip: Mapped[str] = mapped_column(primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
last_used: Mapped[int]
|
||||
|
||||
user = relationship("User")
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -10,13 +11,13 @@ from files.helpers.lazy import lazy
|
|||
class Lottery(Base):
|
||||
__tablename__ = "lotteries"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
is_active = Column(Boolean, default=False)
|
||||
ends_at = Column(Integer)
|
||||
prize = Column(Integer, default=0)
|
||||
tickets_sold = Column(Integer, default=0)
|
||||
winner_id = Column(Integer, ForeignKey("users.id"))
|
||||
created_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
is_active: Mapped[bool] = mapped_column(default=False)
|
||||
ends_at: Mapped[int]
|
||||
prize: Mapped[int] = mapped_column(default=0)
|
||||
tickets_sold: Mapped[int] = mapped_column(default=0)
|
||||
winner_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
created_utc: Mapped[int]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
from files.classes import Base
|
||||
|
||||
class Media(Base):
|
||||
__tablename__ = "media"
|
||||
kind = Column(String, primary_key=True)
|
||||
filename = Column(String, primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"))
|
||||
created_utc = Column(Integer)
|
||||
size = Column(Integer)
|
||||
kind: Mapped[str] = mapped_column(primary_key=True)
|
||||
filename: Mapped[str] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
created_utc: Mapped[int]
|
||||
size: Mapped[int]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
from flask import g
|
||||
|
||||
|
@ -13,14 +13,14 @@ from files.helpers.sorting_and_time import make_age_string
|
|||
|
||||
class ModAction(Base):
|
||||
__tablename__ = "modactions"
|
||||
id = Column(Integer, primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"))
|
||||
kind = Column(String)
|
||||
target_user_id = Column(Integer, ForeignKey("users.id"))
|
||||
target_post_id = Column(Integer, ForeignKey("posts.id"))
|
||||
target_comment_id = Column(Integer, ForeignKey("comments.id"))
|
||||
_note = Column(String)
|
||||
created_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
kind: Mapped[str]
|
||||
target_user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
target_post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"))
|
||||
target_comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"))
|
||||
_note: Mapped[str]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", primaryjoin="User.id==ModAction.user_id")
|
||||
target_user = relationship("User", primaryjoin="User.id==ModAction.target_user_id")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -9,10 +9,10 @@ from files.classes import Base
|
|||
class Notification(Base):
|
||||
__tablename__ = "notifications"
|
||||
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
comment_id = Column(Integer, ForeignKey("comments.id"), primary_key=True)
|
||||
read = Column(Boolean, default=False)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"), primary_key=True)
|
||||
read: Mapped[bool] = mapped_column(default=False)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
comment = relationship("Comment")
|
||||
user = relationship("User")
|
||||
|
|
|
@ -2,7 +2,8 @@ import time
|
|||
from flask import g, abort
|
||||
import requests
|
||||
|
||||
from sqlalchemy import Column, or_
|
||||
from sqlalchemy import or_
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -13,13 +14,13 @@ from files.helpers.config.const import *
|
|||
class Orgy(Base):
|
||||
__tablename__ = "orgies"
|
||||
|
||||
created_utc = Column(Integer, primary_key=True)
|
||||
type = Column(String)
|
||||
data = Column(String)
|
||||
title = Column(String)
|
||||
start_utc = Column(Integer)
|
||||
end_utc = Column(Integer)
|
||||
started = Column(Boolean, default=False)
|
||||
created_utc: Mapped[int] = mapped_column(primary_key=True)
|
||||
type: Mapped[str]
|
||||
data: Mapped[str]
|
||||
title: Mapped[str]
|
||||
start_utc: Mapped[int]
|
||||
end_utc: Mapped[int]
|
||||
started: Mapped[bool] = mapped_column(default=False)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -10,11 +10,11 @@ from files.helpers.lazy import lazy
|
|||
class PostOption(Base):
|
||||
__tablename__ = "post_options"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
parent_id = Column(Integer, ForeignKey("posts.id"))
|
||||
body_html = Column(Text)
|
||||
exclusive = Column(Integer)
|
||||
created_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
parent_id: Mapped[int] = mapped_column(ForeignKey("posts.id"))
|
||||
body_html: Mapped[str] = mapped_column(Text)
|
||||
exclusive: Mapped[int]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
votes = relationship("PostOptionVote")
|
||||
parent = relationship("Post", back_populates="options")
|
||||
|
@ -40,10 +40,10 @@ class PostOptionVote(Base):
|
|||
|
||||
__tablename__ = "post_option_votes"
|
||||
|
||||
option_id = Column(Integer, ForeignKey("post_options.id"), primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
post_id = Column(Integer, ForeignKey("posts.id"))
|
||||
option_id: Mapped[int] = mapped_column(ForeignKey("post_options.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"))
|
||||
|
||||
user = relationship("User")
|
||||
|
||||
|
@ -59,11 +59,11 @@ class CommentOption(Base):
|
|||
|
||||
__tablename__ = "comment_options"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
parent_id = Column(Integer, ForeignKey("comments.id"))
|
||||
body_html = Column(Text)
|
||||
exclusive = Column(Integer)
|
||||
created_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
parent_id: Mapped[int] = mapped_column(ForeignKey("comments.id"))
|
||||
body_html: Mapped[str] = mapped_column(Text)
|
||||
exclusive: Mapped[int]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
votes = relationship("CommentOptionVote")
|
||||
parent = relationship("Comment", back_populates="options")
|
||||
|
@ -89,10 +89,10 @@ class CommentOptionVote(Base):
|
|||
|
||||
__tablename__ = "comment_option_votes"
|
||||
|
||||
option_id = Column(Integer, ForeignKey("comment_options.id"), primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
comment_id = Column(Integer, ForeignKey("comments.id"))
|
||||
option_id: Mapped[int] = mapped_column(ForeignKey("comment_options.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"))
|
||||
|
||||
user = relationship("User")
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@ import time
|
|||
from urllib.parse import urlparse
|
||||
from flask import g
|
||||
|
||||
from sqlalchemy import Column, FetchedValue, ForeignKey
|
||||
from sqlalchemy.orm import deferred, relationship
|
||||
from sqlalchemy import FetchedValue, ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -25,57 +25,57 @@ from .saves import SaveRelationship
|
|||
class Post(Base):
|
||||
__tablename__ = "posts"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
author_id = Column(Integer, ForeignKey("users.id"))
|
||||
edited_utc = Column(Integer, default=0)
|
||||
created_utc = Column(Integer)
|
||||
thumburl = Column(String)
|
||||
posterurl = Column(String)
|
||||
is_banned = Column(Boolean, default=False)
|
||||
bannedfor = Column(String)
|
||||
chuddedfor = Column(String)
|
||||
ghost = Column(Boolean, default=False)
|
||||
effortpost = Column(Boolean, default=False)
|
||||
views = Column(Integer, default=0)
|
||||
deleted_utc = Column(Integer, default=0)
|
||||
distinguished = Column(Boolean, default=False)
|
||||
stickied = Column(String)
|
||||
stickied_utc = Column(Integer)
|
||||
hole_pinned = Column(String)
|
||||
hole = Column(String, ForeignKey("holes.name"))
|
||||
is_pinned = Column(Boolean, default=False)
|
||||
private = Column(Boolean, default=False)
|
||||
comment_count = Column(Integer, default=0)
|
||||
is_approved = Column(Integer, ForeignKey("users.id"))
|
||||
is_bot = Column(Boolean, default=False)
|
||||
upvotes = Column(Integer, default=1)
|
||||
downvotes = Column(Integer, default=0)
|
||||
realupvotes = Column(Integer, default=1)
|
||||
app_id = Column(Integer, ForeignKey("oauth_apps.id"))
|
||||
title = Column(String)
|
||||
title_html = Column(String)
|
||||
url = Column(String)
|
||||
body = Column(String)
|
||||
body_html = Column(String)
|
||||
flair = Column(String)
|
||||
ban_reason = Column(String)
|
||||
embed = Column(String)
|
||||
new = Column(Boolean)
|
||||
notify = Column(Boolean)
|
||||
chudded = Column(Boolean, default=False)
|
||||
rainbowed = Column(Boolean, default=False)
|
||||
queened = Column(Boolean, default=False)
|
||||
sharpened = Column(Boolean, default=False)
|
||||
ping_cost = Column(Integer, default=0)
|
||||
bump_utc = Column(Integer)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
author_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
edited_utc: Mapped[int] = mapped_column(default=0)
|
||||
created_utc: Mapped[int]
|
||||
thumburl: Mapped[str]
|
||||
posterurl: Mapped[str]
|
||||
is_banned: Mapped[bool] = mapped_column(default=False)
|
||||
bannedfor: Mapped[str]
|
||||
chuddedfor: Mapped[str]
|
||||
ghost: Mapped[bool] = mapped_column(default=False)
|
||||
effortpost: Mapped[bool] = mapped_column(default=False)
|
||||
views: Mapped[int] = mapped_column(default=0)
|
||||
deleted_utc: Mapped[int] = mapped_column(default=0)
|
||||
distinguished: Mapped[bool] = mapped_column(default=False)
|
||||
stickied: Mapped[str]
|
||||
stickied_utc: Mapped[int]
|
||||
hole_pinned: Mapped[str]
|
||||
hole: Mapped[str] = mapped_column(ForeignKey("holes.name"))
|
||||
is_pinned: Mapped[bool] = mapped_column(default=False)
|
||||
private: Mapped[bool] = mapped_column(default=False)
|
||||
comment_count: Mapped[int] = mapped_column(default=0)
|
||||
is_approved: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
is_bot: Mapped[bool] = mapped_column(default=False)
|
||||
upvotes: Mapped[int] = mapped_column(default=1)
|
||||
downvotes: Mapped[int] = mapped_column(default=0)
|
||||
realupvotes: Mapped[int] = mapped_column(default=1)
|
||||
app_id: Mapped[int] = mapped_column(ForeignKey("oauth_apps.id"))
|
||||
title: Mapped[str]
|
||||
title_html: Mapped[str]
|
||||
url: Mapped[str]
|
||||
body: Mapped[str]
|
||||
body_html: Mapped[str]
|
||||
flair: Mapped[str]
|
||||
ban_reason: Mapped[str]
|
||||
embed: Mapped[str]
|
||||
new: Mapped[bool]
|
||||
notify: Mapped[bool]
|
||||
chudded: Mapped[bool] = mapped_column(default=False)
|
||||
rainbowed: Mapped[bool] = mapped_column(default=False)
|
||||
queened: Mapped[bool] = mapped_column(default=False)
|
||||
sharpened: Mapped[bool] = mapped_column(default=False)
|
||||
ping_cost: Mapped[int] = mapped_column(default=0)
|
||||
bump_utc: Mapped[int]
|
||||
|
||||
if FEATURES['NSFW_MARKING']:
|
||||
nsfw = Column(Boolean, default=False)
|
||||
nsfw: Mapped[bool] = mapped_column(default=False)
|
||||
else:
|
||||
nsfw = False
|
||||
|
||||
if SITE_NAME == 'WPD':
|
||||
cw = Column(Boolean, default=False)
|
||||
cw: Mapped[bool] = mapped_column(default=False)
|
||||
|
||||
author = relationship("User", primaryjoin="Post.author_id==User.id")
|
||||
oauth_app = relationship("OauthApp")
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class PushSubscription(Base):
|
||||
__tablename__ = "push_subscriptions"
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
subscription_json = Column(String, primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
subscription_json: Mapped[str] = mapped_column(primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -11,10 +11,10 @@ from files.helpers.slurs_and_profanities import censor_slurs_profanities
|
|||
class Report(Base):
|
||||
__tablename__ = "reports"
|
||||
|
||||
post_id = Column(Integer, ForeignKey("posts.id"), primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
reason = Column(String)
|
||||
created_utc = Column(Integer)
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
reason: Mapped[str]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", primaryjoin = "Report.user_id == User.id", uselist = False)
|
||||
|
||||
|
@ -39,10 +39,10 @@ class Report(Base):
|
|||
class CommentReport(Base):
|
||||
__tablename__ = "commentreports"
|
||||
|
||||
comment_id = Column(Integer, ForeignKey("comments.id"), primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
reason = Column(String)
|
||||
created_utc = Column(Integer)
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
reason: Mapped[str]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", primaryjoin = "CommentReport.user_id == User.id", uselist = False)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -9,9 +9,9 @@ from files.classes import Base
|
|||
class SaveRelationship(Base):
|
||||
__tablename__ = "save_relationship"
|
||||
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
post_id = Column(Integer, ForeignKey("posts.id"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
post = relationship("Post", uselist=False)
|
||||
|
||||
|
@ -27,9 +27,9 @@ class CommentSaveRelationship(Base):
|
|||
|
||||
__tablename__ = "comment_save_relationship"
|
||||
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
comment_id = Column(Integer, ForeignKey("comments.id"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
comment = relationship("Comment", uselist=False)
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class Subscription(Base):
|
||||
__tablename__ = "subscriptions"
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
post_id = Column(Integer, ForeignKey("posts.id"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", uselist=False)
|
||||
post = relationship("Post", uselist=False)
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
from sqlalchemy import Column
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class Transaction(Base):
|
||||
__tablename__ = "transactions"
|
||||
id = Column(String, primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
type = Column(String)
|
||||
amount = Column(Integer)
|
||||
email = Column(String)
|
||||
claimed = Column(Boolean)
|
||||
id: Mapped[str] = mapped_column(primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
type: Mapped[str]
|
||||
amount: Mapped[int]
|
||||
email: Mapped[str]
|
||||
claimed: Mapped[bool]
|
||||
|
||||
def __repr__(self):
|
||||
return f"<{self.__class__.__name__}(id={self.id})>"
|
||||
|
|
|
@ -2,8 +2,8 @@ import random
|
|||
from operator import *
|
||||
|
||||
import pyotp
|
||||
from sqlalchemy import Column, ForeignKey, FetchedValue
|
||||
from sqlalchemy.orm import aliased, deferred, Query
|
||||
from sqlalchemy import ForeignKey, FetchedValue
|
||||
from sqlalchemy.orm import Mapped, Query, aliased, deferred, mapped_column
|
||||
from sqlalchemy.sql import case, func, literal
|
||||
from sqlalchemy.sql.expression import not_, and_, or_
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
@ -49,106 +49,106 @@ else:
|
|||
class User(Base):
|
||||
__tablename__ = "users"
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
username = Column(String)
|
||||
namecolor = Column(String, default=DEFAULT_COLOR)
|
||||
background = Column(String)
|
||||
profile_background = Column(String)
|
||||
flair = deferred(Column(String))
|
||||
flair_html = Column(String)
|
||||
flaircolor = Column(String, default=DEFAULT_COLOR)
|
||||
theme = Column(String, default=DEFAULT_THEME)
|
||||
themecolor = Column(String, default=DEFAULT_COLOR)
|
||||
song = Column(String)
|
||||
highres = Column(String)
|
||||
profileurl = Column(String)
|
||||
bannerurl = Column(String)
|
||||
house = Column(String, default='')
|
||||
old_house = Column(String, default='')
|
||||
patron = Column(Integer, default=0)
|
||||
patron_utc = Column(Integer, default=0)
|
||||
verified = Column(String)
|
||||
verifiedcolor = Column(String)
|
||||
hieroglyphs = Column(Integer, default=0)
|
||||
rehab = Column(Integer, default=0)
|
||||
longpost = Column(Integer, default=0)
|
||||
bird = Column(Integer, default=0)
|
||||
email = deferred(Column(String))
|
||||
css = Column(String)
|
||||
profilecss = deferred(Column(String))
|
||||
passhash = deferred(Column(String))
|
||||
post_count = Column(Integer, default=0)
|
||||
comment_count = Column(Integer, default=0)
|
||||
received_award_count = Column(Integer, default=0)
|
||||
created_utc = Column(Integer)
|
||||
admin_level = Column(Integer, default=DEFAULT_ADMIN_LEVEL)
|
||||
last_active = Column(Integer)
|
||||
coins_spent = Column(Integer, default=0)
|
||||
coins_spent_on_hats = Column(Integer, default=0)
|
||||
lootboxes_bought = Column(Integer, default=0)
|
||||
chud = Column(Integer, default=0)
|
||||
queen = Column(Integer, default=0)
|
||||
chud_phrase = Column(String)
|
||||
email_verified = Column(Boolean, default=False)
|
||||
shadowbanned = Column(Integer, ForeignKey("users.id"))
|
||||
chudded_by = Column(Integer, ForeignKey("users.id"))
|
||||
slurreplacer = Column(Integer, default=1)
|
||||
profanityreplacer = Column(Integer, default=1)
|
||||
flairchanged = Column(Integer, default=0)
|
||||
namechanged = Column(Integer, default=0)
|
||||
newtab = Column(Boolean, default=False)
|
||||
newtabexternal = Column(Boolean, default=True)
|
||||
frontsize = Column(Integer, default=25)
|
||||
bio = deferred(Column(String))
|
||||
bio_html = Column(String)
|
||||
sig = deferred(Column(String))
|
||||
sig_html = Column(String)
|
||||
show_sigs = Column(Boolean, default=True)
|
||||
progressivestack = Column(Integer, default=0)
|
||||
deflector = Column(Integer, default=0)
|
||||
friends = deferred(Column(String))
|
||||
friends_html = deferred(Column(String))
|
||||
enemies = deferred(Column(String))
|
||||
enemies_html = deferred(Column(String))
|
||||
is_banned = Column(Integer, ForeignKey("users.id"))
|
||||
unban_utc = Column(Integer)
|
||||
ban_reason = deferred(Column(String))
|
||||
shadowban_reason = deferred(Column(String))
|
||||
is_muted = Column(Boolean, default=False)
|
||||
login_nonce = Column(Integer, default=0)
|
||||
coins = Column(Integer, default=DEFAULT_COINS)
|
||||
truescore = Column(Integer, default=0)
|
||||
marseybux = Column(Integer, default=DEFAULT_MARSEYBUX)
|
||||
mfa_secret = deferred(Column(String))
|
||||
is_private = Column(Boolean, default=False)
|
||||
stored_subscriber_count = Column(Integer, default=0)
|
||||
defaultsortingcomments = Column(String, default="hot")
|
||||
defaultsorting = Column(String, default="hot")
|
||||
defaulttime = Column(String, default=DEFAULT_TIME_FILTER)
|
||||
custom_filter_list = Column(String)
|
||||
original_username = Column(String)
|
||||
extra_username = Column(String)
|
||||
prelock_username = Column(String)
|
||||
referred_by = Column(Integer, ForeignKey("users.id"))
|
||||
currently_held_lottery_tickets = Column(Integer, default=0)
|
||||
total_held_lottery_tickets = Column(Integer, default=0)
|
||||
total_lottery_winnings = Column(Integer, default=0)
|
||||
last_viewed_modmail_notifs = Column(Integer, default=0)
|
||||
last_viewed_post_notifs = Column(Integer, default=0)
|
||||
last_viewed_log_notifs = Column(Integer, default=0)
|
||||
last_viewed_offsite_notifs = Column(Integer, default=0)
|
||||
bite = Column(Integer, default=0)
|
||||
owoify = Column(Integer, default=0)
|
||||
sharpen = Column(Integer, default=0)
|
||||
marsify = Column(Integer, default=0)
|
||||
rainbow = Column(Integer, default=0)
|
||||
spider = Column(Integer, default=0)
|
||||
lifetimedonated = Column(Integer, default=0)
|
||||
lifetimedonated_visible = Column(Boolean, default=False)
|
||||
blacklisted_by = Column(Integer, ForeignKey("users.id"))
|
||||
grinch = Column(Boolean, default=SITE_NAME != 'rDrama') #don't put in an if condition, it will cause an error bc it has a not-null constraint
|
||||
group_creation_notifs = Column(Boolean, default=False)
|
||||
effortpost_notifs = Column(Boolean, default=False)
|
||||
id: Mapped[int] = mapped_column(primary_key=True)
|
||||
username: Mapped[str]
|
||||
namecolor: Mapped[str] = mapped_column(default=DEFAULT_COLOR)
|
||||
background: Mapped[str]
|
||||
profile_background: Mapped[str]
|
||||
flair: Mapped[str] = mapped_column(deferred=True)
|
||||
flair_html: Mapped[str]
|
||||
flaircolor: Mapped[str] = mapped_column(default=DEFAULT_COLOR)
|
||||
theme: Mapped[str] = mapped_column(default=DEFAULT_THEME)
|
||||
themecolor: Mapped[str] = mapped_column(default=DEFAULT_COLOR)
|
||||
song: Mapped[str]
|
||||
highres: Mapped[str]
|
||||
profileurl: Mapped[str]
|
||||
bannerurl: Mapped[str]
|
||||
house: Mapped[str] = mapped_column(default='')
|
||||
old_house: Mapped[str] = mapped_column(default='')
|
||||
patron: Mapped[int] = mapped_column(default=0)
|
||||
patron_utc: Mapped[int] = mapped_column(default=0)
|
||||
verified: Mapped[str]
|
||||
verifiedcolor: Mapped[str]
|
||||
hieroglyphs: Mapped[int] = mapped_column(default=0)
|
||||
rehab: Mapped[int] = mapped_column(default=0)
|
||||
longpost: Mapped[int] = mapped_column(default=0)
|
||||
bird: Mapped[int] = mapped_column(default=0)
|
||||
email: Mapped[str] = mapped_column(deferred=True)
|
||||
css: Mapped[str]
|
||||
profilecss: Mapped[str] = mapped_column(deferred=True)
|
||||
passhash: Mapped[str] = mapped_column(deferred=True)
|
||||
post_count: Mapped[int] = mapped_column(default=0)
|
||||
comment_count: Mapped[int] = mapped_column(default=0)
|
||||
received_award_count: Mapped[int] = mapped_column(default=0)
|
||||
created_utc: Mapped[int]
|
||||
admin_level: Mapped[int] = mapped_column(default=DEFAULT_ADMIN_LEVEL)
|
||||
last_active: Mapped[int]
|
||||
coins_spent: Mapped[int] = mapped_column(default=0)
|
||||
coins_spent_on_hats: Mapped[int] = mapped_column(default=0)
|
||||
lootboxes_bought: Mapped[int] = mapped_column(default=0)
|
||||
chud: Mapped[int] = mapped_column(default=0)
|
||||
queen: Mapped[int] = mapped_column(default=0)
|
||||
chud_phrase: Mapped[str]
|
||||
email_verified: Mapped[bool] = mapped_column(default=False)
|
||||
shadowbanned: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
chudded_by: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
slurreplacer: Mapped[int] = mapped_column(default=1)
|
||||
profanityreplacer: Mapped[int] = mapped_column(default=1)
|
||||
flairchanged: Mapped[int] = mapped_column(default=0)
|
||||
namechanged: Mapped[int] = mapped_column(default=0)
|
||||
newtab: Mapped[bool] = mapped_column(default=False)
|
||||
newtabexternal: Mapped[bool] = mapped_column(default=True)
|
||||
frontsize: Mapped[int] = mapped_column(default=25)
|
||||
bio: Mapped[str] = mapped_column(deferred=True)
|
||||
bio_html: Mapped[str]
|
||||
sig: Mapped[str] = mapped_column(deferred=True)
|
||||
sig_html: Mapped[str]
|
||||
show_sigs: Mapped[bool] = mapped_column(default=True)
|
||||
progressivestack: Mapped[int] = mapped_column(default=0)
|
||||
deflector: Mapped[int] = mapped_column(default=0)
|
||||
friends: Mapped[str] = mapped_column(deferred=True)
|
||||
friends_html: Mapped[str] = mapped_column(deferred=True)
|
||||
enemies: Mapped[str] = mapped_column(deferred=True)
|
||||
enemies_html: Mapped[str] = mapped_column(deferred=True)
|
||||
is_banned: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
unban_utc: Mapped[int]
|
||||
ban_reason: Mapped[str] = mapped_column(deferred=True)
|
||||
shadowban_reason: Mapped[str] = mapped_column(deferred=True)
|
||||
is_muted: Mapped[bool] = mapped_column(default=False)
|
||||
login_nonce: Mapped[int] = mapped_column(default=0)
|
||||
coins: Mapped[int] = mapped_column(default=DEFAULT_COINS)
|
||||
truescore: Mapped[int] = mapped_column(default=0)
|
||||
marseybux: Mapped[int] = mapped_column(default=DEFAULT_MARSEYBUX)
|
||||
mfa_secret: Mapped[str] = mapped_column(deferred=True)
|
||||
is_private: Mapped[bool] = mapped_column(default=False)
|
||||
stored_subscriber_count: Mapped[int] = mapped_column(default=0)
|
||||
defaultsortingcomments: Mapped[str] = mapped_column(default="hot")
|
||||
defaultsorting: Mapped[str] = mapped_column(default="hot")
|
||||
defaulttime: Mapped[str] = mapped_column(default=DEFAULT_TIME_FILTER)
|
||||
custom_filter_list: Mapped[str]
|
||||
original_username: Mapped[str]
|
||||
extra_username: Mapped[str]
|
||||
prelock_username: Mapped[str]
|
||||
referred_by: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
currently_held_lottery_tickets: Mapped[int] = mapped_column(default=0)
|
||||
total_held_lottery_tickets: Mapped[int] = mapped_column(default=0)
|
||||
total_lottery_winnings: Mapped[int] = mapped_column(default=0)
|
||||
last_viewed_modmail_notifs: Mapped[int] = mapped_column(default=0)
|
||||
last_viewed_post_notifs: Mapped[int] = mapped_column(default=0)
|
||||
last_viewed_log_notifs: Mapped[int] = mapped_column(default=0)
|
||||
last_viewed_offsite_notifs: Mapped[int] = mapped_column(default=0)
|
||||
bite: Mapped[int] = mapped_column(default=0)
|
||||
owoify: Mapped[int] = mapped_column(default=0)
|
||||
sharpen: Mapped[int] = mapped_column(default=0)
|
||||
marsify: Mapped[int] = mapped_column(default=0)
|
||||
rainbow: Mapped[int] = mapped_column(default=0)
|
||||
spider: Mapped[int] = mapped_column(default=0)
|
||||
lifetimedonated: Mapped[int] = mapped_column(default=0)
|
||||
lifetimedonated_visible: Mapped[bool] = mapped_column(default=False)
|
||||
blacklisted_by: Mapped[int] = mapped_column(ForeignKey("users.id"))
|
||||
grinch: Mapped[bool] = mapped_column(default=SITE_NAME != 'rDrama') #don't put in an if condition, it will cause an error bc it has a not-null constraint
|
||||
group_creation_notifs: Mapped[bool] = mapped_column(default=False)
|
||||
effortpost_notifs: Mapped[bool] = mapped_column(default=False)
|
||||
|
||||
if SITE_NAME == 'WPD':
|
||||
nitter = False
|
||||
|
@ -158,22 +158,22 @@ class User(Base):
|
|||
pronouns = 'they/them'
|
||||
earlylife = 0
|
||||
hole_creation_notifs = False
|
||||
hidevotedon = Column(Boolean, default=False)
|
||||
hide_cw = Column(Boolean, default=False)
|
||||
hidevotedon: Mapped[bool] = mapped_column(default=False)
|
||||
hide_cw: Mapped[bool] = mapped_column(default=False)
|
||||
else:
|
||||
nitter = Column(Boolean, default=False)
|
||||
imgsed = Column(Boolean, default=False)
|
||||
controversial = Column(Boolean, default=False)
|
||||
reddit = Column(String, default='old.reddit.com')
|
||||
pronouns = Column(String, default='they/them')
|
||||
earlylife = Column(Integer, default=0)
|
||||
hole_creation_notifs = Column(Boolean, default=True)
|
||||
nitter: Mapped[bool] = mapped_column(default=False)
|
||||
imgsed: Mapped[bool] = mapped_column(default=False)
|
||||
controversial: Mapped[bool] = mapped_column(default=False)
|
||||
reddit: Mapped[str] = mapped_column(default='old.reddit.com')
|
||||
pronouns: Mapped[str] = mapped_column(default='they/them')
|
||||
earlylife: Mapped[int] = mapped_column(default=0)
|
||||
hole_creation_notifs: Mapped[bool] = mapped_column(default=True)
|
||||
hidevotedon = False
|
||||
hide_cw = False
|
||||
|
||||
if IS_HOMOWEEN():
|
||||
zombie = Column(Integer, default=0) # > 0 vaxxed; < 0 zombie
|
||||
jumpscare = Column(Integer, default=0)
|
||||
zombie: Mapped[int] = mapped_column(default=0) # > 0 vaxxed; < 0 zombie
|
||||
jumpscare: Mapped[int] = mapped_column(default=0)
|
||||
|
||||
badges = relationship("Badge", order_by="Badge.created_utc", back_populates="user")
|
||||
subscriptions = relationship("Subscription", back_populates="user")
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class UserBlock(Base):
|
||||
__tablename__ = "userblocks"
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
target_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
target_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", primaryjoin="User.id==UserBlock.user_id", back_populates="blocking")
|
||||
target = relationship("User", primaryjoin="User.id==UserBlock.target_id", back_populates="blocked")
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
||||
class UserMute(Base):
|
||||
__tablename__ = "usermutes"
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
target_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
target_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User", primaryjoin="User.id==UserMute.user_id")
|
||||
target = relationship("User", primaryjoin="User.id==UserMute.target_id")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -11,10 +11,10 @@ from files.helpers.sorting_and_time import make_age_string
|
|||
class ViewerRelationship(Base):
|
||||
__tablename__ = "viewers"
|
||||
|
||||
user_id = Column(Integer, ForeignKey('users.id'), primary_key=True)
|
||||
viewer_id = Column(Integer, ForeignKey('users.id'), primary_key=True)
|
||||
last_view_utc = Column(Integer)
|
||||
created_utc = Column(Integer)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey('users.id'), primary_key=True)
|
||||
viewer_id: Mapped[int] = mapped_column(ForeignKey('users.id'), primary_key=True)
|
||||
last_view_utc: Mapped[int]
|
||||
created_utc: Mapped[int]
|
||||
|
||||
viewer = relationship("User", primaryjoin="ViewerRelationship.viewer_id == User.id")
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import time
|
||||
|
||||
from sqlalchemy import Column, ForeignKey
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy import ForeignKey
|
||||
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||
from sqlalchemy.sql.sqltypes import *
|
||||
|
||||
from files.classes import Base
|
||||
|
@ -10,12 +10,12 @@ from files.helpers.lazy import lazy
|
|||
class Vote(Base):
|
||||
__tablename__ = "votes"
|
||||
|
||||
post_id = Column(Integer, ForeignKey("posts.id"), primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
vote_type = Column(Integer)
|
||||
real = Column(Boolean, default=True)
|
||||
coins = Column(Integer, default=1)
|
||||
created_utc = Column(Integer)
|
||||
post_id: Mapped[int] = mapped_column(ForeignKey("posts.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
vote_type: Mapped[int]
|
||||
real: Mapped[bool] = mapped_column(default=True)
|
||||
coins: Mapped[int] = mapped_column(default=1)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User")
|
||||
|
||||
|
@ -40,12 +40,12 @@ class CommentVote(Base):
|
|||
|
||||
__tablename__ = "commentvotes"
|
||||
|
||||
comment_id = Column(Integer, ForeignKey("comments.id"), primary_key=True)
|
||||
user_id = Column(Integer, ForeignKey("users.id"), primary_key=True)
|
||||
vote_type = Column(Integer)
|
||||
real = Column(Boolean, default=True)
|
||||
coins = Column(Integer, default=1)
|
||||
created_utc = Column(Integer)
|
||||
comment_id: Mapped[int] = mapped_column(ForeignKey("comments.id"), primary_key=True)
|
||||
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"), primary_key=True)
|
||||
vote_type: Mapped[int]
|
||||
real: Mapped[bool] = mapped_column(default=True)
|
||||
coins: Mapped[int] = mapped_column(default=1)
|
||||
created_utc: Mapped[int]
|
||||
|
||||
user = relationship("User")
|
||||
|
||||
|
|
Loading…
Reference in New Issue