Rename directory -> download_directory; add queuefile_extension.
This commit is contained in:
parent
213278edcc
commit
59eab3f997
4 changed files with 38 additions and 7 deletions
|
@ -115,6 +115,34 @@ def upgrade_4_to_5(ycdldb):
|
||||||
[uploads_playlist, channel]
|
[uploads_playlist, channel]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def upgrade_5_to_6(ycdldb):
|
||||||
|
'''
|
||||||
|
In this version, the `directory` column of the channels table was renamed
|
||||||
|
to `download_directory` to be in line with the default config's name for
|
||||||
|
the same value, and the `queuefile_extension` column was added.
|
||||||
|
'''
|
||||||
|
ycdldb.sql.execute('ALTER TABLE channels RENAME TO channels_old')
|
||||||
|
ycdldb.sql.execute('''
|
||||||
|
CREATE TABLE channels(
|
||||||
|
id TEXT,
|
||||||
|
name TEXT,
|
||||||
|
uploads_playlist TEXT,
|
||||||
|
download_directory TEXT COLLATE NOCASE,
|
||||||
|
queuefile_extension TEXT COLLATE NOCASE,
|
||||||
|
automark TEXT
|
||||||
|
)
|
||||||
|
''')
|
||||||
|
ycdldb.sql.execute('''
|
||||||
|
INSERT INTO channels SELECT
|
||||||
|
id,
|
||||||
|
name,
|
||||||
|
uploads_playlist,
|
||||||
|
directory,
|
||||||
|
NULL,
|
||||||
|
automark
|
||||||
|
FROM channels_old
|
||||||
|
''')
|
||||||
|
ycdldb.sql.execute('DROP TABLE channels_old')
|
||||||
|
|
||||||
def upgrade_all(data_directory):
|
def upgrade_all(data_directory):
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from voussoirkit import sqlhelpers
|
from voussoirkit import sqlhelpers
|
||||||
|
|
||||||
DATABASE_VERSION = 5
|
DATABASE_VERSION = 6
|
||||||
DB_VERSION_PRAGMA = f'''
|
DB_VERSION_PRAGMA = f'''
|
||||||
PRAGMA user_version = {DATABASE_VERSION};
|
PRAGMA user_version = {DATABASE_VERSION};
|
||||||
'''
|
'''
|
||||||
|
@ -19,7 +19,8 @@ CREATE TABLE IF NOT EXISTS channels(
|
||||||
id TEXT,
|
id TEXT,
|
||||||
name TEXT,
|
name TEXT,
|
||||||
uploads_playlist TEXT,
|
uploads_playlist TEXT,
|
||||||
directory TEXT COLLATE NOCASE,
|
download_directory TEXT COLLATE NOCASE,
|
||||||
|
queuefile_extension TEXT COLLATE NOCASE,
|
||||||
automark TEXT
|
automark TEXT
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS videos(
|
CREATE TABLE IF NOT EXISTS videos(
|
||||||
|
|
|
@ -21,7 +21,8 @@ class Channel(Base):
|
||||||
self.id = db_row['id']
|
self.id = db_row['id']
|
||||||
self.name = db_row['name']
|
self.name = db_row['name']
|
||||||
self.uploads_playlist = db_row['uploads_playlist']
|
self.uploads_playlist = db_row['uploads_playlist']
|
||||||
self.directory = db_row['directory']
|
self.download_directory = db_row['download_directory']
|
||||||
|
self.queuefile_extension = db_row['queuefile_extension']
|
||||||
self.automark = db_row['automark'] or "pending"
|
self.automark = db_row['automark'] or "pending"
|
||||||
|
|
||||||
def delete(self, commit=True):
|
def delete(self, commit=True):
|
||||||
|
|
|
@ -109,6 +109,7 @@ class YCDLDBChannelMixin:
|
||||||
*,
|
*,
|
||||||
commit=True,
|
commit=True,
|
||||||
download_directory=None,
|
download_directory=None,
|
||||||
|
queuefile_extension=None,
|
||||||
get_videos=False,
|
get_videos=False,
|
||||||
name=None,
|
name=None,
|
||||||
):
|
):
|
||||||
|
@ -127,7 +128,8 @@ class YCDLDBChannelMixin:
|
||||||
'id': channel_id,
|
'id': channel_id,
|
||||||
'name': name,
|
'name': name,
|
||||||
'uploads_playlist': self.youtube.get_user_uploads_playlist_id(channel_id),
|
'uploads_playlist': self.youtube.get_user_uploads_playlist_id(channel_id),
|
||||||
'directory': download_directory,
|
'download_directory': download_directory,
|
||||||
|
'queuefile_extension': queuefile_extension,
|
||||||
'automark': "pending",
|
'automark': "pending",
|
||||||
}
|
}
|
||||||
self.sql_insert(table='channels', data=data)
|
self.sql_insert(table='channels', data=data)
|
||||||
|
@ -254,15 +256,14 @@ class YCDLDBVideoMixin:
|
||||||
|
|
||||||
try:
|
try:
|
||||||
channel = self.get_channel(video.author_id)
|
channel = self.get_channel(video.author_id)
|
||||||
download_directory = channel.directory
|
download_directory = channel.download_directory or self.config['download_directory']
|
||||||
download_directory = download_directory or self.config['download_directory']
|
|
||||||
except exceptions.NoSuchChannel:
|
except exceptions.NoSuchChannel:
|
||||||
download_directory = self.config['download_directory']
|
download_directory = self.config['download_directory']
|
||||||
|
|
||||||
download_directory = pathclass.Path(download_directory)
|
download_directory = pathclass.Path(download_directory)
|
||||||
os.makedirs(download_directory.absolute_path, exist_ok=True)
|
os.makedirs(download_directory.absolute_path, exist_ok=True)
|
||||||
|
|
||||||
extension = self.config['queuefile_extension']
|
extension = channel.queuefile_extension or self.config['queuefile_extension']
|
||||||
queuefile = download_directory.with_child(video_id).replace_extension(extension)
|
queuefile = download_directory.with_child(video_id).replace_extension(extension)
|
||||||
open(queuefile.absolute_path, 'a').close()
|
open(queuefile.absolute_path, 'a').close()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue