ВходИмяПароль
Автоматически входить при каждом посещении    
Регистрация
Регистрация
Войти и проверить личные сообщения
Войти и проверить личные сообщения
Список форумов ЛанМедиаСервис » Другое ПО, скрипты и сервисы

Начать новую тему   Ответить на тему
скрипт генерации ed2k и DC++ ссылок На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Предыдущая тема :: Следующая тема  
Автор Сообщение

ice 





Зарегистрирован: 25.04.2008
Сообщения: 13


ukraine.gif
Сообщение Добавлено: 2008-05-02 13:59 pm    Заголовок сообщения: Re: скрипт генерации ed2k и DC++ ссылок Ответить с цитатой

Instruktor  писал(а):
скрипт генерации ed2k и DC++ ссылок

- не дружит с пробелами в пути к файлу.


я например из этой ситуации вышел так

Код:
# выполнять пока есть пустые поля dc++ или ed2k
while [ `echo "select count(ID) from files where dcppLink=''" | $my` -gt 0 ]
do
    row=`echo "select ID,Size,Path from files where dcppLink='' and Path like '%ftp6%' limit 1" | $my`  # получаем объект
    f_id=`echo $row | awk '{print $1}'`                                                         # ID
    f_size=`echo $row | awk '{print $2}'`                                                       # объём в байтах
    row1=`echo "select Path from files where ID=$f_id" | $my`
    f_path=`echo $row1`                        # путь
    f_name=`basename "$f_path"`           # имя файла
    dat=`date "+%Y-%m-%d_%H:%M:%S"`

    if test -f "$f_path"        # проверяем есть ли доступ к файлу, если нет то всё бросаем
    then
    else
        echo "$dat file not found: id=$f_id path=$f_path" >> $log
        rm -f $lock
        exit
    fi
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Spamer 





Зарегистрирован: 11.05.2008
Сообщения: 1


blank.gif
Сообщение Добавлено: 2008-05-11 04:57 am    Заголовок сообщения: Ответить с цитатой

Поддержку ftp никто не пытался прикрутить?
Т.е. wget'им фильм, создаем магнет, обрабатываем, удаляем фильм Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Алексей 





Зарегистрирован: 29.02.2008
Сообщения: 29
Откуда: Одесса

ukraine.gif
Сообщение Добавлено: 2008-06-06 15:00 pm    Заголовок сообщения: Ответить с цитатой

А можно ли начёркать скриптик без е2к, чтоб только DC++ а то я в вашей руганине не могу разобраться Laughing или боюсь ... .
П.с. freeBSD ....
Взарание спасиб.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора

Marcus





Зарегистрирован: 29.02.2008
Сообщения: 15


russia.gif
Сообщение Добавлено: 2008-06-19 08:23 am    Заголовок сообщения: Ответить с цитатой

Я для себя сразу оставил только dc++ (если ещё актуально)
Код:

#!/bin/sh                                                                                                                     
                                                                                                                             
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin             
                                                                                                                             
my="mysql -N -hIP_БАЗЫ ИМЯ_БАЗЫ"                                  # обращение к mysql                                         
lock="/var/run/p2p_hash_count.lock"                              # флаг блокировки                                           
log="/var/log/p2p_hash_count.log"                                # лог                                                       
my_chs="utf8"                                                    # кодировка имён файлов в mysql                             
sys_chs="utf-8"                                                  # системная кодировка имён                                   
#--------------------------------------------                                                                                 
test -f $lock && exit                                            # проверяем не запущен ли уже процесс                       
touch $lock                                                      # ставим флаг блокировки                                     
#--------------------------------------------                                                                                 
                                                                                                                             
