|
|
|
@@ -0,0 +1,58 @@ |
|
|
|
# pylint: disable = missing-class-docstring |
|
|
|
# pylint: disable = missing-function-docstring |
|
|
|
|
|
|
|
""" |
|
|
|
動画コードからコメントのリストを取得し,JSON 形式で出力する. |
|
|
|
""" |
|
|
|
|
|
|
|
from __future__ import annotations |
|
|
|
|
|
|
|
import json |
|
|
|
import os |
|
|
|
import sys |
|
|
|
from datetime import date, datetime |
|
|
|
from typing import TypedDict, cast |
|
|
|
|
|
|
|
from eloquent import DatabaseManager, Model |
|
|
|
|
|
|
|
from db.config import DB |
|
|
|
from db.models import Video |
|
|
|
|
|
|
|
DB |
|
|
|
|
|
|
|
|
|
|
|
def main ( |
|
|
|
video_code: str, |
|
|
|
) -> None: |
|
|
|
video = Video.where ('code', video_code).first () |
|
|
|
if video: |
|
|
|
comments: list[CommentDict] = [] |
|
|
|
for row in video.comments: |
|
|
|
comment: CommentDict = { |
|
|
|
'id': row.id, |
|
|
|
'video_id': row.video_id, |
|
|
|
'comment_no': row.comment_no, |
|
|
|
'user_id': row.user_id, |
|
|
|
'content': row.content, |
|
|
|
'posted_at': row.posted_at, |
|
|
|
'nico_count': row.nico_count, |
|
|
|
'vpos_ms': row.vpos_ms } |
|
|
|
comments.append (comment) |
|
|
|
print (json.dumps (comments, default = str)) |
|
|
|
else: |
|
|
|
print ('[]') |
|
|
|
|
|
|
|
|
|
|
|
class CommentDict (TypedDict): |
|
|
|
id: int |
|
|
|
video_id: int |
|
|
|
comment_no: int |
|
|
|
user_id: int |
|
|
|
content: str |
|
|
|
posted_at: datetime |
|
|
|
nico_count: int |
|
|
|
vpos_ms: int |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
main (sys.argv[1]) |