Версия для печати темы
MyDC.ru _ Помощь по скриптам для PtokaX _ Помогите подредактировать скрипт
Автор: ImDim 12.1.2012, 23:12
Доброго времени суток. У меня на хабе стоит скрипт новостей с сайта. Он выводит последние новости, которые были добавлены на сайт. Как сделать чтобы при подключении он выводил последнюю новость в главный чат?
Заранее благодарен
Автор: Damaks 13.1.2012, 7:23
А это разве не то?
Код
-- Append new feeds to MOTD? [Motd restored at script exit]
local DoMotd = true
Автор: ImDim 13.1.2012, 13:00
Цитата(Damaks @ 13.1.2012, 8:23)
А это разве не то?
Код
-- Append new feeds to MOTD? [Motd restored at script exit]
local DoMotd = true
Спасибо - разобрался. Вот теперь выводит но до истории чата. Не подскажите как сделать чтобы после истории выводилось?
Автор: Saymon21 13.1.2012, 13:08
Опустить поставить этот скрипт ниже истории чата. Или поднять историю чата.
Автор: Damaks 13.1.2012, 14:40
Цитата(Saymon21 @ 13.1.2012, 14:08)
Опустить поставить этот скрипт ниже истории чата. Или поднять историю чата.
Так ведь ничего не получится, скрипт же в мотд вписывает. Поднимай/опускай, а новости всё равно в мотде будут.
Автор: Ksan 13.1.2012, 15:41
Так-то оно так, штатное МОТД будет выше других скриптовых текстов при входе, но у меня другой вопрос по поводу МОТД...
Я так и не нашёл в скрипте, каким образом формируетсся МОТД (с внедрением в него новостей)..
В скрипте есть строка
Код
if DoMotd and Motd ~= "" then SetMan.SetMOTD(Motd.."\n\n\t"..s) end
и ещё одна аналогичная, только без табов и переводов строки, но нигде нет кода заполнения переменной
Motd неким содержимым.
Если я пропустил, покажите мне это место..
Я скриптом не пользуюсь (и вряд ли буду), но мне просто интересно.
Автор: Damaks 13.1.2012, 16:21
Ksan,
там получает содержимое мотда при старте скрипта, если ты пр это
Код
if DoMotd then Motd = SetMan.GetMOTD() end
Подработал немного, теперь можно отправлять новости юзеру при входе на хабе. Двигай скрипт как хочешь.
Включается в настройках:
Код
-- Отправка новостей юзеру при заходе на хаб
local FeedConnect = true
FeedWatch_1.1.lua ( 8.12 килобайт )
: 12
Автор: Ksan 13.1.2012, 16:23
Цитата
там получает содержимое мотда при старте скрипта, если ты пр это
Но это он получает уже существующее МОТД!
А где тут внедрение новостей в это МОТД?
Автор: Damaks 13.1.2012, 16:26
Цитата(Ksan @ 13.1.2012, 17:23)
Но это он получает уже существующее МОТД!
А где тут внедрение новостей в это МОТД?
Так он потом изменяет мотд по таймеру после поступления новых новостей, дописывая внизу новости. Цитата сверху была:
Код
if DoMotd and Motd ~= "" then SetMan.SetMOTD(Motd.."\n\n\t"..s) end
Автор: Ksan 13.1.2012, 16:41
Блин.......
Где он там меняется?
В каком месте кода в Мотд попадают новости? Покажи мне код.
Ты мне все время показываешь то чтение Мотд (из Птоки), то отправление Мотд в Птоку.
Но где изменение Мотд?
Автор: Damaks 13.1.2012, 17:29
Цитата(Ksan @ 13.1.2012, 17:41)
Где он там меняется?
В каком месте кода в Мотд попадают новости? Покажи мне код.
Ты мне все время показываешь то чтение Мотд (из Птоки), то отправление Мотд в Птоку.
Но где изменение Мотд?
Где отправляется, там и меняется. Какая разница, как менять и отправлять, так:
Код
Motd = Motd.."\n\n\t"..s
SetMan.SetMOTD(Motd)
или так:
Код
SetMan.SetMOTD(Motd.."\n\n\t"..s)
где:
Motd - считанный мотд при старте скрипта
s - текст полученных новостей
Автор: Ksan 13.1.2012, 18:25
Damaks, опс, я не заметил эту маленькую буковку в скрипте - s :(
Блин, можно было бы и подлиннее название переменной дать..
Сорри за предоставленные неприятности!
Автор: ImDim 14.1.2012, 17:29
Damaks Спасибо большое!
Автор: LoT 15.1.2012, 21:04
А можно еще не коверкать MOTD, ничего в него не дописывать, а просто при подключении пользователя выводить ему нужное сообщение.
Зачем это нужно?
Ну просто при некорректном завершении работы хаба, MOTD будет "испорченным", т.е. в нем будет сообщение из RSS, придется сначала править само MOTD, а потом перезапускать скрипт RSS.
--------
Что-то типа такого:
Код
msgN = ""
В функции вывода новости в чат, пихаем эту новость в нашу переменную:
Код
GetFeed = function()
-- ...
local Send = function(str)
msgN = str -- <-- вот эту строчку добавляем
-- ...
end
А потом при подключении пользователя, выводим ему это сообщение, типа такого:
Код
function UserConnected(user)
if (msgN) and (msgN:len() > 0) then -- здесь, возможно, достаточно одного "msgN:len() > 0"
Core.SendToUser(user,"<"..FeedNick.."> "..msgN.."|")
end
end
RegConnected = UserConnected
OpConnected = UserConnected
P.S. Просто как вариант...
Автор: Damaks 16.1.2012, 7:29
LoT, http://mydc.ru/topic5107.html?p=41725#entry41725
Автор: LoT 16.1.2012, 19:33
Damaks, блиииин хехе