当前位置: 首页 > 工具软件 > lrcdis > 使用案例 >

lrcdis (外挂式显歌词脚本)

赵河
2023-12-01
https://linuxtoy.org/archives/lrcdis.html
http://www.oschina.net/p/lrcdis/
http://code.google.com/p/lrcdis/downloads/list


#!/bin/bash
# Name:     lrcdis (外挂式显歌词脚本)
# License:  GPLv3
# Credit:   xiooli,solcomo,bones7456,oldherl  (2008-2009)
# Encoding: UTF-8
# Thanks to: 搜狗歌词搜索

Version=090908
#是否开启调试信息
Debug=0
Conf_file=~/.config/lrcdis.conf
Cookie_file=/dev/shm/lrcdis-cookie-file-$USER-"`date +"%s.%N"`-$RANDOM"

#=========================定义函数=============================

INIT() {
    #程序初始化函数

    #没有参数,正确执行如果没有配置文件则会产生配置文件并加载配置,有配置文件则加载配置文件

    [ -f "$Conf_file" ] || cat<< EOF > "$Conf_file"
#===================LRCDIS-CONFIG================
#保存lrc文件的文件夹
Lrcdir=~/.lyrics
#显示模式: osd|notify|fifo|title|cli|kdialog|echo (将歌词输出到一个管道文件,以便用其他命令访问)
Dismode=osd
#播放器类型: mpd|mocp|muine|audacious|juk|amarok|exaile|gmusicbrowser|quodlibet|qmmp|rhythmbox|banshee|audacious2|xmms2
Player=rhythmbox
#获取歌曲名称方式: id3(id3标签方式)|filename(文件名方式)
Readname=id3
#自身时间发生器产生时间的间隔(最好小于1秒)
Sleeptm=0.6
#======================[cli]=====================
#命令行显示时的参数
#一屏显示行数
Row=10
#歌曲标题的颜色(见最后的颜色定义)
Titlecolor=green
#歌曲歌词的颜色(见最后的颜色定义)
Lyricscolor=blue
#==============[osd, notify & kdialog]=============
#osd显示时的参数
#osd显示位置:top, bottom
Vposition=top
#osd对齐位置:left, right, center
Halignment=center
#osd最长显示时间(超过则隐藏,单位毫秒?)
Timeout=10000
#span size
Size=20000
#字体颜色: green|white|blue|yellow|grey|...
#注意,这个颜色与cli模式的颜色不是一回事
Foreground=green
#动画效果: off, on
Animations=off
#是否加新行,以免挡住panel等: off|on
Addnewline=off
#notify模式的图标文件名(只支持绝对路径)
NotifyIcon=""
#kdialog显示的timeout
Ktimeout=5
#====================[lrc]======================
#从何处下载歌词: SOGOU_URI,BAIDU_URI,QIANQIAN_URI
Uri=SOGOU_URI
#是否检查歌词文件,yes/no,yes将会检查歌词文件是否正确,若不正确则重新下载歌词
Checklrc=yes
#下载歌词的最大重试次数,不宜过大
Maxdowntimes=4
#================================================
#定义颜色(仅在cli模式下使用)
black="30"
red="31"
green="32"
yellow="33"
blue="34"
magenta="35"
cyan="36"
white="37"
#======================END========================
EOF

    . "$Conf_file"
}

DEBUGECHO() {
    [ "$Debug" = 1 ] && echo "  $@" >&2
}

DO_NAME() {
    #  1 argument, the filename

    #  removing .mp3/.wma/.ogg/.ape/.flac etc.
    local    a
    a="`basename "$1"`"
    #理论上说以 . 分隔的最后那部分是扩展名
    a="${a%.[a-zA-Z0-9]*}"
    #a="${a/%.mp3/}"; a="${a/%.MP3/}"
    #a="${a/%.wma/}"; a="${a/%.WMA/}"
    #a="${a/%.ogg/}"; a="${a/%.OGG/}"
    #a="${a/%.ape/}"; a="${a/%.APE/}"
    #a="${a/%.flac/}"; a="${a/%.FLAC/}"
    # 去掉前置的一位或两位数字和".",一般是专辑中的序号
    a="${a/#[0-9]./}"; a="${a/#[0-9][0-9]./}"
    echo "$a"
}

USAGE() {
    #显示帮助信息的函数

    #没有参数,执行显示帮助信息

    cat << EOF
lrcdis $Version (http://code.google.com/p/lrcdis)
用法: $0 [选项]
选项:

    -C, --config <配置文件路径>
        指定配置文件 (默认: ~/.config/lrcdis.conf)
    -s, --save-dir <保存目录>
        指定歌词的保存目录 (默认: ~/.lyrics)
    -d, --download <歌曲名>
        仅下载歌词, 保存至歌词目录
    -E, --edit-conf
        进入编辑配置文件的模式
    -p, --player <播放器>
        优先检查此播放器,如果此播放器未运行则继续检查其他播放器
    -m, --mode <显示模式>
        以 <显示模式> 显示歌词,详细参数见下面:
    -m osd
        以osd模式显示歌词(needs gnome-osd)
    -m notify
        以notify模式显示歌词(needs notify-send)
    -m fifo
        将歌词输出到管道文件/dev/shm/lrcfifo
    -m title
        将歌词输出到终端的标题中(支持大多数终端)
    -m kdialog
        将歌词以kdialog的通知模式输出
    -m echo
        将歌词以普通echo模式输出
    -m cli
        以cli模式显示歌词
    -D, --debug
        Debug mode
    -h, --help
        显示本帮助信息并退出
    -v, --version
        显示版本号并退出
备注:不加任何选项则以 $Conf_file 为配置文件初始化运行
EOF
}

PLAYER_USERS() {
    #一个参数,播放器进程名,返回该进程可能对应的用户ID.
    id -u | tr -d "\n"
    if [ "$1" = "mpd" ];then
        echo -n ",0" #mpd以root运行算合法
        if id -u mpd >/dev/null 2>&1 ;then

转载于:https://www.cnblogs.com/lixuebin/p/10814525.html

 类似资料: