Grabduck

Медиамагия: Настройка

:

Статья по настройке Медиаджика. Что это такое — можно прочесть тут
image

Подробности под катом.

1.Устанавливаем торрент-клиент rtorrent
Устанавливать приложения в Ubuntu можно несколькими способами. Например, можно воспользоваться графическим клиентом Synaptic,, или же запустить процесс установки из консоли. Мы пойдём вторым путём, потому что, во-первых, это проще поддаётся описанию, а во-вторых, всегда бывает полезно уметь пользоваться консолью. Тем более, нам ещё не раз придётся к ней обращаться (мы же в линуксе, как ни крути).
Для начала запустим терминал, если он ещё не запущен. И скопируем туда эту строчку:

sudo apt-get install rtorrent

Для новичков вкратце объясню что это значит. «sudo» означает, что команду нужно запустить с правами администратора. «apt-get» — это консольный клиент для установки приложений. «install» это команда клиенту «apt-get», сообщающая о необходимости «установить» приложение. rtorrent, соответственно, название приложения, которое мы устанавливаем.
Ещё один маленький совет тем, кто только начинает разбираться с линуксом — в консоли очень удобно использовать кнопку TAB, которая «дописывает» команды/пути/итд и выводит их список, если есть более одного варианта дописывания. Например, можно набрать команду так: sudo apt-g[TAB] i[TAB] rto[TAB]
Ok, набрали команду, ввели пароль, запустилась установка. Apt-get переспросит, уверены ли вы в том, что делаете. Нажмите «Д» (или просто Enter) и установка пойдёт дальше. Ok, мы установили приложение. Для проверки в консоли пишем: rtorrent
жмём Enter и перед нами должен появится интерфейс рторрента.
Ok, супер. Всё работает. Жмём Ctrl+q чтобы выйти из приложения.

2.Настраиваем rtorrent
В начале создадим директории, с которыми мы будем работать. В консоли это делается командой mkdir и указанием директории, которую мы хотим создать.
Соответственно пишем в консоли:

mkdir ~/torrents
mkdir ~/.rtorrent-session
mkdir /var/lib/mythtv/videos/downloads

"~" — это сокращение в линуксе, указывающее путь к вашей домашней директории
Итак мы создали директорию «torrents», в которой у нас будут лежать torrent-файлы, директорию ".rtorrent-session" в которой rtorrent будет хранить свою сессию и директорию «downloads», в которую rtorrent будет скачивать фильмы.
Настройки rtorrent хранятся в файле, который называется .rtorrent.rc и который хранится в вашей домашней директории. Но при установке приложения такой файл не создаётся, поэтому для начала нам придётся его создать. Пишем в консоли: nano ~/.rtorrent.rc
откроется консольный текстовый редактор с пустым содержимым.
Вставим туда следующие строки: download_rate = 1000
upload_rate = 100

directory=/var/lib/mythtv/videos/downloads
session=/home/вашеимя/.rtorrent-session

schedule = u_night_mode,02:00:00,24:00:00,upload_rate=0
schedule = u_day_mode,07:00:00,24:00:00,upload_rate=100
schedule = d_night_mode,02:00:00,24:00:00,download_rate=0
schedule = d_day_mode,07:00:00,24:00:00,download_rate=1000
schedule = low_diskspace,5,60,close_low_diskspace=100M

