当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 110 篇帖子 ]  前往页数 1, 2, 3, 4, 5 ... 8  下一页
作者 内容
1 楼 
 文章标题 : 歌词滚动显示LyricBoxen(支持Rhy, Quod, Auda)(v0.1.4)[支持audacious 2.1]
帖子发表于 : 2009-08-23 11:27 
头像

注册: 2009-08-22 8:47
帖子: 157
送出感谢: 0 次
接收感谢: 0 次
LyricBoxen目前适用于rhythmbox, quodlibet, audacious的歌词显示,使用Python,pygtk编写

下载:
附件:
文件注释: 0.1.4版
LyricBoxen-0.1.4.tar.gz [32.28 KiB]
被下载 178 次


0.1.4相对0.1.3的主要变化:
mainly bug fixing;
1,修改dbus相关代码,使与audacious2.1可正确通信
2,修正了install*.sh相关文件的几个错误:~;Desktop dir;已可正确识别桌面所在路径。

0.1.4使用方法:
直接运行lyricboxen即可
如果需要在桌面建立快捷方式,则运行installDesktop.sh
如果需要实现同播放器同启同退:
1,运行installService.sh(作用是:复制LyricBoxen的dbus service文件到/usr/share/dbus-1/services/,所以需要sudo)
2,运行对应播放器的install文件.(例:rhythmbox->installRhyPlugin.py)
audacious的插件暂缺,期盼有哪位能够帮忙写.我C忘的差不多了,而且对audacious插件编写不了解,最近也没时间
3,在播放器中激活相应插件

功能包括:
1,滚动显示歌词(纵向或横向)
2,支持鼠标拖拽歌词,调整播放位置
3,本地未搜索到歌词,则从bzmtv, 我爱记歌词网站, 百度Cache下载歌词
4,随时检测到播放器,即可与其建立连接(通过dbus).LyricBoxen与播放器启动顺序任意

搜索歌词的顺序是(case insensitive):
1,$LyricDir/$artist - $title.lrc
2,$LyricDir/$title.lrc
3,$LyricDir/$artist/$artist - $title.lrc
4,$LyricDir/$artist/$title.lrc
5,bzmtv, 我爱记歌词网站,百度歌词搜索,下载保存本地


有一些配置可修改,目前可通过编辑~/.config/lyricboxen/lyricboxen.conf文件来实现

各选项如下:
LyricDir lrc文件所在文件夹 默认:~/lyric
StayAtTop 歌词窗口总在最上 默认:True
BackgroundColor 窗口背景颜色 默认:dark turquoise
ShowWindow 激活插件时是否显示歌词窗口 默认:True
LineSpacing 歌词行间距 默认:2
Font 歌词字体
CurColor 正在播放行的字体颜色 默认:snow
OtherColor 其他行字体颜色 默认:blue
UImode 垂直,水平滚动 默认:Vertical

需要了解各颜色名称所对应颜色,可运行TestColor.py来查看

在google code整了个页面http://code.google.com/p/lyricboxen/

0.1.3相对0.1.2的主要变化:
1,通过播放器插件与dbus的通信,实现播放器与LyricBoxen的同步自动启动和关闭(感谢 djygdut 的提议)
2,增加改变窗口透明度选项(感谢 lerosua)

0.1.2相对0.1.1版变化:
1,增加从 http://lrc.bzmtv.com/ 下载歌词
2,bug fixed:修复 无法保存窗体关闭时的位置和大小 (感谢 牛奶夹心饼)
3,bug fixed:修复 无法在桌面建立起动器(感谢 牛奶夹心饼)
4,bug fixed:给TestColor.py加上执行属性(感谢 Bill Lee)

0.1.1版相对0.1.0版的主要变化:
1,增加并优先从 我爱记歌词 网站下载歌词,大大扩充了歌词下载库
2,向lerosua学习,把配置文件放在~/.config/lyricboxen下
3,bug fixed:关闭打开的文件,网络连接
4,把源文件整理至各个文件夹
0.1.0版相对0.0.2版的主要变化:
1,改为使用dbus
2,加入对quodlibet,audacious的支持
3,bug fixed:修复有些歌词不能滚动的bug
---------------------------------------------------以下为0.0.*版-------------------------
0.0.*版使用方法:
假设附件LyricBoxen.tar.gz保存到文件夹 ~/Desktop
在终端下:
cd ~/Desktop
mkdir -p ~/.gnome2/rhythmbox/plugins/
tar -xvf LyricBoxen.tar.gz -C ~/.gnome2/rhythmbox/plugins

然后打开rhythmbox,Edit->Plugins,在LyricBoxen上打勾

欢迎拍砖.

Changlog:
1,本地搜索歌词时,不区分区分英文大小写
2,bug fixed:测试$LyricDir 是否存在,不存在则新建
3,bug fixed:百度搜索歌词模块,修正了一个错误,本地模拟测试无问题,希望能够正常工作了
4,时间标签,offset标签计算方法修正
5,bug fixed:修正了百度歌词模块无法正常工作的问题(LiveCD 还挺好用)
6,bug fixed:百度歌词模块采用gbk encoding,万恶的,百度竟然在html文件中写着charset=gb2312
7,加入横向滚动功能;加入记忆窗体位置和大小

TODO:
改用'elapsed-nano-second',替换'elapsed-changed'
该signal在rhythmbox version 0.12.3引入,可以使歌词滚动更加平滑
但由于我的ubuntu上不了网,无法通过网络更新至0.12.3,暂时无法测试改signal

各位如果发现插件不能正常工作,请在终端下运行,然后把输出贴上来,谢谢。


附件:
文件注释: 0.1.3版
LyricBoxen-0.1.3.tar.gz [16.5 KiB]
被下载 157 次
文件注释: 0.1.2版
outdated

LyricBoxen_0.1.2.tar.gz [14.04 KiB]
被下载 101 次
文件注释: 扩充了歌词下载库
outdated

LyricBoxen_0.1.1.tar.gz [12.76 KiB]
被下载 55 次
文件注释: 自此版之后采用dbus
outdated

LyricBoxen_0.1.0.tar.gz [12.36 KiB]
被下载 26 次
文件注释: 对0.0.2的一点小改正。
原来Vertical,Horizontal意思和显示的对应可能有些令人不解
outdated

LyricBoxen_0.0.2.tar.gz [11.29 KiB]
被下载 32 次
文件注释: outdated
LyricBoxen_0.0.2.tar.gz [11.28 KiB]
被下载 14 次
文件注释: outdated
LyricBoxen.tar.gz [9.63 KiB]
被下载 33 次
文件注释: outdated
LyricBoxen.tar.gz [9.2 KiB]
被下载 16 次
文件注释: outdated
LyricBoxen.tar.gz [9.03 KiB]
被下载 18 次


_________________
Futurama


最后由 phyware 编辑于 2009-11-19 23:19,总共编辑了 32 次
页首
 用户资料  
 
2 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 11:32 
头像

注册: 2009-08-22 8:47
帖子: 157
送出感谢: 0 次
接收感谢: 0 次
忘了上图 :em06


附件:
文件注释: 用audacious的话,可能比较适合的一种配色方案:
BackgroundColor = 'black'
CurColor = 'snow'
OtherColor = 'slate blue'

Untitled.png
Untitled.png [ 66.48 KiB | 被浏览 2566 次 ]

文件注释: 调整大小
Screenshot-Google - Shiretoko.png
Screenshot-Google - Shiretoko.png [ 62.94 KiB | 被浏览 2896 次 ]

文件注释: 横向滚动
Screenshot-陈奕迅 - 爱情转移.png
Screenshot-陈奕迅 - 爱情转移.png [ 74.32 KiB | 被浏览 3057 次 ]

文件注释: 纵向滚动
Screenshot-rhythmbox.png
Screenshot-rhythmbox.png [ 79.26 KiB | 被浏览 3351 次 ]



_________________
Futurama


最后由 phyware 编辑于 2009-10-01 23:01,总共编辑了 3 次
页首
 用户资料  
 
