?

Log in

No account? Create an account

Скрипт

Написал недавно скрипт, который скачивает для меня комиксы с известного сайта. Для запасливых, так скажем))

#!/bin/bash

# Объявляем константы
# Структура папок: $DOWNDIR/$SITEDIR/$INSITEDIR/$AUTHOR1/$COMICS1/*.jpg

SITE=http://bla-bla-bla.com # адрес сайта не разглашаю...
DOWNDIR=/home/axl_nefersky/Downloads/Comics # Местонахождение скрипта и папки
                                                                          # загрузки. В теории, можно
 
                                                                          # использовать `basename $0`, но
                                                                          # поленился

SITEDIR="bla-bla-bla.com"
INSITEDIR="users"
PICTUREDIR=/home/axl_nefersky/Pictures # папка с картинками

# Параметры первого комикса
NAME1="Geterodin" # Нормальное название
COMICS1="girl-genius"
AUTHOR1="gadzilla"
PAGE1=$(grep HavePage $COMICS1.ini| cut -f2 -d"=") # Ага, рядом со скриптом
                                                                                 # валяется инишник с записью
                                                                                 # HavePage=903 - это
                                                                                 # последняя полученная
                                                                                 # страница


echo "Geterodin last page: "
read READ1 # спрашиваем, до какой страницы скачивать
if [ -z "$READ1" ] # Если пустой ввод
  then
    LAST1=$PAGE1 # то до той же, которая уже есть
  else
    LAST1=$READ1 # если нет - то до введенной
fi

# То же самое для второго комикса
NAME2="Gunnerkrigg"
COMICS2="gunnerkrigg"
AUTHOR2="light"
PAGE2=$(grep HavePage $COMICS2.ini| cut -f2 -d"=")

echo "Gunnerkrigg last page: "
read READ2
if [ -z "$READ2" ]
  then
    LAST2=$PAGE2
  else
    LAST2=$READ2
fi

# если запускать скрипт с выводом в файл - создаст красивый файл лога
echo "#################### Script started at ####################"
date
echo
echo


echo "Prepare to download $COMICS1 $NAME1 comics..."
echo "Download from $PAGE1 to $LAST1 pages"
echo

while [ $PAGE1 -le $LAST1 ] # Пока не доберемся до указанной последней страницы
  do
    wget -p $SITE/$COMICS1/$PAGE1 # Загружаем страницу
    echo "Page $PAGE1 downloaded"
    echo "HavePage=$PAGE1" > $COMICS1.ini # Сохраняем ее номер в инишник
    PAGE1=`expr $PAGE1 + 1` # Топаем к следующей
  done

echo "Download $COMICS1 $NAME1 comics completed!"
echo
echo


# То же самое для второго комикса
echo "Prepare to download $COMICS2 $NAME2 comics..."
echo "Download from $PAGE2 to $LAST2 pages"
echo


while [ $PAGE2 -le $LAST2 ]
  do

    wget -p $SITE/$COMICS2/$PAGE2
    echo "Page $PAGE2 downloaded"
    echo "HavePage=$PAGE2" > $COMICS2.ini
    PAGE2=`expr $PAGE2 + 1`
  done

echo "Download $COMICS2 $NAME2 comics completed!"
echo
echo


# Приступаем к сортировке первого комикса
echo "Prepare to sort $COMICS1 $NAME1 comics..."
echo "Move comics from $DOWNDIR/$SITEDIR/$INSITEDIR/$AUTHOR1/$COMICS1 to $PICTUREDIR/$NAME1 folder"
echo


# Перебрасываем все jpg из папки его загрузки в папку с картинками, в подпапку этого комикса
find $DOWNDIR/$SITEDIR/$INSITEDIR/$AUTHOR1/$COMICS1 -name \*.jpg -exec mv {} $PICTUREDIR/$NAME1 \;

echo "Move $COMICS1 $NAME1 completed!"
echo
echo


# То же самое для второго комикса
echo "Prepare to sort $COMICS2 $NAME2 comics..."
echo "Move comics from $DOWNDIR/$SITEDIR/$INSITEDIR/$AUTHOR2/$COMICS2 to $PICTUREDIR/$NAME2 folder"
echo

find $DOWNDIR/$SITEDIR/$INSITEDIR/$AUTHOR2/$COMICS2 -name \*.jpg -exec mv {} $PICTUREDIR/$NAME2 \;

echo "Move $COMICS2 $NAME2 completed!"
echo
echo


# Прибираем за собой
cd $DOWNDIR
rm
-r $SITEDIR

echo "Trash removed!"
echo
echo
echo


exit 0

Comments