PtokaX forum

Archive => Archived 5.0 boards => Request for scripts => Topic started by: BoJlk on 14 March, 2005, 01:32:27

Title: Couple Scripts to convert to Lua.5
Post by: BoJlk on 14 March, 2005, 01:32:27
Can some1 convert those scripts to Lua.5?
i'll really appreciate it:

Bot Manager by Mutor
-- BotMgr 1.01b
-- by Mutor
--
-- Add/Remove botnames to/from user list
-- Option for context menu [you can add more of your own commands]
-- Sends PM to OPs when bot added or removed
-- Allow command by profile
-- !delbot --Remove bot from user list
-- !addbot --Add bot to user list
--
-- Restart scripts will list bot again...
-------------------------------------------------------------------------
aprof = 0 -- Masters are authorized to use these commands
SendMenu = "0" -- Provide context [right click] menu commands, 0 for no
-------------------------------------------------------------------------
Bot = frmHub:GetHubBotName(BotManager)

function NewUserConnected(user)
if SendMenu == "1" then
if user.iProfile == aprof then
customCMDS(user)
user:SendData(" *** Notice :: Right click hub tab or user list for Admin commands. ***")
else
return
end
else
end
end

OpConnected = NewUserConnected

--$UserCommand 1 X  Where -> 1=Hub Menu 2=User Menu 3=Hub/User Menu
function customCMDS(user)
--user:SendData("$UserCommand 255 7") --clear the menu first
user:SendData("$UserCommand 1 3 [Admin]\\Remove Bot $<%[mynick]> !delbot %[line:BotNick]||")
user:SendData("$UserCommand 1 3 [Admin]\\Restore Bot $<%[mynick]> !addbot %[line:BotNick]||")
end

function DataArrival(user, data)
if user.iProfile == aprof then
if strsub(data,1,1)=="<" then
data=strsub(data,1,strlen(data)-1)
s,e,cmd,name = strfind(data,"%b<>%s+(%S+)%s+(%S+)")
if cmd=="!delbot" then
frmHub:UnregBot(name)
SendPmToOps(Bot, user.sName.." has removed the bot [ "..name.." ] from the user list.")
return 1
elseif cmd=="!addbot" then
frmHub:RegBot(name)
SendPmToOps(Bot, user.sName.." has added the bot [ "..name.." ] to the user list.")
return 1
end
end
end
end
Title:
Post by: BoJlk on 14 March, 2005, 01:33:37
TimeOut Bot by BottledHate
--//TimeOut Bot v0.5
--//By: BottledHate
--//Requested by: AMediaMan
--//24/09/04
--//14/09/04(first release)

--//if using new pto w/ lua 5 erase this stuff...
string = {}
string.sub = strsub
string.find = strfind
string.gsub = gsub
string.len = strlen
string.lower = strlower
string.type = type
string.format = format
io = {}
io.open = openfile
io.close = closefile
io.write = write
os={}
os.execute = execute
os.clock = clock
table= {}
table.getn = getn
table.insert = tinsert
table.remove = tremove
math = {}
math.random = random

--// ok stop erasing!

