MyDC.ru _ Запросы скриптов для PtokaX _ Релизы с phpbb3 форума/трекера..
Автор: serrrios 13.6.2009, 19:38
Собсно вот, имею трекер на двжике ppkbb3cker, он в свою очередь построен на форуме phpbb3, хотелось бы организовать вывод релизов в дц. Птока 0.4.1.1 API2.
Помойму само гуманное будет сделать сбор данных с базы данных мускл.
Примерный алгоритм: Лезем в таблицу "topics", сортируем записи по столбцу `topic_time`(DESC(вроде по убыванию)). Берем запись, из неё столбцы: 'topic_title' для названия, 'topic_id' для построения ссылки, 'topic_first_poster_name' для ника релизера...
Что нужно от скрипта: 1 Вывод на главную по времени, вывод в пм при входе 2 Настройка префиск таблиц для базы данных. 3 Возможность задать кол-во отображаемых релизов. 4 Возможность задать адресс сайта из которого формировать ссылки.. (пример: "http://game-forum.g-service.ru/tracker/viewtopic.php?t=")
Примерный вывод как в скрипте FreshStuff:
Код
--------- Последние 3 релиза/тем с трекера--------
Огромное спасибо за скрипт. К сожелению не все работает корректно. 1. Релизы брались не последнии, а первые. Решил добавлением одной команды в скл запрос:
Цитата
cur = conn:execute("SELECT "..dbprefix.."topic_id, "..dbprefix.."forum_id, "..dbprefix.."topic_title, "..dbprefix.."topic_first_poster_name FROM topics ORDER BY "..dbprefix.."topic_time DESC")
2. Не работает вывод релизов в пм при входе на хаб. Исправить не смог. 3. Забыл сказать что базы в UTF-8, надо наверно сделать выбор между кодировками в скрипте. Исправить тоже не смог, попробывал функ-ию "utf8towinru" из http://mydc.ru/topic111.html?view=findpost&p=9593 , но из-за скромных познаний луа прикрепить тоже не смог =(( 4. Еще мелкий баг, даже скорее просто придирка =) Сообщение о релизах в чате писалось не от бота, т.е. было так:
Код
[20:49:53] Последни(й/е) 1 релиз(а/ов) с трекера
А надо было:
Код
[20:59:55]<[BOT]Злюка> Последни(й/е) 1 релиз(а/ов) с трекера
Поправил так:
Цитата
local sMsg = "<"..sBot.."> Последни(й/е) "..tostring(nReleases).." релиз(а/ов) с трекера\n"
Автор: Jaska 14.6.2009, 18:11
Честно - не знаю, получится или нет, но попробуй ..
function Utf8ToAnsi(s) local a, j, r, b = 0, 0, '' for i = 1, s and s:len() or 0 do b = s:byte(i) if b < 128 then if nmdc[b] then r = r..nmdc[b] else r = r..string.char(b) end elseif a == 2 then a, j = a - 1, b elseif a == 1 then a, r = a - 1, r..utf8_decode[j][b] elseif b == 226 then a = 2 elseif b == 194 or b == 208 or b == 209 or b == 210 then j, a = b, 1 else r = r..'_' end end return r end
затем в sMsg перед row поставь Utf8ToAnsi( ну и соответственно в конце закрой )
Насчет вывода в PM при входе - у меня работает отлично, как для зарегистрированных так и для незарегистрированных так и для тех у кого ключик.
Автор: serrrios 14.6.2009, 19:37
Хм, поднял скрипт вверх в списке скриптов и вывод в пм заработал. Странность =) Кодировка так и не наработает =(
Автор: Jaska 14.6.2009, 19:55
Это не странность, а какие-то скрипты конфликтуют друг с другом. Насчет кодировки, лично я всегда при создании бд ставлю кодировку cp1251, но раз уж такое дело .. будем пробовать
Автор: serrrios 15.6.2009, 16:36
Щас по рыскал в нете, выяснил что phpbb3 работает только в утф кодировке( Мысля с переходом на 1251 провалилась =(
Кстати, можно потом(если будет спрос) сделать скрипт мультифорумный, могу помочь с таблицами и столбцами от различных форумов.
Автор: Jaska 15.6.2009, 18:08
Ну хз, хз. Я создавал базы cp1251 и создавал раздачи - все работало нормально. Идея "мультифорумности" хороша, будет реализована позже.
Автор: AnSan 15.6.2009, 18:59
У меня выводит вот такую ошибку
Цитата
40: attempt to index global 'cur' (a nil value)
стоит Ptokax 0.4.1.1
Автор: Setuper 15.6.2009, 19:24
1. Прежде чем работать с курсором нужно проверить открыт ли он? 2. Курсоры лучше делать не глобальными, а локальными переменными. 3. Курсоры нужно всегда закрывать после работы с ними!
Автор: Jaska 15.6.2009, 20:10
прошу прощения) в дальнейшем - учту! А пока подправил ..
Подскажите пожалуйста как правильно устанавливать скрипт? У меня выводит следующее:
Код
[13:34] ppkBB3.lua загружен. [13:34] Нет синтаксических ошибок в файле скрипта ppkBB3.lua [13:34] Синтаксис D:\Temp\PtokaX\scripts\ppkBB3.lua:15: module 'luasql.mysql' not found: no field package.preload['luasql.mysql'] no file 'D:\Temp\PtokaX\luasql\mysql.lua' no file 'D:\Temp\PtokaX\libs\luasql\mysql.lua' no file 'D:\Temp\PtokaX\scripts\libs\luasql\mysql.lua' no file 'D:\Temp\PtokaX\luasql\mysql.dll' no file 'D:\Temp\PtokaX\libs\luasql\mysql.dll' no file 'D:\Temp\PtokaX\scripts\libs\luasql\mysql.dll' no file 'D:\Temp\PtokaX\luasql.dll' no file 'D:\Temp\PtokaX\libs\luasql.dll' no file 'D:\Temp\PtokaX\scripts\libs\luasql.dll' [13:34] Скрипт запущен.
Это типа у меня нет стока файлов? Если так, то где их можно взять?
Всё, всё нашёл, вроде скрипт запустился нормально ^^
Автор: Jaska 16.6.2009, 12:42
У тебя не стоит библиотека MySQL. Скачай Отсюда и закинь в одну из этих папок
Автор: Caratel 16.6.2009, 13:18
угу, оттуда и поставил. Щас норм. вопрос. в настройке скрипта:
dbprefix = "" -- Префикс тут надо ничего не указывать или phpbb_ ?
хммм.... жду жду... не выводит он у меня релизы почему-то... и в пм тоже не выводит(((
Автор: fixx 16.6.2009, 14:51
dbprefix = "" -- Префикс Префикс глянь в базе, хз какой он там именно у тебя Если движок phpbb (пофиг какая версия), то все верно: dbprefix = "phpbb_"
Автор: Caratel 16.6.2009, 15:08
Цитата(fixx @ 16.6.2009, 15:51)
dbprefix = "" -- Префикс Префикс глянь в базе, хз какой он там именно у тебя Если движок phpbb (пофиг какая версия), то все верно: dbprefix = "phpbb_"
$table_prefix = 'phpbb_';
))) поставил) но всё равно пока работоспособность скрипта не увидел (
Автор: Jaska 16.6.2009, 17:41
А ошибок птока никаких не выводит? Если читал выше, была проблема с выводом в ПМ из-за конфликта с другим скриптом, решается перемещением скрипта вверх. А насчет времени вывода, поставь интервал в секунду и не жди) если результат будет - он будет сразу. Варианта должно быть 2 - либо все работает без ошибок, либо не работает ничего и птока напишет ошибку.
Автор: Caratel 16.6.2009, 18:21
читал тему, передвигал скрипт в самый верх. птока ошибок не выдаёт: [19:21] ppkBB3.lua загружен. [19:21] Нет синтаксических ошибок в файле скрипта ppkBB3.lua [19:21] Скрипт запущен. результата работоспособности нет
ЗЫ. есть предположение почему не выводятся данные: у меня трекер стоит не в корне сервака, а в папке, т.е. не http://mydc.ru/r/?http://адрес_сайта/index.php , а http://mydc.ru/r/?http://адрес_сайта/tracker/index.phpИ, как мне показалось, при вводе своих данных в скрипт не должно быть index.php . А если я ввиду http://mydc.ru/r/?http://адрес_сайта/tracker/ , то у меня в браузере идёт переадрессация на портал, а не на трекер. добавления строки DirectoryIndex index.php в файл .htaccess делу не помогло. ((((
Разобрался со своей проблемой. дело было во включённом модуле mod_rewrite. Но темнеменее в хаб не выводятся релизы х_х
Автор: Jaska 16.6.2009, 18:41
Тогда такой вопрос в самой таблице topic что-то есть? Не пойму что я могу упустить еще ...
Автор: serrrios 16.6.2009, 19:04
Цитата(Caratel @ 16.6.2009, 19:21)
ЗЫ. есть предположение почему не выводятся данные: у меня трекер стоит не в корне сервака, а в папке, т.е. не http://mydc.ru/r/?http://адрес_сайта/index.php , а http://mydc.ru/r/?http://адрес_сайта/tracker/index.phpИ, как мне показалось, при вводе своих данных в скрипт не должно быть index.php . А если я ввиду http://mydc.ru/r/?http://адрес_сайта/tracker/ , то у меня в браузере идёт переадрессация на портал, а не на трекер. добавления строки DirectoryIndex index.php в файл .htaccess делу не помогло. ((((
Глупая глупость, это никак не влияет на скрипт. В самом скрипте надо указать адресс корня трекера/форума, в твоем случии: http://mydc.ru/r/?http://адрес_сайта/tracker/
Префикс свой можно глянуть в файле config.php: $table_prefix = 'префикс';
Подними скрипт в самый вверх. Проверь еще раз настройки, хотя судя из последнего скрипта он те должен сказать если будет криво настроенно. =)
Jaska, есть мысли насчет утф? =) Появилась еще идейка, если луа позволяет просматривать файлы в фс можно сделать самоопределитель настроек из файла конфига. =)
Автор: Jaska 16.6.2009, 19:59
а если хаб и сайт на разных машинах?
Автор: Caratel 16.6.2009, 20:08
Всё перепроверил, настройки скрипта перепроверил, поднимал скрипт в самы верх.... нехотит робить... + Заметил, когда скрипт в самом верху, то он у меня блокирует менюшки всех остальных скриптов. Отключал все скрипты, оставлял только этот, всё равно ничего не выводит. Птока на скрипт не ругается...
Автор: Caratel 19.6.2009, 19:39
Во что стал писать после перезагрузки всех серваков:
Код
[11:28] Синтаксис D:\Temp\PtokaX\scripts\ppkBB3.lua:44: attempt to index global 'conn' (a nil value)
это что ему не нравится? =(
ещё покапался покапался... но так и не сообразил в чём дело...
По поводу заполнения шапки скрипта, всё ли правильно? (база трекера имеет имя, имя юзера и пароль один и тот же), например:
Он убрал перфиксы в запросах. Это можно было сделать по-другому, указав dbprefix = ""
Автор: Caratel 21.6.2009, 16:20
так ведь он стоял-то dbprefix = "" ... я пробовал... не робил скрипт так =)
Автор: serrrios 25.6.2009, 18:16
Цитата(Caratel @ 21.6.2009, 17:20)
так ведь он стоял-то dbprefix = "" ... я пробовал... не робил скрипт так =)
Странно у меня работал... Эх, не судьба мне с утфом чувствую(
Автор: serrrios 21.7.2009, 21:58
У меня о5 глупая мысля.. Увидел тут в теме с Webstats:
Цитата(alex82 @ 16.7.2009, 19:07)
При соединении с БД также желательно указывать кодировку
Код
conn:execute("SET NAMES cp1251")
Т.е. можно задавать с какой кодировкой лезть в базу за данными. Я так понял мне нужна таже команда тока с переменной utf8_bin вместо cp1251. Вот только вопрос куда это вписать? Попробывал вставить между 43 и 44 строчкой, на что получил ошибку в лс.
Автор: Moneo 8.8.2009, 21:35
Больщое вам спасибо за скрипт, но вот проблема трекер находится на моем компьютере, а хаб на другом нужно подправить скрипт так чтобы он мог залазить в бд на моем компьютере и делать все тоже самое что и делает. Помогите пожалуйста.
Автор: Jaska 9.8.2009, 10:29
Как я понял: 2 компьютера на одном трекер на другом хаб. С хаба нужно подключиться только к бд трекера так? В чем проблема?
Цитата(serrrios @ 22.7.2009, 0:58)
У меня о5 глупая мысля.. Увидел тут в теме с Webstats:
Т.е. можно задавать с какой кодировкой лезть в базу за данными. Я так понял мне нужна таже команда тока с переменной utf8_bin вместо cp1251. Вот только вопрос куда это вписать? Попробывал вставить между 43 и 44 строчкой, на что получил ошибку в лс.
Попробую поковырять, но виндовый клиент всеравно только cp1251 поймет
Автор: Moneo 9.8.2009, 21:55
не знаю я как это все писать вот в чем проблема ))) мне если можно помочь надо. Пробовал просто вставить ничего не меняя он ошибку выдает и не выводит.
Автор: Malou 13.12.2009, 4:50
Всем привет!у меня есть одна загвоздка с этим скриптом,дело в том что если я его запускаю выдает ошибку с сетмэном но это мелочь он и так работает,а причина вот в чем если я запукаю его и запускаю трэкер сам у себя на компе там же где и хаб то он работает и достаочно хорошо,но мой рабочий трэкер стоит не у меня а на бесплатном хосте и почему то при вводе данных он выдает ошибку в 44 строке "execute" я не могу понять что ему не нравится если он только что работал на одном компе и на тестовом трэкере а вот удаленно не хочет скажите плих!!!буду очень признателен