schedule = watch_directory,10,10,load_start=/home/вашеимя/torrents/*.torrent

schedule = tied_directory,10,10,start_tied=
schedule = untied_directory,10,10,stop_untied=

schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"

# Maximum and minimum number of peers to connect to per torrent
min_peers = 20
max_peers = 40

# Maximum number of simultanious uploads per torrent
max_uploads = 5

encryption = allow_incoming,enable_retry,prefer_plaintext
port_range = 55558-55558

scgi_port = :5000
encoding_list = UTF-8
umask = 0000

Не забываем в двух местах заменить «вашеимя» на ваше имя в системе (то есть на путь к вашей домашней директории)

Теперь опишу, что значат все эти настройки:
download_rate, upload_rate — ограничение по скорости даунлода и аплода соответственно. В килобайтах.
directory — директория для сохранения скачанных файлов
session — директория, необходимая rtorrent'у для сохранения сессий закачки

schedule = u_night_mode,02:00:00,24:00:00,upload_rate=0
schedule = u_day_mode,07:00:00,24:00:00,upload_rate=100
schedule = d_night_mode,02:00:00,24:00:00,download_rate=0
schedule = d_day_mode,07:00:00,24:00:00,download_rate=1000
Эти четыре строчки говорят, что с 7 утра до 2х ночи нужно ограничивать скорость до 1000/100 kbps (down/up), а с 2х ночи до 7 утра работать без ограничений по скорости.

schedule = low_diskspace,5,60,close_low_diskspace=100M
Это означает, что нужно раз в минуту проверять не кончается ли место на винчестере и останавливать все закачки, если осталось менее чем 100 мегабайт.

schedule = watch_directory,10,10,load_start=/home/вашеимя/torrents/*.torrent
каждые 10 секунд проверять, не появились ли новые торрент-файлы в этой директории

schedule = tied_directory,10,10,start_tied=
Стартовать закачку, если появился новый торрент файл

schedule = untied_directory,10,10,stop_untied=
Останавливать закачку, если торрент файл удалён

schedule = ratio,60,60,«stop_on_ratio=200,200M,2000»
Останавливать закачку, если её рейтинг>=2.00, при этом было заапложено более 200Мб ИЛИ рейтинг>=20.00

min_peers, max_peers — минимальное и максимальное кол-во пиров на торрент. Если честно, плохо понимаю что значит «min peers»
max_uploads — максимальное количество аплодов на торрент
encryption — шифрование
port_range — порт. не забудьте пробросить порт на DSL-модеме/роутере, кстати.

scgi_port — порт, по которому веб-клиент (который мы потом поставим) будет работать с rtorrent
encoding_list — кодировка
umask — маска прав по умолчанию

подробнее о тех или иных настройках можно почитать на сайте rtorrent

А мы сохраняем файл (Ctrl+o, Enter) и выходим из редактора (Ctrl+x)

запускаем rtorrent, кидаем в директорию ~/torrents/ какой-нибудь торрент-файл, проверяем что всё работает. Закачка должна стартануть и в директории videos/downloads появится скачиваемый файл. Ура.

3. Учим rtorrent работать в бэкграунде и стартовать автоматически.
Заодно поборем один баг с зависанием рторрента.
В начале ставим screen:

sudo apt-get install screen

дальше создаём директорию и скрипты для запуска:

mkdir ~/bin
nano ~/bin/myrtorrent.sh

Внутри пишем

#!/bin/bash
PROGRAM="/usr/bin/rtorrent"
GRACE_DELAY=15
while true;
do
    "$PROGRAM"
    RETURNED=$?
    if [ $RETURNED -ne 0 ]
    then
     echo "$PROGRAM did not exit cleanly with status code $RETURNED"
     echo "pausing for $GRACE_DELAY seconds before restarting $PROGRAM"
     sleep $GRACE_DELAY;
    else
     echo "$PROGRAM exited cleanly. It will not be restarted automatically"
     exit 0
    fi
done

сохраняем, выходим (ctrl+o, Enter, ctrl+x)
пишем в консоли
>nano ~/bin/checkrtorrent.sh

В редакторе пишем:
#!/bin/sh
  if [ `pgrep myrtorrent|wc -l` -lt 1 ]; then
  if [ ! "$(pidof rtorrent)" ]
  then
    echo "Not running. Starting\n"
    /usr/bin/screen -fa -d -m -S rtorrent /home/вашеимя/bin/myrtorrent.sh
  fi
fi

не забудьте сменить «вашеимя» на ваше имя в системе. Сохраняем, выходим.

Таким образом, мы создали несколько скриптов, которые запускают rtorrent в фоновом режиме и следят за тем, что он успешно запустился.

Теперь заставим эти скрипты запускаться. Вначале сделаем их «запускаемыми»

chmod +x ~/bin/checkrtorrent.sh
chmod +x ~/bin/myrtorrent.sh

ставим скрипты в планировщик задач
crontab -e

crontab — это приложение, запускающее в определённый момент другие приложения. При первом старте он спросит какой текстовый редактор мы хотим использовать. «3 — nano», конечно же ответим мы. Ок. Видим nano со следующим содержимым:

# m h  dom mon dow   command

Очень здорово. Теперь впишем строкой ниже нужный нам текст.
*/10 * * * * /home/вашеимя/bin/checkrtorrent.sh

только не забудем заменить вашеимя на ваше имя в системе.
Ctrl+o, Enter, Ctrl+x. Можно перегрузить систему, чтобы проверить что всё работает.
для этого после перезагрузки ждём несколько минут (скрипт срабатывает раз в 10 минут) и набираем в консоли
screen -r

после этого должен показаться интерфейс рторрента. Чтобы выйти из рторрента, но оставить его работать в фоновом режиме НЕ ЖМИТЕ НА Ctrl+q, а вместо этого нажмите «Ctrl+a», а затем «d». программа останется работать.
Вы в любой момент можете посмотреть что у вас происходит, набрав «screen -r» и выйти нажав «ctrl+a, d»

4.Устанавливаем необходимые для работы скриптов Mediagic пакеты.
пишем в консоли

sudo apt-get install php5-cli php5-curl php5-gd php5-imap

5.Устанавливаем сами скрипты.Правим config.xml

