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

📄 autoget

📁 EPIC IRC客户端。来源于IRCII客户端但做了很多性能和功能的优化。
💻
字号:
## Autoget!  Because people keep asking me for this.# Ok.  Here's the plan.# /autoget <pattern> [<pattern> ....] will auto-get any file that matches#	any of the patterns.# /autoget -<pattern>  will stop autogetting any file that matches this#	pattern.# You can mix and match <pattern>s and -<pattern>s.## New:  Patterns will now be matched against nick!user@host,IP,file.#       This shouldn't really be incompatible unless you autoget#       files begining with specific names.# New:  /autoreget acts much the same as /autoget, but the patterns apply#       to requests for which the file already exists.#       /autoclobber takes two arguments specifying the reget modes.#       These can be one of GET, RESUME, RENAME.  For RENAME,#       a random string will be appended to the filename.# Note: All commas in the filename are replaced with dots for the purpose#       of matching to make it harder for people to accidentally or#       purposely bypass well written masks by sending you specific#       filenames.  Nevertheless, this isn't really a safe authentication#       method.## Note: If the sender (an fserv perhaps) sends elaborate messages before#       the transfer begins and NO_CTCP_FLOOD is on (it is on by#       default), the ctcp flood protection mechanism can be triggered#       and the transfer can fail to start.  It may be better for you#       to turn this feature off and make other flood protection#       arrangements.#package autoget# Take possession of these variables while not clobbering them.fe (patterns.get * patterns.reget * reget.part resume reget.full close) var val {	@ autoget[$var] = autoget.$var ? autoget.$var : [$val]}on #-dcc_request 414 "% SEND *" {	@ :path = [$getset(dcc_store_path)/$urldecode($2)]	if ([$6] <= fsize("$path")) {		@ :patterns = autoget.patterns.reget		@ :action = autoget.reget.full	} elsif (0 < fsize("$path")) {		@ :patterns = autoget.patterns.reget		@ :action = autoget.reget.part	} else {		@ :patterns = autoget.patterns.get		@ :action = [get]	}	if (rmatch($0!$userhost(),$3,$tr(/,/./$2) $autoget.patterns.reject)) {		# Nothing.	} elsif (rmatch($0!$userhost(),$3,$tr(/,/./$2) $patterns)) {		if (action == []) {			return		} elsif (action == [rename]) {			@ :extra = 0			do {				@ extra += rand(10)			} while (0 < fexist("$path~$extra"))			@ rename("$path" "$path~$extra")			@ action = [get]		} elsif (action == [close]) {			@ action = [close get]		} elsif (!rmatch("$action" get resume)) {			echo $action?			return		}		dcc $action $0 $2	}}stack push alias aliasalias alias fe (get reget reject) cmd {//alias $sar(g/XXX/$cmd/$*)}alias autoXXX {	if (strlen($*) == 0) {		echo AutoXXX n!u@h,IP,files matching [$autoget.XXXpatterns]		return	}	fe ($*) x {		if (left(1 $x) == [-]) {			@ x = rest(1 $x)			@ autoget.XXXpatterns = remw($x $autoget.XXXpatterns)		} else {			push autoget.XXXpatterns $x		}	}}stack pop alias aliasalias autoclobber (args) {	@ :types = [part full]	if (#args) {		fe ($args) arg {			if (!types) {				break			} elsif (!arg) {				@ shift(types)			} elsif (rmatch("$arg" get rename resume close)) {				@ autoget[reget][$shift(types)] = arg			} else {				echo $arg isn't one of: GET RENAME RESUME CLOSE			}		}	} else {		echo Usage: /autoclobber [partial-mode] [full-mode]		fe ($types) type {			echo Autoclobber $type mode is: $autoget[reget][$type]		}	}}on ^unload "autoget" {	^assign -autoget.patterns.get	^assign -autoget.patterns.reget	^assign -autoget.patterns.reject	^assign -autoget.reget.part	^assign -autoget.reget.full	^alias -autoget	^alias -autoreget	^alias -autoreject	^alias -autoclobber	^on #dcc_request 414 -"% SEND *"}if ( getset(mirc_broken_dcc_resume) == [off] ) {	echo Warning: Turning mIRC DCC resume on	set mirc_broken_dcc_resume on}if ( getset(no_ctcp_flood) != [off] ) {	echo Warning: You may need to enter "/set no_ctcp_flood off" to autoget files from certain hosts.}#hop'y2k+1

⌨️ 快捷键说明

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