diff options
| author | Kyomotoi <0w0@imki.moe> | 2022-07-17 21:20:23 +0800 | 
|---|---|---|
| committer | Kyomotoi <0w0@imki.moe> | 2022-07-17 21:20:23 +0800 | 
| commit | 8b0111a6e23745f6c51e2037564a2c8972bf84e9 (patch) | |
| tree | 81111c60eb4e02c03e1d7b4c48d6eafda2d2137e /ATRI | |
| parent | a24d040bfa2e2c6340f31548059af7ccd144a15d (diff) | |
| download | ATRI-8b0111a6e23745f6c51e2037564a2c8972bf84e9.tar.gz ATRI-8b0111a6e23745f6c51e2037564a2c8972bf84e9.tar.bz2 ATRI-8b0111a6e23745f6c51e2037564a2c8972bf84e9.zip | |
🚑️ 修复词库匹配bug
Diffstat (limited to 'ATRI')
| -rw-r--r-- | ATRI/plugins/thesaurus/listener.py | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/ATRI/plugins/thesaurus/listener.py b/ATRI/plugins/thesaurus/listener.py index a05965c..5cf0baa 100644 --- a/ATRI/plugins/thesaurus/listener.py +++ b/ATRI/plugins/thesaurus/listener.py @@ -127,3 +127,44 @@ async def _tl_listener(event: MessageEvent):                          return                  else:                      await main_listener.finish(Message(choice(item_info.result))) + +    query_result = await tl.get_item_list(int()) +    if not query_result: +        return + +    shuffle(query_result) + +    for item in query_result: +        item_info: ThesaurusStoragor = item + +        if not item_info.result: +            continue + +        if item_info.m_type == 1: +            if item_info.matcher in msg: +                if item_info.need_at: +                    if event.is_tome(): +                        await main_listener.finish(Message(choice(item_info.result))) +                    else: +                        return +                else: +                    await main_listener.finish(Message(choice(item_info.result))) +        elif item_info.m_type == 2: +            patt = item_info.matcher +            if re.findall(patt, msg): +                if item_info.need_at: +                    if event.is_tome(): +                        await main_listener.finish(Message(choice(item_info.result))) +                    else: +                        return +                else: +                    await main_listener.finish(Message(choice(item_info.result))) +        else: +            if item_info.matcher == msg: +                if item_info.need_at: +                    if event.is_tome(): +                        await main_listener.finish(Message(choice(item_info.result))) +                    else: +                        return +                else: +                    await main_listener.finish(Message(choice(item_info.result))) | 
