REQ: Need a bot to delete unused accounts - Page 3
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

REQ: Need a bot to delete unused accounts

Started by YASHOV, 25 November, 2003, 10:48:28

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Riouel

and this was the error

Syntax Error: function arguments expected;
  last token read: `=' at line 17 in string "code:----------------------------------------------------------..."

??????????

Riouel

plop

QuoteOriginally posted by Riouel
and this was the error

Syntax Error: function arguments expected;
  last token read: `=' at line 17 in string "code:----------------------------------------------------------..."

??????????

Riouel
try copying it again, here that line 19 is a comment (--  or more -----------).
(i'll check if i can upload the scripts on the golden angel website 2night).

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

Riouel

thanx plop

i will try again

Riouel

NightLitch

Download it here you can to:

Download  
//NL

Riouel

it was the code: when i copy it  ;(

thanx for building this one

all is good now

Riouel

plop

good 2 hear that Riouel.
and thx NightLitch.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

sajy2k

i have a question. am i need to add the Registerd users name manually or the bot will automatically detect the registered user?

sajy2k

i canot see the registered users list when i type
!showusers in the mainchat

plop

QuoteOriginally posted by sajy2k
i canot see the registered users list when i type
!showusers in the mainchat
it grabs all registered users from the registered users file from ptokax 0.3.2.6+ on startup.
so my gues it that you are running an older version of ptokax.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

Riouel

#59
--------------------------------------------------------------------- julian day function 2 calcute the time users spend in the hub --------------------------------------------------------------------- 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)

what is the cmd command to see how much time the user is in the hub

thanx plop and i can't find your -Artificial Insanety- bot or script

Riouel  ;)

plop

QuoteOriginally posted by Riouel
what is the cmd command to see how much time the user is in the hub

thanx plop and i can't find your -Artificial Insanety- bot or script

Riouel  ;)
that command your talking about is in the userinfo database from a.i..
the same julian day function is used 2 calculate that.

you got a pm where 2 find a.i..

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

Riouel

i have been read the pm before i read this one  :P

it pop up when i log in  :]

thanx for all your help in this fine board

Riouel  8)

plop

QuoteOriginally posted by Riouel
i have been read the pm before i read this one  :P

it pop up when i log in  :]

thanx for all your help in this fine board

Riouel  8)
yw

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

Skyhawk

Well it seems that the script works but it only scans user with the userlevel 3 (Reg).

But i have some extra user level 4  and 5. Can someone rewrite the script so that it scanns ALL userlevels exept Operators (1) and Masters (0)?

Thanks in advance...


Download it here you can to:

Download


__________________
/NightLitch

plop

quick job, haen't had the time 2 test it, so pls don't kill me if it doesn't work.
but if all goes as planed it now should be posible 2 clean every level you would like.
just stuff the level numbers you want 2 have cleaned in the CleanLevels table, just like the script shows.
-- 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 = "The_Cleaner"
AUTO = 1   -- 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 has been called. Every registered user who hasn't been in the hub for "..WEEKS.." weeks will be deleted. (contact the OP's if your gone be away for a period longer then that)|")
   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 procest, "..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
plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

Smulf

Great script, thanks for using so much time:D If I want to test if the user is deleted after X weeks, in which way would that be posible rather than waiting 1 week minimum...?
[Smulf]

plop

QuoteOriginally posted by Smulf
Great script, thanks for using so much time:D If I want to test if the user is deleted after X weeks, in which way would that be posible rather than waiting 1 week minimum...?
manualy change the date in the seen file and restart the script.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

TiMeTrAVelleR

At this time  in my hub  the cleaner comes on midnight

ani way  i can make it that it cleans  on a different time when more users are online to see it  like around  20.00

TiMe :)

plop

QuoteOriginally posted by T?M??r?V?ll?R
At this time  in my hub  the cleaner comes on midnight

ani way  i can make it that it cleans  on a different time when more users are online to see it  like around  20.00

TiMe :)
try replacing function main for this 1.
--------------------------------------------------------------------- stuff done on bot startup
function Main()
   OpenRegisterdUsersFile()
   LoadNoClean()
   LoadLastSeen()
   CleanDay = 20 -- the hour it should clean (24 style clock)
   onetime = 0
end
and replace this part from dataarival.
function DataArrival(user, data) 
   if AUTO == 1 then
      if CleanDay == date("%H") and onetime == 0 then -- user cleaning trigger, works as a timer without a timer
         CleanUsers()
         onetime = 1
      elseif (CleanDay+1) == date("%H") then
         onetime = 0
      end
   end
plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

TiMeTrAVelleR

oki  changed  it   see what happens  now  

Thanks  :)

TiMeTrAVelleR

Last change  you gave me in pm plop  dident worked    nothing happend  at  20.00

TiMe

TiMeTrAVelleR

[20:00:02] The cleaner has been called. Every registered user who hasn't been in the hub for 2 weeks will be deleted. (contact the OP's if your gone be away for a period longer then that)
 

After  last  changes   you told  me in pm  it works  fine now  m8  Thanks  :)

WickeD

But can eny one post the script that works!

I see that there was problem whit the script that is posted at the topp!

And now you have get it to work!

//WickeD

TiMeTrAVelleR

No NO      no probs  i just wanted  the cleaner to come on a different time  than   it is  standaart  on 24.00 but most users  dont see that here are already to bed      

most users are online around  20.00  so i asked  for  that to plop   zo i can set time  as i please   thats  all script posted here  works  just fine  dont worry

TiMe :)

plop

QuoteOriginally posted by T?M??r?V?ll?R
No NO      no probs  i just wanted  the cleaner to come on a different time  than   it is  standaart  on 24.00 but most users  dont see that here are already to bed      

most users are online around  20.00  so i asked  for  that to plop   zo i can set time  as i please   thats  all script posted here  works  just fine  dont worry

TiMe :)
can you still post the full changed script here, maby there are more ppl who would like 2 have this version.
i frooze windows yesterday and lost the changed code i send you.
btw the version you have now can trigger on every hour you want except 23 o'clock.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

SMF spam blocked by CleanTalk