|
6 | 6 | import json |
7 | 7 | import os |
8 | 8 | import re |
| 9 | +from enum import Enum, auto |
9 | 10 | from logging import getLogger |
10 | 11 | from tempfile import NamedTemporaryFile |
11 | 12 | from typing import List |
|
22 | 23 | from library.hatokaraage import hato_ha_karaage |
23 | 24 | from library.clientclass import BaseClient |
24 | 25 | from library.jma_amesh import jma_amesh |
| 26 | +from library.omikuji import OmikujiResult, OmikujiResults, draw as omikuji_draw |
25 | 27 | logger = getLogger(__name__) |
26 | 28 |
|
27 | 29 |
|
@@ -54,6 +56,7 @@ def help_message(client: BaseClient): |
54 | 56 | 'text delete [int] ... 指定した番号[int]のパワーワードを削除する。 ', |
55 | 57 | '>< [text] ... 文字列[text]を吹き出しで表示する。', |
56 | 58 | 'にゃーん ... 「よしよし」と返す。', |
| 59 | + 'おみくじ ... おみくじを引いて返す。', |
57 | 60 | 'version ... バージョン情報を表示する。', |
58 | 61 | '', |
59 | 62 | '詳細はドキュメント(https://github.com/dev-hato/hato-bot/wiki)も見てくれっぽ!', |
@@ -273,3 +276,65 @@ def yoshiyoshi(client: BaseClient): |
273 | 276 | logger.debug("%s called 'hato yoshiyoshi'", client.get_send_user()) |
274 | 277 | logger.debug("%s app called 'hato yoshiyoshi'", client.get_type()) |
275 | 278 | client.post('よしよし') |
| 279 | + |
| 280 | + |
| 281 | +# 以下おみくじの設定 |
| 282 | +# Refer: dev-hato/hato-bot#876 |
| 283 | +class OmikujiEnum(Enum): |
| 284 | + """ |
| 285 | + おみくじの結果一覧 |
| 286 | + """ |
| 287 | + DAI_KICHI = auto() |
| 288 | + CHU_KICHI = auto() |
| 289 | + SHO_KICHI = auto() |
| 290 | + KICHI = auto() |
| 291 | + SUE_KICHI = auto() |
| 292 | + AGE_KICHI = auto() |
| 293 | + KYO = auto() |
| 294 | + DAI_KYO = auto() |
| 295 | + |
| 296 | + |
| 297 | +omikuji_results = OmikujiResults({ |
| 298 | + OmikujiEnum.DAI_KICHI: OmikujiResult( |
| 299 | + 12, |
| 300 | + ":tada: 大吉 何でもうまくいく!!気がする!!" |
| 301 | + ), |
| 302 | + OmikujiEnum.KICHI: OmikujiResult( |
| 303 | + 100, |
| 304 | + ":smirk: 吉 まあうまくいくかも!?" |
| 305 | + ), |
| 306 | + OmikujiEnum.CHU_KICHI: OmikujiResult( |
| 307 | + 100, |
| 308 | + ":smile: 中吉 そこそこうまくいくかも!?" |
| 309 | + ), |
| 310 | + OmikujiEnum.SHO_KICHI: OmikujiResult( |
| 311 | + 100, |
| 312 | + ":smily: 小吉 なんとなくうまくいくかも!?" |
| 313 | + ), |
| 314 | + OmikujiEnum.SUE_KICHI: OmikujiResult( |
| 315 | + 37, |
| 316 | + ":expressionless: 末吉 まあ多分うまくいくかもね……!?" |
| 317 | + ), |
| 318 | + OmikujiEnum.AGE_KICHI: OmikujiResult( |
| 319 | + 2, |
| 320 | + ":poultry_leg: 揚げ吉 鳩を揚げると良いことあるよ!!" |
| 321 | + ), |
| 322 | + OmikujiEnum.KYO: OmikujiResult( |
| 323 | + 12, |
| 324 | + ":cry: 凶 ちょっと慎重にいったほうがいいかも……" |
| 325 | + ), |
| 326 | + OmikujiEnum.DAI_KYO: OmikujiResult( |
| 327 | + 2, |
| 328 | + ":crying_cat_face: 大凶 そういう時もあります……猫になって耐えましょう" |
| 329 | + ), |
| 330 | +}) |
| 331 | + |
| 332 | + |
| 333 | +def omikuji(client: BaseClient): |
| 334 | + """ |
| 335 | + おみくじ結果を返す |
| 336 | + """ |
| 337 | + |
| 338 | + logger.debug("%s called 'hato yoshiyoshi'", client.get_send_user()) |
| 339 | + logger.debug("%s app called 'hato yoshiyoshi'", client.get_type()) |
| 340 | + client.post(omikuji_draw(omikuji_results)[1].message) |
0 commit comments