Eu criei um script melhor (a partir do conselho user98677) que aproveita a interface RPC da transmissão.
Código:
% bl0ck_qu0te%
O que isso faz?
-
Pause ou remova os torrents concluídos depois de concluídos.
-
Enviar uma notificação de pushover (com ondulação) [opcional]
-
Enviar uma notificação do Twitter (requer twidge) [opcional]
-
Suspenda / Desligue o computador OU deixe-o como está.
Screenshot
Configuração
NoUbuntu
sudoapt-getinstalllibnotify-binsudoapt-getinstalltransmission-cli
NoUbuntu>=13.04(paranotificaçãodoTwitter):
sudoadd-apt-repositoryppa:moorhen-core/moorhen-appssudoapt-getinstalltwidge
Paraaaçãosuspend
nadistribuiçãonão-Ubuntu(oUbuntuusaoUpower)instaleopacotepowermanagement-interface
sudoapt-getinstallpowermanagement-interface
Apósainstalação:
Obtenhaocódigode github-gist & amp; salve o arquivo como trsm
em qualquer lugar no seu disco rígido. Torne o arquivo executável chmod a+x trsm
.
-
Login para pushover & amp; copie sua chave de usuário . Cole-o em user-key
no script.
-
Se você deseja que as notificações sejam enviadas com um ícone bonito de aplicativo (transmissão), basta criar um aplicativo falso em pushover com o ícone de transmissão & amp; copie a chave do aplicativo (chave API / token) & amp; cole-o em app-key
no script.
-
Para configuração do Twitter, consulte a documentação do twidge.
-
Transmissão aberta. Ir para preferência- > web. Ativar cliente da Web (porta padrão 9091
) & amp; habilitar a autenticação do usuário. Escolha um nome de usuário & amp; senha. Coloque esse nome de usuário & amp; senha no script como username
& amp; password
, respectivamente.
-
Clique no web-client aberto para verificar se está funcionando corretamente.
-
Por fim, salve o script & amp; ir para a guia de download (na preferência de transmissão) & amp; clique em call script when torrent is complete
. Selecione o respectivo script.
Script
#!/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