3 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 12:49 
头像

注册: 2008-07-27 8:51
帖子: 711
地址: 广西玉林|广东深圳
系统: Ubuntu/Windows
送出感谢: 1
接收感谢: 3
很不错 :em11 :em11


_________________
走过去了也便有了路
http://www.ptpt52.com/


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 12:56 
头像

注册: 2008-12-21 15:27
帖子: 5349
地址: TARDIS
送出感谢: 1
接收感谢: 10
不错是不错,可惜我不用rhy……


_________________


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 13:43 
头像

注册: 2009-08-01 15:43
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
下来试试看~~~~


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 13:45 

注册: 2009-06-25 17:36
帖子: 6
送出感谢: 0 次
接收感谢: 0 次
我提示:
插件错误 无法激活插件


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 13:49 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
等这个等了N年,先顶后试再测评。楼主太好了


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 13:50 
头像

注册: 2009-03-19 9:19
帖子: 1423
地址: 江苏
送出感谢: 0 次
接收感谢: 2
试下去 :em11
歌词不出来怎么回事
附件:
Screenshot-26.png
Screenshot-26.png [ 142.56 KiB | 被浏览 3317 次 ]



_________________


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 14:06 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
很不错,就是有些歌词不能滚动。

不能上网啊,那真是可惜。提个建议,搜索歌词用千千静听的服务器可能命中高些。
百度提示连不上服务器...


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-23 14:11 
头像

注册: 2009-03-19 9:19
帖子: 1423
地址: 江苏
送出感谢: 0 次
接收感谢: 2
改成搜索千千静听的服务器歌词怎么改,我的百度没反应

代码:
# -*- coding: UTF-8 -*-
#
# Copyright (C) 2009 - Phyware Chen
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# The Rhythmbox authors hereby grant permission for non-GPL compatible
# GStreamer plugins to be used and distributed together with GStreamer
# and Rhythmbox. This permission is above and beyond the permissions granted
# by the GPL license by which Rhythmbox is covered. If you modify this code
# you may extend this exception to your version of the code, but you are not
# obligated to do so. If you do not wish to do so, delete this exception
# statement from your version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA.

import re
import codecs
import sys
import urllib
import os.path

class BaiduLrc:
   def __init__(self, plugin):
      self.plugin = plugin
      self.callback = plugin.lrcGot

      self.pattern = re.compile(u"文件格式" + '.*?LRC/Lyric.*?' + 'a href="(?P<url>.+?)".*?' + u'HTML版')
      self.patDiv = re.compile(r'<div style="position: relative;">')
      self.patBr = re.compile(r'<br>')   #<br>
      self.patDel = re.compile(r'<.*?>')   #pattern to delete
      self.patWhite = re.compile(r'^\s*')   #delete whitespace character at the beginning of a line

      #timeout = 10   #have switched to use rb.Loader().get_url()
      #socket.setdefaulttimeout(timeout)
      #self.user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
      #self.headers = { 'User-Agent' : self.user_agent }
      
   def getLrc(self, title, artist, dir):
      self.dir =dir
      #the name to search is different from the name to store
      songNameList =[artist + ' - ' + title, title]   #the name to store
      if artist == 'unKnown':
         artist = ''
      else:
         artist = ' - ' + artist
      nameList = [title + artist , title]   #the name to search

      name = None
      canEncoded = False
      index = 0
      for name in nameList:
         try:
            name = name.encode('gbk')
         except UnicodeEncodeError:
            index = index + 1
            continue
         else:
            canEncoded = True
            break

      if canEncoded == False:
         self.plugin.showState('Can\'t encode song information')
         return
      self.songName = songNameList[index]
      data = {}
      data['wd'] = name + ' filetype:lrc'
   
      urlValue = urllib.urlencode(data)
      url = 'http://www.baidu.com/s?' + urlValue

      self.plugin.get_url(url, self.htmlCB)

   def htmlCB(self, data):      #html file from 'http://www.baidu.com/s?'
      if data == None:
         self.plugin.showState('can\'t connect to the Baidu Server')
         return
      self.urlList = self.getUrl(data)
      self.length = len(urlList)
      self.i = 0
      self.lrcCB(None)   #fetch the lrc File
      
   def lrcCB(self, data):
      if data != None:
         songFile = open(os.path.join(self.dir, self.songName + '.lrc'), 'w')
         for line in data:
            if self.patDiv.search(line) != None:
               break
         for line in data:
            line = self.patBr.sub('\n', line)
            line = self.patDel.sub('', line)
            line = self.patWhite.sub('',line)
            if(line == ''):
               continue
            songFile.write(line)
         fileName = songFile.name
         songFile.close()
         if self.callback(fileName) == True:
            return

      if self.i >= self.length:   #all lrc links have been checked
         self.pluging.showState('can\'t download valid lrc file')
         return
      url = self.urlList[self.i]
      self.i = self.i + 1
      self.plugin.get_url(url, self.lrcCB)
         
   def getUrl(self, response):
      url = []
      for line in response:
         line = line.decode('gbk')
         result = self.pattern.findall(line)
         url = url + result
      return url
      

