Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Bash скрипт - поиск картинки в интернете  (Прочитано 1543 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Disaster1986

  • Автор темы
  • Участник
  • *
  • Сообщений: 246
  • Что делает эта кнопка?
    • Просмотр профиля
Это снова я, и у меня снова вопрос про bash. И нынешняя моя задача - получить у MOC информацию о текущем треке; найти для него картинку (обложка альбома, либо за неимением оной тематически связанная картинка) в интернете; всплыть уведомление с названием песни, картинкой и прогрессбаром (сколько прошло - сколько осталось). На данный момент имеется такой скрипт:
(Нажмите, чтобы показать/скрыть)
Интересует меня вот эта часть скрипта:
path=$(wget -O- "http://images.yandex.ru/yandsearch?text=$(echo $title | sed 's| |%20|g')&nl=1&rpt=image" | grep "^<img src" | sed '2,/^$/d;' | sed 's|^.*src=.||g;s|" width.*$||g')
wget $path -P ~/Изображения/.system/mocp/yandex/
path=$(echo $path | sed 's|^.*\/\/.*\/||g')
if [[ $path ]]
then
icon=~/Изображения/.system/mocp/yandex/$path
fi
Работает она прекрасно, но, как ни печально, непростительно долго (3-10 секунд). Хотелось бы найти другой способ получения, либо другой источник картинок, чтобы сократить это время хотя бы до 2-х секунд.

Также интересует меня и другой вопрос. Это действие:
progress=$(~/Разное/.scripts/progressbar $(mocp -i | grep TotalSec | sed 's|^.*: ||g') $(mocp -i | grep CurrentSec | sed 's|^.*: ||g') 25)хотелось бы осуществить внутри скрипта, не прибегая к внешним программам. Сейчас это осуществлено таким образом:
(Нажмите, чтобы показать/скрыть)

Оффлайн kom3s

  • Участник
  • *
  • Сообщений: 149
    • Просмотр профиля
Re: Bash скрипт - поиск картинки в интернете
« Ответ #1 : 27 Февраля 2011, 22:59:39 »
Может проще дергать обложки из каталога с музыкой:
icon="$(dirname "$(mocp -i | grep '^File' | cut -d ' ' -f2-)")"/folder.jpgА туда их положить вот этим.

Также интересует меня и другой вопрос. Это действие:
progress=$(~/Разное/.scripts/progressbar $(mocp -i | grep TotalSec | sed 's|^.*: ||g') $(mocp -i | grep CurrentSec | sed 's|^.*: ||g') 25)хотелось бы осуществить внутри скрипта, не прибегая к внешним программам.
Замени строку вот этим:TOTAL=$(mocp -i | grep TotalSec | sed 's|^.*: ||g')
CURRENT=$(mocp -i | grep CurrentSec | sed 's|^.*: ||g')
LENGTH=25
for (( i=1; i <= $LENGTH; i++ )); do
  [ "$i" -le "$(( $CURRENT * $LENGTH / $TOTAL ))" ] && progress="$progress"▒ || progress="$progress"█
done
« Последнее редактирование: 28 Февраля 2011, 00:28:50 от kom3s »

Оффлайн Disaster1986

  • Автор темы
  • Участник
  • *
  • Сообщений: 246
  • Что делает эта кнопка?
    • Просмотр профиля
Re: Bash скрипт - поиск картинки в интернете
« Ответ #2 : 28 Февраля 2011, 12:57:32 »
За код спасибо, а вод coverchooser не слишком подходит, т.к. моя музыка в большинстве своём имеет кривые теги либо вовсе их не имеет, отдельных папок для разных альбомов у меня не водится, да и интернет-радио, опять же. Но всё равно спасибо

 

Страница сгенерирована за 0.076 секунд. Запросов: 25.