Skip to content

Commit

Permalink
デフォルトコマンドをchatにする
Browse files Browse the repository at this point in the history
  • Loading branch information
massongit committed May 1, 2024
1 parent d584f7f commit 40f3b2d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 35 deletions.
34 changes: 2 additions & 32 deletions plugins/analyze.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,37 +19,7 @@ def analyze_slack_message(messages: List[dict]) -> Callable[[SlackClient], None]
def analyze_message(message: str) -> Callable[[BaseClient], None]:
"""コマンド解析"""

conditions = {
"help": lambda m: hato.help_message,
"eq": lambda m: partial(hato.earth_quake),
"地震": lambda m: partial(hato.earth_quake),
"textlint": lambda m: partial(hato.textlint, text=m[len("textlint ") :]),
"text list": lambda m: hato.get_text_list,
"text add ": lambda m: partial(hato.add_text, word=m[len("text add ") :]),
"text show ": lambda m: partial(
hato.show_text, power_word_id=m[len("text show ") :]
),
"text delete ": lambda m: partial(
hato.delete_text, power_word_id=m[len("text delete ") :]
),
"text random": lambda m: hato.show_random_text,
"text": lambda m: hato.show_random_text,
">< ": lambda m: partial(hato.totuzensi, message=m[len(">< ") :]),
"amesh": lambda m: partial(hato.amesh, place=m[len("amesh") :].strip()),
"amedas": lambda m: partial(hato.amedas, place=m[len("amedas") :].strip()),
"電力": lambda m: hato.electricity_demand,
"標高": lambda m: partial(hato.altitude, place=m[len("標高") :].strip()),
"version": lambda m: hato.version,
"にゃーん": lambda m: hato.yoshiyoshi,
"おみくじ": lambda m: hato.omikuji,
"chat": lambda m: partial(hato.chat, message=m[len("chat") :].strip()),
"画像生成": lambda m: partial(
hato.image_generate, message=m[len("画像生成") :].strip()
),
"ping": lambda m: hato.ping,
}

for key, method in conditions.items():
for key, method in hato.conditions.items():
if message.startswith(key):
return method(message)
return hato.default_action
return partial(hato.default_action, message=message)
40 changes: 37 additions & 3 deletions plugins/hato.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import json
import os
import re
from functools import partial
from logging import getLogger
from tempfile import NamedTemporaryFile
from typing import List, Optional
Expand Down Expand Up @@ -37,6 +38,36 @@

logger = getLogger(__name__)

conditions = {
"help": lambda m: help_message,
"eq": lambda m: partial(earth_quake),
"地震": lambda m: partial(earth_quake),
"textlint": lambda m: partial(textlint, text=m[len("textlint ") :]),
"text list": lambda m: get_text_list,
"text add ": lambda m: partial(add_text, word=m[len("text add ") :]),
"text show ": lambda m: partial(
show_text, power_word_id=m[len("text show ") :]
),
"text delete ": lambda m: partial(
delete_text, power_word_id=m[len("text delete ") :]
),
"text random": lambda m: show_random_text,
"text": lambda m: show_random_text,
">< ": lambda m: partial(totuzensi, message=m[len(">< ") :]),
"amesh": lambda m: partial(amesh, place=m[len("amesh") :].strip()),
"amedas": lambda m: partial(amedas, place=m[len("amedas") :].strip()),
"電力": lambda m: electricity_demand,
"標高": lambda m: partial(altitude, place=m[len("標高") :].strip()),
"version": lambda m: version,
"にゃーん": lambda m: yoshiyoshi,
"おみくじ": lambda m: omikuji,
"chat": lambda m: partial(chat, message=m[len("chat") :].strip()),
"画像生成": lambda m: partial(
image_generate, message=m[len("画像生成") :].strip()
),
"ping": lambda m: ping,
}


def action(plugin_name: str, with_client: bool = False):
"""
Expand Down Expand Up @@ -83,11 +114,14 @@ def help_message():
return os.linesep.join(str_help)


@action("default")
def default_action():
@action("default", with_client=True)
def default_action(client: BaseClient, message: str):
"""どのコマンドにもマッチしなかった"""

return conf.DEFAULT_REPLY
try:
conditions["chat"](message)(client)
except Exception as _e:
client.post(conf.DEFAULT_REPLY)


@action("eq", with_client=True)
Expand Down

0 comments on commit 40f3b2d

Please sign in to comment.