コミットを比較
5 コミット
b2f5f81ca8
...
baa75d68ba
| 作成者 | SHA1 | 日付 | |
|---|---|---|---|
| baa75d68ba | |||
| 48e51f97d0 | |||
| c5204383ed | |||
| bf36d05ed3 | |||
| c9bd6fdfa7 |
+69
@@ -0,0 +1,69 @@
|
||||
# pylint: disable = missing-class-docstring
|
||||
# pylint: disable = missing-function-docstring
|
||||
|
||||
"""
|
||||
全動画の情報を取得し,JSON 形式で出力する.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
from datetime import date, datetime
|
||||
from typing import TypedDict
|
||||
|
||||
from eloquent import DatabaseManager, Model
|
||||
|
||||
from db.models import Video
|
||||
|
||||
|
||||
def main (
|
||||
) -> None:
|
||||
config: dict[str, DbConfig] = { 'mysql': { 'driver': 'mysql',
|
||||
'host': 'localhost',
|
||||
'database': 'nizika_nico',
|
||||
'user': os.environ['MYSQL_USER'],
|
||||
'password': os.environ['MYSQL_PASS'],
|
||||
'prefix': '' } }
|
||||
db = DatabaseManager (config)
|
||||
Model.set_connection_resolver (db)
|
||||
|
||||
videos: list[VideoDict] = []
|
||||
for row in Video.all ():
|
||||
deleted_at = row.deleted_at.date () if row.deleted_at else None
|
||||
video: VideoDict = { 'id': row.id,
|
||||
'code': row.code,
|
||||
'title': row.title,
|
||||
'description': row.description,
|
||||
'tags': [],
|
||||
'uploaded_at': row.uploaded_at,
|
||||
'deleted_at': deleted_at }
|
||||
for video_tag in row.video_tags:
|
||||
if video_tag.untagged_at is None:
|
||||
video['tags'].append (video_tag.tag.name)
|
||||
videos.append(video)
|
||||
|
||||
print (json.dumps (videos, default = str))
|
||||
|
||||
|
||||
class DbConfig (TypedDict):
|
||||
driver: str
|
||||
host: str
|
||||
database: str
|
||||
user: str
|
||||
password: str
|
||||
prefix: str
|
||||
|
||||
|
||||
class VideoDict (TypedDict):
|
||||
id: int
|
||||
code: str
|
||||
title: str
|
||||
description: str
|
||||
tags: list[str]
|
||||
uploaded_at: datetime
|
||||
deleted_at: date | None
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main ()
|
||||
+2
-2
@@ -36,7 +36,7 @@ def main (
|
||||
|
||||
now = datetime.now ()
|
||||
|
||||
api_data = search_nico_by_tags (['伊地知ニジカ', 'ぼざろクリーチャーシリーズ'])
|
||||
api_data = search_nico_by_tags (['伊地知ニジカ', 'ぼざろクリーチャーシリーズ', 'ぼざろクリーチャーシリーズ外伝'])
|
||||
update_tables (api_data, now)
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ def update_tables (
|
||||
video_history.views_count = datum['viewCounter']
|
||||
video_history.upsert ()
|
||||
video_tags = [video_tag for video_tag in video.video_tags
|
||||
if video_tag.untagged_at is not None]
|
||||
if video_tag.untagged_at is None]
|
||||
tag: Tag | None
|
||||
video_tag: VideoTag | None
|
||||
for video_tag in video_tags:
|
||||
|
||||
新しい課題から参照
ユーザをブロックする