⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netsplit

📁 EPIC IRC客户端。来源于IRCII客户端但做了很多性能和功能的优化。
💻
字号:
# NETSPLIT 7 - This script does it's best to suppress the excessive # joins and signoffs due ONLY to netsplits.  It should pass regular# signoffs.   Need at least ircII2.2pre6# Version II  handles multiple channels. 		(mycroft)# Version III ignores bogus signoff messages# Version IV  handles multiple splits.# Version V   handles multiple splits and ignores bogus signoff messages. also#             adds timestamps to split/join messages# Version VI  For ircII2.2pre8 and beyond. Uses encode() and decode() # Version VII Fixed a problem with encode() and decode() and case#             sensitive channel names, + adding lformat()## This one by Daemon# CONVERTED for ircII2.2pre8# Version V by poxaV (cgw@unt.edu), from Daemon's code# modified last 7-03-93#shows the current time in HH:MM:SS format^alias currtime @ function_return = strftime(%T)# This function tests for bogus splits.^alias isbogus {	^if ([$3]) { @ function_return = 1 }	^if (rmatch(.$1. $isbogus.pats *..*)) { @ function_return = 1 }	^if (rmatch(.$2. $isbogus.pats *..*)) { @ function_return = 1 }}# Add patterns.. like /boguspat *bonk* *thud* *haha*# that will NOT be treated as server names..^alias boguspat ^assign isbogus.pats $isbogus.pats $0-;echo $0- added# Next two are pretty obvious^alias boguslist echo Pats: $isbogus.pats^alias bogusclear ^assign -isbogus.pats;echo Bogus list clean# If first word in Signoff contains a period then assume servername# and thus a a split.  Stash in assoc array.^ON ^CHANNEL_SIGNOFF "% % %.% %.%" {	if (isbogus($1-)) 		{ echo *** Signoff: $1 \($2-\) }		{ ^netbroke $encode($tolower($0)) $encode($1) $encode($2).$encode($3) $2 $3 }}# Stuff array. Tell us what server broke and set split flag.^alias netbroke {  @ signcross[$2][$0][$1] = 1  @ signoffs[$0][$1] = [$2]  @ splittime[$2] = time()  ^if ( !isbroke[$2] )  {    xecho -level OPNOTES *** Netsplit at $currtime() \($3-\)    @ isbroke[$2] = 1    @ splitname[$2] = [$3-]  }}# When a person joins a channel.. Check them against the array.# If they are in array, then remove silently.  Otherwards echo normally^ON ^JOIN * {  ^netjoined $encode($tolower($1)) $encode($0) $1 $0 $USERHOST()}# Unset the split flag^alias netjoined {  if ( signoffs[$0][$1] )  {    ^if ( isbroke[$signoffs[$0][$1]] )    {      xecho -level OPNOTES *** Netjoined at $currtime() \($splitname[$signoffs[$0][$1]]\)    }    ^assign -isbroke[$signoffs[$0][$1]]    ^assign -signcross[$signoffs[$0][$1]][$0][$1]    ^assign -signoffs[$0][$1]  }  {    echo *** $3 \($4-\) has joined channel $2  }}# Clear the array every 10 minutes to prevent excess garbage^on #^timer 70 * netclean^alias netclean {	foreach splittime ii	{		foreach splittime.$ii jj		{			if ( time() - splittime[$ii][$jj] > 300 )			{				foreach signcross.$(ii).$jj xx				{					foreach signcross.$(ii).$(jj).$xx yy					{						@ signcross[$ii][$jj][$xx][$yy] = signoffs[$xx][$yy] = []					}				}				@ xx = yy = isbroke[$ii][$jj] = []				@ splitname[$ii][$jj] = splittime[$ii][$jj] = []			}		}	}}^alias netpurge {  purge isbroke  purge splitname  purge splittime  purge signcross  purge signoffs}# If you want to suppress mode changes by servers.. (usually after a split)# then uncomment next line# ^on ^mode "%.%" ## If you want to look an array.. Type /show <arrayname># Lists keys and contents^alias showsplit {  if ( [$($0)] )  {    echo $0 $($0)  }  foreach $0 ii  {    showsplit $0.$ii  }  ^assign -ii}^alias purge {  foreach $0 ii  {    purge $0.$ii  }  ^assign -ii  ^assign -$0}^alias wholeft {  foreach signoffs ii  {    foreach signoffs.$ii jj    {      echo $lformat(15 $decode($ii)) $lformat(10 $decode($jj)) $splitname[$signoffs[$ii][$jj]]    }  }  ^assign -ii  ^assign -jj}# format and lformat differ from $[-num]var and $[num]var in that# They don't chop off the string if it is too long.alias lformat {	@ IRCII.word = [$1-]	if (@IRCII.word < [$0]) 		{ @ function_return = [$([$0]IRCII.word)] } 		{ @ function_return = [$IRCII.word] } }# Many people contributed to this script.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -