PtokaX forum

Archive => Archived 4.0 boards => Request for Lua 4 scripts => Topic started by: HaL on 02 January, 2004, 16:13:03

Title: news script
Post by: HaL on 02 January, 2004, 16:13:03
made by donquixote235

code:


BotName = "BrockmanBot"
CommandNews = "+News"

function DataArrival(curUser,data)
local MessageRecognized = 0
if (isMCM(data)==1) then
message=ParseMCM(data)
from=curUser.sName
whoto=BotName
MessageRecognized=1
end
if ((MessageRecognized==1)and(whoto==BotName)) then
HandleCommand(curUser,message)
end
end

function isMCM(data)
if( strsub(data, 1, 1) == "<" ) then
return 1
else
return 0
end
end

function ParseMCM(data)
s,e,message = strfind(data, "%b<> (.*)")
--remove pipe
message = strsub(message,1,strlen(message)-1)
return message
end

function HandleCommand(curUser,message)
command=GetCommand(message)
if (command==CommandNews) then
getNews(curUser)
end
end

function GetCommand(message)
s,e,command=strfind(message,"(%S+)")
return command
end

function getNews(target)
NewsTable = {}
local socket, err = connect("www.drudgereportarchives.com",80)
if not err then
socket:timeout(2)
err = socket:send("GET /dsp/links_recap.htm HTTP/1.1"..strchar(13)..strchar(10).."Host: www.drudgereportarchives.com"..strchar(13)..strchar(10)..strchar(13)..strchar(10))
if not err then
while not(line == "") do
line, err = socket:receive("*l")
end
line, err = socket:receive("*l")
NewsFinal = strchar(13)..strchar(10)..strchar(13)..strchar(10).."========================================"..strchar(13)..strchar(10).."Here's the latest news from BROCKMAN-BOT"..strchar(13)..strchar(10).."========================================"..strchar(13)..strchar(10)
NewsBulk = gsub(line, "     ",'')
NewsBulk = gsub(NewsBulk, ' NewsBulk = gsub(NewsBulk, '" target="_blank">', '~~')
NewsBulk = gsub(NewsBulk, '
', '')
NewsBulk = gsub(NewsBulk, '

', '')
NewsBulk = gsub(NewsBulk, ' - *
', strchar(13)..strchar(10))
NewsBulk = gsub(NewsBulk, '
','')
NewsArray = tokenize(NewsBulk,strchar(13)..strchar(10))
ArticleCount = 0
for index, value in NewsArray do
if index > 1 then
ArticleCount = ArticleCount + 1
ArticleArray=tokenize(value,"~~")
CurrentArticle = ArticleArray[1]..": "..ArticleArray[3]..strchar(13)..strchar(10).."- "..ArticleArray[2].." -"..strchar(13)..strchar(10)
NewsFinal = NewsFinal.."---"..strchar(13)..strchar(10)..CurrentArticle
if (ArticleCount == 10) then
target:SendPM(BotName,NewsFinal)
break
end
end
end
end
end
socket:close()
end

function tokenize (inString,token)
_WORDS = {}
local matcher = "([^?"..token.."]+)"
gsub(inString, matcher, function (w) tinsert(_WORDS,w) end)
return _WORDS
end