a conversion/grab tool for Baidu IME and https://github.com/KTachibanaM/cloudemoji
symbolConvert.py 这个库,提供 txt,KT的xml,窝的xml(SymbolElementTree),百度输入法符号ini的转换功能. 说明: 导入与合并操作中将忽略颜文字右侧的 RSTRIP_CHAR_SET 字符 颜文字判重时将忽视 REMOVABLE_CHAR_SET 格式说明: SymbolElementTree xml结构: [[][<created_timestamp>][]] <symbol [name="不愉快"]>,,Ծ‸Ծ,, 其中continuous与split作用于百度输入法,参见百度输入法ini结构.
KT的xml结构:
<emoji>
<infoos>(不可忽略)</infoos>
<category name="Yuan Liu">
<entry>
<string>( ◔ ڼ ◔ )</string>
[<note>咕嘿嘿</note>]
</entry>
</category>
</emoji>
txt结构:
单行颜文字:
一行一个,若有注释,读取' : '前的部分为注释,起后为颜文字.
空行被忽略.
多行颜文字:
1)满足re.match('_{4,}',line)的两行之间视为一个长颜文字,若有注释,加在下划线以前,读取' : '前的部分为注释.
2)<mul>开始,若有注释,读取' : '前的部分为注释,起后为颜文字.
3)下划线结束上一个多行颜文字,开始下一个多行颜文字,直到文件结尾无长下划线则会自动完结.</mul>仅结束一个多行颜文字.
bug很多,小心可能会玩脱.
百度输入法ini结构:
个人以baiduIME.template为基本模版,插入颜文字.
百度里每个分类由[(名称),(空格分隔),(默认锁定符号输入状态)]开始.
baiduSymbolElementTree(rootElement=None,file=None) : 从百度ini读取到SymbolElementTree
txtSymbolElementTree(rootElement=None,file=None,category='New') : 从txt读取到SymbolElementTree, 分类为category.
KTSymbolWrite(tree,file,**kwarg) : 将SymbolElementTree写入到KT xml文件里, 使用lxml.tree.write的参数
baiduSymbolWrite(tree,file,hint=False) : 将SymbolElementTree写入到百度输入法ini里, hint为是否在ini内提示多行颜文字失效.
txtSymbolWrite(tree,file,note=True) : 将SymbolElementTree写入到txt中, note为是否写出注释.
merge(*symsETs,**kwarg) : 将一系列SymbolElementTree合并, 若crosscategory = True, 则跨分类查找重复内容, 否则仅在同一分类中查找.
IMESymConv.py包含日用示例.
IMESymGrabber.py python IMESymGrabber.py Template(txt/xml) Source(txt/xml/URL(elementree是个废,其实不能用...)) Dest(txt/xml) [mode] xml是SymbolElementTree mode 0比1快而差, 默认1, 渣慢...