nicolib
このコミットが含まれているのは:
@@ -13,6 +13,7 @@ from bs4 import BeautifulSoup
|
|||||||
from requests.exceptions import Timeout
|
from requests.exceptions import Timeout
|
||||||
from eloquent import DatabaseManager, Model
|
from eloquent import DatabaseManager, Model
|
||||||
|
|
||||||
|
import nicolib
|
||||||
from db.models import Comment, Tag, Video, VideoHistory, VideoTag
|
from db.models import Comment, Tag, Video, VideoHistory, VideoTag
|
||||||
|
|
||||||
CONFIG: dict[str, DbConfig] = { 'mysql': { 'driver': 'mysql',
|
CONFIG: dict[str, DbConfig] = { 'mysql': { 'driver': 'mysql',
|
||||||
@@ -97,31 +98,6 @@ def get_bs_from_url (
|
|||||||
return BeautifulSoup (req.text, 'html.parser')
|
return BeautifulSoup (req.text, 'html.parser')
|
||||||
|
|
||||||
|
|
||||||
def get_video_info (
|
|
||||||
video_code: str,
|
|
||||||
) -> VideoInfo | None:
|
|
||||||
video_info: dict[str, str | list[str]] = { 'contentId': video_code }
|
|
||||||
|
|
||||||
bs = get_bs_from_url (f"https://www.nicovideo.jp/watch/{ video_code }")
|
|
||||||
if bs is None:
|
|
||||||
return None
|
|
||||||
|
|
||||||
try:
|
|
||||||
title = bs.find ('title')
|
|
||||||
if title is None:
|
|
||||||
return None
|
|
||||||
video_info['title'] = '-'.join (title.text.split ('-')[:(-1)])[:(-1)]
|
|
||||||
|
|
||||||
tags: str = bs.find ('meta', attrs = { 'name': 'keywords' }).get ('content') # type: ignore
|
|
||||||
video_info['tags'] = tags.split (',')
|
|
||||||
|
|
||||||
video_info['description'] = bs.find ('meta', attrs = { 'name': 'description' }).get ('content') # type: ignore
|
|
||||||
except Exception:
|
|
||||||
return None
|
|
||||||
|
|
||||||
return cast (VideoInfo, video_info)
|
|
||||||
|
|
||||||
|
|
||||||
def get_kiriban_list (
|
def get_kiriban_list (
|
||||||
base_date: date,
|
base_date: date,
|
||||||
) -> list[tuple[int, VideoInfo, datetime]]:
|
) -> list[tuple[int, VideoInfo, datetime]]:
|
||||||
|
|||||||
新しい課題から参照
ユーザをブロックする