Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:mocp [2011/09/14 11:10] [Интеграция с conky] |
wiki:mocp [2012/01/29 02:32] (текущий) [Интеграция с conky] |
||
|---|---|---|---|
| Строка 102: | Строка 102: | ||
| Для вывода строки с названием артиста и песни можно воспользоваться следующим скриптом. Не забудьте сделать файл исполняемым. | Для вывода строки с названием артиста и песни можно воспользоваться следующим скриптом. Не забудьте сделать файл исполняемым. | ||
| <code bash> | <code bash> | ||
| - | #!/bin/bash | + | #!/bin/bash |
| - | # Переменная хранит разделитель между артистом и названием | + | |
| - | # Для радио это как правило ' - ' | + | |
| - | temp=" - " | + | |
| - | # Блок отвечает за формирование строк | + | . /tmp/mocp_popup.txt |
| - | # Если в воспроизводимом файле есть http://, значит проигрывается радио | + | . /tmp/mocp_state.txt |
| - | if [ $(mocp -Q %file | grep http://) ] | + | |
| - | then | + | |
| - | # Если нет названия песни | + | |
| - | if [ -z "$(mocp -Q %song)" ] | + | |
| - | then | + | |
| - | # Выводим адрес с которого идет проигрывание | + | |
| - | FIRST_LINE="Playing Radio:" | + | |
| - | SECOND_LINE="$(mocp -Q %file | sed 's/http:\/\///g')" | + | |
| - | else | + | |
| - | # Если название песни присутствует | + | |
| - | SONG="$(mocp -Q %song)" | + | |
| - | # Выводим артиста | + | |
| - | FIRST_LINE="${SONG%*$temp*}" | + | |
| - | # Выводим название | + | |
| - | SECOND_LINE="${SONG#*$temp*}" | + | |
| - | fi | + | |
| - | else | + | |
| - | # Если воспроизводится не радио | + | |
| - | if [ -z "$(mocp -Q %song)" ] | + | |
| - | then | + | |
| - | # Выводим что тегов нет | + | |
| - | FIRST_LINE="Playing Music:" | + | |
| - | SECOND_LINE="No Title" | + | |
| - | else | + | |
| - | # Выводим артиста | + | |
| - | FIRST_LINE="$(mocp -Q %artist)" | + | |
| - | # Выводим название | + | |
| - | SECOND_LINE="$(mocp -Q %song)" | + | |
| - | fi | + | |
| - | fi | + | |
| - | # Выводим строку | + | # Переменная хранит разделитель между артистом и названием |
| - | CONCAT="$FIRST_LINE - $SECOND_LINE" | + | # Для радио это как правило ' - ' |
| - | echo $CONCAT | + | SEPARATOR=" - " |
| + | |||
| + | # Блок отвечает за формирование строк | ||
| + | # Если в воспроизводимом файле есть http://, значит проигрыватся радио | ||
| + | if [ $(mocp -Q %file | grep http://) ] | ||
| + | then | ||
| + | PLAYER="Radio" | ||
| + | # Если нет названия песни | ||
| + | if [ -z "$(mocp -Q %song)" ] | ||
| + | then | ||
| + | # Выводим адрес с которого идет проигрывание | ||
| + | FIRST_LINE="RadioSite" | ||
| + | SECOND_LINE="$(mocp -Q %file | sed 's/http:\/\///g')" | ||
| + | else | ||
| + | # Если название песни присутствует | ||
| + | SONG="$(mocp -Q %song)" | ||
| + | # Выводим артиста | ||
| + | FIRST_LINE="${SONG%*$SEPARATOR*}" | ||
| + | # Выводим название | ||
| + | SECOND_LINE="${SONG#*$SEPARATOR*}" | ||
| + | fi | ||
| + | else | ||
| + | # Если воспроизводится не радио | ||
| + | PLAYER="MoC" | ||
| + | if [ -z "$(mocp -Q %song)" ] | ||
| + | then | ||
| + | # Выводим что тегов нет | ||
| + | FIRST_LINE="No Title" | ||
| + | SECOND_LINE="No Title" | ||
| + | else | ||
| + | # Выводим артиста | ||
| + | FIRST_LINE="$(mocp -Q %artist)" | ||
| + | # Выводим название | ||
| + | SECOND_LINE="$(mocp -Q %song)" | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | NEWNAME="$FIRST_LINE - $SECOND_LINE" | ||
| + | NEWNAME="$(echo $NEWNAME | sed 's/\&/And/g' | sed 's/\`//g')" | ||
| + | NEWSTATE="$(mocp --info | grep State: | awk '{print $2}')" | ||
| + | |||
| + | if [ $NEWSTATE == STOP ]; then | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # Выводим информацию в conky | ||
| + | if [[ $NEWSTATE == "PLAY" ]]; then | ||
| + | echo "$PLAYER Play:" "$NEWNAME" | ||
| + | else | ||
| + | echo "$PLAYER Stop:" "$OLDNAME" | ||
| + | fi | ||
| + | |||
| + | #======================================== Всплывающие окна ============================================================= | ||
| + | mocp -i > /dev/null | ||
| + | if [ $? -eq 2 ];then | ||
| + | exit 2 | ||
| + | fi | ||
| + | |||
| + | if [[ "$OLDNAME" == "$NEWNAME" ]]; then | ||
| + | if [[ "$OLDSTATE" == "$NEWSTATE" ]]; then | ||
| + | exit 1 | ||
| + | fi | ||
| + | fi | ||
| + | |||
| + | # Выводим информацию в всплывающее окно | ||
| + | if [[ $NEWSTATE == "PLAY" ]]; then | ||
| + | notify-send --expire-time=2700 -i "/usr/share/icons/Humanity/emblems/48/emblem-sound.png" "$PLAYER Play:" "$NEWNAME" | ||
| + | else | ||
| + | notify-send --expire-time=2700 -i "/usr/share/icons/Humanity/emblems/48/emblem-sound.png" "$PLAYER Stop:" "$OLDNAME" | ||
| + | fi | ||
| + | |||
| + | echo OLDNAME=\"$NEWNAME\" > /tmp/mocp_popup.txt | ||
| + | echo OLDSTATE=\"$NEWSTATE\" > /tmp/mocp_state.txt | ||
| + | #======================================================================================================================= | ||
| </code> | </code> | ||
| В конфигурационный файл **conky**, добавьте строку: | В конфигурационный файл **conky**, добавьте строку: | ||