このコミットが含まれているのは:
@@ -41,7 +41,9 @@ async def main (
|
|||||||
queries_to_answers (),
|
queries_to_answers (),
|
||||||
report_kiriban (),
|
report_kiriban (),
|
||||||
report_nico (),
|
report_nico (),
|
||||||
update_kiriban_list ())
|
update_kiriban_list (),
|
||||||
|
report_snack_time (),
|
||||||
|
report_hot_spring_time ())
|
||||||
|
|
||||||
|
|
||||||
async def queries_to_answers (
|
async def queries_to_answers (
|
||||||
@@ -96,16 +98,7 @@ async def report_kiriban (
|
|||||||
このことについて、何かお祝いメッセージを下さい。
|
このことについて、何かお祝いメッセージを下さい。
|
||||||
ただし、そのメッセージ内には再生数の数値を添えてください。
|
ただし、そのメッセージ内には再生数の数値を添えてください。
|
||||||
また、つけられたタグ、コメントからどのような動画か想像し、説明してください。"""
|
また、つけられたタグ、コメントからどのような動画か想像し、説明してください。"""
|
||||||
query = Query ()
|
_add_query (prompt, QueryType.KIRIBAN, { 'video_code': video_code })
|
||||||
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 ()
|
|
||||||
|
|
||||||
# 待ち時間計算
|
# 待ち時間計算
|
||||||
dt = datetime.now ()
|
dt = datetime.now ()
|
||||||
@@ -249,16 +242,7 @@ async def report_nico (
|
|||||||
{ video['description'] }
|
{ video['description'] }
|
||||||
```
|
```
|
||||||
このことについて、みんなに告知するとともに、ニジカちゃんの感想を教えてください。"""
|
このことについて、みんなに告知するとともに、ニジカちゃんの感想を教えてください。"""
|
||||||
query = Query ()
|
_add_query (prompt, QueryType.NICO_REPORT, { 'video_code': video['contentId'] })
|
||||||
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 ()
|
|
||||||
|
|
||||||
await asyncio.sleep (60)
|
await asyncio.sleep (60)
|
||||||
|
|
||||||
@@ -282,6 +266,45 @@ async def wait_until (
|
|||||||
await asyncio.sleep ((datetime.combine (d, t) - dt).total_seconds ())
|
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 (
|
def _format_elapsed (
|
||||||
uploaded_at: datetime,
|
uploaded_at: datetime,
|
||||||
) -> str:
|
) -> str:
|
||||||
|
|||||||
+1
-1
サブモジュール nicolib が更新されました: 9fec1cf5f9...32ecf2d00f
+16
-6
@@ -9,7 +9,7 @@ from datetime import datetime
|
|||||||
from typing import TypedDict
|
from typing import TypedDict
|
||||||
|
|
||||||
from nizika_ai.config import DB
|
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.models import Answer, AnsweredFlag, Query
|
||||||
from nizika_ai.talk import Talk
|
from nizika_ai.talk import Talk
|
||||||
|
|
||||||
@@ -83,7 +83,6 @@ def add_answer (
|
|||||||
answer.character = character.value
|
answer.character = character.value
|
||||||
answer.content = Talk.main (message, user_name, histories,
|
answer.content = Talk.main (message, user_name, histories,
|
||||||
goatoh_mode = character == Character.GOATOH)
|
goatoh_mode = character == Character.GOATOH)
|
||||||
answer.answer_type = query.query_type
|
|
||||||
answer.sent_at = datetime.now ()
|
answer.sent_at = datetime.now ()
|
||||||
answer.save ()
|
answer.save ()
|
||||||
add_answered_flags (answer)
|
add_answered_flags (answer)
|
||||||
@@ -101,15 +100,26 @@ def add_answered_flags (
|
|||||||
返答モデル
|
返答モデル
|
||||||
"""
|
"""
|
||||||
|
|
||||||
answer_type: AnswerType
|
answer_type: QueryType
|
||||||
try:
|
try:
|
||||||
answer_type = AnswerType (answer.answer_type)
|
answer_type = QueryType (answer.query.query_type)
|
||||||
except (TypeError, ValueError):
|
except (TypeError, ValueError):
|
||||||
return
|
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)
|
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)
|
add_answered_flag (answer, Platform.BLUESKY)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
新しい課題から参照
ユーザをブロックする