|
1 | 1 | from amiyabot import AmiyaBot, KOOKBotInstance
|
2 | 2 | from amiyabot.database import *
|
3 |
| -from core.config import cos_config |
| 3 | +from core.config import cos_config, penetration_config |
4 | 4 | from core.database import config, is_mysql
|
5 | 5 | from core.cosChainBuilder import COSQQGroupChainBuilder
|
6 | 6 | from typing import Union
|
7 | 7 |
|
8 | 8 | from amiyabot.adapters.tencent.qqGuild import qq_guild_shards
|
9 | 9 | from amiyabot.adapters.tencent.qqGlobal import qq_global
|
10 |
| -from amiyabot.adapters.tencent.qqGroup import qq_group, QQGroupChainBuilderOptions |
| 10 | +from amiyabot.adapters.tencent.qqGroup import qq_group, QQGroupChainBuilder, QQGroupChainBuilderOptions |
11 | 11 | from amiyabot.adapters.cqhttp import cq_http
|
12 | 12 | from amiyabot.adapters.mirai import mirai_api_http
|
13 | 13 | from amiyabot.adapters.onebot.v11 import onebot11
|
@@ -103,21 +103,29 @@ def build_conf(cls, item):
|
103 | 103 | if item.adapter == 'qq_guild':
|
104 | 104 | conf['adapter'] = adapter(**shards, sandbox=bool(item.sandbox))
|
105 | 105 | else:
|
106 |
| - opt = QQGroupChainBuilderOptions( |
107 |
| - item.host or '0.0.0.0', item.http_port or 8086, './resource/group_temp' |
108 |
| - ) |
| 106 | + port = item.http_port or 8086 |
| 107 | + opt = QQGroupChainBuilderOptions(item.host or '0.0.0.0', port, './resource/group_temp') |
| 108 | + |
109 | 109 | if cos_config.activate:
|
110 | 110 | conf['adapter'] = adapter(
|
111 | 111 | item.client_secret,
|
112 | 112 | default_chain_builder=COSQQGroupChainBuilder(opt),
|
113 | 113 | **shards,
|
114 | 114 | )
|
115 | 115 | else:
|
116 |
| - conf['adapter'] = adapter( |
117 |
| - item.client_secret, |
118 |
| - default_chain_builder_options=opt, |
119 |
| - **shards, |
120 |
| - ) |
| 116 | + |
| 117 | + class PenetrationChainBuilder(QQGroupChainBuilder): |
| 118 | + @property |
| 119 | + def domain(self): |
| 120 | + return ( |
| 121 | + penetration_config.ports[port] + '/resource' |
| 122 | + if port in penetration_config.ports |
| 123 | + else super().domain |
| 124 | + ) |
| 125 | + |
| 126 | + cb = PenetrationChainBuilder(opt) |
| 127 | + |
| 128 | + conf['adapter'] = adapter(item.client_secret, default_chain_builder=cb, **shards) |
121 | 129 |
|
122 | 130 | if item.adapter == 'websocket':
|
123 | 131 | conf['adapter'] = test_instance(item.host, item.ws_port)
|
|
0 commit comments