1. Помогите переделать скрипт RSS лент. Данный скрипт отсылает новости с RSS ленты всем пользователям в PM или MainChat, мне нужно сделать так, чтобы RSS новости отсылались в Pm только тому юзеру, который ввёл определённую команду( Например: !rss ) и соответственно скрипт отправлял результат, а не отправление всем по таймеру
2. Как сделать так, чтобы данный скрипт показывал не одну RSS ленту, а несколько. Скажем меню Пользователь//RSS ленты//Новости с форума Факториал - команда !rssfactorial, лента: http://mydc.ru/r/?http://forum.factorial.ru/index.php?act=rssout&id=1; Пользователь//RSS ленты//Новости с нашего форума - команда !rssmyforum, лента http://mydc.ru/r/?http://core.pvt.454.ru/forum/index.php?act=rssout&id=1
Что то типо такого.
Особенно важно, чтобы был осуществлён в скрипте пункт 1 в данной теме.
GetFeed = function() local st = socket.gettime() local s,fd,sz,hd = "",http.request(Feed) if fd and sz then local td,plural = socket.gettime()-st,"секунды." if td > 1 then plural = "секунд." end local time = string.format("%.2f "..plural,td) local msg = ParseFeed(Decode(fd)) local Send = function(str) end local sMsg = ""..tostring(cnt).." новых цитат "..plural.." с: "..Feed.."\n\n"..reply.."\n\n".. "\t\t\tОбработано за: "..time.."\n\n" Mem() end return sMsg end
function ChatArrival(tUser,sData) sData = string.sub(sData,1,-2) local _,_,cmd = string.find(sData, "%b<>%s+(%S+)") if cmd == "!rss" then Core.SendPmToUser(tUser,Bot,GetFeed()) end return true end
Подскажите, как нужно правильно?
Автор: Wariner 19.6.2009, 21:13
просто ты не учёл(забыл как правильно это называется) типо области видимости переменных
Код
GetFeed = function() local st = socket.gettime() local s,fd,sz,hd = "",http.request(Feed) local sMsg if fd and sz then local td,plural = socket.gettime()-st,"секунды." if td > 1 then plural = "секунд." end local time = string.format("%.2f "..plural,td) local msg = ParseFeed(Decode(fd)) local Send = function(str) end sMsg = ""..tostring(cnt).." новых цитат "..plural.." с: "..Feed.."\n\n"..reply.."\n\n".. "\t\t\tОбработано за: "..time.."\n\n" Mem() end return sMsg end
Автор: STRELOK 20.6.2009, 5:31
Вылазит ошибка:
Цитата
\scripts\FeedWatch.lua:137: attempt to concatenate global 'reply' (a nil value)
Автор: STRELOK 21.6.2009, 9:37
Так никто и не знает как ошибку исправить? :(
Автор: Setuper 21.6.2009, 15:17
Нужно посмотреть определена ли глобальная переменная reply, если не определена, её нужно определить.
Автор: STRELOK 21.6.2009, 16:13
Цитата(Setuper @ 21.6.2009, 16:17)
Нужно посмотреть определена ли глобальная переменная reply, если не определена, её нужно определить.
А как это сделать?
Автор: Setuper 21.6.2009, 16:14
просто ищешь где ей присваивается значение
Автор: STRELOK 21.6.2009, 18:40
Здесь?
Код
if bool then cnt = cnt + 1 [b]for i,v in ipairs(val) do reply = reply.."\t"..v.."\n" end[/b] reply = reply.."\n" end