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

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

MyDC.ru _ Помощь по скриптам для PtokaX _ Помогите подредактировать скрипт

Автор: ImDim 12.1.2012, 23:12

Доброго времени суток. У меня на хабе стоит скрипт новостей с сайта. Он выводит последние новости, которые были добавлены на сайт. Как сделать чтобы при подключении он выводил последнюю новость в главный чат?
Заранее благодарен big_smile.gif

 FeedWatch.rar ( 3.18 килобайт ) : 14
 

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

Автор: LoT 16.1.2012, 19:33

Damaks, блиииин baffle.gif хехе