From ff4281eedc31ba51730508f4ba1cb33244aa327c Mon Sep 17 00:00:00 2001 From: Juhani Haverinen Date: Fri, 9 Aug 2013 11:08:18 +0300 Subject: [PATCH] Added IPv6 support, rejoice! --- botcmd.py | 16 +++++++++++++++- botcmd.pyc | Bin 6331 -> 0 bytes eliza.pyc | Bin 9404 -> 0 bytes ircbot.py | 19 +++++++++++++++++-- 4 files changed, 32 insertions(+), 3 deletions(-) delete mode 100644 botcmd.pyc delete mode 100644 eliza.pyc diff --git a/botcmd.py b/botcmd.py index 6976eb6..bab91bc 100644 --- a/botcmd.py +++ b/botcmd.py @@ -109,10 +109,24 @@ def parse((line,irc)): else: if line[3][1:] in authcmds: authcmds.pop(line[3][1:]) + if line[5]=='0': + irc.send('PRIVMSG %s :Register account with NickServ'%line[3][1:]) + elif line[5]=='1': + irc.send('PRIVMSG %s :Identify with NickServ'%line[3][1:]) + else: + irc.send('PRIVMSG %s :WTF, NickServ returned %s'%(line[3][1:],line[5])) trustedlock.release() authcmdlock.release() elif line[1]=='482': irc.send('PRIVMSG %s :Not op'%line[3]) + #elif line[1]=='332' or line[1]=='TOPIC': + # if line[1]=='332': + # ch=line[3] + # tp=' '.join(line[4:])[1:] + # elif line[1]=='TOPIC': + # ch=line[2] + # tp=' '.join(line[3:])[1:] + # #Do the magic here msglock.acquire() if (line[1]=='PRIVMSG' or line[1]=='JOIN') and nick in msgs: @@ -133,7 +147,7 @@ def execcmd(cmdline): def help(cmd): if cmd=='': - return '#echo #op #deop #kick #src #msg #readmsg #help' + return '#echo #op #deop #voice #devoice #kick #src #msg #readmsg #help' elif cmd=='#echo': return '#echo text echo text back' elif cmd=='#op': diff --git a/botcmd.pyc b/botcmd.pyc deleted file mode 100644 index cc4f7e2949af33da5e093c289b6fa371f6f9c728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6331 zcmb_g&vP6{74F&9uU$*FB+Ig8$Ic{*lMR-&j*|+>CZud+7dStZWSpQvj;mPDw6wEY z&8((pWjRf(sXl3r7y{eXo0VSBgyqgQOYt>v{e9 z^?R@1`?|~jn5zDI_HQ4D%KePu{}nu@=P4E8&r=?rOKQEOv{G%Q z9)Jfuc#kOUsrIP!jHwts<3l|Y(o-4gsVY68+DFLm=}8rhs0f20dP?p6Tq z`cbuaN$F!sA5{-9|CrhuQQ03!LdS(@Ty2#Gv=8>3pQyFN{13_Bo>tKWg?v_4>oaP7 zR;?dbdPZr;7*|=z!y?c|&)Z4ST4>KHJ*)I_wNc_wZ|9-H-x{=QpRk%^4fE29D(VX? z`lQk)EnOA*l!}f>V?jle(m1W6DQTQh(NSqULu=ox9fSGff8l4Lrk4C+{(w% z*$j7jai+0Mr8+v1J|{@}x@kA3z0xi|a>8a8tq6utD(s|2%ZN;Obkpb>tt-~wkU^a| z(KU1_d6}2ds<+Z@U2peV%_OdOv$U;rlaiZZz0`3OmkCbyME*9%8Fm3kpg+mP-}`Yh)dZMV!=2Ir8h*R z1;Abje=qiGCUmfNzs?!Ygz3hbX~5o8UGJu z(i7mX2>&nWIc$NbN{?aAw#<*z`z&Th@}8$pcK$L_44af;f97VvNQ}WONXz`pF{1~V zj|%fY4>BKn0`s&m*SrIgXP&@3E6krBWIp}`<~d>hlLya2Pb>(kvK;=_L&Bo|CuAYg zzc8@DytRP~YiFmE93X+Z^ZT;vJH_FL4YeSX{@rstrys|2MtHs`4HTOf#kwUVRhQkZ zWfzbnn2_EoZA!v$y^@qB+_D!I+7($&--~VqwggjTRT9-e^JgBX)mhPMv^=CknMsPt z@vo)5_t*yhfE{4UYqwvN$Q@Pts8BYR&WSl;+A+J;89|RqYYCib8J_J=JEYVg#(YuW z+l6^0G;<)G{<>^*K0ZL7lfhY;;rx8jw$m>5ryUAt?4;;bSsN6veBTiLv1XtZ;HAe* z%b2kHB6-oHFIdel$ZU^ft9)g{E)9J=0_Ka3&W{z2&ZmnO1#*i*wR}cYyW8J?>_hOw z6}E34e9I#1?#SLPg>Q7tK!CXDxY{3gw!aU|K+SKDtR+jsj85t=M;<3a3LW&b@k5<$ zD?y@ntFMa^eH&gXWQ(C#Cl5q4?Ijt>OpX>3UJ(hGM-f;q+R(Nhx$HbrBqS%#Dj^l) zHDuFO0U5qvA89@pGug&{{IMvo#MO?Nb;2-LHx_l+O3hI;i@Jhh(>QNpDIk0`7SpbP z%L}O+5^2|SF*U4}jm6zG4z*?4HLT!`#Yhi2FYdaLTc}ww*?Tuu-g9M*ldFk6C(H-&{mol%4sZ`EHw2)BU*XhHH~_GGtOJRJIi6ZU4OTCU4OSZ zfLd-eLGufTM$3E+e-Yp8eB0Vk1-Dkr9&y<5L&M%aZ{EQw4I#&{`rl7`eyh2w{Ur5! z2}k>dKxe3y?sTPk!a*j@bry#**MK^8Nakvqx8h{eZ|TgcRY1rFA_{QT0ZNfl5KB3I zRZy2@!amhFNG_S#Lo=Q?4J;19jqv;MlN&47tu+cirlZ{I=c zcR#$bYOX$JmcG3X8Ec7tkNmu)xBa_ttiR|yA*koTQX9cp2tLrY6r5uh!N?OAU873{ z+na7D&I8&&P*OXMlYl-L!d%=72!lS(6-LIz0NDnNQ0b?K#dc8|=4s|m4W^qWQ9$4~ z0LcM&XN^t-;8tq+QowUdK+Ocl1#|pFHxTgYOiYbw#qjY{qh@N_ZDvNlNy)o-l~o0Y zj5FQ~-ZXw+!gKb}GwWUO=1Ozu)y8n zh`#}Z$g!tD@%yP#)m!pTThvHpXkI~$zd{435!H$KkJ#_w!GjIZA}R=vq&S7j8S>ig zw}>zIE;~TBP!#V1DB?^DJc*o(6pZ>Qh@Qpbs#@E*1gwrqDEAZ|kDT_XlK|K_Ei3~4 zQo)N40CMU5|h>K*#^HgV0%GY~3#2lZaX&8D6 z&Z^4k^Q8B@b6&{m!-wk@r~M8MYc4tr7b_)olQd4ApnW<_XnQemiT5@_Tkw8`us~=F z-ajI27aDjLEl9wsiHYcpAh;tDwi@(bk_d^Y5iSY|hRGvZtTLo2}gVapH%#b>JtznQ7nM z6!>@U`TY#%HFpFcaPB%4d&vwW|HaX^P51Nm5iv(f)c2ZPVC{!m$KN63dKQ`RO)sTjn=?B#$jRupcsTGGG%N(M|1GX0VSb1Pwcp zgD+MP%Mj!geGo-6EEgRHL7Mn?#Ir8`iVY+Au}?5l6@-<104hnC3yg9JF0$b(d+rLy zvgO|b)?@e$?;+D-pvB1sR=MFj2KuWLo4lZnq-NrijkJfG6i8Gx=CpvfM^BqV0}gzM zN35?<5=Xx7Q>qceNCnWH`17Wqx4cE80Qm_52-5_qId~a-_JWPRexDa_qBtvvtt!M6 z7H2R+2U1^HFf6uU5(-}6>s7w`b;AM~?u0?%31&zN6e8#jUgL|499T$N|K)8bCwUte wNxhDKhq{|L@WN$X3BTSLOy(Y-gu%trCOP&T&+z08wAWBP5=M^ diff --git a/eliza.pyc b/eliza.pyc deleted file mode 100644 index 75706f85219938a6dad6d4efe7f03a43db41dc48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9404 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 a#}vohcWPo1Cg6p;hYi<9X7(N0AN?OEh+T;Q diff --git a/ircbot.py b/ircbot.py index 38812c9..98f3075 100644 --- a/ircbot.py +++ b/ircbot.py @@ -48,8 +48,23 @@ class Connhandler(threading.Thread): self.logc.send(line+'\n') Threadwrapper(botcmd.parse,(line,self.inpc)).start() def run(self): - self.sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.sock.connect((self.server,self.port)) + self.sock=None + for af, socktype, proto, canonname, sa in socket.getaddrinfo(self.server,self.port,socket.AF_UNSPEC,socket.SOCK_STREAM): + try: + self.sock=socket.socket(af, socktype, proto) + except socket.error: + self.sock=None + conntinue + try: + self.sock.connect(sa) + except socket.error: + self.sock.close() + self.sock=None + continue + break + if self.sock is None: + self.logc.send('QUIT'); + sys.exit(1); self.sock.settimeout(0.1) self.send('NICK %s'%self.nick)