PtokaX forum

Archive => Archived 5.0 boards => Help with scripts => Topic started by: dragos_sto on 03 May, 2005, 18:58:58

Title: description overwrite
Post by: dragos_sto on 03 May, 2005, 18:58:58
need some help whit tis script
i try to overwrite description for users based on ip
the code i modify it bellow
      -- welcomemesses script by AmsterdamBulldogs

login = {
["BotName"] = frmHub:GetHubBotName().."_Login",
["Hubowner"] = "dragos_sdcxp",
["webadres"] = "http://10.48.8.252",
["Forumadres"] = "Nu este momentan disponibila",
["helpcommand"] = "Click dreapta"
}
local kb = "1024"
local mb = kb*kb
local gb = mb*kb
local tb = gb*kb

function NewUserConnected(user)
Message(user)
end

function OpConnected(user)
Message(user)
end

--// Profile Counter
function ProfileCounter(profile)
local table, count = GetUsersByProfile(profile), 0
for i, User in table do
if GetItemByName(User) then
count = count + 1
end
end
return count
end

--//Reg User Count
function OnlineRegUsers()
local table, count = frmHub:GetOnlineUsers(), 0
for i, User in table do
if User.iProfile >=0 then
count = count + 1
end
end
return count
end
--//ip calculate
function compip(ips)
local _,_,a,b,c,d = string.find(ips, "(%d+).(%d+).(%d+).(%d+)")
return ((a*16777216) + (b*65536) + (c*256) + d)
end

--GetOnlineUsers
function Message(user)
local timeanddate = os.date("%d-%m-%Y  %H:%M:%S")
local tmp = os.clock()
local weeks, days, hours, minutes, seconds = math.floor(tmp/604800), math.floor(math.mod(tmp/86400, 7)), math.floor(math.mod(tmp/3600, 24)), math.floor(math.mod(tmp/60, 60)), math.floor(math.mod(tmp/1, 60))
if frmHub:GetHubTopic() == nil then
topic = "No topic set"
else
topic = frmHub:GetHubTopic()
end
if frmHub:GetHubName() ==nil then
HubName = "No hub name"
else
HubName = frmHub:GetHubName()
end
if frmHub:GetHubAddress() ==nil then
HubAddress = "Hub owner not specify"
else
HubAddress = frmHub:GetHubAddress()
end

