Files
ythdd/ythdd_db.py

61 lines
2.1 KiB
Python

#!/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