|
|
@@ -128,6 +128,8 @@ def main ( |
|
|
|
api_data, now) |
|
|
|
|
|
|
|
conn.commit () |
|
|
|
print ('Committed.') |
|
|
|
|
|
|
|
conn.close () |
|
|
|
|
|
|
|
|
|
|
@@ -310,7 +312,7 @@ class VideoDao: |
|
|
|
with_relation_tables: bool, |
|
|
|
) -> VideoDto | None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
code, |
|
|
@@ -323,7 +325,7 @@ class VideoDao: |
|
|
|
WHERE |
|
|
|
id = %s |
|
|
|
ORDER BY |
|
|
|
id""", (video_id,)) |
|
|
|
id""", (video_id,))) |
|
|
|
row = cast (VideoRow | None, c.fetchone ()) |
|
|
|
if row is None: |
|
|
|
return None |
|
|
@@ -334,7 +336,7 @@ class VideoDao: |
|
|
|
with_relation_tables: bool, |
|
|
|
) -> list[VideoDto]: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
code, |
|
|
@@ -345,7 +347,7 @@ class VideoDao: |
|
|
|
FROM |
|
|
|
videos |
|
|
|
ORDER BY |
|
|
|
id""") |
|
|
|
id""")) |
|
|
|
videos: list[VideoDto] = [] |
|
|
|
for row in cast (list[VideoRow], c.fetchall ()): |
|
|
|
videos.append (self._create_dto_from_row (row, with_relation_tables)) |
|
|
@@ -355,7 +357,7 @@ class VideoDao: |
|
|
|
self, |
|
|
|
) -> list[VideoDto]: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
code, |
|
|
@@ -366,7 +368,7 @@ class VideoDao: |
|
|
|
FROM |
|
|
|
videos |
|
|
|
WHERE |
|
|
|
deleted_at IS NULL""") |
|
|
|
deleted_at IS NULL""")) |
|
|
|
videos: list[VideoDto] = [] |
|
|
|
for row in cast (list[VideoRow], c.fetchall ()): |
|
|
|
videos.append (self._create_dto_from_row (row, False)) |
|
|
@@ -385,7 +387,7 @@ class VideoDao: |
|
|
|
deleted_at = cast (datetime | None, deleted_at) |
|
|
|
|
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
videos( |
|
|
|
code, |
|
|
@@ -409,7 +411,7 @@ class VideoDao: |
|
|
|
video.title, |
|
|
|
video.description, |
|
|
|
video.uploaded_at, |
|
|
|
deleted_at)) |
|
|
|
deleted_at))) |
|
|
|
video.id_ = c.lastrowid |
|
|
|
if with_relation_tables: |
|
|
|
if video.video_tags is not None: |
|
|
@@ -435,13 +437,13 @@ class VideoDao: |
|
|
|
if not video_ids: |
|
|
|
return |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
UPDATE |
|
|
|
videos |
|
|
|
SET |
|
|
|
deleted_at = %%s |
|
|
|
WHERE |
|
|
|
id IN (%s)""" % ', '.join (['%s'] * len (video_ids)), (at, *video_ids)) |
|
|
|
id IN (%s)""" % ', '.join (['%s'] * len (video_ids)), (at, *video_ids))) |
|
|
|
|
|
|
|
def _create_dto_from_row ( |
|
|
|
self, |
|
|
@@ -493,7 +495,7 @@ class VideoTagDao: |
|
|
|
with_relation_tables: bool, |
|
|
|
) -> list[VideoTagDto]: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
video_id, |
|
|
@@ -505,7 +507,7 @@ class VideoTagDao: |
|
|
|
WHERE |
|
|
|
video_id = %s |
|
|
|
ORDER BY |
|
|
|
id""", (video_id,)) |
|
|
|
id""", (video_id,))) |
|
|
|
video_tags: list[VideoTagDto] = [] |
|
|
|
for row in cast (list[VideoTagRow], c.fetchall ()): |
|
|
|
video_tags.append (self._create_dto_from_row (row, with_relation_tables)) |
|
|
@@ -517,7 +519,7 @@ class VideoTagDao: |
|
|
|
with_relation_tables: bool, |
|
|
|
) -> list[VideoTagDto]: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
video_id, |
|
|
@@ -530,7 +532,7 @@ class VideoTagDao: |
|
|
|
video_id = %s |
|
|
|
AND (untagged_at IS NULL) |
|
|
|
ORDER BY |
|
|
|
id""", (video_id,)) |
|
|
|
id""", (video_id,))) |
|
|
|
video_tags: list[VideoTagDto] = [] |
|
|
|
for row in cast (list[VideoTagRow], c.fetchall ()): |
|
|
|
video_tags.append (self._create_dto_from_row (row, with_relation_tables)) |
|
|
@@ -543,7 +545,7 @@ class VideoTagDao: |
|
|
|
with_relation_tables: bool, |
|
|
|
) -> VideoTagDto | None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
video_id, |
|
|
@@ -554,7 +556,7 @@ class VideoTagDao: |
|
|
|
video_tags |
|
|
|
WHERE |
|
|
|
video_id = %s |
|
|
|
AND tag_id = %s""", (video_id, tag_id)) |
|
|
|
AND tag_id = %s""", (video_id, tag_id))) |
|
|
|
row = cast (VideoTagRow, c.fetchone ()) |
|
|
|
if row is None: |
|
|
|
return None |
|
|
@@ -573,7 +575,7 @@ class VideoTagDao: |
|
|
|
untagged_at = cast (date | None, untagged_at) |
|
|
|
|
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
video_tags( |
|
|
|
video_id, |
|
|
@@ -586,7 +588,7 @@ class VideoTagDao: |
|
|
|
%s, |
|
|
|
%s, |
|
|
|
%s)""", (video_tag.video_id, video_tag.tag_id, |
|
|
|
video_tag.tagged_at, untagged_at)) |
|
|
|
video_tag.tagged_at, untagged_at))) |
|
|
|
video_tag.id_ = c.lastrowid |
|
|
|
if with_relation_tables: |
|
|
|
if video_tag.video is not None: |
|
|
@@ -607,7 +609,7 @@ class VideoTagDao: |
|
|
|
untagged_at = cast (date | None, untagged_at) |
|
|
|
|
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
video_tags( |
|
|
|
video_id, |
|
|
@@ -627,7 +629,7 @@ class VideoTagDao: |
|
|
|
untagged_at = VALUES(untagged_at)""", (video_tag.video_id, |
|
|
|
video_tag.tag_id, |
|
|
|
video_tag.tagged_at, |
|
|
|
untagged_at)) |
|
|
|
untagged_at))) |
|
|
|
video_tag.id_ = c.lastrowid |
|
|
|
if with_relation_tables: |
|
|
|
if video_tag.video is not None: |
|
|
@@ -652,14 +654,14 @@ class VideoTagDao: |
|
|
|
if not tag_ids: |
|
|
|
return |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
UPDATE |
|
|
|
video_tags |
|
|
|
SET |
|
|
|
untagged_at = %%s |
|
|
|
WHERE |
|
|
|
video_id = %%s |
|
|
|
AND tag_ids IN (%s)""" % ', '.join (['%s'] * len (tag_ids)), (now, video_id, *tag_ids)) |
|
|
|
AND tag_ids IN (%s)""" % ', '.join (['%s'] * len (tag_ids)), (now, video_id, *tag_ids))) |
|
|
|
|
|
|
|
def _create_dto_from_row ( |
|
|
|
self, |
|
|
@@ -700,14 +702,14 @@ class TagDao: |
|
|
|
tag_id: int, |
|
|
|
) -> TagDto | None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
name |
|
|
|
FROM |
|
|
|
tags |
|
|
|
WHERE |
|
|
|
id = %s""", (tag_id,)) |
|
|
|
id = %s""", (tag_id,))) |
|
|
|
row = cast (TagRow | None, c.fetchone ()) |
|
|
|
if row is None: |
|
|
|
return None |
|
|
@@ -718,14 +720,14 @@ class TagDao: |
|
|
|
tag_name: str, |
|
|
|
) -> TagDto | None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
name |
|
|
|
FROM |
|
|
|
tags |
|
|
|
WHERE |
|
|
|
name = %s""", (tag_name,)) |
|
|
|
name = %s""", (tag_name,))) |
|
|
|
row = cast (TagRow | None, c.fetchone ()) |
|
|
|
if row is None: |
|
|
|
return None |
|
|
@@ -736,11 +738,11 @@ class TagDao: |
|
|
|
tag: TagDto, |
|
|
|
) -> None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
tags(name) |
|
|
|
VALUES |
|
|
|
(%s)""", (tag.name,)) |
|
|
|
(%s)""", (tag.name,))) |
|
|
|
tag.id_ = c.lastrowid |
|
|
|
|
|
|
|
def upsert ( |
|
|
@@ -748,13 +750,13 @@ class TagDao: |
|
|
|
tag: TagDto, |
|
|
|
) -> None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
tags(name) |
|
|
|
VALUES |
|
|
|
(%s) |
|
|
|
ON DUPLICATE KEY UPDATE |
|
|
|
name = VALUES(name)""", (tag.name,)) |
|
|
|
name = VALUES(name)""", (tag.name,))) |
|
|
|
tag.id_ = c.lastrowid |
|
|
|
|
|
|
|
def _create_dto_from_row ( |
|
|
@@ -784,7 +786,7 @@ class VideoHistoryDao: |
|
|
|
with_relation_tables: bool, |
|
|
|
) -> list[VideoHistoryDto]: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
video_id, |
|
|
@@ -793,7 +795,7 @@ class VideoHistoryDao: |
|
|
|
FROM |
|
|
|
video_histories |
|
|
|
WHERE |
|
|
|
video_id = %s""", (video_id,)) |
|
|
|
video_id = %s""", (video_id,))) |
|
|
|
video_histories: list[VideoHistoryDto] = [] |
|
|
|
for row in cast (list[VideoHistoryRow], c.fetchall ()): |
|
|
|
video_histories.append (self._create_dto_from_row (row, with_relation_tables)) |
|
|
@@ -804,7 +806,7 @@ class VideoHistoryDao: |
|
|
|
video_history: VideoHistoryDto, |
|
|
|
) -> None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
video_histories( |
|
|
|
video_id, |
|
|
@@ -816,14 +818,14 @@ class VideoHistoryDao: |
|
|
|
%s, |
|
|
|
%s)""", (video_history.video_id, |
|
|
|
video_history.fetched_at, |
|
|
|
video_history.views_count)) |
|
|
|
video_history.views_count))) |
|
|
|
|
|
|
|
def upsert ( |
|
|
|
self, |
|
|
|
video_history: VideoHistoryDto, |
|
|
|
) -> None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
video_histories( |
|
|
|
video_id, |
|
|
@@ -839,7 +841,7 @@ class VideoHistoryDao: |
|
|
|
fetched_at, |
|
|
|
views_count""", (video_history.video_id, |
|
|
|
video_history.fetched_at, |
|
|
|
video_history.views_count)) |
|
|
|
video_history.views_count))) |
|
|
|
|
|
|
|
def upsert_all ( |
|
|
|
self, |
|
|
@@ -884,7 +886,7 @@ class CommentDao: |
|
|
|
with_relation_tables: bool, |
|
|
|
) -> list[CommentDto]: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
video_id, |
|
|
@@ -897,7 +899,7 @@ class CommentDao: |
|
|
|
FROM |
|
|
|
comments |
|
|
|
WHERE |
|
|
|
video_id = %s""", (video_id,)) |
|
|
|
video_id = %s""", (video_id,))) |
|
|
|
comments: list[CommentDto] = [] |
|
|
|
for row in cast (list[CommentRow], c.fetchall ()): |
|
|
|
comments.append (self._create_dto_from_row (row, with_relation_tables)) |
|
|
@@ -916,7 +918,7 @@ class CommentDao: |
|
|
|
vpos_ms = cast (int | None, vpos_ms) |
|
|
|
|
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
comments( |
|
|
|
video_id, |
|
|
@@ -948,7 +950,7 @@ class CommentDao: |
|
|
|
comment.content, |
|
|
|
comment.posted_at, |
|
|
|
comment.nico_count, |
|
|
|
vpos_ms)) |
|
|
|
vpos_ms))) |
|
|
|
|
|
|
|
def upsert_all ( |
|
|
|
self, |
|
|
@@ -1002,14 +1004,14 @@ class UserDao: |
|
|
|
user_code: str |
|
|
|
) -> UserDto | None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
SELECT |
|
|
|
id, |
|
|
|
code |
|
|
|
FROM |
|
|
|
users |
|
|
|
WHERE |
|
|
|
code = %s""", (user_code,)) |
|
|
|
code = %s""", (user_code,))) |
|
|
|
row = cast (UserRow | None, c.fetchone ()) |
|
|
|
if row is None: |
|
|
|
return None |
|
|
@@ -1020,11 +1022,11 @@ class UserDao: |
|
|
|
user: UserDto, |
|
|
|
) -> None: |
|
|
|
with self.conn.cursor (dictionary = True) as c: |
|
|
|
c.execute (""" |
|
|
|
print (c.execute (""" |
|
|
|
INSERT INTO |
|
|
|
users(code) |
|
|
|
VALUES |
|
|
|
(%s)""", (user.code,)) |
|
|
|
(%s)""", (user.code,))) |
|
|
|
user.id_ = c.lastrowid |
|
|
|
|
|
|
|
def _create_dto_from_row ( |
|
|
|