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

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

iVale 





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


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

Instruktor писал(а):
очевидно, нет коннекта к базе

уберите из строки коннекта -h127.0.0.1
пусть через сокет конектится

если не поможет то нужно разбираться с юзером и его правами на базу данных

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

Marcus





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


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

iVale  писал(а):
Instruktor писал(а):
очевидно, нет коннекта к базе

уберите из строки коннекта -h127.0.0.1
пусть через сокет конектится

если не поможет то нужно разбираться с юзером и его правами на базу данных

Пожалуйста посмотрите моё последнее сообщение, там я заменил строку и вроде как ошибка с коннектом пропала.


Конечно она пропала Smile Потому что теперь у Вас ошибка раньше, чем происходит коннект к базе Smile НЕ УБИРАЙТЕ " ` " оттуда!
Попробуйте сделать как Вам советовал Instruktor

p.s. точную информация возьмите из config.php в блоке про настройки mysql... там то уже точно всё правильно будет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

iVale 





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


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

Marcus писал(а):
Конечно она пропала Smile Потому что теперь у Вас ошибка раньше, чем происходит коннект к базе Smile НЕ УБИРАЙТЕ " ` " оттуда!
Попробуйте сделать как Вам советовал Instruktor

p.s. точную информация возьмите из config.php в блоке про настройки mysql... там то уже точно всё правильно будет

Признаюсь не силён в кодинге, на обум ставил.

Данные mysql верные 100%.

А что говорит лог ошибки? Я про
Код:
line 17: [: too many arguments

Всё время ругается на ошибку рядом с символом [ или ]

Добавлено спустя 22 minutes 38 seconds:

1. Вернул всё в исходоное, сделал как Инструктор просил:
Код:
#!/bin/sh

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

my="mysql -N -uюзер -pпароль база"        # обращение к mysql
lock="/var/run/p2p_hash_count.lock"                     # флаг блокировки
log="/var/log/p2p_hash_count.log"                       # лог
my_chs="cp1251"                                         # кодировка имён файлов в mysql
sys_chs="koi8-r"                                        # системная кодировка имён
#--------------------------------------------
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 $row | awk '{print $3}' | iconv -f $my_chs -t $sys_chs`                        # путь
#    f_name=`basename $f_path | tr " " "_" | tr -d "'" | iconv -f $sys_chs -t $my_chs`           # имя файла
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: 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}"
          echo "update files set dcppLink='$dcpp' where ID=$f_id"
          echo "$dat dc++ link created: id=$f_id link=$dcpp" | iconv -f $my_chs -t $sys_chs >> $log
        fi

done
rm -f $lock
exit


Вот что происходит во время запуска:

Код:
sudo sh getdclinks1.sh
/home/amigo/scripts
update files set dcppLink='magnet:?xt=urn:tree:tiger:D43RRF3ZVP3K5MV4DRXOE4DOJ37WMTNKWGAPK2A&xl=733990912&dn=XXX.2.avi' where ID=645
/home/amigo/scripts
update files set dcppLink='magnet:?xt=urn:tree:tiger:D43RRF3ZVP3K5MV4DRXOE4DOJ37WMTNKWGAPK2A&xl=733990912&dn=XXX.2.avi' where ID=645
/home/amigo/scripts
update files set dcppLink='magnet:?xt=urn:tree:tiger:D43RRF3ZVP3K5MV4DRXOE4DOJ37WMTNKWGAPK2A&xl=733990912&dn=XXX.2.avi' where ID=645
/home/amigo/scripts
update files set dcppLink='magnet:?xt=urn:tree:tiger:D43RRF3ZVP3K5MV4DRXOE4DOJ37WMTNKWGAPK2A&xl=733990912&dn=XXX.2.avi' where ID=645
/home/amigo/scripts
update files set dcppLink='magnet:?xt=urn:tree:tiger:D43RRF3ZVP3K5MV4DRXOE4DOJ37WMTNKWGAPK2A&xl=733990912&dn=XXX.2.avi' where ID=645
/home/amigo/scripts
update files set dcppLink='magnet:?xt=urn:tree:tiger:D43RRF3ZVP3K5MV4DRXOE4DOJ37WMTNKWGAPK2A&xl=733990912&dn=XXX.2.avi' where ID=645
/home/amigo/scripts
update files set dcppLink='magnet:?xt=urn:tree:tiger:D43RRF3ZVP3K5MV4DRXOE4DOJ37WMTNKWGAPK2A&xl=733990912&dn=XXX.2.avi' where ID=645
/home/amigo/scripts
update files set dcppLink='magnet:?xt=urn:tree:tiger:D43RRF3ZVP3K5MV4DRXOE4DOJ37WMTNKWGAPK2A&xl=733990912&dn=XXX.2.avi' where ID=645
/home/amigo/scripts

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

Marcus





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


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

Это значит что скрипт работает. Но в режиме отладки. (т.е. выдаётся только строка запроса в бд)...

теперь меняем

Код:

echo "update files set dcppLink='$dcpp' where ID=$f_id"


на

Код:

echo "update files set dcppLink='$dcpp' where ID=$f_id" | $my 2>&1 >> $log


При этом на экране будут только строки (конкретно в Вашем случае)

Код:

/home/amigo/scripts


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

iVale 





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


albania.gif
Сообщение Добавлено: 2008-03-18 16:02 pm    Заголовок сообщения: Ответить с цитатой

Спасибо всем!
Всё работает!

Добавлено спустя 4 hours 29 minutes 19 seconds:

Закинул скрипт в крон, тот генерит ссылки, но подоброго рода:
Цитата:
2008-03-18_23:26:49 dc++ link created: id=1677 link=magnet:?xt=urn:tree:tiger:&xl=694210560&dn=Looney.Tunes.Back.In.Action.DivX.Rus.avi
2008-03-18_23:30:03 dc++ link created: id=1672 link=magnet:?xt=urn:tree:tiger:&xl=732946432&dn=asterix.and.vikings.avi

пути для tthsum и iconv в скрипте прописал, может быть не совсем точно, щас ещё раз проверю, т.к. вместо TTH точная сумма файла получается.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Instruktor 





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


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

Точная сумма а байтах как раз на своём месте.
А TTH почему-то не генерится, он должен находиться между tiger: ... TTH ... &
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

iVale 





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


albania.gif
Сообщение Добавлено: 2008-03-19 09:38 am    Заголовок сообщения: Ответить с цитатой

Instruktor писал(а):
Точная сумма а байтах как раз на своём месте.
А TTH почему-то не генерится, он должен находиться между tiger: ... TTH ... &

Чем может быть вызвано? Я указал полный путь до tthsum, когда скрипт запускается по крону, то процесс tthsum висит в top.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Marcus





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


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

iVale  писал(а):

Чем может быть вызвано? Я указал полный путь до tthsum, когда скрипт запускается по крону, то процесс tthsum висит в top.


1. С какой периодичностью происходит запуск скрипта по крону ?
2. Дописать в скрипт запись лога в момент генерирования утилитой tthsum
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

iVale 





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


albania.gif
Сообщение Добавлено: 2008-03-19 10:41 am    Заголовок сообщения: Ответить с цитатой

Marcus писал(а):
iVale писал(а):

Чем может быть вызвано? Я указал полный путь до tthsum, когда скрипт запускается по крону, то процесс tthsum висит в top.

1. С какой периодичностью происходит запуск скрипта по крону ?

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

Marcus





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


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

тогда надо дописывать в скрипт логирование при получении переменной $f_path, что бы убедиться, что путь определяется верно. И тоже можно сделать при работе утилиты tthsum И смотреть что напишет лог.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

iVale 





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


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

Marcus писал(а):
тогда надо дописывать в скрипт логирование при получении переменной $f_path, что бы убедиться, что путь определяется верно. И тоже можно сделать при работе утилиты tthsum И смотреть что напишет лог.

Можно дать пример? Я сделал, но ничего путного не увидел, всё создаётся как и раньше.

К каким переменным пути нужно ещё прописать? Помимо tthsum,iconv?
Mysql вроде подхватывается кроном.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Diver 





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


russia.gif
Сообщение Добавлено: 2008-04-02 21:24 pm    Заголовок сообщения: апостроф Ответить с цитатой

Не хэшируются файлы в именамх которых содержатся апостроф "'".

Код:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's Chest.DVDRip.2006.avi' where
ID=2509' at line 1


В логах повторяется это:

Код:
2008-04-03_01:04:16 dc++ link created: id=2509 name=Pirates of the Caribbean Dead Man's Chest.DVDRip.2006.avi link=J5PKIXYXPC25NYDP6XNDJK2PRLXFDJXVNIG5JHQ


Возможно ли в скрипте экранировать этот символ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number

Marcus





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


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

Я так понял что ошибка на последней стадии, когда заносится в базы ссылка.
попробуйте в строке
Код:

 echo "update files set dcppLink='$dcpp' where ID=$f_id"

изменить следующее
Код:

dcppLink=\"$dcpp\"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Vlamos 





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


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

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

Diver 





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


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

Marcus писал(а):
Я так понял что ошибка на последней стадии, когда заносится в базы ссылка.
попробуйте в строке
Код:

 echo "update files set dcppLink='$dcpp' where ID=$f_id"

изменить следующее
Код:

dcppLink=\"$dcpp\"


Спасибо, помогло!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов ЛанМедиаСервис » Другое ПО, скрипты и сервисы Часовой пояс: GMT
На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Страница 2 из 6

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