# выполнять пока есть пустые поля dc++ или ed2k                                                                               
while [ `echo "select count(ID) from files where dcppLink=''" | $my` -gt 0 ]                                                 
do                                                                                                                           
    row=`echo "select ID,FilmID,Size from files where dcppLink='' limit 1" | $my`  # получаем объект                         
    f_id=`echo $row | awk '{print $1}'`                                                 # ID                                 
    f_fid=`echo $row | awk '{print $2}'`                                                         # FilmID                     
    f_size=`echo $row | awk '{print $3}'`                                                       # объём в байтах             
    f_path=`echo "set names $my_chs; select Path from files where ID=$f_id" | $my`                        # путь             
    f_name=`echo "set names $my_chs; select Name from files where ID=$f_id" | $my`           # имя файла                     
    dat=`date "+%Y-%m-%d_%H:%M:%S"`                                                                                           
                                                                                                                             
    if test -f "$f_path"       # проверяем есть ли доступ к файлу, если нет то всё бросаем                                   
    then                                                                                                                     
        pwd                                                                                                                   
    else                                                                                                                     
         echo "$dat file not found: FilmID=$f_fid path=$f_path" | iconv -f $my_chs -t $sys_chs >> $log                       
         rm -f $lock                                                                                                         
         exit                                                                                                                 
    fi                                                                                                                       
# DC++ Генерим ссылку (если нет), забиваем в базу и пишем лог.                                                               
                                                                                                                             
    if [ `echo "select count(ID) from files where ID=$f_id and dcppLink=''" | $my` != "0" ]                                   
    then                                                                                                                     
        dcpp=`nice -n 5 tthsum "$f_path" | awk '{print $1}'`                                                                 
        echo "set names $my_chs; update files set dcppLink=\"magnet:?xt=urn:tree:tiger:$dcpp&xl=${f_size}&dn=${f_name}\" where
 ID=$f_id" | $my 2>&1 >> $log                                                                                                 
        echo "$dat dc++ link created: FilmID=$f_fid name=$f_name link=$dcpp" | iconv -f $my_chs -t $sys_chs >> $log           
    fi                                                                                                                       
done                                                                                                                         
#-------------------------------------------                                                                                 
rm -f $lock     # снимаем блокировку
exit
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Алексей 





Зарегистрирован: 29.02.2008
Сообщения: 29
Откуда: Одесса

ukraine.gif
Сообщение Добавлено: 2008-06-24 08:03 am    Заголовок сообщения: Ответить с цитатой

За прошедшее время я конечно отредактировал приведённое на 1-ой странице, но конечно актуально ! Спасибо Razz
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора

Sir.D.Shadow





Зарегистрирован: 10.06.2008
Сообщения: 7


russia.gif
Сообщение Добавлено: 2008-07-08 14:03 pm    Заголовок сообщения: Ответить с цитатой

Господа, тербуется мозговое вливание.
Скрипт стопорится при нахождении путей вида ftp://etc и выключается. Таких путей в базе очень много, потому что при переносе базы и каталога пришлось отказаться от маунта этого сервера, но все фильмы имеются и имеют реальные и нормальные фтп ссылки.

Как бы заставить скрипт продолжать работу игнорируя такие пути?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Sir.D.Shadow





Зарегистрирован: 10.06.2008
Сообщения: 7


russia.gif
Сообщение Добавлено: 2008-07-09 16:14 pm    Заголовок сообщения: Ответить с цитатой

Ответа не дождался и просто закомментил проверку доступности файла. Ссылки скрипт пишет все, но недоступные, соответственно, без хэша как такового. Не найдут, так не найдут в DC++ Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

</life>





Зарегистрирован: 15.03.2008
Сообщения: 32


blank.gif
Сообщение Добавлено: 2008-07-09 17:12 pm    Заголовок сообщения: Ответить с цитатой

Если вникнуть в логику скрипта, то можно понять, что используется две утилиты, для работы которых нужно что б файл находился локально. Иначе я не знаю как заставить tthsum работать по ftp.

Кстати, кроном кто научил пользоваться скриптом? У меня такая же ситуация как у iVale выше, размер файла не создаётся.
Код:

# корректируем PATH
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin:/root/sbin; export PATH

#my="mysql -N -h127.0.0.1 -ulmss -pjtdMNmRPUepUwACE lmss1"        # обращение к mysql
my="mysql -N -ulmss -pjtdMNmRPUepUwACE lmss1"
lock="/var/run/p2p_hash_count.lock"                     # флаг блокировки
log="/var/log/p2p_hash_count.log"                       # лог
my_chs="cp1251"
sys_chs="koi8-r"
tthsum="/usr/local/bin/tthsum"
iconv="/usr/bin/iconv"
rm="/bin/rm"
#--------------------------------------------
test -f $lock && exit                                   # проверяем не запущен ли уже процесс
touch $lock                                             # ставим флаг блокировки
#--------------------------------------------

