All pastes #797802 Raw Edit

Unnamed

public text v1 · immutable
#797802 ·published 2007-11-26 08:24 UTC
rendered paste body
#----------------------
#LEECH MOD SCAN SCRIPT-
#----------------------
# SeveredCross  10Oct07: Fixed up some extra variables, spelling, etc.
#               10Oct07: Modified the ban check code to just ban anything that identifies
#                   as eMule but is not 0.48a
#               10Oct07: General cleanup in the code to make it more readable and hopefully more efficient.
#               11Oct07: Add check for SMIRC version equal to that in latest eMule
#                   if eMule tag is not found--some mods don't use the eMule tag
#                   but do use the SMIRC tag (eg. MP3 eDonkey Search).
#               11Oct07: Bugfixes (typos, variables that should've been brought in but weren't, etc.)
#               11Oct07: More bugfixes--fixed a bug that was banning in both channels even
#                   if offender was only in 1 chan. Renamed some variables along the way
#                   to make it more clear as to what they are there for.
# Unk			17Jun04: Don't let netsplits flood the bot..
# feroz		06Jun04: TODO-Check the bad mod list
#------->> Set Leech mods <<-----

set BadList {
"*{[VipeR} V7.0\*"
"*SharkX*"
"*LoRe*"
"*eVortex*"
"*AcidStorm*"
"*Egomule"
"*eDevil*"
"*eSl@d3vil*"
"*Legolas"
"*X-Mule*"
"*Mega*"
"*Funeral*"
"*Miciolino*"
"*g@mer*"
"*gamer*"
"*Icemule*"
"*FriendMod*"
"*Element*"
"*D-Unit*"
"*Korsan*"
"*Imperator*"
"*Hunter*"
"*Freeza*"
"*BuzzFuzz*"
"*BlackMule*"
"*Chiefcooker*"
"*rammstein*"
"*Merrek*"
"*Hardmule*"
"*DaReDeVil*"
"*Energy*"
"*Pharao*"
"*Brasil*"
"*Boost*"
"*-=NOS=-*"
"*darkmule*"
"*Rasmoe*"
"*Mison*"
"*eSladevil*"
"*Dodge*"
"*.:Funeral:.*"
"*ArGo*"
"*vortex*"
"*Omega*"
"*Dagos15*"
"*supaleecher*"
"*eD@sevil*"
"*...S.I.B...:=-*"
"*eMuleG@m3r΄s*"
"*LSD*"
"*Ketamine*"
"*www.00de.de*"
"*00de-Edition*"
"*free-romz*"
"*X-Mule*"
"*pHoeniX*"
"*Leecher*"
"*DO23*"
"*eMule1.51*"
"*AdunanzA*"
"*lite*"
"*Turbomod*"
"*LEanmule*"
"*ExLite*"
"*Extreme*"
"*TCMatic*"
"*LoRe*"
"*eVortex*"
"*AcidStorm*"
"*Egomule"
"*eDevil*"
"*eSl@d3vil*"
"*Legolas"
"*X-Mule*"
"*Mega*"
"*Funeral*"
"*TLN*"
"*Tombstone*"
"*emule.de*"
"*Miciolino*"
"*g@mer*"
"*gamer*"
"*Icemule*"
"*FriendMod*"
"*Element*"
"*D-Unit*"
"*Korsan*"
"*Imperator*"
"*Hunter*"
"*Freeza*"
"*BuzzFuzz*"
"*BlackMule*"
"*Chiefcooker*"
"*rammstein*"
"*Merrek*"
"*Hardmule*"
"*DaReDeVil*"
"*Energy*"
"*Pharao*"
"*Brasil*"
"*Boost*"
"*-=NOS=-*"
"*darkmule*"
"*Rasmoe*"
"*Mison*"
"*eSladevil*"
"*Dodge*"
"*.:Funeral:.*"
"*ArGo*"
"*vortex*"
"*Omega*"
"*Dagos15*"
"*supaleecher*"
"*eD@sevil*"
"*...S.I.B...:=-*"
"*eMuleG@m3rs*"
"*LSD*"
"*sivka*"
"*hebMule/Onyx*"
"*SNAKE*"
"*Ketamine*"
"*www.00de.de*"
"*00de-Edition*"
"*free-romz*"
"*FREEANGEL*"
"*Razorback*"
"*emuleersion*"
"*Exorzist*"
"*NetF*"
"*ZZUL*"
"*LHeMule*"
"*MP3 eDonkey Search*"
"*Sion*"
"*€xORz!§T*"
"*VipeR V6.2*"
"*Blackbeard*"
"*VeryCD Build*"
"*EvoStar*"
"*BETA 1*"
"*iONiX*"
"*File Swap*"
"*CN-3*"
"*TK4*"
"*Zz evoL*"
"*TCMatic*"
"*Saugstube-MoD*"
"*eMuleFuture*"
"*Arabella*"
"*NextEvolution*"
"*VMULE*"
"*eMule0.42*"
"*eMule0.43a*"
"*eMule0.43b*"
"*eMule0.44a*"
"*eMule0.44b*"
"*eMule0.44c*"
"*eMule0.44d*"
"*eMule0.45a*"
"*eMule0.45b*"
"*eMule0.46a*"
"*eMule0.46b*"
"*eMule0.46c*"
"*eMule0.47a*"
"*eMule0.47b*"
"*eMule0.47c*"
"*emule0.48a-2*"
"*eMule0.48a BETA1*"
"*eMule2.0a*"
"*eMule0.48a | NFO.Co.iL v10.0*"
"*Goop.Co.iL*"
}

set BadRealNameList {
}

#----->> Info chan <<-----
set NotificationChan "#taksh"

#----->> Monitoring chans <<-----
set MonitoringChans {
"#emule-greek"
"#eMule-greek"
}

#----->> Ban Time <<-----
set BadModBanTime 5

#----->> Ban Reason <<-----
set BadModReason "Exete mod h palia ekdosh toy eMule oi opoies den yposthrizontai edw.Parakalw katevaste thn trexousa OFFICIAL 0.48a apo @ www.emule-project.net" 

#----->> Latest eMule Version String <<-----
set LatesteMuleVersion "eMule0.48a(SMIRCv00.69)"

#----->> Bind The Various Checks <<-----
bind join - "* *" brealname:join
bind raw - 311 brealname:check

#----->> On Join check <<-----
proc brealname:join {nick host hand chan} { 
	global WhoisNick WhoisNickWarn
	if {[strlwr $nick] == [strlwr $::botnick] || [matchattr $hand of|fo $chan]} {
		return 0
	} 
	if {([info exists WhoisNickWarn($host)] == 1)} {
		return 0
	}
	set WhoisNickWarn($host) 1
	timer 2 "unset WhoisNickWarn($host)"
	if {([info exists WhoisNick] == 1)} {
		if {$WhoisNick == 3} {
			putlog "$WhoisNick Whois max"
			return 0
		}
		incr WhoisNick
	} else {
		set WhoisNick 1
		utimer 2 "unset WhoisNick"
	}
	putserv "WHOIS $nick" 
}

#----->> Realname check to decide whether to ban or not <<-----
proc brealname:check {from key arg} { 
	global NotificationChan versionCount
	global MonitoringChans BadRealNameList
	global BadModReason BadModBanTime

	set UserName [lindex [split $arg] 1]
	set UserRealName [ctrl:filter [string range $arg [expr [string first : $arg]+1] end] ]
	set BotNick [lindex [split $arg] 0]
    	
	if {[string match -nocase "*eMule*" $UserRealName]} {
	    if {![string match -nocase "eMule0.48a(SMIRCv00.69)" $UserRealName]} {
            foreach MonitoringChan $MonitoringChans {
                if {[onchan $UserName $MonitoringChan]} {
                    putserv "PRIVMSG $NotificationChan :ACTION 4BadMod Info:3 $UserName is on $MonitoringChan"
        	        newchanban $MonitoringChan $UserName!*@* $BotNick $BadModReason $BadModBanTime sticky
	                putkick $MonitoringChan $UserName $BadModReason
                }
            }
        }
    }
	
	if {![string match -nocase "*eMule*" $UserRealName]} {
	    if {[string match -nocase "*SMIRC*" $UserRealName]} {
	        if {![string match -nocase "*SMIRCv00.69"]} {
                foreach MonitoringChan $MonitoringChans {
                    if {[onchan $UserName $MonitoringChan]} {
                        putserv "PRIVMSG $NotificationChan :ACTION 4BadMod Info:3 $UserName is on $MonitoringChan"
            	        newchanban $MonitoringChan $UserName!*@* $BotNick $BadModReason $BadModBanTime sticky
    	                putkick $MonitoringChan $UserName $BadModReason
                    }
                }
            }
        }
	    foreach BadRealName $BadRealNameList {
	        if {[string match -nocase $BadRealName $UserRealName]} {
	            foreach MonitoringChan $MonitoringChans {
                    if {[onchan $UserName $MonitoringChan]} {
                        putserv "PRIVMSG $NotificationChan :ACTION 4BadMod Info:3 $UserName is on $MonitoringChan"
        	            newchanban $MonitoringChan $UserName!*@* $BotNick $BadModReason $BadModBanTime sticky
	                    putkick $MonitoringChan $UserName $BadModReason
                    }
                }
            }
        }	            
	}
}

#----->> Filter to strip out unwanted characters, by ppslim <<-----
proc ctrl:filter {str} {
  regsub -all -- {\003[0-9]{0,2}(,[0-9]{0,2})?|\017|\037|\002|\026|\006|\007} $str "" str
  return $str
}

putlog "Leech Mod Scan loaded! -- Scanning on: $MonitoringChans / Messaging on: $NotificationChan"

#Leech Mod Scan Script By feroz.