@@ -164,6 +164,18 @@ async def process_tags(
164164 interaction_provider : InteractionProvider ,
165165 ) -> List [str ]:
166166 async with self ._interaction_lock :
167+
168+ def _split_tags (tags : List [str ]) -> List [str ]:
169+ processed_tags = []
170+ for tag in tags :
171+ # 拆分可能包含逗号或分号的标签字符串
172+ processed_tags .extend ([t .strip () for t in tag .replace (',' , ',' ).replace (';' , ',' ).split (',' ) if t .strip ()])
173+ return processed_tags
174+
175+ dlsite_tags = _split_tags (dlsite_tags )
176+ fanza_tags = _split_tags (fanza_tags )
177+ ggbases_tags = _split_tags (ggbases_tags )
178+
167179 translated_tags = []
168180 source_maps = [
169181 (dlsite_tags , self ._jp_to_cn_map , TAG_JP_TO_CN_PATH , "DLsite" ),
@@ -179,12 +191,14 @@ async def process_tags(
179191 tag , source_map , map_path , source_name , interaction_provider
180192 )
181193 if translation :
182- translated_tags .append (translation )
194+ # Also split the translated tags
195+ translated_tags .extend ([t .strip () for t in translation .replace (',' , ',' ).replace (';' , ',' ).split (',' ) if t .strip ()])
183196
184197 for tag in ggbases_tags :
185198 translated = self ._ggbase_map .get (tag , tag ) or tag
186199 if translated :
187- translated_tags .append (translated )
200+ # Also split the translated tags
201+ translated_tags .extend ([t .strip () for t in translated .replace (',' , ',' ).replace (';' , ',' ).split (',' ) if t .strip ()])
188202
189203 final_tags_set : Set [str ] = set ()
190204 for concept in list (dict .fromkeys (translated_tags )):
0 commit comments