# выполнять пока есть пустые поля dc++ или ed2k
while [ `echo "select count(ID) from files where dcppLink=''" | $my` -gt 0 ]
do
    row=`echo "select ID,Size,Path from files where dcppLink='' limit 1" | $my`  # получаем объект
    f_id=`echo $row | awk '{print $1}'`                                                         # ID
    f_size=`echo $row | awk '{print $2}'`                                                       # объём в байтах

f_path=`echo "set names $my_chs; select Path from files where ID=$f_id" | $my`
f_name=`echo "set names $my_chs; select Name from files where ID=$f_id" | $my`

    dat=`date "+%Y-%m-%d_%H:%M:%S"`
         if test -f "$f_path" >> $log       # проверяем есть ли доступ к файлу, если нет то всё бросаем
         then
               pwd
         else
                       echo "$dat file not found: id=$f_id path=$f_path" >> $log
                       rm -f $lock
                       exit
       fi

# DC++ Генерим ссылку (если нет), забиваем в базу и пишем лог.

       if [ `echo "select count(ID) from files where ID=$f_id and dcppLink=''" | $my` != "0" ]
    then
          dcpp="magnet:?xt=urn:tree:tiger:`nice -n 5 $tthsum "$f_path" | awk '{print $1}'`&xl=${f_size}&dn=${f_name}" >> $log
#

          echo "update files set dcppLink=\"$dcpp\" where ID=$f_id" | $my 2>&1 >> $log
          echo "$dat dc++ link created: id=$f_id link=$dcpp" | $iconv -f $my_chs -t $sys_chs >> $log
        fi

done
rm -f $lock
exit
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Sir.D.Shadow





Зарегистрирован: 10.06.2008
Сообщения: 7


russia.gif
Сообщение Добавлено: 2008-07-09 21:23 pm    Заголовок сообщения: Ответить с цитатой

второй день работы скрипта, полет нормальный, за исключением того, что у файлов с путями типа ftp://etc хэш не прописывается, только размер и имя файла.

/life
Размер какого файла? Файла фильма?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

</life>





Зарегистрирован: 15.03.2008
Сообщения: 32


blank.gif
Сообщение Добавлено: 2008-07-11 16:48 pm    Заголовок сообщения: Ответить с цитатой

Sir.D.Shadow писал(а):

/life
Размер какого файла? Файла фильма?

Да, именно при запуске кроном.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Sir.D.Shadow





Зарегистрирован: 10.06.2008
Сообщения: 7


russia.gif
Сообщение Добавлено: 2008-07-12 11:54 am    Заголовок сообщения: Ответить с цитатой

Vlamos  писал(а):
Не могу понять в чем проблема.
Юникс генерит одно TTH, а клиент FlylinkDC++ совсем другое значение
В итоге фильм не находит. В чем может быть причина такого различия?


Поддержу. Ни одна сгенерированных скриптом ссылка из более 4х тысяч файлов не совпадает по хэшу с генерированными клиентом DC++.

Неужели только у нас двоих такая проблема?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

ice 





Зарегистрирован: 25.04.2008
Сообщения: 13


ukraine.gif
Сообщение Добавлено: 2008-07-13 06:25 am    Заголовок сообщения: Ответить с цитатой

Sir.D.Shadow писал(а):
Vlamos писал(а):
Не могу понять в чем проблема.
Юникс генерит одно TTH, а клиент FlylinkDC++ совсем другое значение
В итоге фильм не находит. В чем может быть причина такого различия?


Поддержу. Ни одна сгенерированных скриптом ссылка из более 4х тысяч файлов не совпадает по хэшу с генерированными клиентом DC++.

Неужели только у нас двоих такая проблема?


Нет не только
у меня FreeBSD
просто заметил такую вещь, что если ставить из портов tthsum то он генерирует хеши различные с виндовс, выход компилить microdc2 в поставке есть правильный tthsum
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Frogile





