nas-tools/app/db/models.py
2023-02-13 12:52:00 +08:00

579 lines
15 KiB
Python

# coding: utf-8
from sqlalchemy import Column, Float, Index, Integer, Text, text, Sequence
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
BaseMedia = declarative_base()
class CONFIGFILTERGROUP(Base):
__tablename__ = 'CONFIG_FILTER_GROUP'
ID = Column(Integer, Sequence('ID'), primary_key=True)
GROUP_NAME = Column(Text)
IS_DEFAULT = Column(Text)
NOTE = Column(Text)
class CONFIGFILTERRULES(Base):
__tablename__ = 'CONFIG_FILTER_RULES'
ID = Column(Integer, Sequence('ID'), primary_key=True)
GROUP_ID = Column(Text, index=True)
ROLE_NAME = Column(Text)
PRIORITY = Column(Text)
INCLUDE = Column(Text)
EXCLUDE = Column(Text)
SIZE_LIMIT = Column(Text)
NOTE = Column(Text)
class CONFIGRSSPARSER(Base):
__tablename__ = 'CONFIG_RSS_PARSER'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text, index=True)
TYPE = Column(Text)
FORMAT = Column(Text)
PARAMS = Column(Text)
NOTE = Column(Text)
SYSDEF = Column(Text)
class CONFIGSITE(Base):
__tablename__ = 'CONFIG_SITE'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text)
PRI = Column(Text)
RSSURL = Column(Text)
SIGNURL = Column(Text)
COOKIE = Column(Text)
INCLUDE = Column(Text)
EXCLUDE = Column(Text)
SIZE = Column(Text)
NOTE = Column(Text)
class CONFIGSYNCPATHS(Base):
__tablename__ = 'CONFIG_SYNC_PATHS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
SOURCE = Column(Text)
DEST = Column(Text)
UNKNOWN = Column(Text)
MODE = Column(Text)
RENAME = Column(Integer)
ENABLED = Column(Integer)
NOTE = Column(Text)
class CONFIGUSERS(Base):
__tablename__ = 'CONFIG_USERS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text, index=True)
PASSWORD = Column(Text)
PRIS = Column(Text)
class CONFIGUSERRSS(Base):
__tablename__ = 'CONFIG_USER_RSS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text, index=True)
ADDRESS = Column(Text)
PARSER = Column(Text)
INTERVAL = Column(Text)
USES = Column(Text)
INCLUDE = Column(Text)
EXCLUDE = Column(Text)
FILTER = Column(Text)
UPDATE_TIME = Column(Text)
PROCESS_COUNT = Column(Text)
STATE = Column(Text)
SAVE_PATH = Column(Text)
DOWNLOAD_SETTING = Column(Integer)
RECOGNIZATION = Column(Text)
OVER_EDITION = Column(Integer)
SITES = Column(Text)
FILTER_ARGS = Column(Text)
MEDIAINFOS = Column(Text)
NOTE = Column(Text)
class CUSTOMWORDS(Base):
__tablename__ = 'CUSTOM_WORDS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
REPLACED = Column(Text)
REPLACE = Column(Text)
FRONT = Column(Text)
BACK = Column(Text)
OFFSET = Column(Text)
TYPE = Column(Integer)
GROUP_ID = Column(Integer)
SEASON = Column(Integer)
ENABLED = Column(Integer)
REGEX = Column(Integer)
HELP = Column(Text)
NOTE = Column(Text)
class CUSTOMWORDGROUPS(Base):
__tablename__ = 'CUSTOM_WORD_GROUPS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
TITLE = Column(Text)
YEAR = Column(Text)
TYPE = Column(Integer)
TMDBID = Column(Integer)
SEASON_COUNT = Column(Integer)
NOTE = Column(Text)
class DOUBANMEDIAS(Base):
__tablename__ = 'DOUBAN_MEDIAS'
__table_args__ = (
Index('INDX_DOUBAN_MEDIAS_NAME', 'NAME', 'YEAR'),
)
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text)
YEAR = Column(Text)
TYPE = Column(Text)
RATING = Column(Text)
IMAGE = Column(Text)
STATE = Column(Text)
ADD_TIME = Column(Text)
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class DOWNLOADHISTORY(Base):
__tablename__ = 'DOWNLOAD_HISTORY'
ID = Column(Integer, Sequence('ID'), primary_key=True)
TITLE = Column(Text, index=True)
YEAR = Column(Text)
TYPE = Column(Text)
TMDBID = Column(Text)
VOTE = Column(Text)
POSTER = Column(Text)
OVERVIEW = Column(Text)
TORRENT = Column(Text)
ENCLOSURE = Column(Text)
SITE = Column(Text)
DESC = Column(Text)
DATE = Column(Text, index=True)
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class DOWNLOADSETTING(Base):
__tablename__ = 'DOWNLOAD_SETTING'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text)
CATEGORY = Column(Text)
TAGS = Column(Text)
CONTENT_LAYOUT = Column(Integer)
IS_PAUSED = Column(Integer)
UPLOAD_LIMIT = Column(Integer)
DOWNLOAD_LIMIT = Column(Integer)
RATIO_LIMIT = Column(Integer)
SEEDING_TIME_LIMIT = Column(Integer)
DOWNLOADER = Column(Text)
NOTE = Column(Text)
class MESSAGECLIENT(Base):
__tablename__ = 'MESSAGE_CLIENT'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text)
TYPE = Column(Text)
CONFIG = Column(Text)
SWITCHS = Column(Text)
INTERACTIVE = Column(Integer)
ENABLED = Column(Integer)
NOTE = Column(Text)
class RSSHISTORY(Base):
__tablename__ = 'RSS_HISTORY'
ID = Column(Integer, Sequence('ID'), primary_key=True)
TYPE = Column(Text)
RSSID = Column(Text, index=True)
NAME = Column(Text)
YEAR = Column(Text)
TMDBID = Column(Text)
SEASON = Column(Text)
IMAGE = Column(Text)
DESC = Column(Text)
TOTAL = Column(Integer)
START = Column(Integer)
FINISH_TIME = Column(Text)
NOTE = Column(Text)
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class RSSMOVIES(Base):
__tablename__ = 'RSS_MOVIES'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text, index=True)
YEAR = Column(Text)
KEYWORD = Column(Text)
TMDBID = Column(Text)
IMAGE = Column(Text)
RSS_SITES = Column(Text)
SEARCH_SITES = Column(Text)
OVER_EDITION = Column(Integer)
FILTER_ORDER = Column(Integer)
FILTER_RESTYPE = Column(Text)
FILTER_PIX = Column(Text)
FILTER_RULE = Column(Integer)
FILTER_TEAM = Column(Text)
SAVE_PATH = Column(Text)
DOWNLOAD_SETTING = Column(Integer)
FUZZY_MATCH = Column(Integer)
STATE = Column(Text)
DESC = Column(Text)
NOTE = Column(Text)
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class RSSTORRENTS(Base):
__tablename__ = 'RSS_TORRENTS'
__table_args__ = (
Index('INDX_RSS_TORRENTS_NAME', 'TITLE', 'YEAR', 'SEASON', 'EPISODE'),
)
ID = Column(Integer, Sequence('ID'), primary_key=True)
TORRENT_NAME = Column(Text)
ENCLOSURE = Column(Text, index=True)
TYPE = Column(Text)
TITLE = Column(Text)
YEAR = Column(Text)
SEASON = Column(Text)
EPISODE = Column(Text)
class RSSTVS(Base):
__tablename__ = 'RSS_TVS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text, index=True)
YEAR = Column(Text)
KEYWORD = Column(Text)
SEASON = Column(Text)
TMDBID = Column(Text)
IMAGE = Column(Text)
RSS_SITES = Column(Text)
SEARCH_SITES = Column(Text)
OVER_EDITION = Column(Integer)
FILTER_ORDER = Column(Integer)
FILTER_RESTYPE = Column(Text)
FILTER_PIX = Column(Text)
FILTER_RULE = Column(Integer)
FILTER_TEAM = Column(Text)
SAVE_PATH = Column(Text)
DOWNLOAD_SETTING = Column(Integer)
FUZZY_MATCH = Column(Integer)
TOTAL_EP = Column(Integer)
CURRENT_EP = Column(Integer)
TOTAL = Column(Integer)
LACK = Column(Integer)
STATE = Column(Text)
DESC = Column(Text)
NOTE = Column(Text)
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class RSSTVEPISODES(Base):
__tablename__ = 'RSS_TV_EPISODES'
ID = Column(Integer, Sequence('ID'), primary_key=True)
RSSID = Column(Text, index=True)
EPISODES = Column(Text)
class TORRENTREMOVETASK(Base):
__tablename__ = 'TORRENT_REMOVE_TASK'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text)
ACTION = Column(Integer)
INTERVAL = Column(Integer)
ENABLED = Column(Integer)
SAMEDATA = Column(Integer)
ONLYNASTOOL = Column(Integer)
DOWNLOADER = Column(Text)
CONFIG = Column(Text)
NOTE = Column(Text)
class SEARCHRESULTINFO(Base):
__tablename__ = 'SEARCH_RESULT_INFO'
ID = Column(Integer, Sequence('ID'), primary_key=True)
TORRENT_NAME = Column(Text)
ENCLOSURE = Column(Text)
DESCRIPTION = Column(Text)
TYPE = Column(Text)
TITLE = Column(Text)
YEAR = Column(Text)
SEASON = Column(Text)
EPISODE = Column(Text)
ES_STRING = Column(Text)
VOTE = Column(Text)
IMAGE = Column(Text)
POSTER = Column(Text)
TMDBID = Column(Text)
OVERVIEW = Column(Text)
RES_TYPE = Column(Text)
RES_ORDER = Column(Text)
SIZE = Column(Integer)
SEEDERS = Column(Integer)
PEERS = Column(Integer)
SITE = Column(Text)
SITE_ORDER = Column(Text)
PAGEURL = Column(Text)
OTHERINFO = Column(Text)
UPLOAD_VOLUME_FACTOR = Column(Float)
DOWNLOAD_VOLUME_FACTOR = Column(Float)
NOTE = Column(Text)
class SITEBRUSHDOWNLOADERS(Base):
__tablename__ = 'SITE_BRUSH_DOWNLOADERS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text)
TYPE = Column(Text)
HOST = Column(Text)
PORT = Column(Text)
USERNAME = Column(Text)
PASSWORD = Column(Text)
SAVE_DIR = Column(Text)
NOTE = Column(Text)
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class SITEBRUSHTASK(Base):
__tablename__ = 'SITE_BRUSH_TASK'
ID = Column(Integer, Sequence('ID'), primary_key=True)
NAME = Column(Text, index=True)
SITE = Column(Text)
FREELEECH = Column(Text)
RSS_RULE = Column(Text)
REMOVE_RULE = Column(Text)
SEED_SIZE = Column(Text)
INTEVAL = Column(Text)
DOWNLOADER = Column(Text)
TRANSFER = Column(Text)
DOWNLOAD_COUNT = Column(Text)
REMOVE_COUNT = Column(Text)
DOWNLOAD_SIZE = Column(Text)
UPLOAD_SIZE = Column(Text)
SENDMESSAGE = Column(Text)
FORCEUPLOAD = Column(Text)
STATE = Column(Text)
LST_MOD_DATE = Column(Text)
class SITEBRUSHTORRENTS(Base):
__tablename__ = 'SITE_BRUSH_TORRENTS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
TASK_ID = Column(Text, index=True)
TORRENT_NAME = Column(Text)
TORRENT_SIZE = Column(Text)
ENCLOSURE = Column(Text)
DOWNLOADER = Column(Text)
DOWNLOAD_ID = Column(Text)
LST_MOD_DATE = Column(Text)
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class SITESTATISTICSHISTORY(Base):
__tablename__ = 'SITE_STATISTICS_HISTORY'
__table_args__ = (
Index('INDX_SITE_STATISTICS_HISTORY_DS', 'DATE', 'URL'),
Index('UN_INDX_SITE_STATISTICS_HISTORY_DS', 'DATE', 'URL', unique=True)
)
ID = Column(Integer, Sequence('ID'), primary_key=True)
SITE = Column(Text)
DATE = Column(Text)
USER_LEVEL = Column(Text)
UPLOAD = Column(Text)
DOWNLOAD = Column(Text)
RATIO = Column(Text)
SEEDING = Column(Integer, server_default=text("0"))
LEECHING = Column(Integer, server_default=text("0"))
SEEDING_SIZE = Column(Integer, server_default=text("0"))
BONUS = Column(Float, server_default=text("0.0"))
URL = Column(Text)
class SITEUSERINFOSTATS(Base):
__tablename__ = 'SITE_USER_INFO_STATS'
__table_args__ = (
Index('INDX_SITE_USER_INFO_STATS_URL', 'URL'),
)
ID = Column(Integer, Sequence('ID'), primary_key=True)
SITE = Column(Text, index=True)
USERNAME = Column(Text)
USER_LEVEL = Column(Text)
JOIN_AT = Column(Text)
UPDATE_AT = Column(Text)
UPLOAD = Column(Integer)
DOWNLOAD = Column(Integer)
RATIO = Column(Float)
SEEDING = Column(Integer)
LEECHING = Column(Integer)
SEEDING_SIZE = Column(Integer)
BONUS = Column(Float)
URL = Column(Text, unique=True)
MSG_UNREAD = Column(Integer)
EXT_INFO = Column(Text)
class SITEFAVICON(Base):
__tablename__ = 'SITE_FAVICON'
SITE = Column(Text, primary_key=True)
URL = Column(Text)
FAVICON = Column(Text)
class SITEUSERSEEDINGINFO(Base):
__tablename__ = 'SITE_USER_SEEDING_INFO'
ID = Column(Integer, Sequence('ID'), primary_key=True)
SITE = Column(Text, index=True)
SEEDING_INFO = Column(Text, server_default=text("'[]'"))
UPDATE_AT = Column(Text)
URL = Column(Text, unique=True)
class SYNCHISTORY(Base):
__tablename__ = 'SYNC_HISTORY'
ID = Column(Integer, Sequence('ID'), primary_key=True)
PATH = Column(Text, index=True)
SRC = Column(Text)
DEST = Column(Text)
class SYSTEMDICT(Base):
__tablename__ = 'SYSTEM_DICT'
__table_args__ = (
Index('INDX_SYSTEM_DICT', 'TYPE', 'KEY'),
)
ID = Column(Integer, Sequence('ID'), primary_key=True)
TYPE = Column(Text)
KEY = Column(Text)
VALUE = Column(Text)
NOTE = Column(Text)
class TRANSFERBLACKLIST(Base):
__tablename__ = 'TRANSFER_BLACKLIST'
ID = Column(Integer, Sequence('ID'), primary_key=True)
PATH = Column(Text, index=True)
class TRANSFERHISTORY(Base):
__tablename__ = 'TRANSFER_HISTORY'
ID = Column(Integer, Sequence('ID'), primary_key=True)
MODE = Column(Text)
TYPE = Column(Text)
CATEGORY = Column(Text)
TMDBID = Column(Integer)
TITLE = Column(Text, index=True)
YEAR = Column(Text)
SEASON_EPISODE = Column(Text)
SOURCE = Column(Text)
SOURCE_PATH = Column(Text, index=True)
SOURCE_FILENAME = Column(Text, index=True)
DEST = Column(Text)
DEST_PATH = Column(Text)
DEST_FILENAME = Column(Text)
DATE = Column(Text)
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
class TRANSFERUNKNOWN(Base):
__tablename__ = 'TRANSFER_UNKNOWN'
ID = Column(Integer, Sequence('ID'), primary_key=True)
PATH = Column(Text, index=True)
DEST = Column(Text)
MODE = Column(Text)
STATE = Column(Text, index=True)
class USERRSSTASKHISTORY(Base):
__tablename__ = 'USERRSS_TASK_HISTORY'
ID = Column(Integer, Sequence('ID'), primary_key=True)
TASK_ID = Column(Text, index=True)
TITLE = Column(Text)
DOWNLOADER = Column(Text)
DATE = Column(Text)
class MEDIASYNCITEMS(BaseMedia):
__tablename__ = 'MEDIASYNC_ITEMS'
__table_args__ = (
Index('INDX_MEDIASYNC_ITEMS_SL', 'SERVER', 'LIBRARY'),
)
ID = Column(Integer, Sequence('ID'), primary_key=True)
SERVER = Column(Text)
LIBRARY = Column(Text)
ITEM_ID = Column(Text, index=True)
ITEM_TYPE = Column(Text)
TITLE = Column(Text, index=True)
ORGIN_TITLE = Column(Text, index=True)
YEAR = Column(Text)
TMDBID = Column(Text, index=True)
IMDBID = Column(Text)
PATH = Column(Text)
NOTE = Column(Text)
JSON = Column(Text)
class MEDIASYNCSTATISTIC(BaseMedia):
__tablename__ = 'MEDIASYNC_STATISTICS'
ID = Column(Integer, Sequence('ID'), primary_key=True)
SERVER = Column(Text, index=True)
TOTAL_COUNT = Column(Text)
MOVIE_COUNT = Column(Text)
TV_COUNT = Column(Text)
UPDATE_TIME = Column(Text)