このコミットが含まれているのは:
2025-08-17 03:34:44 +09:00
コミット f5eb7e35af
3個のファイルの変更61行の追加28行の削除
+44 -21
ファイルの表示
@@ -41,7 +41,9 @@ async def main (
queries_to_answers (),
report_kiriban (),
report_nico (),
update_kiriban_list ())
update_kiriban_list (),
report_snack_time (),
report_hot_spring_time ())
async def queries_to_answers (
@@ -96,16 +98,7 @@ async def report_kiriban (
このことについて、何かお祝いメッセージを下さい。
ただし、そのメッセージ内には再生数の数値を添えてください。
また、つけられたタグ、コメントからどのような動画か想像し、説明してください。"""
query = Query ()
query.user_id = None
query.target_character = Character.DEERJIKA.value
query.content = prompt
query.query_type = QueryType.KIRIBAN.value
query.model = GPTModel.GPT3_TURBO.value
query.sent_at = datetime.now ()
query.answered = False
query.transfer_data = { 'video_code': video_code }
query.save ()
_add_query (prompt, QueryType.KIRIBAN, { 'video_code': video_code })
# 待ち時間計算
dt = datetime.now ()
@@ -249,16 +242,7 @@ async def report_nico (
{ video['description'] }
```
このことについて、みんなに告知するとともに、ニジカちゃんの感想を教えてください。"""
query = Query ()
query.user_id = None
query.target_character = Character.DEERJIKA.value
query.content = prompt
query.query_type = QueryType.NICO_REPORT.value
query.model = GPTModel.GPT3_TURBO.value
query.sent_at = datetime.now ()
query.answered = False
query.transfer_data = { 'video_code': video['contentId'] }
query.save ()
_add_query (prompt, QueryType.NICO_REPORT, { 'video_code': video['contentId'] })
await asyncio.sleep (60)
@@ -282,6 +266,45 @@ async def wait_until (
await asyncio.sleep ((datetime.combine (d, t) - dt).total_seconds ())
async def report_snack_time (
) -> None:
"""
おやつタイムを報知する.
"""
while True:
await wait_until (time (15, 0))
_add_query ('おやつタイムだ!!!!', QueryType.SNACK_TIME)
async def report_hot_spring_time (
) -> None:
"""
温泉タイムを報知する.
"""
while True:
await wait_until (time (21, 0))
_add_query ('温泉に入ろう!!!', QueryType.HOT_SPRING)
def _add_query (
content: str,
query_type: QueryType,
transfer_data: dict | None = None,
) -> None:
query = Query ()
query.user_id = None
query.target_character = Character.DEERJIKA.value
query.content = content
query.query_type = query_type.value
query.model = GPTModel.GPT3_TURBO.value
query.sent_at = datetime.now ()
query.answered = False
query.transfer_data = transfer_data
query.save ()
def _format_elapsed (
uploaded_at: datetime,
) -> str:
+1 -1
サブモジュール nicolib が更新されました: 9fec1cf5f9...32ecf2d00f
+16 -6
ファイルの表示
@@ -9,7 +9,7 @@ from datetime import datetime
from typing import TypedDict
from nizika_ai.config import DB
from nizika_ai.consts import AnswerType, Character, Platform
from nizika_ai.consts import Character, Platform, QueryType
from nizika_ai.models import Answer, AnsweredFlag, Query
from nizika_ai.talk import Talk
@@ -83,7 +83,6 @@ def add_answer (
answer.character = character.value
answer.content = Talk.main (message, user_name, histories,
goatoh_mode = character == Character.GOATOH)
answer.answer_type = query.query_type
answer.sent_at = datetime.now ()
answer.save ()
add_answered_flags (answer)
@@ -101,15 +100,26 @@ def add_answered_flags (
返答モデル
"""
answer_type: AnswerType
answer_type: QueryType
try:
answer_type = AnswerType (answer.answer_type)
answer_type = QueryType (answer.query.query_type)
except (TypeError, ValueError):
return
if answer_type in (AnswerType.YOUTUBE_REPLY,):
if answer_type in (QueryType.YOUTUBE_COMMENT,
QueryType.YOUTUBE_COMMENT,
QueryType.KIRIBAN,
QueryType.NICO_REPORT,
QueryType.SNACK_TIME,
QueryType.HOT_SPRING):
add_answered_flag (answer, Platform.YOUTUBE)
if answer_type in (AnswerType.BLUESKY_REPLY,):
if answer_type in (QueryType.BLUESKY_COMMENT,
QueryType.BLUESKY_SYSTEM,
QueryType.KIRIBAN,
QueryType.NICO_REPORT,
QueryType.SNACK_TIME,
QueryType.HOT_SPRING):
add_answered_flag (answer, Platform.BLUESKY)