Зарегистрирован: 17.04.2008
Сообщения: 36
Откуда: Минск

blank.gif
Сообщение Добавлено: 2008-07-13 10:42 am    Заголовок сообщения: Ответить с цитатой

вопрос к разработчику, будет ли встроена функция генерации ссылок во второй версии?
сейчас она у меня написана отдельным скриптом, на php..


Последний раз редактировалось: Frogile (2008-09-09 08:46 am), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-07-14 06:19 am    Заголовок сообщения: Ответить с цитатой

Frogile писал(а):
вопрос к разработчику, будет ли встроена функция генерации ссылок во второй версии?
сейчас она написана отдельным скриптом, на php..

В планах есть (либо встроенная, либо через запуск сторонней утилиты)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора

phant0m4eg Phant0m





Зарегистрирован: 22.06.2008
Сообщения: 44


blank.gif
Сообщение Добавлено: 2008-08-11 01:11 am    Заголовок сообщения: Ответить с цитатой

Народ подскажите что может быть не так, пишет No such file directory, лог не создает, что ему не нравится непонятно, у меня стоял microdc2, я заюзал tthsum который он сам создал, путь прописан правильно, скрипт такой что в принципе там и менять почти нечего кроме еще доступа к базе. У </life> в скрипте обратил внимание есть rm="/bin/rm", у меня такого нет, я даже незнаю зачем он нужен, может быть все же необходим? Сразу скажу что мне нужен только dc, для e2k ничего не ставил, взял отдельно скрипт для него.
Цитата:
#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin:/root/sbin; export PATH

my="mysql -N -h127.0.0.1 -uЛогин -pПароль video" # обращение к mysql
lock="/var/run/p2p_hash_count.lock" # флаг блокировки
log="/var/log/p2p_hash_count.log" # лог
файлов в mysql
my_chs="cp1251"
sys_chs="koi8-r"
tthsum="/usr/local/bin/tthsum"
iconv="/usr/local/bin/iconv" # системная кодировка имён
#--------------------------------------------
test -f $lock && exit # проверяем не запущен ли уже процесс
touch $lock # ставим флаг блокировки
#--------------------------------------------

# выполнять пока есть пустые поля dc++
while [ `echo "select count(ID) from files where dcppLink=''" | $my` -gt 0 ]
do
row=`echo "select ID,FilmID,Size from files where dcppLink='' limit 1" | $my` # получаем объект
f_id=`echo $row | awk '{print $1}'` # ID
f_fid=`echo $row | awk '{print $2}'` # FilmID
f_size=`echo $row | awk '{print $3}'` # объём в байтах
f_path=`echo "set names $my_chs; select Path from files where ID=$f_id" | $my` # путь
f_name=`echo "set names $my_chs; select Name from files where ID=$f_id" | $my` # имя файла
dat=`date "+%Y-%m-%d_%H:%M:%S"`

if test -f "$f_path" # проверяем есть ли доступ к файлу, если нет то всё бросаем
then
pwd
else
echo "$dat file not found: FilmID=$f_fid path=$f_path" | iconv -f $my_chs -t $sys_chs >> $log
rm -f $lock
exit
fi
# DC++ Генерим ссылку (если нет), забиваем в базу и пишем лог.

if [ `echo "select count(ID) from files where ID=$f_id and dcppLink=''" | $my` != "0" ]
then
dcpp=`nice -n 5 tthsum "$f_path" | awk '{print $1}'`
echo "set names $my_chs; update files set dcppLink=\"magnet:?xt=urn:tree:tiger:$dcpp&xl=${f_size}&dn=${f_name}\" where
ID=$f_id" | $my 2>&1 >> $log
echo "$dat dc++ link created: FilmID=$f_fid name=$f_name link=$dcpp" | iconv -f $my_chs -t $sys_chs >> $log
fi
done
#-------------------------------------------
rm -f $lock # снимаем блокировку
exit
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов ЛанМедиаСервис » Другое ПО, скрипты и сервисы Часовой пояс: GMT
На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Страница 3 из 6

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы