#!/usr/bin/python3 from flask_sqlalchemy import SQLAlchemy import toml import ythdd_globals database_file = ythdd_globals.config["general"]["db_file_path"] global db #db = SQLAlchemy() def initDB(app): db = SQLAlchemy(app) class LocalUsers(db.Model): uid = db.Column(db.Integer, primary_key=True) nick = db.Column(db.String) subscriptions = db.Column(db.JSON) # for RSS feed ??? playlists = db.Column(db.JSON) watch_history = db.Column(db.JSON) queue_history = db.Column(db.JSON) class Videos(db.Model): ytid = db.Column(db.String(11), primary_key=True) archive_version = db.Column(db.Integer) archive_type = db.Column(db.Integer) # 0 - V+A, 1 - V, 2 - A, 3 - other archive_format = db.Column(db.Integer) # 0, 1, 2, 3... from config.toml[postprocessing][presets] title = db.Column(db.String) description = db.Column(db.String) file_path = db.Column(db.String) # with extension viewcount = db.Column(db.Integer) duration = db.Column(db.Integer) like_count = db.Column(db.Integer) upload_date = db.Column(db.Integer) archive_date = db.Column(db.Integer) channel_id = db.Column(db.String(24)) # author, RemoteUser requested_by = db.Column(db.Integer) # LocalUser comments = db.Column(db.JSON) # TODO: watch frequent commenters class Playlists(db.Model): # For archiving videos' list from playlist. ytid = db.Column(db.String(11), primary_key=True) name = db.Column(db.String) videos = db.Column(db.String) modify_date = db.Column(db.Integer) archive_date = db.Column(db.Integer) channel_id = db.Column(db.String(24)) # author, RemoteUser requested_by = db.Column(db.Integer) # LocalUser class VideoQueue(db.Model): uid = db.Column(db.Integer, primary_key=True) ytid = db.Column(db.String(11)) requested_by = db.Column(db.String) class RemoteUsers(db.Model): channel_id = db.Column(db.String(24), primary_key=True) # possibly can change? name = db.Column(db.String) subscribers = db.Column(db.Integer) avatar_path = db.Column(db.String) badge = db.Column(db.Integer) # 0 - no badge, 1 - verified, 2 - music return db