居然又折腾了下conky。moc显示歌词的脚本

不同视角、不同观点、深度探讨,禁止人品和道德攻击
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 居然又折腾了下conky。moc显示歌词的脚本

#16

帖子 xiooli »

python 版本

代码: 全选

#!/usr/bin/python
# -*- coding: utf-8 -*-

import os, sys
info = os.popen("mocp -i").readlines()
info_dic = dict(map(lambda x: x.replace("\n", "").split(": "), info))

print info_dic["Title"]
if info_dic["State"] != "PLAY": sys.exit(1)
else:
    lrc_file = os.path.splitext(info_dic["File"])[0] + '.lrc'
    if os.path.exists(lrc_file):
        lrc_line = os.popen("grep " + info_dic["CurrentTime"] + " " + lrc_file).readlines()
        if lrc_line:
            lrc_line = lrc_line[0].split("]")[-1]
            os.system("echo '" + lrc_line + "' >/tmp/mocp-last-lrc")
            print lrc_line
        else:
            lrc_line = os.popen("cat /tmp/mocp-last-lrc").readlines()
            if lrc_line: print lrc_line[0]
    else:
        print "==无歌词文件=="
        sys.exit(0)
ps: 其实我们那个 lrcdis 只要用 fifo 模式,然后在 conkyrc 里面添加一个 cat /shm/lrcfifo 就可以了阿,实际种播放器支持呢,
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 居然又折腾了下conky。moc显示歌词的脚本

#17

帖子 adagio »

我支持 xiooli, 干掉EE :em76
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 居然又折腾了下conky。moc显示歌词的脚本

#18

帖子 adagio »

不过貌似python的玩意跑起来费劲一点 :em04
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 居然又折腾了下conky。moc显示歌词的脚本

#19

帖子 xiooli »

adagio 写了:不过貌似python的玩意跑起来费劲一点 :em04
咋会费劲些呢? 不过写这个 bash 就足够了,ee 大婶那里还不是调用了系统命令。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 居然又折腾了下conky。moc显示歌词的脚本

#20

帖子 eexpress »

额。你错了。说grep? 那是懒得开文件,偷懒而已,从老脚本继承过来的。可你的还加了,echo 管道出去的哦。你看,我那保存,占用了一半长度。
py 语法罗嗦。那map都这么罗嗦?
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 居然又折腾了下conky。moc显示歌词的脚本

#21

帖子 eexpress »

加了一个共用~/.lyrics目录的功能。

代码: 全选

● cat mocp-lrc.pl 
#!/usr/bin/perl

use utf8;
@info=`mocp -i`;
%hinfo=map{split /: /} @info;

print $hinfo{Title};
$_=$hinfo{State}; print,exit if ! /PLAY/;       #不是播放状态
chomp %hinfo;

$_=$hinfo{File}; s/(ogg|mp3)$/lrc/;     # 同目录的lrc
if(-s){$find=$_;}else{
$_="$ENV{HOME}/.lyrics/$hinfo{Artist}/$hinfo{SongTitle}.lrc";
#print;
if(-s){$find=$_;}
}
if(! $find){print "==无歌词文件==";exit 0;}

$_=`grep -m 1 \'$hinfo{CurrentTime}\' $find`;
if (! $_)               #无新歌词,不更新输出,打印记录的行
{
open (OUT, "/tmp/mocp-last-lrc");print <OUT>;close OUT;exit 0;
}
s/\xd//; s/\[.*\]//g;
print;
open (OUT, ">/tmp/mocp-last-lrc"); print OUT; close OUT;
● 鸣学
头像
eagle5678
帖子: 1900
注册时间: 2006-07-08 14:07

Re: 居然又折腾了下conky。moc显示歌词的脚本

#22

帖子 eagle5678 »

神,conky刷新不爽
头像
fyq
帖子: 48
注册时间: 2008-09-23 22:23

Re: 居然又折腾了下conky。moc显示歌词的脚本

#23

帖子 fyq »

上面的脚本似乎不能处理带有空格的歌曲名称?
我不会python和perl,求修正?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 居然又折腾了下conky。moc显示歌词的脚本

#24

帖子 eexpress »

/home/exp/媒体/音乐●/Disney Pop Station
/home/exp/媒体/音乐●/The Platinum Album
我不记得有问题。
● 鸣学
头像
adsl
帖子: 61
注册时间: 2010-04-05 16:43
来自: 山东临沂
联系:

Re: 居然又折腾了下conky

#25

帖子 adsl »

tenzu 写了:神,加个草榴新贴的脚本吧 :em04
同感!!
http://shop100148913.taobao.com/ 欢迎光临偶滴小店
回复