Skip to content

Commit 0613d1f

Browse files
committed
理想を押し通す
1 parent efec89a commit 0613d1f

5 files changed

Lines changed: 18 additions & 19 deletions

File tree

plugins/analyze.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from typing import Callable
66
from library.clientclass import BaseClient
77
from plugins import hato
8+
from functools import partial
89

910

1011
def analyze_message(message: str) -> Callable[[BaseClient], None]:
@@ -14,15 +15,15 @@ def analyze_message(message: str) -> Callable[[BaseClient], None]:
1415
'eq': lambda m: hato.earth_quake,
1516
'地震': lambda m: hato.earth_quake,
1617
'text list': lambda m: hato.get_text_list,
17-
'text add ': lambda m: hato.add_text(m[len('text add '):]),
18-
'text show ': lambda m: hato.show_text(m[len('text show '):]),
19-
'text delete ': lambda m: hato.delete_text(m[len('text delete '):]),
18+
'text add ': lambda m: partial(hato.add_text, word=m[len('text add '):]),
19+
'text show ': lambda m: partial(hato.show_text, power_word_id=m[len('text show '):]),
20+
'text delete ': lambda m: partial(hato.delete_text, power_word_id=m[len('text delete '):]),
2021
'text random': lambda m: hato.show_random_text,
2122
'text': lambda m: hato.show_random_text,
22-
'>< ': lambda m: hato.totuzensi(m[len('>< '):]),
23-
'amesh': lambda m: hato.amesh((m[len('amesh'):]).strip()),
23+
'>< ': lambda m: partial(hato.totuzensi, message=m[len('>< '):]),
24+
'amesh': lambda m: partial(hato.amesh, place=(m[len('amesh'):]).strip()),
2425
'電力': lambda m: hato.electricity_demand,
25-
'標高': lambda m: hato.altitude((m[len('標高'):]).strip()),
26+
'標高': lambda m: partial(hato.altitude, place=(m[len('標高'):]).strip()),
2627
'version': lambda m: hato.version,
2728
'にゃーん': lambda m: hato.yoshiyoshi,
2829
'おみくじ': lambda m: hato.omikuji,

plugins/hato.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from enum import Enum, auto
1010
from logging import getLogger
1111
from tempfile import NamedTemporaryFile
12-
from typing import List
12+
from typing import List, Callable, Union
1313
import requests
1414
from git import Repo
1515
from git.exc import InvalidGitRepositoryError, GitCommandNotFound
@@ -29,12 +29,12 @@
2929
logger = getLogger(__name__)
3030

3131

32-
def action(plugin_name: str, with_client: bool = False) -> Callable[[BaseClient], None]:
32+
def action(plugin_name: str, with_client: bool = False) -> Callable[[BaseClient, ...], None]:
3333
"""
3434
アクション定義メソッドに使うデコレータ
3535
"""
3636

37-
def _action(func: Callable[[BaseClient], Union[str, None]]):
37+
def _action(func: Callable[[BaseClient, ...], Union[str, None]]):
3838
def wrapper(client: BaseClient, *args, **kwargs):
3939
logger.debug("%s called '%s'", client.get_send_user(), plugin_name)
4040
logger.debug("%s app called '%s'", client.get_type(), plugin_name)
@@ -43,7 +43,7 @@ def wrapper(client: BaseClient, *args, **kwargs):
4343
else:
4444
client.post(func(*args, **kwargs))
4545

46-
return wraper
46+
return wrapper
4747
return _action
4848

4949

@@ -269,7 +269,7 @@ def altitude(place: str):
269269

270270

271271
@action('version')
272-
def version(client: BaseClient):
272+
def version():
273273
"""versionを表示する"""
274274

275275
str_ver = "バージョン情報\n```" \
@@ -291,7 +291,7 @@ def version(client: BaseClient):
291291

292292

293293
@action('にゃーん')
294-
def yoshiyoshi(client: BaseClient):
294+
def yoshiyoshi():
295295
"""「にゃーん」を見つけたら、「よしよし」と返す"""
296296
return 'よしよし'
297297

tests/plugins/test_analyze.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def test_totuzensi(self):
2424
client1 = TestClient()
2525
analyze_message('>< aaa')(client1)
2626
client2 = TestClient()
27-
hato.totuzensi('aaa')(client2)
27+
hato.totuzensi(client2, 'aaa')
2828
self.assertEqual(client1.get_post_message(),
2929
client2.get_post_message())
3030
# self.assertEqual(analyze_message('>< aaa'), hato.totuzensi('aaa'))

tests/plugins/test_hato.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ def get_amesh_test(self,
7676
mocker.get(jma_image_url, content=image_content)
7777
mocker.get(osm_image_url, content=image_content)
7878
mocker.get(jma_json_url, content=json_content)
79-
res = amesh(place)(client1)
80-
self.assertEqual(res, True)
79+
amesh(client1, place)
8180
return client1
8281

8382
def amesh_upload_png_test(self,
@@ -158,8 +157,7 @@ def altitude_test(self,
158157
query = '&'.join([f'{k}={v}' for k, v in params.items()])
159158
mocker.get('https://map.yahooapis.jp/alt/V1/getAltitude?' + query,
160159
content=json.dumps(content).encode())
161-
req = altitude(place)(client1)
162-
self.assertEqual(req.status_code, 200)
160+
altitude(client1, place)
163161
return client1
164162

165163
def test_altitude_with_no_params(self):

tests/test_run.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def test_telephone_link(self):
2323
]
2424
analyze_slack_message(messages)(client1)
2525
client2 = TestClient()
26-
hato.totuzensi('09012345678')(client2)
26+
hato.totuzensi(client2, '09012345678')
2727
self.assertEqual(client1.get_post_message(),
2828
client2.get_post_message())
2929

@@ -36,6 +36,6 @@ def test_code(self):
3636
]
3737
analyze_slack_message(messages)(client1)
3838
client2 = TestClient()
39-
hato.totuzensi('09012345678')(client2)
39+
hato.totuzensi(client2, '09012345678')
4040
self.assertEqual(client1.get_post_message(),
4141
client2.get_post_message())

0 commit comments

Comments
 (0)