Some bug fixes

This commit is contained in:
Draper
2019-12-18 14:49:57 +00:00
parent c59a8c853d
commit 6b2114406a
2 changed files with 77 additions and 99 deletions

View File

@@ -274,7 +274,7 @@ class Audio(commands.Cog):
).clear_raw("playlists") ).clear_raw("playlists")
if from_version < 3 <= to_version: if from_version < 3 <= to_version:
for scope in PlaylistScope.list(): for scope in PlaylistScope.list():
scope_playlist = await get_all_playlist_for_migration23(scope) scope_playlist = await get_all_playlist_for_migration23(scope, self.bot)
for p in scope_playlist: for p in scope_playlist:
await p.save() await p.save()
await self.config.custom(scope).clear() await self.config.custom(scope).clear()

View File

@@ -56,122 +56,100 @@ PRAGMA optimize = 1;
_CREATE_TABLE = """ _CREATE_TABLE = """
CREATE TABLE IF NOT EXISTS playlists ( CREATE TABLE IF NOT EXISTS playlists (
scope_type INTEGER NOT NULL, scope_type INTEGER NOT NULL,
playlist_id INTEGER NOT NULL, playlist_id INTEGER NOT NULL,
playlist_name TEXT NOT NULL, playlist_name TEXT NOT NULL,
scope_id INTEGER NOT NULL, scope_id INTEGER NOT NULL,
author_id INTEGER NOT NULL, author_id INTEGER NOT NULL,
playlist_url TEXT, playlist_url TEXT,
tracks BLOB, tracks BLOB,
PRIMARY KEY (playlist_id, scope_id, scope_type) PRIMARY KEY (playlist_id, scope_id, scope_type)
); );
""" """
_DELETE = """ _DELETE = """
DELETE FROM playlists DELETE
FROM
playlists
WHERE WHERE
( (
scope_type = :scope_type scope_type = :scope_type
AND AND playlist_id = :playlist_id
playlist_id = :playlist_id AND scope_id = :scope_id
AND )
scope_id = :scope_id
)
; ;
""" """
_DELETE_SCOPE = """ _DELETE_SCOPE = """
DELETE FROM playlists DELETE
FROM
playlists
WHERE WHERE
scope_type = :scope_type scope_type = :scope_type ;
;
""" """
_FETCH_ALL = """ _FETCH_ALL = """
SELECT SELECT
playlist_id,
playlist_name,
scope_id,
author_id,
playlist_url,
tracks
FROM playlists
WHERE
scope_type = :scope_type
;
"""
_FETCH_ALL_WITH_FILTER = """
SELECT
playlist_id,
playlist_name,
scope_id,
author_id,
playlist_url,
tracks
FROM playlists
WHERE
(
scope_type = :scope_type
AND
author_id = :author_id
)
;
"""
_FETCH = """
SELECT
playlist_id,
playlist_name,
scope_id,
author_id,
playlist_url,
tracks
FROM playlists
WHERE
(
scope_type = :scope_type
AND
playlist_id = :playlist_id
AND
scope_id = :scope_id
)
"""
_UPSET = """INSERT INTO
playlists
(
scope_type
playlist_id, playlist_id,
playlist_name, playlist_name,
scope_id, scope_id,
author_id, author_id,
playlist_url, playlist_url,
tracks tracks
) FROM
VALUES playlists
( WHERE
:scope_type, scope_type = :scope_type ;
:playlist_id, """
:playlist_name,
:scope_id, _FETCH_ALL_WITH_FILTER = """
:author_id, SELECT
:playlist_url, playlist_id,
:tracks playlist_name,
) scope_id,
ON CONFLICT author_id,
( playlist_url,
scope_type, tracks
playlist_id, FROM
scope_id playlists
) WHERE
DO UPDATE (
SET scope_type = :scope_type
playlist_name = excluded.playlist_name, AND author_id = :author_id
playlist_url = excluded.playlist_url, )
tracks = excluded.tracks
; ;
""" """
_FETCH = """
SELECT
playlist_id,
playlist_name,
scope_id,
author_id,
playlist_url,
tracks
FROM
playlists
WHERE
(
scope_type = :scope_type
AND playlist_id = :playlist_id
AND scope_id = :scope_id
)
"""
_UPSET = """
INSERT INTO
playlists ( scope_type, playlist_id, playlist_name, scope_id, author_id, playlist_url, tracks )
VALUES
(
:scope_type, :playlist_id, :playlist_name, :scope_id, :author_id, :playlist_url, :tracks
)
ON CONFLICT (scope_type, playlist_id, scope_id) DO
UPDATE
SET
playlist_name = excluded.playlist_name, playlist_url = excluded.playlist_url, tracks = excluded.tracks;
"""
@dataclass @dataclass
class SQLFetchResult: class SQLFetchResult: