Kinozal_tv, API2 | Скрипт новостей с трекера |
Здравствуйте, гость ( Вход | Регистрация )
Kinozal_tv, API2 | Скрипт новостей с трекера |
8.10.2009, 10:00
Сообщение
#1
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
Название скрипта: Kinozal_tv
Автор: Tsd Версия скрипта: 1.0 Версия API: API2 Описание скрипта: Скрипт отсылает в личку пользователю последние новости с популярного торрент трекера Прямая ссылка на интересующую новость. Меню. Для работы скрипта требуется библиотека LuaSocket. Tsd © 09.2009
Прикрепленные файлы
|
|
|
19.11.2009, 19:39
Сообщение
#2
|
|
Начинающий Группа: Пользователи Сообщений: 23 Регистрация: 25.4.2009 Пользователь №: 3 168 Спасибо сказали: 0 раз |
Сразу прошу прощения за возможный оффтоп, но можно ли как нибудь приспособить данный скрипт для системы magneto? ибо скрипт очень понравился)
|
|
|
23.11.2009, 18:22
Сообщение
#3
|
|
Начинающий Группа: Пользователи Сообщений: 14 Регистрация: 5.5.2009 Пользователь №: 3 249 Спасибо сказали: 0 раз |
Было бы не плохо если бы этот скрипт перевести на форум тоесть чтобы народ мог смотреть какие поивились на винки на свое лольном форуме или инет ! А скрипт и правду очень интересный спасибо автору этого скрипта !
|
|
|
26.11.2009, 0:02
Сообщение
#4
|
|
Активный участник Группа: Пользователи Сообщений: 67 Регистрация: 12.10.2008 Из: Красноярск Пользователь №: 784 Спасибо сказали: 9 раз |
Хороший скрипт, быстро переправил под свой трекер и добавил перекодировку из утф-8 =)
|
|
|
26.11.2009, 0:58
Сообщение
#5
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
проблема такова заменяю рсс на свой адрес скрипт работает, ошибок не выдаёт но в чат просто выходит команда а новости не идут
Код sAddr = {"http://10.128.162.28/dc.magneto/rss/","http://10.128.162.28/dc.magneto/rss/index.php",} -- Основной адрес сайта, адрес ленты новостей. скажите плиз в чём ошибка?
|
|
|
26.11.2009, 21:21
Сообщение
#6
|
|
Активный участник Группа: Пользователи Сообщений: 67 Регистрация: 12.10.2008 Из: Красноярск Пользователь №: 784 Спасибо сказали: 9 раз |
Поблема в том что скрипт заточен под трекер Kinozal. И одной подменой адреса рсс проблему не решить.
|
|
|
26.11.2009, 21:49
Сообщение
#7
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
И одной подменой адреса рсс проблему не решить. У меня решена .... вот пример одной из переделок ______.lua ( 4.4 килобайт ) Кол-во скачиваний: 132 |
|
|
26.11.2009, 22:06
Сообщение
#8
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Если структура одинакова, то использование возможно, в противном случае нужно парсить под нужный формат.
|
|
|
15.2.2010, 14:25
Сообщение
#9
|
|
Активный участник Группа: Пользователи Сообщений: 67 Регистрация: 12.10.2008 Из: Красноярск Пользователь №: 784 Спасибо сказали: 9 раз |
Народ, не подскажите как сделать что бы инфа (в пм) отправлялась кроме как по запросу еще и при конекте к хабу?
|
|
|
2.3.2010, 23:43
Сообщение
#10
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
Народ, не подскажите как сделать что бы инфа (в пм) отправлялась кроме как по запросу еще и при конекте к хабу? Дописать в конец фунции UserConnected = function(user) table.insert(tUserPm, user) pm = 1 GetInfo() pm = 0 tUserPm = {} sMsg = "" |
|
|
5.3.2010, 11:39
Сообщение
#11
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 7 Регистрация: 4.4.2009 Пользователь №: 2 918 Спасибо сказали: 0 раз |
Подскажите, что изменить надо, чтобы посылал инфу не в ПМ, а в общий чат...
|
|
|
5.3.2010, 13:01
Сообщение
#12
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
Изменить строку 77 на
Core.SendToUser(user, "<"..sBot..">\t\tНовости с трекера "..(sAddr[1])..sMsg) |
|
|
23.3.2010, 7:17
Сообщение
#13
|
|
Активный участник Группа: Пользователи Сообщений: 77 Регистрация: 31.7.2008 Из: Омск Пользователь №: 299 Спасибо сказали: 17 раз |
скрипт не плох...
до того как не наткнешься на рсс ленту с utf-8, это раз или на сайт где в рсс решили все новости месяца запихать порядке тыщи штук, это два (ибо при попытке вывести новости с него просто вешается хаб) если с первой проблемой с помощью функций Utf8ToAnsi попытался справится, пока правда безуспешно, не разобрался как применить её для данного скрипта, то со второй проблемой даже и не знаю что делать upd: перекодировку сделал, спасибо другу за помощь. но вот вопрос касательно "многобукаФ" в рсс ленте остается открытым, кто какие варианты может предложить? В общем ситуация такая: допустим, есть какой-то сайт, на котором в рсс выводится список новостей да хотя бы за текущий месяц, которых уже перевалило за 1000, так вот страница рсс вести примерно 20мб, и естественно при обращении к нему хаб вешается. Так вот что можно сделать, что бы, допустим, с сайта бралось к примеру 30 новостей последних и на этом парсить заканчивало и результат выдавало. |
|
|
23.3.2010, 16:39
Сообщение
#14
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Скрипт конечно по логике туповат т.к. не кеширует запросы юзеров. Я переделал в своем видении немного скрипт, убрал пережитки прошлого апи, и теперь он хранит кеш запроса, за это отвечает настройка
Код iExpired = 30 -- время в минутах на хранение в кеше ответа от сервера Попробуйте его, уверен что останетесь довольны
Прикрепленные файлы
|
|
|
24.3.2010, 13:30
Сообщение
#15
|
|
Активный участник Группа: Пользователи Сообщений: 77 Регистрация: 31.7.2008 Из: Омск Пользователь №: 299 Спасибо сказали: 17 раз |
спасибо, переделал под свои рсс ленты, и добавил проверку на юникод (ну и соот-но перекодировку)
так вот не нужно ли RepChars() переместить ниже: Код sMsg = table.concat(tData) ну или поменять там sMsg на tDataRepChars() а то ведь не работает оно) ну и всё-таки неплохо добавить в RepChars = function() строки sMsg = string.gsub (sMsg, "'", "'") sMsg = string.gsub (sMsg, "&", "&") ну и кажется логичнее будет в chatarrival при проверке: if os.time() > iLastTime + iExpired * 60 then а в getinfo iLastTime = os.time() так как получается хранится не время последнего запроса, а то когда можно будет сделать следующий. |
|
|
24.3.2010, 13:44
Сообщение
#16
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
С RepChars косяк, согласен, поправил. Замены символов добавил. По поводу iLastTime: так сделано чтобы каждый раз не производить лишние математические вычисления, подсчет идет 1 раз и потом уже только сравнение, по-моему так правильней. Скрипт в пост выше перезалил.
Скажи как он ведет себя с БОЛЬШИМИ лентами, не зависает хаб? |
|
|
24.3.2010, 17:02
Сообщение
#17
|
|
Активный участник Группа: Пользователи Сообщений: 77 Регистрация: 31.7.2008 Из: Омск Пользователь №: 299 Спасибо сказали: 17 раз |
Nickolya, на больших лентах еще не тестил, честно скажу он и на маленьких на пару секунд подвисает иногда.. на большой боюсь тестить) Там под 25 мб лента, я думаю зависнет всё равно, да и не нужна бы лента полностью, брать с нее бы просто н-ное кол-во новостей, а остальное отбрасывать и не загружать до конца ленту.
по поводу iLastTime не так уж много расходов будет на сложение и умножение, а вот если с помощью команды смену параметра сделать, то придется поменять на хранение предыдущего запроса, да и тогда можно будет изменять параметр и не ждать окончания срока чтобы он изменился или перестартовывать скрипт. так же можно при неудачном запросе не сохранять время запроса, а в следующий раз пытаться снова в общем у меня GetInfo именно для кинозала выглядит так: Раскрывающийся текст Код GetInfo = function() local tData = {" Новости с трекера "..(sAddr[1])} local Title,Description,Link local fd,sz,hd = h.request(sAddr[2]) if fd and sz == 200 then local enc = string.match(fd, "<%?xml%s+[^>]+encoding=\"([^>]+)\"[^>]*%?>") if enc == "UTF-8" or enc == "utf8" then fd = Utf8ToAnsi(fd) end table.insert(tData, "\n") while string.find(fd,"<title>") do _,_,Title,Description,Link,fd=string.find(fd, "<item>.-<title>(.-)</title>.-<description>(.-)</description>.-<link>(.-)</link>.-</item>(.*)") table.insert(tData, "\n"..sRep.."\t"..Title.."\tСсылка: "..Link.."\r\n"..Description.."\n") end iLastTime = os.time() else table.insert(tData, "\tСайт временно не работает или перегружен, попробуйте позже...") end sMsg = table.concat(tData) RepChars() MemCleaner() end P.S. сейчас проверил на БОЛЬШОЙ ленте, получил то что и ожидал) разве что во второй раз решил подождать, может само развиснет, минут через 15 и правда развисло и написало, что сайт временно перегружен, попробуйте позже |
|
|
25.3.2010, 11:35
Сообщение
#18
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Вполне ожидаемо, пока оно закачает эти 25 мегабайт уйдет вечность, есть у меня задумка сделать отдельную маленькую софтину на luaaio которая будет по запросу как раз и работать с интернетом, в виде отдельной программы которая работает отдельно от хаба. Как вам такая задумка?
|
|
|
15.4.2010, 18:04
Сообщение
#19
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
Шикарная задумка
|
|
|
20.4.2010, 9:51
Сообщение
#20
|
|
Активный участник Группа: Пользователи Сообщений: 67 Регистрация: 12.10.2008 Из: Красноярск Пользователь №: 784 Спасибо сказали: 9 раз |
Tsd, спасиб за вывод в лс..
Терь бы еще так же сделать в скрипте Nickolya =) |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
Kinozal_tv Скрипт новостей с треккера kinozal.tv |
2 | Saymon21 | 7 068 | 24.6.2012, 23:14 Посл. сообщение: Saymon21 | |
Kinozal_tv API2|Скрипт новостей с трекера |
0 | Tsd | 0 | 8.10.2009, 10:00 Посл. сообщение: Tsd |
|
Сейчас: 26.11.2024, 23:20 |