myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему

> Kinozal_tv, API2 | Скрипт новостей с трекера

Теги
Нет тегов для показа
Tsd
сообщение 8.10.2009, 10:00
Сообщение #1


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Название скрипта: Kinozal_tv
Автор: Tsd
Версия скрипта: 1.0
Версия API: API2
Описание скрипта: Скрипт отсылает в личку пользователю последние новости с популярного торрент трекера http://kinozal.tv
Прямая ссылка на интересующую новость. Меню. Для работы скрипта требуется библиотека LuaSocket.
Tsd © 09.2009
Прикрепленные файлы
Прикрепленный файл  Kinozal_tv.lua ( 3.38 килобайт ) Кол-во скачиваний: 584
 
Go to the top of the page
+Quote Post
FurLion
сообщение 19.11.2009, 19:39
Сообщение #2


Начинающий
*

Группа: Пользователи
Сообщений: 23
Регистрация: 25.4.2009
Пользователь №: 3 168
Спасибо сказали: 0 раз




Сразу прошу прощения за возможный оффтоп, но можно ли как нибудь приспособить данный скрипт для системы magneto? ибо скрипт очень понравился)
Go to the top of the page
+Quote Post
PSIX
сообщение 23.11.2009, 18:22
Сообщение #3


Начинающий
*

Группа: Пользователи
Сообщений: 14
Регистрация: 5.5.2009
Пользователь №: 3 249
Спасибо сказали: 0 раз




Было бы не плохо если бы этот скрипт перевести на форум тоесть чтобы народ мог смотреть какие поивились на винки на свое лольном форуме или инет ! А скрипт и правду очень интересный спасибо автору этого скрипта !
Go to the top of the page
+Quote Post
serrrios
сообщение 26.11.2009, 0:02
Сообщение #4


Активный участник
***

Группа: Пользователи
Сообщений: 67
Регистрация: 12.10.2008
Из: Красноярск
Пользователь №: 784
Спасибо сказали: 9 раз




Хороший скрипт, быстро переправил под свой трекер и добавил перекодировку из утф-8 =)
Go to the top of the page
+Quote Post
Saymon21
сообщение 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",} -- Основной адрес сайта, адрес ленты новостей.
скажите плиз в чём ошибка?
Go to the top of the page
+Quote Post
serrrios
сообщение 26.11.2009, 21:21
Сообщение #6


Активный участник
***

Группа: Пользователи
Сообщений: 67
Регистрация: 12.10.2008
Из: Красноярск
Пользователь №: 784
Спасибо сказали: 9 раз




Поблема в том что скрипт заточен под трекер Kinozal. И одной подменой адреса рсс проблему не решить.
Go to the top of the page
+Quote Post
Артём
сообщение 26.11.2009, 21:49
Сообщение #7


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Цитата(serrrios @ 26.11.2009, 20:21) *
И одной подменой адреса рсс проблему не решить.

У меня решена .... вот пример одной из переделок Прикрепленный файл  ______.lua ( 4.4 килобайт ) Кол-во скачиваний: 132


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 26.11.2009, 22:06
Сообщение #8


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Если структура одинакова, то использование возможно, в противном случае нужно парсить под нужный формат.
Go to the top of the page
+Quote Post
serrrios
сообщение 15.2.2010, 14:25
Сообщение #9


Активный участник
***

Группа: Пользователи
Сообщений: 67
Регистрация: 12.10.2008
Из: Красноярск
Пользователь №: 784
Спасибо сказали: 9 раз




Народ, не подскажите как сделать что бы инфа (в пм) отправлялась кроме как по запросу еще и при конекте к хабу?
Go to the top of the page
+Quote Post
Tsd
сообщение 2.3.2010, 23:43
Сообщение #10


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Цитата(serrrios @ 15.2.2010, 13:25) *
Народ, не подскажите как сделать что бы инфа (в пм) отправлялась кроме как по запросу еще и при конекте к хабу?


Дописать в конец фунции UserConnected = function(user)

table.insert(tUserPm, user)
pm = 1
GetInfo()
pm = 0
tUserPm = {}
sMsg = ""


Спасибо сказали:
Go to the top of the page
+Quote Post
Greeck
сообщение 5.3.2010, 11:39
Сообщение #11


Абсолютный новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 4.4.2009
Пользователь №: 2 918
Спасибо сказали: 0 раз




Подскажите, что изменить надо, чтобы посылал инфу не в ПМ, а в общий чат...
Go to the top of the page
+Quote Post
Tsd
сообщение 5.3.2010, 13:01
Сообщение #12


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Изменить строку 77 на
Core.SendToUser(user, "<"..sBot..">\t\tНовости с трекера "..(sAddr[1])..sMsg)


Спасибо сказали:
Go to the top of the page
+Quote Post
Cjay
сообщение 23.3.2010, 7:17
Сообщение #13


Активный участник
***

