今天对歌词脚本做了点修改,基本上就算完成了,主要体现在侧边栏的结果输出更加符合规范、去掉了用于测试的语句和标注,并正式改名为Lyrics_CN
从自己使用的情况看,基本上可以满意,但是从脚本的规范上来讲,还是有点遗憾的,最能体现这一点的,就是没有对amarok歌词侧边栏的“刷新”按钮做定义,导致该按钮无法工作。因此要重新让脚本工作,必须手动清空当前音轨的歌词。当然,这也给了我以后改进的机会。
在此还要感谢为amarok中文歌词脚本付出过劳动的先驱。
如果有任何反馈或者建议,请留言。
http://www.kde-apps.org/co...
另外,您也可以直接从amarok的脚本百宝箱中获取,名字是Lyrics_CN,现在最新的版本是0.5.2,还有,最近发现搜狐的搜索引擎具有一定的英文歌词搜索能力,而且还不弱,百度几乎是0。
更新日志:
06.12.17——0.2.0a
1.修复一个在GB环境下,歌名和歌手的显示为乱码的bug
2.增加多资源获取歌词的新特性。默认从百度获取歌词,当没找到的时候,会在sidebar显示三个从不同网站获取歌词的提示;默认找到的情况下,按一次刷新将会从百度再获取一次,第二次刷新会给出上述提示(注:新浪的不是很稳定,测试用)
06.12.17——0.2.0b
1.修复一个在检测locale上的错误
2.去掉sina作为候补搜索网站
3.增加搜狐作为候补搜索网站
4.去掉了由于疏忽而未注释掉的用于测试的语句
06.12.20——0.3.0
1.增加两个用于流程控制的开关,这里既然是中文的,我想有能力多说两句。amarok的信号机制,和我的脚本的思路是完全不一样的,类似fetchLyricsByUrl等信号,我其实都是用不上的,所以在流程上比较复杂,再说我这里涉及到了多资源获取歌词的问题。
2.增加lyricsdot.com的搜索引擎,主要是为了增强这个脚本的英文歌词搜索能力。不过有个事情要说明下。那个网站是这样的,通过url搜索歌词,如果这首歌在这个网站上只有一个歌词,那么会直接定位到歌词页面,从而获取;而当网站上有多个歌词的时候,他是定位到一个选择页面的,因此导致“无法找到”,所以会得出一个有趣的结论,只要网站上歌词有,越偏门的歌,成功率越高。当然我会以后修正,大不了不用这个引擎,或者干脆获取两次url,但我希望能后找个好点的引擎。
3.改进流程。既然增加了控制流程的开关,不改进才怪。
4.修正了些bug。bug的产生和流程有关。
06.12.25——(0.3.1)
1.修正了一个打包上的错误。事实上应该把文件夹打包进去而不是光文件,可能会造成覆盖,如果别的amarok脚本也那么不规范的打包的话。
2.终于把那个点击“建议后”,刷一下的问题,并且使他也显示正确的提示了。
07.02.07——(0.3.2)
1.将原来的英文歌词搜索引擎lyricsDot改为amarok默认脚本所采用的 [lyrc.com.ar] 。从我的比较来看,后者的歌词库更为完整,很多生僻的歌都可以轻松找到。从我的比较来看,后者的歌词库更为完整,很多生僻的歌都可以轻松找到。从我的比较来看,后者的歌词库更为完整,很多生僻的歌都可以轻松找到。
2.增强了英文歌词搜索能力。这个能力的提升不是1点2点,是很大,也不仅仅是改了个搜索引擎导致的。这里做个解释。本版本之前,所有的歌词都是通过一次url请求获得的,这种方法在搜索百度、搜狐等国内歌词搜索引擎的时候并没有任何问题,他会把最匹配的放在最前面,而只要用第一个几乎就不会有问题,但是外国的歌词搜索引擎的工作原理是不一样的。一般外国的搜索引擎,如果能够精确匹配到,而且网站上仅有一个歌词,那么通过一次url请求即可获得歌词,但是绝大多数情况下都是首先出现一个选择页面,通过二次url请求精确定位到所搜索的歌词页面。所以0.3.1版本以前的英文歌词搜索能力,更多的是看运气,而现在针对国外引擎的工作原理做了修改,实现二次url请求。
07.03.01——(0.4.0)
1.增加繁体歌词搜索引擎。由于locale的不同和搜索引擎的工作原理不同,因此当侦测到是zh_TW的locale后,默认就从繁体歌词搜索引擎下歌词了,按刷新按钮也只会出现繁体搜索引擎和英文搜索引擎,同理简体中文用户也不会发现这个繁体搜索引擎,除非改locale,好像除了我需要测试之外,也没什么必要。
2.修复,同时改进了侦测locale(LC_ALL)的手段,以前用终端下命令“locale”来探测,很不可靠,这次就万无一失了。
3.修复了当获取英文歌词的时候出现的编码问题。当初没有考虑到英文搜索引擎返回的编码是iso-8859-1,导致出现乱码,尤其是有 ' 的时候。这次转成utf8了,不会再出现乱码了。
07.03.05——(0.4.1)
0.4.0版本基础上的bug修正版,主要还是在侦测locale上的修改。同样是zh_CN.UTF-8的locale,不同的发行版侦测的结果居然不同,我这里返回('zh_CN','utf'),而更多的是返回('zh_CN',UTF8'),导致0.4.0出现重大bug,现在已经修复。还有在现实popupmessage上的一个错误。
07.08.23——(0.5.0)
1.除了抓取歌词的协议外,基本上重构了脚本,结构更加清晰和合理
2.增加用户设置模块
3.恢复了繁体歌词的支持,与上次不同的是,上次是抓取繁体歌词网站上的歌词,自从网站改版后就无法得到支持;此次采用了一个对照表的方式逐字转换,通过用户设置,可以选择默认显示是繁体还是简体
4.为简体中文用户提供了一个转换繁体的工具,仅当toy
5.模块化设计
07.09.02——(0.5.1)
1.修正了一个由于手误而导致的bug,运行配置模块后居然没有把参数传回来,导致第一次配置或者更改配置后可能出现由于错误而退出
2.在配置模块中,去除了配置locale这一项,改由脚本自动检测。如果locale一旦设置错误,除非删掉配置文件,不然脚本就不能运行
3.增加了一些Amarok的提示
4.考虑到非kde用户,对kdialog的依赖弱化。当系统中没有kdialog时,采用脚本自动检测进行配置,但以后只能手动修改文件来改变配置
07.10.18——(0.5.2)
1.修正了一个在写配置文件时可能写入scim信息的bug
2.修正了当歌词经过手动修改后,无法转成繁体的bug
3.增强了简繁转换,自动从简体转到繁体或者从繁体转到简体
4.修正了英文歌词无法显示'的缺陷(本来偷懒用^代替了)
5.加入了国际化(界面可以是简体、繁体或者英文)
08.03.30——(0.5.3)
1.更新了百度歌词下载规则
Tags - amarok , 脚本 , python , lyrics cn