MyDC.ru _ Запросы скриптов для PtokaX _ Rss. Отображение новинок движка Magneto при подключении юзера
Автор: Хабыч 17.1.2010, 23:25
Доброва времени суток. Прошу набросайте пожалуйста маленький рсс парсер который будет выводить новинки движка магнето только при подключении юзера в главный чат.
К примеру: 5 Новых раздач на портале DC++ Magnet--> Название раздачи, ссылка на раздачу.
Сделайте пожалуйста хотя бы маленький набросток. дыры с тегами я уже сам смогу залотать. Как знаю нужен исходный код страницы, http://mydc.ru/r/?http://coolhub.sytes.net/magnet.portal/index.php Зарание большое спасибо
Автор: brauzer84 18.1.2010, 8:07
Вот попробуй этот скрипт возможно это то что тебе нужно. только в стороке local Feed = "http://gamezone.id/DC/rss/index.php" поставь свой адрес. FeedWatch.rar ( 3.08 килобайт )
: 38
Автор: Хабыч 18.1.2010, 11:54
нет не то к сожелению.
Автор: evg 18.1.2010, 12:08
Цитата(Хабыч @ 18.1.2010, 18:54)
нет не то к сожелению.
почему? скрипт кладет N последних сообщений с RSS-канала в файл, остается только дописать вывод всех записей из файла при подключении юзера к хабу.
Автор: Хабыч 18.1.2010, 12:10
Цитата
остается только дописать вывод всех записей из файла при подключении юзера к хабу
вот с этим я думаю не справлюсь. помоги плиз
Автор: evg 18.1.2010, 12:14
эээ, после работы - посмотрю тебе выводить все как в этом скрипте? или достаточно темы записи и ссылки?
Автор: Хабыч 18.1.2010, 12:19
название темы и ссылки на неё достаточно
Автор: evg 18.1.2010, 14:42
в скрипте уже предусмотрен вывод вместе с MOTD, зачем что то переделывать?
Код
-- Append new feeds to MOTD? [Motd restored at script exit] local DoMotd = true
если у вас сайт не в UTF8 а в ANSI (cp1251) то идем на 210 строку и в конце строки заменяем:
Код
Utf8ToAnsi(reply)
на
Код
reply
все остальное в скрптие не работает
Автор: Хабыч 18.1.2010, 16:07
evg спасибо большое
Автор: SAG 18.1.2010, 17:40
при запуске пишет:" \scripts\FeedLogon.lua:77: attempt to index field '?' (a nil value)" . Что надо переделать? птока 0.4.1.1 , XP SP3
все, разобрался, сделал, как написали: " если у вас сайт не в UTF8 а в ANSI (cp1251) то идем на 210 строку и в конце строки заменяем: Код Utf8ToAnsi(reply) на Код reply"
теперь работае. А как сделать чтоб в пм выводилось? и чтобы потом по заданному времени, новые релизы в личку выдавал?
Автор: evg 18.1.2010, 18:18
Цитата(SAG @ 19.1.2010, 0:40)
при запуске пишет:" \scripts\FeedLogon.lua:77: attempt to index field '?' (a nil value)" . Что надо переделать? птока 0.4.1.1 , XP SP3
все, разобрался, сделал, как написали: " если у вас сайт не в UTF8 а в ANSI (cp1251) то идем на 210 строку и в конце строки заменяем: Код Utf8ToAnsi(reply) на Код reply"
теперь работае. А как сделать чтоб в пм выводилось? и чтобы потом по заданному времени, новые релизы в личку выдавал?
надо взять оригинальный скрипт и вывод новостей сделать в ПМ
Core.SendPmToAll(sFromNick, sData) - Послать данные как приват сообщение всем пользователям. Максимальная длина параметра FromNick - 64 символа, максимальная длина параметра Data - 128000 символов.
Автор: SAG 18.1.2010, 18:34
Цитата
надо взять оригинальный скрипт и вывод новостей сделать в ПМ
да у меня уже стоит оригинальный и работает, теперь первый при подключении выводит, а второй по времени но два скирпта многовато, а как бы это в одном (FeedLogon) реализовать?
и эту функцию (Core.SendPmToAll(sFromNick, sData)) куда вставлять?
Автор: Хабыч 18.1.2010, 19:50
копаю, копаю, но не найду. Куда поставить \n перенос строк чтобы название новости было на одной строке, а ссылка на другой?
Автор: evg 19.1.2010, 2:51
на вскидку, строки 201 и 202:
Код
for i,v in ipairs(val) do reply = reply..v end--.."\n" end reply=reply.."\n------------------------------------------------------------------------------------------------------------------------------------\n"
заменить на:
Код
for i,v in ipairs(val) do reply = reply..v.."\n" end reply=reply.."------------------------------------------------------------------------------------------------------------------------------------\n"
под рукой ничего нет, что бы проверить.
Автор: Saymon 20.1.2010, 20:49
а как бы ещё добавить чтобы он жанр публицации считывал например: Пиратская Станция 8 Русская Версия (2010) (Музыка, Жанр: Drum&Bass) ссылка..
Автор: evg 21.1.2010, 3:27
не знаю, что у тебя под жанром идет, но попробуй в коде:
У меня оригинальный скрипт (FeedWatch) новости (локального трекера) выводит в пм, но почему то иногда выводит половину в пм, а половину в общий чат, а иногда в пм пишет только количество новостей, а сами новости отправляет в общий чат. В чем может быть проблемма?
Автор: Nickolya 23.1.2010, 19:24
Скорее всего в ленте новостей присутствует символ разделяющий команды в протоколе, вот он: | Его надо или вырезать из сообщения или заменять на код, как это делается в командах, которые отсылаются клиенту скриптами.
Автор: SAG 23.1.2010, 21:04
а можно это сделать функцией скрипта? к редактированию ленты у меня нет доступа. Если не затруднит, как это сделать, хотя бы небольшой примерчик.
Автор: Nickolya 23.1.2010, 23:15
И даже нужно, делается элементарно, в нужном месте кода, можно перед выводом делаем вот такое действие
Код
sData = sData:gsub("|", "&#".."124;")
при условии что sData это наши выводимые данные. Разделение строки на которую заменяется сделано дабы форум не съел этот символ, т.е. можно убрать ".." из этой строки. Если не получится - выкладывай код скрипта, скажем что надо сделать
Автор: SAG 24.1.2010, 9:29
Спасибо за помощь, все получилось. Поставил здесь:-
Раскрывающийся текст
if next(New) then local reply,cnt = "",0 for key,val in ipairs(New) do local bool = true for i,v in ipairs(Old) do if v[2] == val[2] then bool = false break end end if bool then cnt = cnt + 1 for i,v in ipairs(val) do reply = reply..v.."\n" end reply = reply.."------------------------------------------------------------------------------------------------------------------------------------\n" end end if reply:len() > 0 then local plural = "" if cnt > 1 then plural = "" end Old = New SaveFile(File,Old,"Old") local s = tostring(cnt).." новых цитат"..plural.." с: "..Feed.."\n\n"..reply.."\n\n" s = s:gsub("|", "&#".."124;") if DoMotd and Motd ~= "" then SetMan.SetMOTD(Motd.."\n\n\t"..s) end return s end end end
скрипт стал работать нормально, теперь выводит все в пм. (Плохо когда не знаешь синтаксис и работу функций). Может кто знает где можно взять толковую книгу(обучалку) по луа на русском языке?
Автор: brauzer84 24.1.2010, 13:24
Скрипт FeedLogon вешает клиент по полной. После подключения к хабу пишет только соединён и.... "Программа выполнила недопустимую операцию и будет закрыта" Клиент Pelink 5.95 , 5.62 , 5.84 на других не проверял После отключения этого скрипта всё работает нормально.
И ещё вопрос по скрипту FeedWatch.lua ( 7.35 килобайт )
: 8
Считывает RSS вот в таком виде title: РџСЂРѕС?РёРІРєР° / Hardwired (РСЂРЅРё БарбараС? / Ernie Barbarash) [2009 Рі., фантастика, боевик, DVDRip] (1.37 ГБ, 720x400, ОБНОВЛЕНО 05.11.2009) description: Тема РЅР° форуме: wtopic.php?t=2338794">http://torrents.ru/forum/viewtopic.php?t=2338794
Это проблемы кодировки на сайте? или в скрипте это как-то можно поправить?
Автор: Nickolya 24.1.2010, 13:39
Цитата(SAG @ 24.1.2010, 9:29)
(Плохо когда не знаешь синтаксис и работу функций). Может кто знает где можно взять толковую книгу(обучалку) по луа на русском языке?
Пожалуйста. Луа не так уж и сложен, достаточно изучить 2 и 5 ветки докуменатции: http://mydc.ru/r/?http://www.lua.ru/doc/2.html и http://mydc.ru/r/?http://www.lua.ru/doc/5.html, все на русском и вполне доходчиво
Цитата(brauzer84 @ 24.1.2010, 13:24)
Это проблемы кодировки на сайте? или в скрипте это как-то можно поправить?
Кодировка ленты значит утф, решение проблемы можешь найти, к примеру, здесь: http://mydc.ru/topic111.html, читай внимательно...
Автор: SAG 24.1.2010, 13:41
Цитата(brauzer84 @ 24.1.2010, 13:24)
Скрипт FeedLogon вешает клиент по полной....
Возможно это из-за формата новостей, у меня этот скрипт работает нормально. Попробуй в пелинке отключить смайлы.
Автор: *FoxMalder* 24.1.2010, 15:08
Цитата(evg @ 18.1.2010, 14:42)
в скрипте уже предусмотрен вывод вместе с MOTD, зачем что то переделывать?
Код
-- Append new feeds to MOTD? [Motd restored at script exit] local DoMotd = true
updated: по просьбе Хабыч`а, вот в замен MOTD реализовал вывод на UserConnected все на скорую руку, но, по идее, работать должно без проблем.
что надо изменить чтоб с начало были ссылки а потом название и категория
Автор: evg 25.1.2010, 3:08
Цитата(brauzer84 @ 24.1.2010, 20:24)
Скрипт FeedLogon вешает клиент по полной. После подключения к хабу пишет только соединён и.... "Программа выполнила недопустимую операцию и будет закрыта" Клиент Pelink 5.95 , 5.62 , 5.84 на других не проверял После отключения этого скрипта всё работает нормально.
И ещё вопрос по скрипту FeedWatch.lua ( 7.35 килобайт )
: 8
Считывает RSS вот в таком виде title: РџСЂРѕС?РёРІРєР° / Hardwired (РСЂРЅРё БарбараС? / Ernie Barbarash) [2009 Рі., фантастика, боевик, DVDRip] (1.37 ГБ, 720x400, ОБНОВЛЕНО 05.11.2009) description: Тема РЅР° форуме: wtopic.php?t=2338794">http://torrents.ru/forum/viewtopic.php?t=2338794
Ребят а на верлике запустить данный скрипт не реально?(((
[ Lua ERROR ] /etc/verlihub/scripts/FeedLogon2.lua.lua:49: attempt to index global 'Core' (a nil value)
[23:53:05] <# Ledokol> Warning: Unable to run "curl --version" [23:53:05] <# Ledokol> Warning: Unable to load LuaSocket module: error loading module 'socket.core' from file '/usr/local/lib/lua/5.1/socket/core.so': /usr/local/lib/lua/5.1/socket/core.so: undefined symbol: lua_getmetatable
Автор: Nickolya 22.6.2010, 8:56
Не реально, под верли надо все перерабатывать координально.
Автор: striker 3.10.2010, 9:42
Цитата(Saymon @ 11.4.2010, 3:25)
Кстати, вот чуть переделаный Конечно такой функции нет в нём, но может кому и пригодится.
выскакивает ошибочка такого вида: FeedLogon2.lua:324: attempt to index local 'data' (a nil value)
Автор: Dzhin 7.11.2010, 21:14
Saymon Пасиб биг за скрипт "Вывода релизов(новостей) с сайта в чат хаба" идею+доработку и тем, кто помогал !!! Еле нашел, то что нужно... Хотел обратить внимание на мелочь, но времени убилось... в строчке:
Код
Core.SendToAll("<"..Bot.."> \tНовые раздачи на "..sMsgSite.." \n\t"..sLine.."\n"..reply2) -- если перекодировать из URF8- не надо, то Utf8ToAnsi(reply2) заменить на reply2
идет пояснение так-
Код
Utf8ToAnsi(reply2)
, а надо так-
Код
Utf8ToAnsireply2)
Выставил вывод новостей в главный чат и те и те, но выдает в личку, что в грейлинке, что в пелинге, что и во флайлинке... лишь сам должен регулировать, что появилось в главном чате и то, нужно наоборот жать - Получать в приват-получаешь в общий чат и наоборот... И еще вопрос - как убрать пустые строчки, что остаются после удаления ненужной (для меня) инфы ? Пасиб заранее
---------------------------- P.S. Нихрена он не пашет - раз вывел и все-завис-больше не обновляется и не выводит в чат а затем вообще все слетает с такой ошибкой
Раскрывающийся текст
[00:09] Синтаксис ...Moe\PtokaX ServerDC++\0.4.1.1\scripts\FeedLogon2.lua:287: attempt to concatenate global 'Utf8ToAnsireply2' (a nil value) [00:09] Скрипт запущен.
Автор: Nickolya 17.11.2010, 0:31
Потому что в том пояснении было всё верно, а ты исправил на очень неправильный вариант. Если скобки не хватало, ее надо было добавить, а не удалить. Ошибка, полученная тобой, как раз говорит об этом. Пустые строки это либо \r\n либо просто \n их и удаляй.
Автор: Dzhin 18.11.2010, 22:43
Цитата(Nickolya @ 17.11.2010, 1:31)
Потому что в том пояснении было всё верно, а ты исправил на очень неправильный вариант. Если скобки не хватало, ее надо было добавить, а не удалить. Ошибка, полученная тобой, как раз говорит об этом. Пустые строки это либо \r\n либо просто \n их и удаляй.
В том то все и дело, еслиб все работало, как там написано, я бы сюда и не думал писать... 2 дня убил, разбираясь и настраивая этот скрипт. FeedWatch2 ----------------------------------------------------------------- Изначально в первой строчки стоит так -
Код
..reply2)
то выводит "Последние новинки" в чат хаба с сайта, только русский текст отражает кракозябрами, если меняешь на
Код
Utf8ToAnsi(reply2)
, то пишет такую ошибку:
Код
- [22:15] Синтаксис G:\Moe\PtokaX ServerDC++\0.4.1.1\scripts\FeedLogon2.lua:288: ')' expected (to close '(' at line 287) near 'end'
убираю скобку -
Код
Utf8ToAnsireply2)
- все работает хорошо-но не выводит новинки в чат !!! Убираю скобку, как написано -
Код
..reply2
, выдает такую ошибку:
Код
- [22:19] Синтаксис G:\Moe\PtokaX ServerDC++\0.4.1.1\scripts\FeedLogon2.lua:288: ')' expected (to close '(' at line 287) near 'end'
добавляю одну скобку -
Код
..reply2)
- все заработало-только выводит опять русский текст краказябрами в новых раздачах!!! ------------------------------------------------------------------ Кстати что касается 2-й строчки "Последние раздачи" там изначально идет так -
Код
..reply
Заменяю на -
Код
..Utf8ToAnsi(reply)
Последние раздачи выводятся в нормальной кодировки ------------------------------------------------------------------- Когда в первой строчке делаю все гуд (т.е. убираю левую скобку) и пишет, что скрипт работает без ошибок, то помимо того, что инфа о новых сообщениях не выводиться в чат хаба с сайта, так и вообще перестает обновлять даже "Последние раздачи" ************************************************ Если я правильно понимаю, то в коде скрипта есть ошибка и из-за нее все рушиться...