#for testing      
if __name__ == "__main__":
   lrc = BaiduLrc(None)
   lrc.dir = ''
   lrc.songName = 'test'
   file = open('mylove.htm', 'r')
   lrc.lrcCB(file)
#   file = open('search_qinghuaci.htm', 'r')
#   lrcList = lrc.getUrl(file)
#   for item in lrcList:
#      print repr(item)
#      print


_________________


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-24 9:25 
头像

注册: 2009-08-22 8:47
帖子: 157
送出感谢: 0 次
接收感谢: 0 次
lmwlovewy 写道:
我提示:
插件错误 无法激活插件


我更新了插件,请重新下载
如果还不能运行,请在终端中输入rhythmbox运行,然后把输出贴上来


_________________
Futurama


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-24 9:27 
头像

注册: 2009-08-22 8:47
帖子: 157
送出感谢: 0 次
接收感谢: 0 次
mickeywaley 写道:
试下去 :em11
歌词不出来怎么回事
附件:
Screenshot-26.png


如果你本地$LyricDir中没有歌词,因为昨天的版本百度歌词模块不能正常工作,也无法下载到歌词。就会这样。
请重新下载今天更新的版本,帮忙测试


_________________
Futurama


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布(updated:20090824)
帖子发表于 : 2009-08-24 9:35 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
好的,回去试试


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-24 9:42 
头像

注册: 2009-08-22 8:47
帖子: 157
送出感谢: 0 次
接收感谢: 0 次
lerosua 写道:
很不错,就是有些歌词不能滚动。

不能上网啊,那真是可惜。提个建议,搜索歌词用千千静听的服务器可能命中高些。
百度提示连不上服务器...


有些歌词不能滚动,是指有些歌词行,还是真个歌词文件都不行。
如果是前者,可能是由于我现在使用的是'elapsed-changed'signal,播放节奏快的歌曲时可能有些歌词行直接就跳过去了。

百度歌词搜索我觉得还好。暂时不会采用千千静听的,毕竟人家没有公开表示开放歌词下载


_________________
Futurama


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 歌词滚动显示插件LyricBoxen发布
帖子发表于 : 2009-08-24 10:43 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
phyware 写道:
lerosua 写道:
很不错,就是有些歌词不能滚动。

不能上网啊,那真是可惜。提个建议,搜索歌词用千千静听的服务器可能命中高些。
百度提示连不上服务器...


有些歌词不能滚动,是指有些歌词行,还是真个歌词文件都不行。
如果是前者,可能是由于我现在使用的是'elapsed-changed'signal,播放节奏快的歌曲时可能有些歌词行直接就跳过去了。

百度歌词搜索我觉得还好。暂时不会采用千千静听的,毕竟人家没有公开表示开放歌词下载


引擎方面问题不大。 那个歌词不能滚动是整个文件。 歌词正常显示了,但一开始就不会动。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 110 篇帖子 ]  前往页数 1, 2, 3, 4, 5 ... 8  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译