На днях зарелизился uGet 1.10 stable. Оказалось, им уже можно нормально пользоваться. Пожалуй, теперь это наилучший из существующих GUI для aria2c. Поделюсь рецептом его приготовления и скриптом для автоматического выбора категорий в зависимости от типов файлов.
Что из нового меня обрадовало?
- Доделали интеграцию с aria2c (закачка в несколько потоков, регулировка скорости и прочие вкусности aria2c теперь доступны).
- Появилась опция --quiet для запуска закачек без вылезающего окна подтверждения.
Собственно, о приготовлении:
- В настройках нужно указать _полный_ путь до aria2c (обычно /usr/bin/aria2c ).
- Аргументы для запуска aria2c у меня такие:
где x задаёт кол-во потоков, k — минимальный размер разбивки файла на части. Опцию --enable-rpc=true нужно обязательно указать, ибо uGet через RPC-сервер aria2c работает. Указываем логин и пароль в --rpc-user=USER --rpc-passwd=PASSWORD, при этом в настройках URI меняем дефолтный http://localhost:6800/rpc на http://USER:PASSWORD@localhost:6800/rpc. Рекомендую --follow-torrent=false, чтобы содержимое торрентов не качать. В остальном man aria2c.-x 5 -k 1M --enable-rpc=true --disable-ipv6=true --enable-dht=false --enable-dht6=false --rpc-user=USER --rpc-passwd=PASSWORD --enable-peer-exchange=false --follow-torrent=false --follow-metalink=false --user-agent='Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0'
- В Firefox'овском FlashGot добавляем uGet или uGet-скрипт (см. ниже) с шаблоном командной строки , чтобы имена закачек нормально определялись.
[URL] --filename=[FNAME]
- На закуску ставим монохромные иконки.
О скрипте для автоматического выбора категорий в зависимости от типов файлов:
- Создаём в uGet'е категории после «Home» именно в следующем порядке: Архивы, Документы, Видео, Музыка, Пакеты, Торренты; иначе в нижеприведённом скрипте придётся менять индексы для категорий (Home имеет индекс 0, Архивы = 1, Документы = 2, и т.д. по порядку). Указываем в настройках каждой категории каталог для закачек и прочее.
- Код для рутрекера и порнолаба закомментирован. Для работы этого кода используется curl и локальный http-сервер. Если захочется иметь с этих трекеров торрент-файлы в uGet'е, то раскомментируйте код, не забыв сменить пути к cookies и для сервера.
Скрипт для получения Firefox'овских cookies можно взять здесь.
- Путь в скрипте для DIRDFILE меняем на свой, либо создаём такой же: mkdir -p $HOME/scripts/dfiles
uGet-скрипт:
#!/bin/bash
#uGet_category_selection script by takiz aka dadd
URL="$1"
#Создаём временный файл с информацией о закачке
DIRDFILE="$HOME/scripts/dfiles/"
DFILE="$DIRDFILE/dfile1"
if ! [ -a "$DFILE" ]; then
echo > $DFILE
fi
NUM=`ls -1 "$DIRDFILE" | tail -1 | egrep -o -e '[0-9]{1,20}'`; (( NUM++ ))
wget --spider "$URL" 2>&1 | tee > $DIRDFILE/dfile$NUM
OUTPUT="$DIRDFILE/dfile$NUM"
#Отсеиваем типы файлов
ARCHIVES=`egrep -e 'application\/(x.bzip2|x.gzip|x.tar|x.7z|rar|zip)' $OUTPUT`
DOCS=`egrep -e '(application|image|text)\/(pdf|msword|rtf|vnd.ms.excel|vnd.djvu|plain)' $OUTPUT`
MOVIES=`egrep -e 'video\/(x.flv|mp4|x.msvideo|x.ms.wmv|mpeg|x.matroska)' $OUTPUT`
MUSIC=`egrep -e 'audio\/(mpeg|flac)' $OUTPUT`
PACKAGES=`egrep -e 'application\/x.debian.package' $OUTPUT`
TORRENTS=`egrep -e 'application\/x.bittorrent' $OUTPUT`
OCTET=`egrep -e 'application\/octet.stream' $OUTPUT`
#Для rutracker и pornolab
#ID=`echo "$URL" | egrep -o -e '[0-9]{4,10}'`
#PORNOLAB=`echo "$URL" | egrep -o -e 'pornolab.net'`
#RUTRACKER=`echo "$URL" | egrep -o -e 'rutracker.org'`
#RUFILE="[rutracker.org].t$ID.torrent"
#POFILE="[pornolab.net].t$ID.torrent"
#RUREFERER="http://rutracker.org/forum/viewtopic.php?t=$ID"
#POREFERER="http://pornolab.net/forum/viewtopic.php?t=$ID"
#COOCKIE="$HOME/scripts/tmp/co.txt"
#AGENT="Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0"
#Раскладываем по категориям
if [ "$TORRENTS" ]; then
uget-gtk $URL $2 --category-index=6
rm -f $OUTPUT
#elif [ "$RUTRACKER" ]; then
# curl --trace-ascii - -d "" --cookie "$COOCKIE" -c "$COOCKIE" -A "$AGENT" -o "/var/www/torrents/$RUFILE" -e "$RUREFERER" $URL;
# uget-gtk "http://localhost/torrents/$RUFILE" --category-index=6; rm -f $OUTPUT; sleep 8;
# rm -f "/var/www/torrents/$RUFILE"
#elif [ "$PORNOLAB" ]; then
# curl --trace-ascii - -d "" --cookie "$COOCKIE" -c "$COOCKIE" -A "$AGENT" -o "/var/www/torrents/$POFILE" -e "$POREFERER" $URL;
# uget-gtk "http://localhost/torrents/$POFILE" --category-index=6; rm -f $OUTPUT; sleep 8;
# rm -f "/var/www/torrents/$POFILE"
elif [ "$ARCHIVES" ]; then
uget-gtk $URL $2 --category-index=1
rm -f $OUTPUT
elif [ "$DOCS" ]; then
uget-gtk $URL $2 --category-index=2
rm -f $OUTPUT
elif [ "$OCTET" ]; then
#Отсеиваем для octet
OCARCHIVES=`echo "$URL" | egrep -i -e '\.(bz2|gz|tgz|tar|rar|zip|7z)'`
OCDOCS=`echo "$URL" | egrep -i -e '\.(doc|rtf|xls|pdf|djvu|txt)'`
OCMOVIES=`echo "$URL" | egrep -i -e '\.(avi|flv|mp4|wmv|mpg|mpeg|mkv)'`
OCMUSIC=`echo "$URL" | egrep -i -e '\.(mp3|flac|ogg|ape|m4a)'`
OCPACKAGES=`echo "$URL" | egrep -i -e '\.deb'`
OCTORRENTS=`echo "$URL" | egrep -i -e '\.torrent'`
if [ "$OCTORRENTS" ]; then
uget-gtk $URL $2 --category-index=6
rm -f $OUTPUT
elif [ "$OCARCHIVES" ]; then
uget-gtk $URL $2 --category-index=1
rm -f $OUTPUT
elif [ "$OCDOCS" ]; then
uget-gtk $URL $2 --category-index=2
rm -f $OUTPUT
elif [ "$OCMOVIES" ]; then
uget-gtk $URL $2 --category-index=3
rm -f $OUTPUT
elif [ "$OCMUSIC" ]; then
uget-gtk $URL $2 --category-index=4
rm -f $OUTPUT
elif [ "$OCPACKAGES" ]; then
uget-gtk $URL $2 --category-index=5
rm -f $OUTPUT
else
uget-gtk $URL $2 --category-index=0
rm -f $OUTPUT
fi
elif [ "$PACKAGES" ]; then
uget-gtk $URL $2 --category-index=5
rm -f $OUTPUT
elif [ "$MOVIES" ]; then
uget-gtk $URL $2 --category-index=3
rm -f $OUTPUT
elif [ "$MUSIC" ]; then
uget-gtk $URL $2 --category-index=4
rm -f $OUTPUT
else
uget-gtk $URL $2 --category-index=0
rm -f $OUTPUT
fi