tUserDefined = {--//Don't Touch
--//edit the stuff in quotes to your liking:
 --//(cmds are for ops only)
aWord = "!addword", --//
Title:
Post by: BoJlk on 14 March, 2005, 01:37:32
And the UserCleaner by plop
-- auto/manual registered user cleaner if user hasn't been in the hub for x weeks
-- made by plop
-- julian day function made by the guru tezlo
-- code stripped from artificial insanety bot

-- !noclean add/remove  - adds/removes users from/to the list which aren't cleaned
-- !showusers - shows all registered users
-- !seen - shows the last time the user left the hub
-- !shownoclean - shows all names wich are on the noclean list
-- !cleanusers - manualy start the usercleaner

-- a folder named userinfo is needed for this bot 2 work

--------------------------------------------------------------------- config
WEEKS = 4    -- every1 older then x weeks is deleted
Bot = "User?Cleaner"
AUTO = 0   -- use 1 for automode, 0 for manual
CleanLevels = {[3]=1,[4]=1,[5]=1} -- levels it needs 2 clean

---------------------------------------------------------------------  the needed tables
UsersTable = {}
Seen = {}
NoClean = {}


--------------------------------------------------------------------- julian day function 2 calcute the time users spend in the hub
function jdate(d, m, y)
local a, b, c = 0, 0, 0
if m <= 2 then
y = y - 1
m = m + 12
end
if (y*10000 + m*100 + d) >= 15821015 then
a = floor(y/100)
b = 2 - a + floor(a/4)
end
if y <= 0 then c = 0.75 end
return floor(365.25*y - c) + floor(30.6001*(m+1) + d + 1720994 + b)
end

--------------------------------------------------------------------- loading the last seen database
function LoadLastSeen()
   readfrom("userinfo/lastseen.lst")
   while 1 do
      local line = read()
      if line ==  nil then
         break
      end
      local s,e,name,date = strfind(line, "(.+)$(.+)")
      if name ~= nil then
         Seen[name]=date
      end
   end
   readfrom()
end

--------------------------------------------------------------------- saving last seen date
function SaveSeen()
   writeto("userinfo/lastseen.lst")
   for a,b in Seen do
      Seen[a]=b
      write(a.."$"..b.."\n")
   end
   writeto()
end

--------------------------------------------------------------------- call the garbage man
function Clear()
   collectgarbage()
   flush()
end

--------------------------------------------------------------------- opening the registered users file from ptokax and inserting the users into the table
function OpenRegisterdUsersFile()
   readfrom("../RegisteredUsers.dat")
   UsersTable = nil
   Clear()
   UsersTable = {}
   while 1 do
      local line = read()
      local name, level
      if line == nil then
         readfrom()
         break
      end
      s,e,name,level = strfind(line,"(.+)|.+|(.+)")
      if CleanLevels[tonumber(level)] then
         UsersTable[name] = 1
      end
   end  
end

--------------------------------------------------------------------- extracting the time/date when a user was last seen from the database
function SeenUser(user, data)
   s,e,who = strfind(data, "%b<>%s%S+%s(.+)")
   if who == nil then
      user:SendPM(Bot, "Syntax error, can't read your mind, pls tell me wich user you wanne check|")
   elseif Seen[who] then
      user:SendPM(Bot, who.." was last seen on: "..Seen[who].."|")
   else
      user:SendPM(Bot, who.." is a unknown user|")
   end
end

--------------------------------------------------------------------- shows all the nicks of all registered users
function NewShowUsers(user)
   local lines = {}
   local info = "\r\n\r\n"
   info = info.."  Here are the registered users\r\n"
   info = info.."=====================================\r\n"
   for a,b in UsersTable do
      tinsert(lines, a)
   end
   sort(lines)
   for i=1,getn(lines) do
      info = info.."  "..lines[i].."\r\n"
   end
   info = info.."=====================================\r\n"
   user:SendPM(Bot, info.." |")
   Clear()
end

--------------------------------------------------------------------- shows all the nicks on the no clean list
function ShowNoClean(user)
   local lines =  {}
   local info = "\r\n\r\n"
   info = info.." Here are the users who aren't cleaned\r\n"
   info = info.."=====================================\r\n"
   for a,b in NoClean do
      tinsert(lines, a)
   end
   sort(lines)
   for i=1,getn(lines) do
      info = info.."  "..lines[i].."\r\n"
   end
   info = info.."=====================================\r\n"
   user:SendPM(Bot, info.." |")
   Clear()
end

--------------------------------------------------------------------- cleanup old users
function CleanUsers()
   SendToAll(Bot, "The cleaner Started. Every registered user who hasn't been in the hub for "..WEEKS.." weeks will be deleted...|")
   OpenRegisterdUsersFile()
   local s,e,month,day,year = strfind(date("%x"), "(%d+)%/(%d+)%/(%d+)")
   year = "20"..year
   local juliannow = jdate(tonumber(day), tonumber(month), tonumber(year))
   local oldest = WEEKS*7
   local Count2,Count = 0,0
   for a,b in UsersTable do
      Count = Count+1
      if Seen[a] then
         if NoClean[a]== nil then
            local s,e,monthu,dayu,yearu = strfind(Seen[a], "(%d+)%/(%d+)%/(%d+)")
            yearu = "20"..yearu
            local julianu = jdate(tonumber(dayu), tonumber(monthu), tonumber(yearu))
            if (juliannow - julianu) > oldest then
               Count2 = Count2 +1
               Seen[a] = nil
               DelRegUser(a)
            end
         end
      else
         Seen[a] = date("%x")
      end
   end
   if Count ~= 0 then
      SendToAll(Bot, Count.." users were processed, "..Count2.." of them were deleted.|")
   end
   SaveSeen()
   OpenRegisterdUsersFile()
end

--------------------------------------------------------------------- don't clean this users adding/removing
function NoCleanUser(user, data)
   local s,e,who, addrem = strfind(data, "%b<>%s+%S+%s+(%S+)%s+(%S+)%s*")
   if (who or addrem) == nil then
      user:SendData(Bot, "RTFM ;). it's !noclean |")
   elseif UsersTable[who] then
      if addrem == "add" then
         if NoClean[who] then
            user:SendData(Bot, who.." is allready on the imune list.|")
         else
            NoClean[who] = 1
            user:SendData(Bot, who.." is added to the imune list and won't be cleaned.|")
            SaveNoClean()
         end
      elseif addrem == "remove" then
         if NoClean[who] then
            NoClean[who] = nil
            user:SendData(Bot, who.." is removed from the imune list.|")
            SaveNoClean()
         else
            user:SendData(Bot, who.." was not on the imune list.|")
         end
      else
         user:SendData(Bot, "RTFM ;). it's !noclean |")
      end
   else
      user:SendData(Bot, who.." isn't a registered user.|")
   end
end

--------------------------------------------------------------------- save no clean users 2 file
function SaveNoClean()
   writeto("userinfo/noclean.lst")
   for a,b in NoClean do
      write(a.."\n")
   end
   writeto()
end

--------------------------------------------------------------------- load no clean users from file
function LoadNoClean()
   readfrom("userinfo/noclean.lst")
   while 1 do
      local line = read()
      if line == nil then
         readfrom()
         break
      end
      NoClean[line] = 1
   end
end

--------------------------------------------------------------------- do i need 2 explain this ?????
function DataArrival(user, data)
   if AUTO == 1 then
      if CleanDay ~= date("%x") then -- user cleaning trigger, works as a timer without a timer
         CleanDay = date("%x")
         CleanUsers()
      end
   end
   if( strsub(data, 1, 1) == "<" ) then
      if user.bOperator then
         data=strsub(data,1,strlen(data)-1)
         s,e,cmd = strfind(data,"%b<>%s+(%S+)")
         if cmd == "!noclean" then
            NoCleanUser(user, data)
            return 1
         elseif cmd == "!showusers" then
            NewShowUsers(user)
            return 1
         elseif cmd == "!shownoclean" then
            ShowNoClean(user)
            return 1
         elseif cmd == "!seen" then
            SeenUser(user, data)
            return 1
         elseif cmd =="!cleanusers" then
            CleanUsers()
            return 1
         end
      end
   end
end

--------------------------------------------------------------------- stuff done when a user/vip leaves
function UserDisconnected(user)
if UsersTable[user.sName] then
      Seen[user.sName]=date("%x")
      SaveSeen()
   end
end

--------------------------------------------------------------------- do the same stuff for op's if needed
function OpDisconnected(user)
if UsersTable[user.sName] then
      Seen[user.sName]=date("%x")
      SaveSeen()
   end
end

--------------------------------------------------------------------- stuff done on bot startup
function Main()
   OpenRegisterdUsersFile()
   LoadNoClean()
   LoadLastSeen()
   CleanDay = date("%x")
end

[size=10]I apologise it came out in three POSTs i wanted to keep it organized[/size]
Title:
Post by: Pothead on 14 March, 2005, 02:03:43
bit big writing that innit ?
search the forum both me and someone else have already converted the plop's usercleaner. :)
Title:
Post by: BoJlk on 14 March, 2005, 02:29:05
ok...will do
*edit
no search results  ?(
Title:
Post by: jiten on 14 March, 2005, 10:05:58
Try this:

-- BotMgr 1.01b
-- by Mutor
-- converted to LUA 5 by jiten
--
-- Add/Remove botnames to/from user list
-- Option for context menu [you can add more of your own commands]
-- Sends PM to OPs when bot added or removed
-- Allow command by profile
-- !delbot --Remove bot from user list
-- !addbot --Add bot to user list
--
-- Restart scripts will list bot again...
-------------------------------------------------------------------------
aprof = 0 -- Masters are authorized to use these commands
SendMenu = "0" -- Provide context [right click] menu commands, 0 for no
-------------------------------------------------------------------------
Bot = frmHub:GetHubBotName(BotManager)

function NewUserConnected(user)
if SendMenu == "1" then
if user.iProfile == aprof then
customCMDS(user)
user:SendData(" *** Notice :: Right click hub tab or user list for Admin commands. ***")
else
return
end
else
end
end

OpConnected = NewUserConnected

--$UserCommand 1 X  Where -> 1=Hub Menu 2=User Menu 3=Hub/User Menu
function customCMDS(user)
--user:SendData("$UserCommand 255 7") --clear the menu first
user:SendData("$UserCommand 1 3 [Admin]\\Remove Bot $<%[mynick]> !delbot %[line:BotNick]||")
user:SendData("$UserCommand 1 3 [Admin]\\Restore Bot $<%[mynick]> !addbot %[line:BotNick]||")
end

function ChatArrival(user, data)
if user.iProfile == aprof then
if string.sub(data,1,1)=="<" then
data=string.sub(data,1,string.len(data)-1)
s,e,cmd,name = string.find(data,"%b<>%s+(%S+)%s+(%S+)")
if cmd=="!delbot" then
frmHub:UnregBot(name)
SendPmToOps(Bot, user.sName.." has removed the bot [ "..name.." ] from the user list.")
return 1
elseif cmd=="!addbot" then
frmHub:RegBot(name)
SendPmToOps(Bot, user.sName.." has added the bot [ "..name.." ] to the user list.")
return 1
end
end
end
end
Title:
Post by: jiten on 14 March, 2005, 10:20:19
For the usercleaner, try these links:

Link 1 (http://board.univ-angers.fr/thread.php?threadid=3805&boardid=26&sid=818cfb8294cc991958750ad30af5748a)

Link 2 (http://board.univ-angers.fr/thread.php?threadid=3818&boardid=26&sid=818cfb8294cc991958750ad30af5748a)

Best regards,

jiten