Группа: Пользователи
Сообщений: 77
Регистрация: 31.7.2008
Из: Омск
Пользователь №: 299
Спасибо сказали: 17 раз




скрипт не плох...
до того как не наткнешься на рсс ленту с utf-8, это раз
или на сайт где в рсс решили все новости месяца запихать порядке тыщи штук, это два (ибо при попытке вывести новости с него просто вешается хаб)
если с первой проблемой с помощью функций Utf8ToAnsi попытался справится, пока правда безуспешно, не разобрался как применить её для данного скрипта, то со второй проблемой даже и не знаю что делать

upd: перекодировку сделал, спасибо другу за помощь. но вот вопрос касательно "многобукаФ" в рсс ленте остается открытым, кто какие варианты может предложить?
В общем ситуация такая:
допустим, есть какой-то сайт, на котором в рсс выводится список новостей да хотя бы за текущий месяц, которых уже перевалило за 1000, так вот страница рсс вести примерно 20мб, и естественно при обращении к нему хаб вешается.
Так вот что можно сделать, что бы, допустим, с сайта бралось к примеру 30 новостей последних и на этом парсить заканчивало и результат выдавало.
Go to the top of the page
+Quote Post
Nickolya
сообщение 23.3.2010, 16:39
Сообщение #14


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Скрипт конечно по логике туповат т.к. не кеширует запросы юзеров. Я переделал в своем видении немного скрипт, убрал пережитки прошлого апи, и теперь он хранит кеш запроса, за это отвечает настройка
Код
iExpired = 30    -- время в минутах на хранение в кеше ответа от сервера
Попробуйте его, уверен что останетесь довольны big_smile.gif
Прикрепленные файлы
Прикрепленный файл  Kinozal_tv.lua ( 3.52 килобайт ) Кол-во скачиваний: 102
 


Спасибо сказали:
Go to the top of the page
+Quote Post
Cjay
сообщение 24.3.2010, 13:30
Сообщение #15


Активный участник
***

Группа: Пользователи
Сообщений: 77
Регистрация: 31.7.2008
Из: Омск
Пользователь №: 299
Спасибо сказали: 17 раз




спасибо, переделал под свои рсс ленты, и добавил проверку на юникод (ну и соот-но перекодировку)
так вот не нужно ли RepChars() переместить ниже:
Код
    sMsg = table.concat(tData)
        RepChars()
ну или поменять там sMsg на tData
а то ведь не работает оно)
ну и всё-таки неплохо добавить в RepChars = function() строки
sMsg = string.gsub (sMsg, "&apos;", "'")
sMsg = string.gsub (sMsg, "&amp;", "&")
ну и кажется логичнее будет в chatarrival при проверке:
if os.time() > iLastTime + iExpired * 60 then
а в getinfo
iLastTime = os.time()
так как получается хранится не время последнего запроса, а то когда можно будет сделать следующий.


Спасибо сказали:
Go to the top of the page
+Quote Post
Nickolya
сообщение 24.3.2010, 13:44
Сообщение #16


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




С RepChars косяк, согласен, поправил. Замены символов добавил. По поводу iLastTime: так сделано чтобы каждый раз не производить лишние математические вычисления, подсчет идет 1 раз и потом уже только сравнение, по-моему так правильней. Скрипт в пост выше перезалил.
Скажи как он ведет себя с БОЛЬШИМИ лентами, не зависает хаб?
Go to the top of the page
+Quote Post
Cjay
сообщение 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 и правда развисло и написало, что сайт временно перегружен, попробуйте позже
Go to the top of the page
+Quote Post
Nickolya
сообщение 25.3.2010, 11:35
Сообщение #18


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Вполне ожидаемо, пока оно закачает эти 25 мегабайт уйдет вечность, есть у меня задумка сделать отдельную маленькую софтину на luaaio которая будет по запросу как раз и работать с интернетом, в виде отдельной программы которая работает отдельно от хаба. Как вам такая задумка?


Спасибо сказали:
Go to the top of the page
+Quote Post
Tsd
сообщение 15.4.2010, 18:04
Сообщение #19


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Шикарная задумка
Go to the top of the page
+Quote Post
serrrios
сообщение 20.4.2010, 9:51
Сообщение #20


Активный участник
***

Группа: Пользователи
Сообщений: 67
Регистрация: 12.10.2008
Из: Красноярск
Пользователь №: 784
Спасибо сказали: 9 раз




Tsd, спасиб за вывод в лс..
Терь бы еще так же сделать в скрипте Nickolya =)
Go to the top of the page
+Quote Post

2 страниц V   1 2 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsKinozal_tv
Скрипт новостей с треккера kinozal.tv
2 Saymon21 7 041 24.6.2012, 23:14 Посл. сообщение: Saymon21
Moved Kinozal_tv
API2|Скрипт новостей с трекера
0 Tsd 0 8.10.2009, 10:00 Посл. сообщение: Tsd

 



RSS Сейчас: 23.11.2024, 11:30