みてるぞ 4 weeks ago
parent
commit
f5eb7e35af
3 changed files with 61 additions and 28 deletions
  1. +44
    -21
      main.py
  2. +1
    -1
      nicolib
  3. +16
    -6
      queries_to_answers.py

+ 44
- 21
main.py View File

@@ -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

@@ -1 +1 @@
Subproject commit 9fec1cf5f99ca2cb2a9b3ff158027a3416cc5f06
Subproject commit 32ecf2d00fcba876ed5afe48626058b2b4795399

+ 16
- 6
queries_to_answers.py View File

@@ -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)




Loading…
Cancel
Save