Скачиваем архив со скриптами и разархивируем его на своём компьютере с Виндоус (или что там у вас). Предлагаю править его на своём компьютере, а не на медиацентре, потому что так быстрее
Открываем и видим несколько папок и файлов. Открываем файл config.xml из корня.
Начинаем аккуратно заполнять значения.
Оставляем как есть значения verbose, system_encoding
Доходим до группы параметров

<mediagic_db>
          <server>localhost</server>
          <username>mythtv</username>
          <password>вписасть_сюда_пароль</password>
          <db_name>mediagic</db_name>
     </mediagic_db>

Открываем консоль на медиацентре. Набираем
cat /etc/mythtv/mysql.txt|grep DBPassword

эта хитрая команда позволит нам увидеть генерированный пароль от базы данных MythTV. Вписываем этот пароль в поле password.

Следующий интересующий нас параметр называется user_agent.
Раньше можно было обойтись без этого параметра. user_agent — это название вашего браузера, в котором вы авторизованы на трекере. Нам понадобится название браузера и cookies. Для того чтобы выдрать значение кукис я рекомендую использовать браузер Opera (наверняка значение cookies можно посмотреть и в других браузеров, но я не знаю как, потому что пользуюсь оперой).
Итак заходим на трекер с оперы, вводим логин-пароль (если ещё не авторизованы), после чего заходим на сайт whatsmyuseragent.com (понадобится интернет).
Всё это можно сделать со своего рабочего компа, а не с медиацентра.
Сайт покажет нам какое-то кол-во информации, в самом начале можо прочитать:
Your User Agent is:
Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00
или нечто подобное. Скорее всего у вас будет написано Opera/9.80 (Windows; чтото там)
Копируем содержимое строчки (начиная со слова Opera) в буфер и вставляем в xml-файл заместо указанного там значения.
Следующий интересующий нас параметр называется «coverarts»
Открываем консоль на медиасервере и пишем:

mkdir ~/.mythtv/MythVideo/

возвращаемся к конфигурационному файлу и пишем:
<coverarts>/home/вашеимя/.mythtv/MythVideo/</coverarts>

разумеется, заменив «вашеимя» на ваше имя в системе.
смотрим дальше. trash. Ок, предлагаю использовать для этого системную корзину, но можно и любую другую папку. Системная корзина лежит тут.
<trash>/home/вашеимя/.local/share/Trash/files/</trash>

как всегда, заменив «вашеимя» на ваше имя в системе.
Следующая группа значений, которая нас интересует, называется mythtv
Ничего тут не меняем, только пишем тот же пароль, что мы писали в поле mediagic_db/password выше.

Далее идёт блок настройки email, но я предлагаю его пока не трогать и настроить потом.

6.Правим trackers/tracker.*название трекера*.xml

Открываем файл.
Открываем Opera. Открываем в опере любимый трекер. Кликаем правой кнопкой и выбираем «Edit Site Preferences/Настройки для сайта». Выбираем вкладку «Cookies». Внизу будет список переменных и значений. Кликая двойным кликом на каждое из значений, можно будет открыть его в новом окне и скопировать. Аккуратно заполняем все параметры из xml-файла, чтобы получилось что-то вроде

<cookies>
          <phpbb3_cqeo2_u>1</phpbb3_cqeo2_u>
          <phpbb3_cqeo2_k></phpbb3_cqeo2_k>
          <phpbb3_cqeo2_sid>a3ac2ae1232c43237eac4183726370ac</phpbb3_cqeo2_sid>
          <uid>1234</uid>
          <pass>2abc8bf34fb7b2948dc38749cc2cacbc</pass>
          <PHPSESSID>b55476116f38bcd5a91e22dc6280e4ee</PHPSESSID>
          <session>a3f616f38bcd58ab16f8bcd54916f8bc563</session>
          <mybbuser>1234_iUn9kednIu8Jd7wOjw09JHw672lJkwdjhfwJhdeU63Jdg22hsdjciIh7HdgeY7t</mybbuser>
          <hsdn_top>1</hsdn_top>
     </cookies>

Далее меняем значение minimum_number_of_seeds на интересующее нас.
Ставим в фильтры filters/decline то, что не хотим качать ни при каких обстоятельствах.
Указываем max_size и min_size.
Меняем directories/torrents_dir на необходимое нам значение

/home/вашеимя/torrents/

не забываем заменить «вашеимя», затем меняем значение directories/datafiles_dir на
var/lib/mythtv/videos/downloads/

в результате у меня это выглядит так:
<directories>
          <!-- Директория, в которую нужно сохранять торрент-файлы-->
          <!-- Внимание! торрент-клиент должен быть настроен на поиск новых торрент-файлов в этой директории-->
          <torrents_dir>/home/vadim/torrents/</torrents_dir>

          <!-- Директория, в которую торрент-клиент скачивает файлы-->
          <datafiles_dir>/var/lib/mythtv/videos/downloads/</datafiles_dir>
     </directories></code>

7.Правим scrubbers/scrubber*название трекера*.xml.

копируем весь блок cookies из предыдущего файла и вставляем в соответствующее место сюда.
Несмотря на то, что может показаться глупостью писать 2 раза одно и тоже в разных местах, в этом есть определённый смысл. Позвольте мне вкратце рассказать, как это всё работает и за что отвечают вышеперечисленные файлы.
Файлы, лежащие в trackers/ отвечают за работу с трекерами. Можно создать файл trackers/torrents.ru.xml, прописать туда необходимые значения и Медиаджик будет работать ещё и с torrents.ru.
Файлы, лежащие в scrubbers/ отвечают за скачивание информации о фильме. Так как в случае с локальным трекром мы берём информацию непосредственно с описания торрента, получается, что место откуда мы качаем торрент-файлы и откуда мы берём информацию — это один и тот же сайт. Но может получится, что мы захотим качать фильмы c PirateBay или torrents.ru, а информацию о них брать с кинопоиска или с тех-же локальных торрентов. Или наоборот как-то Получается, что место откуда мы качаем фильмы и место, откуда мы берём информацию, не всегда одно и то же, просто в нашем конкретном случае это один и тот же сайт.

8.Устанавливаем скрипты и разворачиваем базу.
копируем всю папку mediagic со всеми поправленными конфиг-файлами на медиасервер. Рекомендую скопировать их в /var/www. Для этого вначале копируем папку куда угодно, например в домашнюю директорию, а затем из консоли пишем

sudo mv ~/mediagic /var/www/

набираем пароль и вуяля — скрипты там.
Теперь давайте создадим базу данных.
набираем в консоли
mysql -u root -p

вводим ваш пароль и попадаем внутрь MySQL.
vadim@vadim-vmware:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 135
Server version: 5.0.75-0ubuntu10.2 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Пишем следующее:

GRANT ALL ON *.* TO 'mythtv'@'localhost';

Возвращаемся в стандартную консоль.
Для дальнейшей работы нам понадобится пароль, который мы выяснили, когда правили config.xml
набираем

mysql -u mythtv -p

и вводим этот генерированный пароль от базы данных. Попадаем назад в mysql но уже под пользователем «mythtv». Пишем:
 create database mediagic;
SHOW DATABASES; 

в результате мы должны увидеть 4 базы данных


mysql> create database mediagic;
Query OK, 1 row affected (0.00 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mediagic           |
| mysql              |
| mythconverg        |

пишем exit и выходим из MySQL.
Пишем в консоли:
mysql --user=mythtv --password=пароль mediagic < /var/www/mediagic/mediagic.sql

заменив «пароль» на генерированный пароль из config.xml
Ура. База данных создана.

9.Проверяем, что всё работает
набираем в консоли

php /var/www/mediagic/autodownload.php

И внимательно смотрим на то, что выдаёт скрипт. Если всё сделали правильно, то он не выдаст никаких ошибок, а успешно скачает и запишет в базу данных всё, что надо. По результатам действия скрипта в Mythtv должны появиться несколько новых (но ещё не скачанных) фильмов а в rtorrent новые закачки.
Напоминаю, что rtorrent можно посмотреть в консоли набрав «screen -r» и выйти из него набрав «Ctrl+a, d». Чтобы удалить закачку в rtorrent выберите её кнопками вверх-вниз и нажмите 2 раза Ctrl+d (закачка остановится, но частично скачанный файл останется).
MythTV можно запустить через Applications->Аудио и видео->MythTV Frontend.
10.
пишем в терминале

sudo touch /var/log/updatetorrents.log
sudo chmod 777 /var/log/updatetorrents.log 
crontab -e

и добавляем ещё одну строчку в самый низ
0 * * * * /usr/bin/php /var/www/mediagic/autodownload.php > /var/log/updatetorrents.log

Теперь раз в час медиаджик будет проверять не появилось ли новых фильмов, качать их и сохранять информацию в базу MythTV.

На сегодня всё. В следующий раз будем бороться с драйверами и кодеками, делать MythTV красивым, работать с rtorrent через красивый веб-интерфейс, прикручивать пульт, учить Mediagic писать и читать почту, а также скачивать интересующие нас сериалы в отдельные директории сразу же после появления хотя-бы одного сида на трекере. Кроме этого, этим же макаром мы будем учить Mediagic скачивать ожидаемые релизы как только они появятся.

Если у вас не получилось что-то — пишите, разберёмся. Если вы делали всё в точности как я описал — то проблем возникнуть не должно, если, конечно, я не описАлся