Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Запросы скриптов для PtokaX _ Rss. Отображение новинок движка Magneto при подключении юзера

Автор: Хабыч 17.1.2010, 23:25

Доброва времени суток. Прошу набросайте пожалуйста маленький рсс парсер который будет выводить новинки движка магнето только при подключении юзера в главный чат.

К примеру:
5 Новых раздач на портале DC++ Magnet-->
Название раздачи, ссылка на раздачу.

Сделайте пожалуйста хотя бы маленький набросток. still_dreaming.gif дыры с тегами я уже сам смогу залотать.
Как знаю нужен исходный код страницы, http://mydc.ru/r/?http://coolhub.sytes.net/magnet.portal/index.php
Зарание большое спасибо big_smile.gif

Автор: 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

эээ, после работы - посмотрю big_smile.gif
тебе выводить все как в этом скрипте? или достаточно темы записи и ссылки?

Автор: Хабыч 18.1.2010, 12:19

название темы и ссылки на неё достаточно big_smile.gif

Автор: evg 18.1.2010, 14:42

в скрипте уже предусмотрен вывод вместе с MOTD, зачем что то переделывать?

Код
-- Append new feeds to MOTD? [Motd restored at script exit]
local DoMotd = true

-----------------------------------------------------------------------------------------------

updated:
по просьбе Хабыч`а, вот в замен MOTD реализовал вывод на UserConnected
все на скорую руку, но, по идее, работать должно без проблем.


 FeedLogon.7z ( 4.49 килобайт ) : 69


если у вас сайт не в UTF8 а в ANSI (cp1251) то идем на 210 строку и в конце строки заменяем:
Код
Utf8ToAnsi(reply)
на
Код
reply


все остальное в скрптие не работает big_smile.gif

Автор: Хабыч 18.1.2010, 16:07

evg спасибо большое big_smile.gif

Автор: 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

а как бы ещё добавить чтобы он жанр публицации считывал baffle.gif
например:
Пиратская Станция 8 Русская Версия (2010) (Музыка, Жанр: Drum&Bass)
ссылка..

Автор: evg 21.1.2010, 3:27

не знаю, что у тебя под жанром идет, но попробуй в коде:

Код
local Fields = {
    ["<title>"] = true,
    ["<pubDate>"] = false,
    ["<category>"] = false,
    ["<description>"] = false,
    ["<link>"] = true,
    ["<author>"] = false,
    ["<dc:creator>"] = false,
    ["<comments>"] = false,
    ["<guid>"] = false,
    }

поставить ["<category>"] = true,
получится:
Код
local Fields = {
    ["<title>"] = true,
    ["<pubDate>"] = false,
    ["<category>"] = true,
    ["<description>"] = false,
    ["<link>"] = true,
    ["<author>"] = false,
    ["<dc:creator>"] = false,
    ["<comments>"] = false,
    ["<guid>"] = false,
    }

Автор: SAG 23.1.2010, 19:04

У меня оригинальный скрипт (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

title: Трансформеры: Месть падС?РёС… / Transformers: Revenge of the Fallen (Майкл Бэй / Michael Bay) [2009 Рі., Фантастика, боевик, приключения, HDRip] IMAX (2.19 ГБ, 704x384, ОБНОВЛЕНО 05.11.2009)
description: Тема на форуме: wtopic.php?t=2386962">http://torrents.ru/forum/viewtopic.php?t=2386962

Это проблемы кодировки на сайте? или в скрипте это как-то можно поправить?



Автор: 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, все на русском и вполне доходчиво big_smile.gif

Цитата(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

title: Трансформеры: Месть падС?РёС… / Transformers: Revenge of the Fallen (Майкл Бэй / Michael Bay) [2009 Рі., Фантастика, боевик, приключения, HDRip] IMAX (2.19 ГБ, 704x384, ОБНОВЛЕНО 05.11.2009)
description: Тема на форуме: wtopic.php?t=2386962">http://torrents.ru/forum/viewtopic.php?t=2386962

Это проблемы кодировки на сайте? или в скрипте это как-то можно поправить?

надо отключить перекодировку в UTF8 выше описано, как это сделать:
строка 210 в конце строки заменить: Utf8ToAnsi(reply) на reply

Автор: SAG 10.4.2010, 6:34

Что надо сделать, чтобы скрипт отсылал сообщения только определённному IP диапазону?

Автор: Saymon 10.4.2010, 21:25

Кстати, вот чуть переделаный big_smile.gif
Конечно такой функции нет в нём, но может кому и пригодится. big_smile.gif

 FeedLogon2.lua ( 21.81 килобайт ) : 37
 

Автор: mzjkez0r 21.6.2010, 21:55

Ребят а на верлике запустить данный скрипт не реально?(((

[ 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) *
Кстати, вот чуть переделаный big_smile.gif
Конечно такой функции нет в нём, но может кому и пригодится. big_smile.gif

выскакивает ошибочка такого вида: 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)


Выставил вывод новостей в главный чат и те и те, но выдает в личку, что в грейлинке, что в пелинге, что и во флайлинке...
лишь сам должен регулировать, что появилось в главном чате и то, нужно наоборот жать - Получать в приват-получаешь в общий чат и наоборот...
И еще вопрос - как убрать пустые строчки, что остаются после удаления ненужной (для меня) инфы ?
Пасиб заранее exciting.gif

----------------------------
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)

Последние раздачи выводятся в нормальной кодировки
-------------------------------------------------------------------
Когда в первой строчке делаю все гуд (т.е. убираю левую скобку) и пишет, что скрипт работает без ошибок, то помимо того, что инфа о новых сообщениях не выводиться в чат хаба с сайта, так и вообще перестает обновлять даже "Последние раздачи"
************************************************
Если я правильно понимаю, то в коде скрипта есть ошибка и из-за нее все рушиться...