@@ -34,9 +34,7 @@ def _load_service_config(service_name):
3434
3535def _save_service_config (service ):
3636 config_file = os .path .join (_service_config_dir , f'{ service .name } .json' )
37- with open (config_file , 'w' , encoding = 'utf8' ) as f :
38- json .dump (
39- {
37+ body = {
4038 "name" : service .name ,
4139 "use_priv" : service .use_priv ,
4240 "manage_priv" : service .manage_priv ,
@@ -45,8 +43,13 @@ def _save_service_config(service):
4543 "visible" : service .visible ,
4644 "enable_group" : list (service .enable_group ),
4745 "disable_group" : list (service .disable_group ),
48- "group_bc_tag" : service .group_bc_tag ,
49- },
46+ }
47+ if isinstance (service , BroadcastService ):
48+ body ["group_bc_tag" ] = service .group_bc_tag
49+
50+ with open (config_file , 'w' , encoding = 'utf8' ) as f :
51+ json .dump (
52+ body ,
5053 f ,
5154 ensure_ascii = False ,
5255 indent = 2 )
@@ -278,7 +281,7 @@ class BroadcastService(Service):
278281 def __init__ (self , * args , ** kwargs ):
279282 super ().__init__ (* args , ** kwargs )
280283 config = self ._loaded_config
281- self .group_bc_tag = config .get ('group_bc_tag' ) or defaultdict ( lambda : self . broadcast_tag )
284+ self .group_bc_tag = config .get ('group_bc_tag' , {} )
282285 #service_names = (self.name,)
283286
284287 set_prefix = f'{ self .name } set-bc-tag' #join_iterable(service_names, ('bc-tag',), sep=' ')
@@ -297,9 +300,11 @@ async def set_bc_tag(bot, ev):
297300 return
298301 new_tags = new_tags .split (' ' )
299302 self .set_broadcast_tag (gid , new_tags )
303+
300304 await bot .kkr_send (ev , f'服务 <{ self .name } > 的推送频道的标签成功更新为 { new_tags } ' )
301305
302306 async def get_bc_tag (bot , ev ):
307+ gid = ev .get_group_id ()
303308 await bot .kkr_send (ev , f'服务 <{ self .name } > 的推送频道的标签为 { self .group_bc_tag .get (gid , self .broadcast_tag )} ' )
304309
305310 self .on_prefix (set_prefix )(set_bc_tag )
@@ -314,7 +319,7 @@ def set_broadcast_tag(self, gid, new_tags):
314319 self .group_bc_tag [gid ] = new_tags
315320
316321 _save_service_config (self )
317- self .logger .info (f'Service { self .name } \' s broadcast tag is modified as { new_tags } ' )
322+ self .logger .info (f'Service { self .name } \' s broadcast tag of group { gid } is modified as { new_tags } ' )
318323
319324 async def broadcast (self , msg : SupportedMessageType , tag : List [str ]= None ):
320325 bot = self .bot
0 commit comments