Browse Source

mptk: progress bar

master
Maxim Likhachev 5 years ago
parent
commit
3743d64543
  1. 4
      scripts/mpfilter
  2. 29
      scripts/mptk

4
scripts/mpfilter

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
#!/usr/bin/env tclsh
#Создан: пт 19 июн 2020 15:42:10
#Изменён: Сб 10 окт 2020 18:20:25
#Изменён: Сб 10 окт 2020 18:30:25
# Сценарий удаления треков с указанной оценкой из mpd
@ -19,6 +19,8 @@ proc mpd {args} { @@ -19,6 +19,8 @@ proc mpd {args} {
set mpd_status [lindex $mpd_answer 0]
set answer_code [lindex $mpd_answer 1]
close $mpd
if {[string match "OK MPD *" $mpd_status]} {
if {![string match "ACK*" $answer_code]} {
return [lrange $mpd_answer 1 end-2]

29
scripts/mptk

@ -26,6 +26,18 @@ package require Tk @@ -26,6 +26,18 @@ package require Tk
set music_directory "/mnt/DATA/Музыка/"
proc float2time {float} {
set seconds [expr {int(fmod($float, 60))}]
set minutes [expr {int($float / 60)}]
set hours [expr {int($minutes / 60)}]
if {$hours == 0} {
format "%02d:%02d" $minutes $seconds
} else {
format "%02d:%02d:%02d" $hours $minutes $seconds
}
}
namespace eval mpd {
array set settings {
host 127.0.0.1
@ -43,6 +55,8 @@ namespace eval mpd { @@ -43,6 +55,8 @@ namespace eval mpd {
set mpd_status [lindex $mpd_answer 0]
set answer_code [lindex $mpd_answer end-1]
close $mpd
if {$answer_code == "OK"} {
if {![string match "ACK*" $answer_code]} {
return [lrange $mpd_answer 1 end-2]
@ -65,17 +79,26 @@ namespace eval mpd { @@ -65,17 +79,26 @@ namespace eval mpd {
set song([string tolower $key]) $value
}
if {$song(state) != "stop"} {
# parray song
if {[info exists song(id)]} {
if {[info exists song(comment)]} {
::gui::hl_rating $song(comment)
}
return [format "♫ %s/%s: %s - %s\n\[%s - %s\]\n~ %s ~\n\[%s\] repeat: %s random: %s single: %s consume: %s" \
set current_position [expr {round($song(elapsed)) * 30 / round($song(duration))}]
return [format "♫ %s/%s: %s - %s\n\[%s - %s\]\n\
~ %s ~\n\n\[%s\] repeat: %s random: %s single: %s consume: %s\n\
\[%s\] %s/%s" \
[incr song(song)] $song(playlistlength) \
$song(artist) $song(title) $song(date) \
$song(album) $song(genre) $song(state) \
[state $song(repeat)] [state $song(random)] \
[state $song(single)] [state $song(consume)]]
[state $song(single)] [state $song(consume)] \
"[string repeat ━ $current_position]᚛[string repeat ─ [expr {30-$current_position}]]" \
[float2time $song(elapsed)] \
[float2time $song(duration)]]
} else {
return "\[stopped\]"
}

Loading…
Cancel
Save