MZUZone



Strona główna

Część 1

Część 2

Część 3

Część 4

Linki


Napisz do autora


< Poprzedni^ Wyższy poziom ^Następny >

1.1.1

FUNKCJE IRCII (C). Podstawowe funkcje ircII.




FUNCTION_RETURN
Powraca do głównego aliasu z wynikiem sub-aliasu:
alias nickonly @ FUNCTION_RETURN $left($index(! $0) $0)echo $nickonly(lamer!yelen@ppp-milion.zadupie.tpnet.pl)- $nickonly powróci z 'lamer'alias getinfo {Nie chce mi się opisywać, ważne, że powraca z nick!user@host}alias honly @ FUNCTRION_RETURN $right($index(@ $0) $0)echo $honly($getinfo(lamer))		- złożenie dwóch aliasów z FUNCTION_RETURN. Pierwszy		  powraca z pełnymi namiarami nicka, drugi wykraja		  tylko host, czyli 'ppp-milion.zadupie.tpnet.pl'

LEFT(numer lista)
ciąg znaków od lewej strony listy, ograniczony numerem. np.
$left(3 qwertyuio) = 'qwe'

RIGHT(numer lista)
to samo co wyżej, ale z prawej strony, np.
$right(3 qwertyuio) = 'uio'

MID(index liczba lista)
ciąg znaków (liczba) startujących z pozycji indexu w liście np:
$mid(2 4 qwertyuio) = 'erty'

INDEX(znaki lista)
numer pozycji pierwszego znaku w liście np:
$index(. qwer.tyu.io) = '5'

RINDEX(znaki lista)
numer pozycji ostatniego znaku w liście np:
$rindex(* qw*er*tyuio) = '6'

TIME( )
aktualny czas według ircII
STIME(czas_wg_ircII)
pokazuje czas z TIME() np:
$stime(89352514) = 'Sunday May 12 1997 12:16:52' (Zmyślone ;-))

TDIFF(jakis_czas)
oblicz różnice miedzy 'jakiś_czas' a aktualnym czasem:
$tdiff(78392642) = '2 years 3 months 13 days 9 minutes 28 seconds' (Patrz wyżej ;-))

RAND(granica)
generator liczb losowych np:
$rand(8362)

SRAND(coś)
resetuje generator, 'coś' to może być np: '
$time()',dobrze jest resetować za każdym razem przez użyciem $rand().
USERHOST()
powraca z user@host nicka, który wykonał jakąś akcje. Patrz ON.
MATCH(wzor lista)
przyjmuje wartości 1 (jeśli pasuje) lub 0. np:
$match(qwe* asdfgh zxcvn) = '0'
$match(qwe* qwerty mnbvc) = '1'
$match(blah qwerty asdf blah zxcvn) = '1'

RMATCH(slowo wzory)
to samo co MATCH, tylko w drugą stronę:
$rmatch(qwerty *a* zxcv*mnbv dfg??dfg) = '0'
$rmatch(qwerty *q*) = '1'

WORD(numer lista)
słowo nr 'numer' z listy np:
word(3 as zxc qwe vbn) = 'qwe'

