'Name: HubBackup 'Description: Backup(by command and timer) & Restore(by command) HUB data (OPlist, PermBanList, ListeningPort, RegisterHubWith, IPaddress, HUBname ...) 'Author: [Spy]Deki '********************* '* '* Backup '* '* [Spy]Deki '* 2002-12-13 '* '* balkanspies.servebeer.com:4101 '* '* If you decide to use this script in '* your hub, please send me a message on '* balkanspies@yahoo.com and/or visit us '********************* Const Read = 1, Wrire = 2, Append = 8 Dim sPath Dim sBotName Dim sComSign, sComBackup, sComRestore Dim nEvery30 Dim sBackupOP(3) ' ' ' Sub Main() 'Name of the bot sBotName = "Backup" 'Hub users who can make backup (must be at least one) sBackupOP(1) = "[spy]deki" sBackupOP(2) = "" sBackupOP(3) = "" ' File path sPath = "C:\Program Files\Direct Connect Hub\" ' ! ! ! ' Before run the script ' create two empty text files in this folder named: ' Backup.old and ' Backup.dat 'Timer Interval 1 min tmrScriptTimer.interval = 60000 tmrScriptTimer.enabled = True nEvery30 = 27 'delimiter sComSign = "+" 'commands sComBackup = "backup" sComRestore = "restore" ' frmHub.RegisterBotName(sBotName) End Sub ' ' ' Sub DataArival (curUser, sCurData) If isMainChat(sCurData) Then If InStr(1,sCurData, "> " & sComSign & sComBackup) > 0 Then 'backup If isBOP(LCase(curUser.sName)) Then Call Backup() End If ElseIf InStr(1,sCurData, "> " & sComSign & sComRestore) > 0 Then 'restore If isBOP(LCase(curUser.sName)) Then Call Restore() End If End If End If End Sub ' ' Timer procedure ' Sub tmrScriptTimer_Timer() nEvery30 = nEvery30 + 1 If nEvery30 = 30 Then nEvery30 = 0 ' backup every 30min Call Backup() End If End Sub ' ' ' Private Sub Backup() Dim filesys, readfile, sLine, sOldFile, pFile, pOldFile Dim i Set filesys = CreateObject("Scripting.FileSystemObject") sFile = sPath & "Backup.dat" sOldFile = BeforeFirst(sFile,".") & ".old" 'delete copy of backup Set pOldFile = filesys.GetFile(sOldFile) pOldFile.Delete frmHub.DoEventsForMe Set pOldFile = Nothing 'create new copy of backupa Set pFile = filesys.GetFile(sFile) pFile.Copy(sOldFile) pFile.Delete frmHub.DoEventsForMe 'create new file Set pFile = filesys.CreateTextFile(sFile, True) 'save data sLine = "HubName = " & frmHub.txtName : pFile.WriteLine sLine sLine = "HubAddress = " & frmHub.txtIP : pFile.WriteLine sLine sLine = "HubDescription = " & frmHub.txtDescription : pFile.WriteLine sLine sLine = "RegisterHubWith = " & frmHub.txtRegAddress : pFile.WriteLine sLine sLine = "ListenPort = " & frmHub.txtListenPort : pFile.WriteLine sLine sLine = "MaxUsers = " & CStr(frmHub.sldrMaxUsers): pFile.WriteLine sLine sLine = "AutoReg = " & CStr(frmHub.chkAutoReg): pFile.WriteLine sLine sLine = "AutoStart = " & CStr(frmHub.chkAutoStart): pFile.WriteLine sLine sLine = "AutoRedirect = " & CStr(frmHub.chkAutoRedirect): pFile.WriteLine sLine sLine = "RedirectIfFull = " & CStr(frmHub.chkRedirectIfFull): pFile.WriteLine sLine sLine = "PrivateOnJoin = " & CStr(frmHub.chkPrivateOnJoin): pFile.WriteLine sLine frmHub.DoEventsForMe ' OP (VIP, NickBan) list For i=1 To frmHub.lstOps.ListItems.Count sLine = "User = " & frmHub.lstOps.ListItems.Item(i) & "$$" & frmHub.lstOps.ListItems.Item(i).SubItems(1) & "$$" & frmHub.lstOps.ListItems.Item(i).SubItems(2) pFile.WriteLine sLine frmHub.DoEventsForMe Next ' PermBan list For i=0 To frmHub.lstPermBan.ListCount-1 sLine = "PermBan = " & frmHub.lstPermBan.List(i) pFile.WriteLine sLine frmHub.DoEventsForMe Next pFile.close Set pFile = Nothing End Sub ' ' ' private Sub Restore() Dim oFileSys, BackupFile, sFile, sLine, sCase, sNick Dim i, newItem, bFound sFile = sPath & "Backup.dat" Set oFileSys = CreateObject("Scripting.FileSystemObject") Set BackupFile = oFileSys.OpenTextFile(sFile, Read, false) While Not BackupFile.AtEndOfStream sLine = BackupFile.ReadLine sCase = BeforeFirst(sLine, " = ") sLine = AfterFirst(sLine, " = ") Select Case sCase Case "HubName" frmHub.txtName.Text = sLine Case "HubAddress" frmHub.txtIP.Text = sLine Case "HubDescription" frmHub.txtDescription.Text = sLine Case "RegisterHubWith" frmHub.txtRegAddress.text = sLine Case "ListenPort" frmHub.txtListenPort.Text = sLine Case "MaxUsers" frmHub.sldrMaxUsers = CInt(sLine) Case "AutoReg" frmHub.chkAutoReg = CInt(sLine) Case "AutoStart" frmHub.chkAutoStart = CInt(sLine) Case "AutoRedirect" frmHub.chkAutoRedirect = CInt(sLine) Case "RedirectIfFull" frmHub.chkRedirectIfFull = CInt(sLine) Case "PrivateOnJoin" frmHub.chkPrivateOnJoin = CInt(sLine) Case "User" bFound = False i = 1 sNick = BeforeFirst(sLine,"$$") While (Not bFound And (i <= frmHub.lstOps.ListItems.Count)) If frmHub.lstOps.ListItems.Item(i) = sNick Then bFound = True frmHub.DoEventsForMe i = i + 1 Wend If Not bFound Then Set newItem = frmHub.lstOps.listItems.Add( , ,sNick) sLine = AfterFirst(sLine, "$$") newItem.SubItems(1) = BeforeFirst(sLine, "$$") newItem.SubItems(2) = AfterFirst(sLine, "$$") End If Case "PermBan" bFound = False i = 0 While (Not bFound And (i < frmHub.lstPermBan.ListCount)) If frmHub.lstPermBan.List(i) = sLine Then bFound = True frmHub.DoEventsForMe i = i + 1 Wend If Not bFound Then Call frmHub.lstPermBan.AddItem(sLine) End If End Select Wend Set newItem = nothing BackupFile.close Set BackupFile = Nothing Set oFileSys = Nothing End Sub ' ' ' Function isMainChat(sData) bToMain = (Left(sData,1) = "<") isMainChat = bToMain End Function ' ' ' Function isBOP(sData) Dim i isBOP = False For i = 1 To UBound(sBackupOP) If LCase(sBackupOP(i)) = sData Then isBOP = True :Exit Function End If Next End Function ' ' ' Function BeforeFirst(sIn, sFirst) BeforeFirst = Left(sIn, InStr(1, sIn, sFirst) - 1) End Function ' ' ' Function AfterFirst(sIn, sFirst) AfterFirst = Right(sIn, Len(sIn) - InStr(1, sIn, sFirst) - (Len(sFirst) - 1)) End Function ' ' ' Public Function AfterLast(sFrom, sAfterLast) If InStr(1, sFrom, sAfterLast) Then AfterLast = Right(sFrom, Len(sFrom) - InStrRev(sFrom, sAfterLast) - (Len(sAfterLast) - 1)) Else AfterLast = "" End If End Function ' ' ' Sub Error() msgbox "Error: " & err.description End Sub