Outils du site

Outils pour utilisateurs


p2p:rtorrent:pyroscope-rtorrent-ps:script-rtmanager (lu 2571 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
p2p:rtorrent:pyroscope-rtorrent-ps:script-rtmanager [le 21/01/2017 à 17h13]
111110101011
p2p:rtorrent:pyroscope-rtorrent-ps:script-rtmanager [le 27/01/2017 à 23h11] (Version actuelle)
111110101011 [Screenshot]
Ligne 1: Ligne 1:
 ====== rtmanager.sh ====== ====== rtmanager.sh ======
  
-Un script fait maison pour accueillir les utilisateurs d'une session SSH sur la seedbox, c'est pas du très propre, encore en développement, et je n'ai pas de dépot git.+Un script fait maison pour accueillir les utilisateurs d'une session SSH sur la seedbox.
  
-Date: 21 janvier 2017+Le script est encore en développement, pas de dépot git sous la main. 
 + 
 +Le script ne se suffit pas à lui-même, il se complète avec les formats et les templates de sortie de rtcontrol. Vous devrez aussi ajuster les permissions des répertoires. 
 + 
 +===== Screenshot ===== 
 + 
 +Bon ok, c'est du terminal hein... mais y'a un peu de couleur ;) 
 + 
 +{{:p2p:rtorrent:pyroscope-rtorrent-ps:rtmanager_janv2017.png?400&direct|C'est beau}} 
 + 
 + 
 + 
 +===== Formats ===== 
 + 
 +<code ini config.ini> 
 +# Affiche nom, pourcentage de completion, taille, débit descendant et montant. 
 +f1      = {{default ESC= '\x1B'}}{{d.name}}{{ESC}}[0m | {{ESC}}{{if d.is_complete}}[32m{{else}}[33m{{endif}}{{d.done|int}}%{{ESC}}[0m | {{ESC}}[35m{{d.size|sz|strip}}{{ESC}}[0m | {{if not d.is_complete}} {{ESC}}[36m{{d.down|sz|strip}} ⇩{{ESC}}[0m{{endif}} {{ESC}}[31m{{d.up|sz|strip}} ⇧{{ESC}}[0m 
 + 
 +# Affiche uniquement le ratio et le nom. 
 +f2      = {{default ESC= '\x1B'}}{{d.name}} | {{ESC}}{{if d.ratio < 0.75}}[31m{{elif d.ratio < 1.0}}[33m{{else}}[32m{{endif}}{{d.ratio}}{{ESC}}[0m 
 +</code> 
 + 
 +  * ESC est un échappement qui précède les codes couleurs. 
 +  * [99m sont les codes couleurs de bash 
 +  * le format peut se définir de la même façon qu'un template, on peut utiliser des structures conditionelles, etc. 
 + 
 + 
 +===== Script ===== 
 + 
 +Date: 24 janvier 2017
  
 <code bash rtmanager.sh> <code bash rtmanager.sh>
Ligne 14: Ligne 43:
 RTBIN="/home/rtorrentuser/bin" RTBIN="/home/rtorrentuser/bin"
 RTCFGOPTS='--config-dir /home/rtorrentuser/.pyroscope -D rtorrent_rc=/home/rtorrentuser/.rtorrent.rc' RTCFGOPTS='--config-dir /home/rtorrentuser/.pyroscope -D rtorrent_rc=/home/rtorrentuser/.rtorrent.rc'
- 
 RTCMD="$RTBIN/rtcontrol $RTCFGOPTS" RTCMD="$RTBIN/rtcontrol $RTCFGOPTS"
 +RTPATHCOMPLETE="/mnt/local/1/downloads/rtorrent/complete"
 +RTPATHWORK="/mnt/local/1/downloads/rtorrent/work"
 +RTPATHWATCH="/mnt/local/1/downloads/rtorrent/watch"
 +RTPATHWATCHHANDLED="/mnt/local/1/downloads/rtorrent/watch_archives"
  
 function rt_is_admin() { function rt_is_admin() {
Ligne 34: Ligne 66:
 else else
  RTUSER="$USER"  RTUSER="$USER"
 + # à vérif: si je mets le / final, il ne match pas
 + RTCMD="$RTCMD custom_targetdir=!$RTPATHCOMPLETE/flexget*"
 fi fi
  
-RTPATHCOMPLETE="/mnt/local/1/downloads/rtorrent/complete/$RTUSER+ 
-RTPATHWORK="/mnt/local/1/downloads/rtorrent/work"+ 
 +### COULEURS 
 + 
 +function test_colors() { 
 + echo -en "$C0$1$C0\t" 
 + echo -en "$C1$1$C0\t" 
 + echo -en "$C2$1$C0\t" 
 + echo -en "$C3$1$C0\n" 
 + echo -en "$C4$1$C0\t" 
 + echo -en "$C5$1$C0\t" 
 + echo -en "$C6$1$C0\t" 
 + echo -en "$C7$1$C0\n" 
 + echo -en "$C8$1$C0\t" 
 + echo -en "$C9$1$C0\t" 
 + echo -en "$CA$1$C0\t" 
 + echo -en "$CB$1$C0\n" 
 + echo -en "$CC$1$C0\t" 
 + echo -en "$CD$1$C0\t" 
 + echo -en "$CE$1$C0\t" 
 + echo -en "$CF$1$C0\n" 
 + echo -en "$CG$1$C0\t" 
 +
 + 
 +C0="\033[0m" # No color 
 +C1="\033[0;30m" # Black 
 +C2="\033[0;31m" # Red 
 +C3="\033[0;32m" # Green 
 +C4="\033[0;33m" # Brown 
 +C5="\033[0;34m" # Blue 
 +C6="\033[0;35m" # Purple 
 +C7="\033[0;36m" # Cyan 
 +C8="\033[0;37m" # Light Gray 
 +C9="\033[1;30m" # Dark Gray 
 +CA="\033[1;31m" # Light Red 
 +CB="\033[1;32m" # Light Green 
 +CC="\033[1;33m" # Yellow 
 +CD="\033[1;34m" # Light Blue 
 +CE="\033[1;35m" # Light Purple 
 +CF="\033[1;36m# Light Cyan 
 +CG="\033[1;37m# White
  
  
 ### RTCONTROL ### RTCONTROL
  
 +
 +RTF1="custom_targetdir=$RTPATHCOMPLETE/$RTUSER*"
  
 function rt_print_user_torrents() { function rt_print_user_torrents() {
- $RTCMD -"realpath=*$RTPATHCOMPLETE/*"+ $RTCMD -qo f1 "$RTF1" 
 +
 + 
 +function rt_print_users_torrents() { 
 + $RTCMD -qo f1 "*"
 } }
  
 function rt_print_user_incomplete() { function rt_print_user_incomplete() {
- $RTCMD -"realpath=*$RTPATHCOMPLETE/*" "is_complete=no"+ $RTCMD -qo f1 "$RTF1" "is_complete=no"
 } }
  
 function rt_print_user_complete() { function rt_print_user_complete() {
- $RTCMD -"realpath=*$RTPATHCOMPLETE/*" "is_complete=yes"+ $RTCMD -qo f1 "$RTF1" "is_complete=yes
 +
 + 
 +function rt_print_user_ratio() { 
 + $RTCMD -qo f2 "$RTF1"
 } }
  
 function rt_print_user_trackers() { function rt_print_user_trackers() {
- $RTCMD -q "realpath=*$RTPATHCOMPLETE/*" -o alias -s alias \* | uniq -c+ $RTCMD -q "*" -o alias -s alias \* | uniq -c 
 +
 + 
 +function rt_print_recent_complete() { 
 + 
 + echo -e "Téléchargements complétés récemment (< 7 jours) :\n" 
 + 
 + $RTCMD -qo f1 "*" "is_complete=yes" "completed=-1w" 
 + 
 + echo "" 
 +
 + 
 +function rt_print_download_details() { 
 + $RTCMD -q ""
 } }
  
Ligne 77: Ligne 173:
  echo "Exemple: cité*peur"  echo "Exemple: cité*peur"
  
- echo -"rechercher> "+ echo -ne $CD"rechercher>$C0 "
  read critere  read critere
  
Ligne 85: Ligne 181:
  
  resultats=$(mktemp)  resultats=$(mktemp)
- $RTCMD -"realpath=*$RTPATHCOMPLETE/*" "$critere" | tee $resultats + $RTCMD -qo f1 "$RTF1" "$critere" | tee $resultats 
- let nbresu=$(cat $resultats | wc -l)/2+ let nbresu=$(cat $resultats | wc -l)
  fi  fi
  
Ligne 116: Ligne 212:
  echo "Êtes-vous sûr de vouloir supprimer ces téléchargements ? (o/O/y/Y/n/N)"  echo "Êtes-vous sûr de vouloir supprimer ces téléchargements ? (o/O/y/Y/n/N)"
  if [ "$action" = "cull" ]; then  if [ "$action" = "cull" ]; then
- echo -n '!'+ echo -ne "$CA!$C0"
  fi  fi
  
- echo -"supprimer> "+ echo -ne $CD"supprimer>$C0 "
  read confirmation  read confirmation
  
  case $confirmation in  case $confirmation in
  o|O|y|Y)  o|O|y|Y)
- $RTCMD -q "realpath=*$RTPATHCOMPLETE/*" "$critere" --"$action" --yes && let cptsuppr="$cptsuppr+1" # > /dev/null+ $RTCMD -q "custom_targetdir=*$RTPATHCOMPLETE/$RTUSER/*" "$critere" --"$action" --yes && let cptsuppr="$cptsuppr+1" # > /dev/null
  # --cull ou --purge)  # --cull ou --purge)
  ;;  ;;
Ligne 243: Ligne 339:
  
  echo "$cpt liens cassé(s) supprimé(s)."  echo "$cpt liens cassé(s) supprimé(s)."
 +}
 +
 +
 +### BASHERIES
 +
 +function list_users_complete() {
 +
 + find "$RTPATHCOMPLETE" -mindepth 2 -maxdepth 3 -path "$RTPATHCOMPLETE/$u*" ! -empty 2>/dev/null | cut -d '/' -f 8-
 + # -printf "%H : %f\n"
 +
 +}
 +
 +function list_user_watch() {
 +
 + echo -e $C4"Fichiers .torrent dans $RTUSER/watch :"$C0
 +
 + find "$RTPATHWATCH/$RTUSER" -iname '*.torrent' | cut -d '/' -f 9-
 +
 +}
 +
 +function list_user_watch_handled() {
 +
 + echo -e $C4"Fichiers .torrent archivés de $RTUSER :"$C0
 +
 + find "$RTPATHWATCHHANDLED/$RTUSER" -iname '*.torrent' | cut -d '/' -f 9-
 +
 } }
  
Ligne 253: Ligne 375:
 clear clear
  
-cat << EOF +echo -e "Salut $CB$RTUSER$C0,\n" 
-Salut $RTUSER, +echo -e "Voici quelques options pour gérer tes téléchargements :\n"
- +
-Voici quelques options pour gérer tes téléchargements : +
- +
-EOF+
  
 } }
Ligne 264: Ligne 382:
 function menu_actions() { function menu_actions() {
  
 +echo -e "$CA[ACTIONS]$C0"
 cat << EOF cat << EOF
-[ACTIONS] 
  
-: Lister tous les téléchargements de $RTUSER +  [$RTUSER] L : Lister tes téléchargements 
-: Lister les téléchargements incomplets +  [$RTUSER] I : Lister tes téléchargements incomplets 
- : Lister les téléchargements terminés +  [$RTUSER] C : Lister tes téléchargements terminés 
- Lister des téléchargements selon leur nom +  [$RTUSER] S Rechercher des téléchargements selon leur nom 
- Statistiques des trackers +  [all] A Lister tous les téléchargements 
- +  [$RTUSER] D : Supprimer des téléchargements sans supprimer les fichiers terminés 
-: Supprimer des téléchargements sans supprimer les fichiers terminés +  [$RTUSER] DD : /!\ Supprimer des téléchargements, y compris les fichiers terminés 
- : /!\ Supprimer des téléchargements, y compris les fichiers terminés+  [all] O : Lister les fichiers complets de tous les utilisateurs 
 +  [$RTUSER] W : Lister les fichiers .torrent dans watch 
 +  [$RTUSER] R : Afficher le ratio des téléchargements
  
 EOF EOF
Ligne 280: Ligne 400:
 rt_is_admin && menu_actions_admin rt_is_admin && menu_actions_admin
  
 +echo -e "$CA[MENU]$C0"
 cat << EOF cat << EOF
-[MENU] 
  
- q ou Q : Pour quitter ce menu (accès au shell) +  Q : Pour quitter ce menu (accès au shell) 
- m ou M : Pour réafficher ce menu +  M : Pour réafficher ce menu 
- z ou Z : Pour afficher un dinosaure+  Z : Pour afficher un dinosaure
   
 EOF EOF
Ligne 293: Ligne 413:
 function menu_actions_admin() { function menu_actions_admin() {
  
 +echo -e "$CA[ADMIN]$C0"
 cat << EOF cat << EOF
-[ADMIN] 
  
-: Lister les fichiers orphelins (non chargés dans rtorrent) +  or : Lister les fichiers orphelins (non chargés dans rtorrent) 
- : Déplacer les fichiers qui pour une raison X sont restés dans /work/ +  mv : Déplacer les fichiers qui pour une raison X sont restés dans /work/ 
- 10 : Retirer les liens symboliques cassés de /work/+  sy : Retirer les liens symboliques cassés de /work/
  
 EOF EOF
Ligne 307: Ligne 427:
  num=$(( ( RANDOM % 8 ) + 1 ))  num=$(( ( RANDOM % 8 ) + 1 ))
  
 +# cola=$(( ( RANDOM % 2 ) ))
 + colb=$(( ( RANDOM % 8 ) ))
 + cola=1
 +
 + echo -ne "\033[$cola;3$colb"m
  cat $RTBIN/dinosaur.$num  cat $RTBIN/dinosaur.$num
 + echo -ne "\033[0m"
 +
 } }
  
Ligne 319: Ligne 446:
 function menu_ask() { function menu_ask() {
  
- echo -"> "+ echo -ne "$CD>$C0 "
  
  read choice  read choice
  
  case $choice in  case $choice in
- 1)+ l|L)
  rt_print_user_torrents  rt_print_user_torrents
  ;;  ;;
- 2)+ i|I)
  rt_print_user_incomplete  rt_print_user_incomplete
  ;;  ;;
- 3)+ c|C)
  rt_print_user_complete  rt_print_user_complete
  ;;  ;;
- 4)+ s|S)
  rt_user_search  rt_user_search
  ;;  ;;
- 5+ a|A
- rt_print_user_trackers+ rt_print_users_torrents
  ;;  ;;
- 6)+ d|D)
  rt_del_user_torrents purge  rt_del_user_torrents purge
  ;;  ;;
- 7)+ dd|DD)
  rt_del_user_torrents cull  rt_del_user_torrents cull
  ;;  ;;
- 8)+ o|O) 
 + list_users_complete 
 + ;; 
 + w|W) 
 + list_user_watch 
 + list_user_watch_handled 
 + ;; 
 + r|R) 
 + rt_print_user_ratio 
 + ;; 
 + or)
  rt_is_admin && rt_print_orphans || menu_unknown_option  rt_is_admin && rt_print_orphans || menu_unknown_option
  ;;  ;;
- 9)+ mv)
  rt_is_admin && rt_move_work_torrents || menu_unknown_option  rt_is_admin && rt_move_work_torrents || menu_unknown_option
  ;;  ;;
- 10)+ sy)
  rt_is_admin && rt_del_broken_symlinks || menu_unknown_option  rt_is_admin && rt_del_broken_symlinks || menu_unknown_option
  ;;  ;;
  q|Q)  q|Q)
- echo "Entrez rtmanager.sh pour relancer le script de gestion rtorrent."+ echo -e "Entrez$CB rtmanager.sh$C0 pour relancer le script de gestion rtorrent."
  exit 0  exit 0
  ;;  ;;
Ligne 377: Ligne 514:
 menu_welcome menu_welcome
 menu_actions menu_actions
 +
 +rt_print_recent_complete
 +
 +#test_colors "Youpi!"
  
 while : while :
p2p/rtorrent/pyroscope-rtorrent-ps/script-rtmanager.1485015195.txt.gz · Dernière modification: le 21/01/2017 à 17h13 de 111110101011