| @@ -128,8 +128,6 @@ def main ( | |||
| api_data, now) | |||
| conn.commit () | |||
| print ('Committed.') | |||
| conn.close () | |||
| @@ -312,7 +310,7 @@ class VideoDao: | |||
| with_relation_tables: bool, | |||
| ) -> VideoDto | None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| SELECT | |||
| id, | |||
| code, | |||
| @@ -325,7 +323,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 | |||
| @@ -336,7 +334,7 @@ class VideoDao: | |||
| with_relation_tables: bool, | |||
| ) -> list[VideoDto]: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| SELECT | |||
| id, | |||
| code, | |||
| @@ -347,7 +345,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)) | |||
| @@ -357,7 +355,7 @@ class VideoDao: | |||
| self, | |||
| ) -> list[VideoDto]: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| SELECT | |||
| id, | |||
| code, | |||
| @@ -368,7 +366,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)) | |||
| @@ -387,7 +385,7 @@ class VideoDao: | |||
| deleted_at = cast (datetime | None, deleted_at) | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| videos( | |||
| code, | |||
| @@ -412,7 +410,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: | |||
| @@ -438,13 +436,13 @@ class VideoDao: | |||
| if not video_ids: | |||
| return | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| 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, | |||
| @@ -496,7 +494,7 @@ class VideoTagDao: | |||
| with_relation_tables: bool, | |||
| ) -> list[VideoTagDto]: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| SELECT | |||
| id, | |||
| video_id, | |||
| @@ -508,7 +506,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)) | |||
| @@ -520,7 +518,7 @@ class VideoTagDao: | |||
| with_relation_tables: bool, | |||
| ) -> list[VideoTagDto]: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| SELECT | |||
| id, | |||
| video_id, | |||
| @@ -533,7 +531,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)) | |||
| @@ -546,7 +544,7 @@ class VideoTagDao: | |||
| with_relation_tables: bool, | |||
| ) -> VideoTagDto | None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| SELECT | |||
| id, | |||
| video_id, | |||
| @@ -557,7 +555,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 | |||
| @@ -576,7 +574,7 @@ class VideoTagDao: | |||
| untagged_at = cast (date | None, untagged_at) | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| video_tags( | |||
| video_id, | |||
| @@ -589,7 +587,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: | |||
| @@ -610,7 +608,7 @@ class VideoTagDao: | |||
| untagged_at = cast (date | None, untagged_at) | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| video_tags( | |||
| video_id, | |||
| @@ -631,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: | |||
| @@ -656,7 +654,7 @@ class VideoTagDao: | |||
| if not tag_ids: | |||
| return | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| UPDATE | |||
| video_tags | |||
| SET | |||
| @@ -704,14 +702,14 @@ class TagDao: | |||
| tag_id: int, | |||
| ) -> TagDto | None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| 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 | |||
| @@ -722,14 +720,14 @@ class TagDao: | |||
| tag_name: str, | |||
| ) -> TagDto | None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| 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 | |||
| @@ -740,11 +738,11 @@ class TagDao: | |||
| tag: TagDto, | |||
| ) -> None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| tags(name) | |||
| VALUES | |||
| (%s)""", (tag.name,))) | |||
| (%s)""", (tag.name,)) | |||
| tag.id_ = c.lastrowid | |||
| def upsert ( | |||
| @@ -752,14 +750,14 @@ class TagDao: | |||
| tag: TagDto, | |||
| ) -> None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| tags(name) | |||
| VALUES | |||
| (%s) | |||
| ON DUPLICATE KEY UPDATE | |||
| id = LAST_INSERT_ID(id), | |||
| name = VALUES(name)""", (tag.name,))) | |||
| name = VALUES(name)""", (tag.name,)) | |||
| tag.id_ = c.lastrowid | |||
| def _create_dto_from_row ( | |||
| @@ -789,7 +787,7 @@ class VideoHistoryDao: | |||
| with_relation_tables: bool, | |||
| ) -> list[VideoHistoryDto]: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| SELECT | |||
| id, | |||
| video_id, | |||
| @@ -798,7 +796,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)) | |||
| @@ -809,7 +807,7 @@ class VideoHistoryDao: | |||
| video_history: VideoHistoryDto, | |||
| ) -> None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| video_histories( | |||
| video_id, | |||
| @@ -821,14 +819,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: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| video_histories( | |||
| video_id, | |||
| @@ -845,7 +843,7 @@ class VideoHistoryDao: | |||
| fetched_at = VALUES(fetched_at), | |||
| views_count = VALUES(views_count)""", (video_history.video_id, | |||
| video_history.fetched_at, | |||
| video_history.views_count))) | |||
| video_history.views_count)) | |||
| def upsert_all ( | |||
| self, | |||
| @@ -890,7 +888,7 @@ class CommentDao: | |||
| with_relation_tables: bool, | |||
| ) -> list[CommentDto]: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| SELECT | |||
| id, | |||
| video_id, | |||
| @@ -903,7 +901,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)) | |||
| @@ -922,7 +920,7 @@ class CommentDao: | |||
| vpos_ms = cast (int | None, vpos_ms) | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| comments( | |||
| video_id, | |||
| @@ -955,7 +953,7 @@ class CommentDao: | |||
| comment.content, | |||
| comment.posted_at, | |||
| comment.nico_count, | |||
| vpos_ms))) | |||
| vpos_ms)) | |||
| def upsert_all ( | |||
| self, | |||
| @@ -1009,14 +1007,14 @@ class UserDao: | |||
| user_code: str | |||
| ) -> UserDto | None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| 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 | |||
| @@ -1027,11 +1025,11 @@ class UserDao: | |||
| user: UserDto, | |||
| ) -> None: | |||
| with self.conn.cursor (dictionary = True) as c: | |||
| print (c.execute (""" | |||
| c.execute (""" | |||
| INSERT INTO | |||
| users(code) | |||
| VALUES | |||
| (%s)""", (user.code,))) | |||
| (%s)""", (user.code,)) | |||
| user.id_ = c.lastrowid | |||
| def _create_dto_from_row ( | |||