このコミットが含まれているのは:
@@ -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)
|
||||
|
||||
|
||||
|
||||
新しい課題から参照
ユーザをブロックする