STRIP(znaki lista)wycina z listy wszystkie 'znaki' np:
$strip(!*& !@#) = '@#'
$strip(a qwerty) = 'qwerty'
$strip(bc abcd) = 'ad'

CONNECT(host port)
otwiera połączenie z serwerem. Wartość dodatnia =połączenie powiodło się, NULL = nie można siępołączyć, ujemna = wystąpiły jakieś błędyKomunikacja z połączeniem odbywa się poprzez DCC.Zobacz DCC RAW i ON DCC_RAW.
LISTEN(port)
pozwala na wykonywanie poleceń IRCa przez telnet host 3500. Działa ON DCC_RAW "*":
^on DCC_RAW "*" {            if ([$2]==[D]) {EVAL $3-}}                          

To pozwala na wykonywanie przez ircII wszystkich podanych poleceń z telneta.
ISCHANNEL(słowo)
powraca z 1, jeśli jest to nazwa kanału (#*)
ISCHANOP(nick #kanal)
1 = jeśli nick jest operm na #kanale
WINNUM()
numer aktualnego okna.
WINNAM()
nazwa aktualnego okna. Jeśli okno nie ma nazwy, powraca z pustymi rękami.
ENCODE(text)
koduje kodem ircII text. Rozróżnia małe i DUŻE litery.
DECODE(text_kodowany)
rozkodowywuje kodowany text.
TOUPPER(text)
zamienia małe na DUŻE litery
TOLOWER(text)
zamienia DUŻE na małe litery
CURPOS()
pozycja kursora w input line zaczynając od początku
MYCHANNELS(refnum)
podaje kanały, na których jesteś w aktualnym oknie
MYSERVERS()
lista serwerów, do których jesteś podłączony
ONCHANNEL(nick kanal)
1 = jeśli nick jest na #kanale
PID()
aktualny ID procesu
PPID()
PID procesu nadrzędnego (np. tcsh)
CHANUSERS(kanał)
użytkownicy kanału



1.1.2

UŻYCIA SPECJALNE - ASSIGN / ALIAS




Specjalne znaki używane w ALIASach. Dotyczy wszystkichALIASów/ASSIGNów/SETów, czyli zaczynających się do '$'.

Zapisy:

$* - wszystkie argumenty podane w linii

$n - numer argumentu w linii np. $0 czy $7

$n-m - argumenty od nr n do m. np. $1-4 czyli $1 $2 $3 i $4

$n- - argumenty od n do końca np. $5- czyli $5 $6 $7 $8...

$-m - argumenty od początku do m. np. $-8, to samo co $0-8.

$~ - ostatnie słowo w linii.

$, - nick osoby, która ostatnia przysłała Ci MSG.

$. - nick osoby, do której ostatnio wysłałeś MSG.

$nazwa - wszystkie ASSIGNy, ALIASy i ircII SET, np.

$licznik, $nickonly(), $lastlog_level.

$[numer]nazwa - oznacza tylko określoną numerem wartość $nazwy, np.

$blah == 'Ala_ma_kota':
$[5]blah == 'Ala_m'
$[14]blah == 'Ala_ma_kota '

np2.
$C = #Rzeczpospolita
set CHANNEL_NAME_WIDTH 10
$([$CHANNEL_NAME_WIDTH]C) = '#Rzeczposp'


$[-numer]nazwa - oznacza określoną wartość $nazwy, liczoną od prawej, np.

$blah == 'Etam'
$[-2]blah == 'am'
$[-6]blah == ' Etam'


$#nazwa - ilość słów w $nazwie.

$@nazwa - ilość liter w $nazwie.

$"Prompt" - pyta w input_prompt`cie o argumenty dla określonego aliasu:

alias xyz $"Wyjść?" if ([$0]==[T]) {/exit}
/xyz i podajesz T - wychodzisz


$($alias wewn.) - najpierw wykonywany jest alias wewnętrzny, potem zewnetrzny:

alias xyz echo $($0)
/xyz s - pojawi się $S, czyli server


$!text! - powróci jako pełne wyrażenie zawierające 'text' pobrane z HISTORY. np:

<$N> lalala
/eval echo $!lala*! - powróci jako 'lalala'


$: - nick osoby, która ostatnio weszła na kanał

$; - nick osoby, która ostatnia napisała coś na publicu



Oznaczenia Literkowe:


$A - text, który podałeś przy AWAYu

$B - text ostatniego PRIVMSG jaki wysłałeś

$C - aktualny kanał

$D - nick osoby, którą zarejestrowałeś ostatnio jako Sign-ON przez NOTIFY

$H - oznacza ostatni ON NUMEREK jaki był odebrany.

$I - nazwa kanału, na który byłeś ostatnio zapraszany

$K - znaczek wydawania poleceń dla ircII (zmiana SET CMDCHAR). Standardowo '/'.

$L - to co napisałeś w input_ptompt`cie

$N - Twój nick

$O - jeśli jesteś IRC Operatorem, $O = $STATUS_OPER

$P - jeśli masz Opa na $C, $P = '@'

$Q - nick osoby, z którą rozmawiasz na QUERY.

$S - nazwa serwera, na którym jesteś

$T - oznacza to, gdzie teraz piszesz. np. kanał lub nick osoby na QUERY

$U - text, który został ostatnio wycięty z INPUT_LINE np. przez ERASE_TO_END_OF_LINE.

$V - data Twojego clienta ircII

$W - aktualny katalog

$Z - godzina HH:MM

$$ - oznacza $ np. $$Z = $Z


Można stosować bezpośrednie podstawianie wartości ASSIGNa/ALIASa:

@ blah = [defg]
echo abc$blah - pojawi się 'abcdefg'


W drugą stronę trzeba zastosować '\' lub '{' i '}'.

@ blah = [abcd]
echo $blah\efg
echo ${blah}efg




1.1.3

QUOTE - CYTOWANIE




QUITE (C) Cytowanie. Pozwala na pomijanie wykonywania ALIASów
zaczynających się od '$'.



Użycie:
$^<znaczek><reszta>
$^$* - nie będzie wykonywał żadnych ALIASów/ASSIGNów.

Przykłady:
	alias blah eval echo $^$*	/blah Micro$oft			- pojawi się 'Micro$oft'

Gdyby nie cytowanie, pojawiłoby się 'Micro' i wartość ASSIGNa '$oft'. Aponieważ czegoś takiego nie mamy, zostałoby samo 'Micro'.A jak to działa? Pierwsze '$' oznacza zmienną, w tym przypadku $0, czyli'Micro$oft'. Dwa dalsze znaczki '^$' oznaczają, ze IRCII będzie cytowaćwszystkie '$' jako znaki, pojawiające się tekście, poprzedzając je znakiem '\'. Można to inaczej osiągnąć ręcznie wstawiając '\' przed '$'. Np:

/eval echo Micro\$oft, pojawi się Nasz Ukochany Producent G'95.


Można również cytować kilka znaczków:

@ lias.msg = [Taki\ dos$ta\em ostatni\o $MSG$]
eval echo $last.msg


Pojawi się :'Taki dos ostatnio' i przy okazji wywali parę errorów ;)

eval echo $^$\last.msg

IRCII będzie cytować, czyli dodawać '\' przed '$' i '\'.W drugim przypadku wynik będzie wyglądał:

'Taki\\ dos\$ta\\em ostatni\\o \$MSG\$',

ale dzięki EVAL znikną wszystkie cytowania ('\') i przy 'echo' zostanie, to co trzeba.

Można '$^' używać razem z innymi modyferami ALIASów/ASSIGNów np. z '[ ]',czyli długość. Zobacz ALIAS UŻYCIE SPECJALNE. Trzeba jednak pamiętać owłaściwej kolejności Najpierw zawsze cytowanie (^), potem reszta ([]).

@ blah = [123\4567\8\\90\123\456\789]
eval echo $^\[14]blah - '123\\4567\\8\\\\90',


a pojawi sie '123\456\8\\90

< Poprzedni^ Wyższy poziom ^Następny >