if user.sMyInfoString then
      local disp = ""
      doGetProfile =  GetProfileName(user.iProfile) or "Not registerd (request reg white +reqreg )"
      hubshare = string.format("%0.3f", frmHub:GetCurrentShareAmount()/(tb)).." TB"
      local s,e,name,desc,speed,email,share = string.find(user.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
--try to modify description
      local ipuser = compip(user.sIP)
      desc = "Dont work"
      if ipuser == (127*16777216 + 1) then desc = "Test"
      elseif ipuser > (10*16777216 + 48*65536 + 8*256 ) and ipuser < (10*16777216 + 48*65536 + 8*256 + 255) then desc = "DTNET ... ADY 0722144079"
      elseif ipuser > (10*16777216 + 48*65536 + 9*256 ) and ipuser < (10*16777216 + 48*65536 + 9*256 + 255) then desc = "DTNET ... Bogdan 0744910529"
      elseif ipuser == (10*16777216 + 48*65536 + 10*256 + 14) then desc = "Sebastian"
      elseif ipuser > (10*16777216 + 48*65536 + 10*256 ) and ipuser < (10*16777216 + 48*65536 + 10*256 + 255) then desc = "DTNET ... ADY 0722144079"
      elseif ipuser > (10*16777216 + 48*65536 + 11*256 ) and ipuser < (10*16777216 + 48*65536 + 11*256 + 255) then desc = "DTNET ... Dragos 0723657274"
      elseif ipuser > (10*16777216 + 48*65536 + 12*256 ) and ipuser < (10*16777216 + 48*65536 + 15*256 + 255) then desc = "Sebastian"
      end
      SendToAll( "$MyINFO $ALL "..name.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
--dont work
      if share then
         minshare = string.format("%0.3f", tonumber(share)/gb).." GB"
      else
         minshare = "Corrupt"
      end
      border1 = "  <=========================Mesaj de Bun Venit: "..user.sName.."================================>"
      border2 = "  <================Sa Aveti ce Discuta si Downloada "..user.sName.."=========================>"
      disp = "\r\n\r\n"..border1.."\r\n"
      disp = disp.." ?Numele Hubului: "..HubName.."\r\n"
      disp = disp.." ?Descriere: "..frmHub:GetHubDescr().."\r\n"
      disp = disp.." ?Data si ora pe hub: "..timeanddate.."\r\n"
      disp = disp.." ?Topicul Hubului: "..topic.."\r\n"
      disp = disp.."\r\n"
      disp = disp.." ?Ipul Tau: "..user.sIP.."\r\n"
      disp = disp.." ?Marimea Sherului Tau: "..minshare.."\r\n"
      disp = disp.." ?Cerinta Pentru Minim Sher: "..frmHub:GetMinShare()/(1024*1024).." MB\r\n"
      disp = disp.." ?Profilul Tau pe hub: "..doGetProfile.."\r\n"
      disp = disp.." ?Sherul Total pe Hub: "..hubshare.."\r\n"
      disp = disp.." ?Propietar Hub:         "..login.Hubowner.."\r\n"
      disp = disp.." ?Adresa Habului:         "..HubAddress..":"..frmHub:GetHubPort().."\r\n"
      disp = disp.." ?Adresa Web a Habului:         "..login.webadres.."\r\n"
      disp = disp.." ?Adresa Forumului:       "..login.Forumadres.."\r\n"
      disp = disp.." ?Sunt Acum   "..frmHub:GetUsersCount().." useri din "..frmHub:GetMaxUsers().. "\r\n"--"\r\n\t\t\t\t\t Dupa  "..weeks.." Saptamani "..days.." Zile "..hours.." Ore "..minutes.." Minute si "..seconds.." Secunde \r\n
      disp = disp.." ?Dintrecare  : "..OnlineRegUsers().." useri Inregistrati sunt Online\r\n"
      disp = disp.." ?Comenzi Disponibile                "..login.helpcommand.."\r\n"
      disp = disp.." ?This hub is Powered by: ? "..login.Hubowner.." - Made by _sdcxp_?\r\n"..border2.."\r\n"

 user:SendData(login.BotName, disp)

 disp = nil
   end
end

some one pls help or a hint
Title:
Post by: bastya_elvtars on 03 May, 2005, 20:37:17
Please post English then, or you ca post Hungarian for me as well. :P
Title:
Post by: dragos_sto on 03 May, 2005, 20:48:59
i thing ,what it write in romanian dont have  influence on sintax and not  affect the code

if you look on this forum it the robocop login
this it the script i modify whit few change


and sorry for my English (http://www.dictionare.com/english/dictionaries.htm)
Title:
Post by: bastya_elvtars on 03 May, 2005, 20:54:03
QuoteOriginally posted by dragos_sto
i thing ,what it write in romanian dont have  influence on sintax and not  affect the code

if you look on this forum it the robocop login
this it the script i modify whit few change


and sorry for my English (http://www.dictionare.com/english/dictionaries.htm)

OK, I see it now. Then, what is the problem? Do you want to convert this script, or you already did, just keeps crashing?

-- // offtopic

Use sztaki.hu if you speak Hungarian...
Title:
Post by: dragos_sto on 03 May, 2005, 22:34:10
sorry fot misunderstanding, what i want it some body to giveme one  suggestion,or what i did wrong

the script above dont overwrite users description

example if connect to server from same computer the description i  want to be seen from user to be "test"
Title:
Post by: bastya_elvtars on 04 May, 2005, 01:33:30
Then you have to resend user's myinfo at every MyINFOArrival, and with splitted myinfos, I am pretty unsure whether this will work correctly.
Title:
Post by: dragos_sto on 04 May, 2005, 08:32:35
10x a lot i will try
Title: still dont work
Post by: dragos_sto on 04 May, 2005, 13:38:38
10x to bastya_elvtars for advice
i develop next code , but still dont work
         function MyINFOArrival(User, Data)
SendToAll(changedesc(User, Data))

end
function changedesc(user, data)
--get user info
local s,e,name,desc,tag,speed,email,share = string.find(user.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)<([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
--change description
desc = "Test"
--rebuild Myinfo ALL
desc = "$MyINFO $ALL "..name.." "..desc.."<"..tag.."$ $"..speed.."$"..email.."$"..share.."$"
return desc
end



the  strange  thing will happen it when one master connect users se the new description ,
but for unreg user dont work
Title:
Post by: bastya_elvtars on 04 May, 2005, 14:19:00
Please remove the OpConnected and NewUserConnected part. Only do things on MyINFOArrival and also review the return value of changedesc, it contains typos.
Title:
Post by: dragos_sto on 05 May, 2005, 07:17:36
ok 10x to ppk and for explain and to bastya_elvtars
try to help me , but will not workind for the moment ,maybe in future will work .
ppk answer to my problem here (http://board.univ-angers.fr//thread.php?threadid=4296&boardid=1&sid=7b25f1c29ce87b5ef3bf5c4762a471a9&page=5#95)
Title: succses
Post by: dragos_sto on 25 June, 2005, 06:18:41
-- BotName --
HubBot = frmHub:GetHubBotName()
--time after user connect to overwrite the description
TimeOverWrite = 60 -- time in second
-- range ip overwrite ="begin ip range-end ip range-description"
-- not teste whit space in description
RangeDesc = {[1]="10.39.2.1-10.39.7.255-Mitnet_Ghencea", [2]="10.39.1.1-10.39.1.255-Dtnet",
      [3]="172.16.0.1-172.16.255.255-Crimenet", [4]="10.48.10.14-10.48.10.14-Sebastian_Net",
      [5]="10.48.15.1-10.48.15.255-Sebastian_net",[6]="10.48.8.1-10.48.10.13-Mitnet_DrTaberei",
      [7]="10.48.10.15-10.48.11.255-Mitnet_DrTaberei"}
 
-- Info Path --
InfoLog = "UserInfo/" -- Create this folder before starting the script

function Main()
   SetTimer(TimeOverWrite*1000)
end
   
-- New User Connect Info Arrival
function MyINFOArrival(curUser,data)
if GetTimer() == nil then StartTimer() end
end

function OnTimer()
   OverWrite(HubBot)
   StopTimer()
end

function rebuilmyinfo(curUser)
   local descript,userip = nil,calcip(curUser.sIP)
   if userip ~= 0 then
         for index,descIP in RangeDesc do
            local _,_,startRange,endRange,RangeDescript = string.find(descIP, "(.*)-(.*)-(.*)")
            startRange = calcip(startRange)
            endRange = calcip(endRange)
            if userip>=startRange and userip<=endRange then
               descript = RangeDescript
            end
         end
      if descript == nil then descript = "Extern" end
      local _,_,nick,orgdescr,rest = string.find(curUser.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)<(.*)")
      SendToAll("$MyINFO $ALL "..nick.." "..descript.."<"..rest)
      end
end

function calcip(ipcalc)
   local _,_,a,b,c,d = string.find(ipcalc, "(%d+).(%d+).(%d+).(%d+)")
   local calc = 0
   if (tonumber(a) and tonumber(b) and tonumber(c) and tonumber(d)) then
      calc = a*16777216 + b*65536 + c*256 + d   
      return calc
      else return 0
   end
end

function OverWrite(curUser)
   local tableover = frmHub:GetOnlineUsers()
   for i, Userover in tableover do
      rebuilmyinfo(Userover)
   end
end
Title:
Post by: wegface on 29 June, 2005, 01:01:27
I would like a script that can do this but based on nick rather than i.p. Would anyone be able to change it for me please?
(edit) can be much simpler no need for profile check etc as all op hub.
Title:
Post by: dragos_sto on 29 June, 2005, 03:30:21
i made something , not tested
-- BotName --
HubBot = frmHub:GetHubBotName()
--time after user connect to overwrite the description
TimeOverWrite = 60 -- time in second
-- not teste whit space in description
RangeDesc = {[1]="Nick-New_Description",[2]="secondnick-Other_description"}
InfoOver={}
-- Info Path --

function Main()
SetTimer(TimeOverWrite*1000)
end

-- New User Connect Info Arrival
function MyINFOArrival(curUser,data)
InfoOver[curUser.sName] = 1
if GetTimer() == nil then StartTimer() end
end

function OnTimer()
OverWrite(HubBot)
StopTimer()
end

function rebuilmyinfo(InfoUser,descript,Userover,wherto)
local _,_,nick,orgdescr,rest = string.find(InfoUser.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)<(.*)")
if wherto == 1 then
SendToAll("$MyINFO $ALL "..nick.." "..descript.."<"..rest)
else
SendToNick(Userover.sName,"$MyINFO $ALL "..nick.." "..descript.."<"..rest)
end
end



function OverWrite(curUser)
local tableover = frmHub:GetOnlineUsers()
for i, Userover in tableover do
if InfoOver[Userover.sName] == 1 then
for index,descNick in RangeDesc do
local _,_,Nickchange,Descript = string.find(descNick, "(.*)-(.*)")
if Userover.sName == Nickchange then
rebuilmyinfo(Userover,Descript,HubBot,1)
end
for j, User2over in tableover do
if User2over.sName == Nickchange then
rebuilmyinfo(User2over,Descript,Userover,0)
end
end
end
end
InfoOver[Userover] = nil
end
tableover = nil
end
Title:
Post by: wegface on 29 June, 2005, 12:10:54
Working fine :))
Thanks alot.
Title:
Post by: dragos_sto on 29 June, 2005, 12:21:24
with pleasure
Title: Re: description overwrite
Post by: rotten on 06 July, 2006, 02:26:20
i like your ip based version of the script very much, altough i have a little additional request.

can you make it so that it adds the tag before the description instead of overwriting it alone?