Скрипт завершения передачи для нескольких торрентов?

Вам нужно перейти на https://extensions.gnome.org/extension/55/media-player-indicator/ и просто нажать на переключатель, чтобы включить его, и он установит расширение в оболочку gnome, чтобы вы могли для управления Rhythmbox или любой другой аудиопрограммой, в которой активировано управление D-Bus. См. Обсуждение на странице, чтобы активировать необходимые настройки или плагин, чтобы он работал для всех видов различных аудиопрограмм.

1
задан 18 October 2012 в 21:28

2 ответа

Я создал лучший скрипт (из совета user98677), который использует интерфейс RPC для передачи.

Код:

Github Gist: https://gist.github.com/ khurshid-alam / 6474227

Код:

Пауза или удаление завершенных торрентов после их завершения. Отправить уведомление о пуске (с завихрением) [необязательно] Отправить уведомление в твиттере (требуется твиттер) [необязательно] Компьютер приостановки / завершения работы или оставить его как есть.

Снимок экрана

Настройка

В Ubuntu

sudo apt-get install libnotify-bin
sudo apt-get install transmission-cli

Вкл. Ubuntu> = 13.04 (для уведомления twitter):

sudo add-apt-repository ppa:moorhen-core/moorhen-apps
sudo apt-get install twidge

Для действия suspend для не-Ubuntu-дистрибутива (Ubuntu использует Upower) установите пакет powermanagement-interface

sudo apt-get install powermanagement-interface

После установки:

Пауза или удаление завершенных торрентов после их завершения.

Приостановить или удалить завершенные торренты после их завершения.

Отправлять pushover (необязательно)

Отправить уведомление о пуске (с завихрением) [необязательно]

Отправить уведомление в твиттере (требуется твиттер) [опционально] [d14 ] Отправить уведомление в твиттере (требуется твиттер) [необязательно]

Компьютер приостановки / выключения или оставить его как есть.

[d22 ] Настройка

#!/bin/bash


user-key=" "  #put your pushover user-key
app-key=" "  #put your pushover application-key
device=" "    #Your device name in pushover

username=" "  # Transmission remote username
password=" "   # Transmission remote password



sleep 100s

# default display on current host
DISPLAY=:0.0

# authorize transmission
trsm="transmission-remote --auth $username:$password"

# find out number of torrent

TORRENTLIST=`$trsm --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=' ' --fields=1`

for TORRENTID in $TORRENTLIST
do
 echo "* * * * * Operations on torrent ID $TORRENTID starting. * * * * *"

 #echo $TORRENTID

 DL_COMPLETED=`$trsm --torrent $TORRENTID --info | grep "Percent Done: 100%"`

 #echo $DL_COMPLETED

# pause completed torrents & get those torrent names.

 if [ "$DL_COMPLETED" != "" ]; then
  $trsm --torrent $TORRENTID --stop
  trname=`$trsm --torrent $TORRENTID --info | grep "Name:" | awk -F: '{print $NF}'`

  # post an update to twitter

  echo "$trname download was completed" | twidge update  # Put "#" if you don't need this.

  # push update for pushover

  curl -s \
    -F "token=$user-key" \
    -F "user=$app-key" \
  # -F "device=$device" \  # uncomment, if you want to send notification to a particular device.
    -F "title=Download Finished" \
    -F "message=$trname download has completed." \
    http://api.pushover.net/1/messages > /dev/null

  # The following codes works assuming One take advantage of gnome-power-manager by setting "black screen after 2/5/10/.. minitues ". 
  # if monitor(Including laptop screen but EXCLUDING external monitor) is on, it will  just force blank the screen, if not, it will shutdown/suspend or leave it as it is.
  # Modify it as per your requirement.

  STATUS=`xset -display $DISPLAY -q | grep 'Monitor'`
  #echo $STATUS

  if [ "$STATUS" == "  Monitor is On" ]
  then
      notify-send "Downloads Complete" "turning off the screen now"
          xset dpms force off

  else
      notify-send "Downloads Complete" "$trname"

        # uncomment to shutdown the computer
        #dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown

        # uncomment to suspend (on ubuntu)
        #dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

        # uncomment to suspend (on Linux) (requires powermanagement-interface package)
        #pmi action suspend

 else
  echo "Torrent #$TORRENTID is not completed. Ignoring."
 fi

done
4
ответ дан 25 May 2018 в 05:25

Простой скрипт.

Thanx to Khurshid Alam и user98677 Я написал этот скрипт, который отлично работает. Если дисплей включен (вы работаете), он блокирует передачу и отправляет уведомление, если компьютер не отключен.

установить
sudo apt-get install transmission-cli libnotify-bin
в Ubuntu 16.04
sudo apt install transmission-cli libnotify-bin
Передача> Настройки> Удаленная> Проверить Разрешить удаленный доступ убедиться, что HTTP-порт равен 9091 и разрешить эти IP-адреса только 127.0.0.1 (по умолчанию). Скопируйте вставить данный скрипт, сохраните как say 'shutdown.sh' и сделайте его исполняемым. Передача> Настройки> Загрузка> Проверить «Сценарий вызова при завершении загрузки», перейдите к сценарию. Системные настройки> Питание> яркость экрана> Отключить экран, когда он неактивен для> выбора разумного времени.
#!/bin/bash
sleep 300s
DISPLAY=:0.0
STATUS=$(xset -display $DISPLAY -q | grep 'Monitor')
STATE=$(transmission-remote 127.0.0.1:9091 -tall --info | grep "^  State:" | grep "Down" | wc --lines)
if
    [ "$STATUS" == "  Monitor is On" ] && [ "$STATE" == "0" ]
then
    notify-send "Downloads Complete" "Exiting  transmisssion now"
    pkill transmission
elif
     [ "$STATE" == "0" ]
then
    #in Ubuntu 16,04
    shutdown -h now
    #in older versions use the following
    #dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown
fi
exit 0
1
ответ дан 25 May 2018 в 05:25

Другие вопросы по тегам:

Похожие вопросы: