From 4795608dcab2b7b1912d5e3ff8672750b03d2f0e Mon Sep 17 00:00:00 2001 From: Stephen Dranger Date: Wed, 23 Feb 2011 05:06:00 -0600 Subject: [PATCH] derp --- .gitignore | 3 +- TODO | 3 - convo.py | 46 ++++++++++++++- convo.pyc | Bin 26809 -> 0 bytes dataobjs.py | 3 + dataobjs.pyc | Bin 14603 -> 0 bytes generic.pyc | Bin 4285 -> 0 bytes irc.pyc | Bin 15170 -> 0 bytes memos.py | 3 +- memos.pyc | Bin 32143 -> 0 bytes menus.py | 135 ++++++++++++++++++++++++++++++++----------- menus.pyc | Bin 26130 -> 0 bytes mispeller.pyc | Bin 2929 -> 0 bytes oyoyo/__init__.pyc | Bin 333 -> 0 bytes oyoyo/client.pyc | Bin 10871 -> 0 bytes oyoyo/cmdhandler.pyc | Bin 8312 -> 0 bytes oyoyo/helpers.pyc | Bin 5020 -> 0 bytes oyoyo/ircevents.pyc | Bin 5693 -> 0 bytes oyoyo/parse.pyc | Bin 2869 -> 0 bytes parsetools.py | 9 ++- parsetools.pyc | Bin 11169 -> 0 bytes pesterchum.js | 2 +- pesterchum.py | 8 ++- 23 files changed, 168 insertions(+), 44 deletions(-) delete mode 100644 convo.pyc delete mode 100644 dataobjs.pyc delete mode 100644 generic.pyc delete mode 100644 irc.pyc delete mode 100644 memos.pyc delete mode 100644 menus.pyc delete mode 100644 mispeller.pyc delete mode 100644 oyoyo/__init__.pyc delete mode 100644 oyoyo/client.pyc delete mode 100644 oyoyo/cmdhandler.pyc delete mode 100644 oyoyo/helpers.pyc delete mode 100644 oyoyo/ircevents.pyc delete mode 100644 oyoyo/parse.pyc delete mode 100644 parsetools.pyc diff --git a/.gitignore b/.gitignore index e132f03..41f9f9d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ logs/* build/* profiles/* -irctest.log \ No newline at end of file +irctest.log +*.pyc \ No newline at end of file diff --git a/TODO b/TODO index f20f8db..bea106c 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,6 @@ Bugs: -* finish QDB submission * import quirks from 2.5! * edit quirks? -* mood trees - chums, trolls, other -* begin and end regexps should only be applied once! * X and _ buttons move around all crazy like Features: diff --git a/convo.py b/convo.py index 1d34960..3a5c672 100644 --- a/convo.py +++ b/convo.py @@ -1,13 +1,14 @@ from string import Template import re import platform +import httplib, urllib from copy import copy from datetime import datetime, timedelta from PyQt4 import QtGui, QtCore from dataobjs import PesterProfile, Mood, PesterHistory from generic import PesterIcon, RightClickList -from parsetools import convertTags, lexMessage, mecmd, colorBegin, colorEnd +from parsetools import convertTags, lexMessage, mecmd, colorBegin, colorEnd, img2smiley class PesterTabWindow(QtGui.QFrame): def __init__(self, mainwindow, parent=None, convo="convo"): @@ -204,7 +205,6 @@ class PesterText(QtGui.QTextEdit): self, QtCore.SLOT('textReady(bool)')) @QtCore.pyqtSlot(bool) def textReady(self, ready): - print "setting textselected to %s" % (ready) self.textSelected = ready def initTheme(self, theme): if theme.has_key("convo/scrollbar"): @@ -312,10 +312,44 @@ class PesterText(QtGui.QTextEdit): textMenu.addAction(self.submitLogAction) textMenu.exec_(event.globalPos()) + def submitLogTitle(self): + return "[%s -> %s]" % (self.parent().mainwindow.profile().handle, + self.parent().chum.handle) + @QtCore.pyqtSlot() def submitLog(self): mimedata = self.createMimeDataFromSelection() - print mimedata.data("text/unicode") + htmldata = img2smiley(mimedata.data("text/html")) + textdoc = QtGui.QTextDocument() + textdoc.setHtml(htmldata) + logdata = textdoc.toPlainText() + self.sending = QtGui.QDialog(self) + layout = QtGui.QVBoxLayout() + self.sending.sendinglabel = QtGui.QLabel("S3ND1NG...", self.sending) + cancelbutton = QtGui.QPushButton("OK", self.sending) + self.sending.connect(cancelbutton, QtCore.SIGNAL('clicked()'), + self.sending, QtCore.SLOT('close()')) + layout.addWidget(self.sending.sendinglabel) + layout.addWidget(cancelbutton) + self.sending.setLayout(layout) + self.sending.show() + params = urllib.urlencode({'quote': logdata, 'do': "add"}) + headers = {"Content-type": "application/x-www-form-urlencoded", + "Accept": "text/plain"} + try: + pass + hconn = httplib.HTTPConnection('luke.violentlemon.com', 80, + timeout=15) + hconn.request("POST", "/index.php", params, headers) + response = hconn.getresponse() + if response.status == "200": + self.sending.sendinglabel.setText("SUCC3SS!") + else: + self.sending.sendinglabel.setText("F41L3D") + hconn.close() + except Exception, e: + self.sending.sendinglabel.setText("F41L3D: %s" % (e)) + del self.sending class PesterInput(QtGui.QLineEdit): def __init__(self, theme, parent=None): @@ -418,6 +452,12 @@ class PesterConvo(QtGui.QFrame): return self.chum.handle def icon(self): return self.chum.mood.icon(self.mainwindow.theme) + def myUpdateMood(self, mood): + chum = self.mainwindow.profile() + syscolor = QtGui.QColor(self.mainwindow.theme["convo/systemMsgColor"]) + msg = chum.moodmsg(mood, syscolor, self.mainwindow.theme) + self.textArea.append(convertTags(msg)) + self.mainwindow.chatlog.log(self.title(), msg) def updateMood(self, mood, unblocked=False, old=None): syscolor = QtGui.QColor(self.mainwindow.theme["convo/systemMsgColor"]) diff --git a/convo.pyc b/convo.pyc deleted file mode 100644 index 9879ae4852f89233a9b930682c271ade4c716e03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26809 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 diff --git a/dataobjs.py b/dataobjs.py index ab5ec65..a359be4 100644 --- a/dataobjs.py +++ b/dataobjs.py @@ -15,6 +15,9 @@ class Mood(object): "devious", "sleek", "detestful", "mirthful", "manipulative", "vigorous", "perky", "acceptant", "protective", "mystified", "amazed", "insolent", "bemused" ] + moodcats = ["chums", "trolls", "other"] + revmoodcats = {'discontent': 'trolls', 'insolent': 'other', 'rancorous': 'chums', 'sleek': 'trolls', 'bemused': 'other', 'mystified': 'other', 'pranky': 'chums', 'distraught': 'chums', 'offline': 'chums', 'chummy': 'chums', 'protective': 'other', 'vigorous': 'trolls', 'ecstatic': 'trolls', 'relaxed': 'trolls', 'pleasant': 'chums', 'manipulative': 'trolls', 'detestful': 'trolls', 'smooth': 'chums', 'mirthful': 'trolls', 'acceptant': 'trolls', 'perky': 'trolls', 'devious': 'trolls', 'amazed': 'other'} + def __init__(self, mood): if type(mood) is int: self.mood = mood diff --git a/dataobjs.pyc b/dataobjs.pyc deleted file mode 100644 index c809239bc15883e1979813706aa578766355e02a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14603 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 diff --git a/generic.pyc b/generic.pyc deleted file mode 100644 index c06f5283724144688355a5fd6ea4ed4f99559070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4285 zcmb_f+in|260IIm6iHEzV#V6X*kCu82Rb(;Nb(XGi^#O#7%R)-NQhz~!C*Yomc|;* z&@)Y&3M3$a^PGRkx8w`*EBS%lb82{z?L1gQNOh~btGc@`r>dHN{JGfv;OxP@NXDNz z{Qm~6{0&`{~m>r*#&K4)TSe$B4)>~-h`{=AtX=n?jpf@bRL5<3D zP#1rvTLWLjtJ%1_hgR0noeIR`%2pShRPvEf+VqhMn!7_=R77%=9IhSa$963)!tB5n zYtQoHXl-CAXLL9`UOTXvEt2Td!HJs(a}bonhe1H4OWrSLDhj76$`S?+(inMe#2IQYnJ zL>B~Ecx;2fwRLiw$HNp;pX&Hz@VRYf6dhg2YpRW6fM+&L%WHXh+qU|6GbvpJf_|n@ zd=t}`pa|fR{HnLf3*aRahci|uDC7K@+nQ zPd+W_GuZq$(9N#6gy}jsfKAVDm~&>k8|B%nX1fmFm&`VeVAzk~kEl51q)YCjmHX%r zEeTSTM?)fPPCfb6h;cPeaKb9%sLoV#;K}2Lg~)JBSWTn1rWp;11}k|>X@j{Dom=r|l`{=#Y&45~R5*vd1j`A7p;ojTI~ zWM=mZxmM*NqRJ*ZF)QXBbKO&;(Qu5L9$LA9t^!?tMNBn<1)l?Y=H#l9JkDsmoxSWW zsYAcVZONNr@S$bQ_b=Orr~B8?X@)A3pR8l951)of8a_51< zJD54?LjG~|4MOe(9p1%S6&>EHxn>qkb@?pq-2lVv!b_my9USm)-a;=T?JTMV zg)MI!>mWi9W z%J=3_GXP#9RVD;}&gwGynasC;9Ld?7oZ?03$?6%(!r5|cn7 z`bG<8E&a&UB*&Xd6{*bDojNOArqKh{bY#OJE|5# zE>(Sl&$U9w{zu&XF}qLLvDB%mV>ak?ZqsL7kgK$Ep%kW$xq+?a*F3;1BVjF@Iny#7 zGmqrb#`h||i)PiljdZqzei{GScQ9M>I-o69PXKDkI@m)i5&s$nhzejEp`*VwX7y!V zm?BV6Mqel&f?BK0?H}Kh9}wp?<_lP!ag5l*G5YXA`ndVzE7?N<+EH+yD>Sse0@;pi z6etM&&$&iJtt)VC?0?A>vZA~cEHS0O%q2?BOkO=1^s%8!L`9(xD6B(>D5J&oPDn$4+sp8XTy;48;lS|Kuej%yV akvFSfVgI3M`VLzG3Rjvd_0^@-=Kle^S0`Qo diff --git a/irc.pyc b/irc.pyc deleted file mode 100644 index ef4f9f2b75729e04c3a12ea00e7eb8ae67e4101e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15170 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 diff --git a/menus.py b/menus.py index 0cbef9b..37af066 100644 --- a/menus.py +++ b/menus.py @@ -10,7 +10,9 @@ class PesterQuirkItem(QtGui.QListWidgetItem): QtGui.QListWidgetItem.__init__(self, parent) self.quirk = quirk self.setText(unicode(quirk)) - + def update(self, quirk): + self.quirk = quirk + self.setText(unicode(quirk)) def __lt__(self, quirkitem): if self.quirk.type == "prefix": return True @@ -32,6 +34,9 @@ class PesterQuirkList(QtGui.QListWidget): self.addItem(item) #self.sortItems() + def currentQuirk(self): + return self.item(self.currentRow()) + @QtCore.pyqtSlot() def removeCurrent(self): i = self.currentRow() @@ -78,13 +83,13 @@ class MispellQuirkDialog(QtGui.QDialog): return None class RandomQuirkDialog(MultiTextDialog): - def __init__(self, parent): + def __init__(self, parent, values={}): QtGui.QDialog.__init__(self, parent) self.setWindowTitle("RANDOM QUIRK") self.inputs = {} layout_1 = QtGui.QHBoxLayout() regexpl = QtGui.QLabel("REGEXP:", self) - self.regexp = QtGui.QLineEdit(self) + self.regexp = QtGui.QLineEdit(values.get("regexp",""), self) layout_1.addWidget(regexpl) layout_1.addWidget(self.regexp) replacewithl = QtGui.QLabel("REPLACE WITH:", self) @@ -92,6 +97,8 @@ class RandomQuirkDialog(MultiTextDialog): layout_2 = QtGui.QVBoxLayout() layout_3 = QtGui.QHBoxLayout() self.replacelist = QtGui.QListWidget(self) + for v in values.get("list", []): + item = QtGui.QListWidgetItem(v, self.replacelist) self.replaceinput = QtGui.QLineEdit(self) addbutton = QtGui.QPushButton("ADD", self) self.connect(addbutton, QtCore.SIGNAL('clicked()'), @@ -190,9 +197,15 @@ class PesterChooseQuirks(QtGui.QDialog): layout_2.addWidget(self.addRandomReplaceButton) layout_2.addWidget(self.addMispellingButton) + self.editSelectedButton = QtGui.QPushButton("EDIT", self) + self.connect(self.editSelectedButton, QtCore.SIGNAL('clicked()'), + self, QtCore.SLOT('editSelected()')) self.removeSelectedButton = QtGui.QPushButton("REMOVE", self) self.connect(self.removeSelectedButton, QtCore.SIGNAL('clicked()'), self.quirkList, QtCore.SLOT('removeCurrent()')) + layout_3 = QtGui.QHBoxLayout() + layout_3.addWidget(self.editSelectedButton) + layout_3.addWidget(self.removeSelectedButton) self.ok = QtGui.QPushButton("OK", self) self.ok.setDefault(True) @@ -209,47 +222,90 @@ class PesterChooseQuirks(QtGui.QDialog): layout_0.addWidget(self.quirkList) layout_0.addLayout(layout_1) layout_0.addLayout(layout_2) - layout_0.addWidget(self.removeSelectedButton) + layout_0.addLayout(layout_3) layout_0.addLayout(layout_ok) self.setLayout(layout_0) def quirks(self): return [self.quirkList.item(i).quirk for i in range(0,self.quirkList.count())] - + @QtCore.pyqtSlot() - def addPrefixDialog(self): - pdict = MultiTextDialog("ENTER PREFIX", self, {"label": "Value:", "inputname": "value"}).getText() + def editSelected(self): + q = self.quirkList.currentQuirk() + quirk = q.quirk + if quirk.type == "prefix": + self.addPrefixDialog(q) + elif quirk.type == "suffix": + self.addSuffixDialog(q) + elif quirk.type == "replace": + self.addSimpleReplaceDialog(q) + elif quirk.type == "regexp": + self.addRegexpDialog(q) + elif quirk.type == "random": + self.addRandomDialog(q) + elif quirk.type == "spelling": + self.addSpellDialog(q) + + @QtCore.pyqtSlot() + def addPrefixDialog(self, qitem=None): + d = {"label": "Value:", "inputname": "value" } + if qitem is not None: + d["value"] = qitem.quirk.quirk["value"] + pdict = MultiTextDialog("ENTER PREFIX", self, d).getText() if pdict is None: return pdict["type"] = "prefix" prefix = pesterQuirk(pdict) - pitem = PesterQuirkItem(prefix, self.quirkList) - self.quirkList.addItem(pitem) + if qitem is None: + pitem = PesterQuirkItem(prefix, self.quirkList) + self.quirkList.addItem(pitem) + else: + qitem.update(prefix) #self.quirkList.sortItems() + @QtCore.pyqtSlot() - def addSuffixDialog(self): - vdict = MultiTextDialog("ENTER SUFFIX", self, {"label": "Value:", "inputname": "value"}).getText() + def addSuffixDialog(self, qitem=None): + d = {"label": "Value:", "inputname": "value" } + if qitem is not None: + d["value"] = qitem.quirk.quirk["value"] + vdict = MultiTextDialog("ENTER SUFFIX", self, d).getText() if vdict is None: return vdict["type"] = "suffix" - quirk = pesterQuirk(vdict) - item = PesterQuirkItem(quirk, self.quirkList) - self.quirkList.addItem(item) + newquirk = pesterQuirk(vdict) + if qitem is None: + item = PesterQuirkItem(newquirk, self.quirkList) + self.quirkList.addItem(item) + else: + qitem.update(newquirk) #self.quirkList.sortItems() + @QtCore.pyqtSlot() - def addSimpleReplaceDialog(self): - vdict = MultiTextDialog("REPLACE", self, {"label": "Replace:", "inputname": "from"}, {"label": "With:", "inputname": "to"}).getText() + def addSimpleReplaceDialog(self, qitem=None): + d = [{"label": "Replace:", "inputname": "from"}, {"label": "With:", "inputname": "to"}] + if qitem is not None: + d[0]["value"] = qitem.quirk.quirk["from"] + d[1]["value"] = qitem.quirk.quirk["to"] + vdict = MultiTextDialog("REPLACE", self, *d).getText() if vdict is None: return vdict["type"] = "replace" - quirk = pesterQuirk(vdict) - item = PesterQuirkItem(quirk, self.quirkList) - self.quirkList.addItem(item) + newquirk = pesterQuirk(vdict) + if qitem is None: + item = PesterQuirkItem(newquirk, self.quirkList) + self.quirkList.addItem(item) + else: + qitem.update(newquirk) #self.quirkList.sortItems() + @QtCore.pyqtSlot() - def addRegexpDialog(self): - vdict = MultiTextDialog("REGEXP REPLACE", self, {"label": "Regexp:", "inputname": "from"}, {"label": "Replace With:", "inputname": "to"}).getText() + def addRegexpDialog(self, qitem=None): + d = [{"label": "Regexp:", "inputname": "from"}, {"label": "Replace With:", "inputname": "to"}] + if qitem is not None: + d[0]["value"] = qitem.quirk.quirk["from"] + d[1]["value"] = qitem.quirk.quirk["to"] + vdict = MultiTextDialog("REGEXP REPLACE", self, *d).getText() if vdict is None: return vdict["type"] = "regexp" @@ -262,13 +318,20 @@ class PesterChooseQuirks(QtGui.QDialog): quirkWarning.exec_() return - quirk = pesterQuirk(vdict) - item = PesterQuirkItem(quirk, self.quirkList) - self.quirkList.addItem(item) + newquirk = pesterQuirk(vdict) + if qitem is None: + item = PesterQuirkItem(newquirk, self.quirkList) + self.quirkList.addItem(item) + else: + qitem.update(newquirk) #self.quirkList.sortItems() @QtCore.pyqtSlot() - def addRandomDialog(self): - vdict = RandomQuirkDialog(self).getText() + def addRandomDialog(self, qitem=None): + values = {} + if qitem is not None: + values["list"] = qitem.quirk.quirk["randomlist"] + values["regexp"] = qitem.quirk.quirk["from"] + vdict = RandomQuirkDialog(self, values).getText() if vdict is None: return vdict["type"] = "random" @@ -280,19 +343,25 @@ class PesterChooseQuirks(QtGui.QDialog): quirkWarning.setInformativeText("H3R3S WHY DUMP4SS: %s" % (e)) quirkWarning.exec_() return - quirk = pesterQuirk(vdict) - item = PesterQuirkItem(quirk, self.quirkList) - self.quirkList.addItem(item) + newquirk = pesterQuirk(vdict) + if qitem is None: + item = PesterQuirkItem(newquirk, self.quirkList) + self.quirkList.addItem(item) + else: + qitem.update(newquirk) #self.quirkList.sortItems() @QtCore.pyqtSlot() - def addSpellDialog(self): + def addSpellDialog(self, qitem=None): vdict = MispellQuirkDialog(self).getPercentage() if vdict is None: return vdict["type"] = "spelling" - quirk = pesterQuirk(vdict) - item = PesterQuirkItem(quirk, self.quirkList) - self.quirkList.addItem(item) + newquirk = pesterQuirk(vdict) + if qitem is None: + item = PesterQuirkItem(newquirk, self.quirkList) + self.quirkList.addItem(item) + else: + qitem.update(newquirk) #self.quirkList.sortItems() class PesterChooseTheme(QtGui.QDialog): diff --git a/menus.pyc b/menus.pyc deleted file mode 100644 index 2dee645511fa970cfe306025f4167c1a2d9f0e40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26130 zcmd6QS#Vredfw^ALV^UiZ{Vh;L`tBBLyALLNjQo`5CBQc5KZ6$6lXZmK#lH8pv6Wv z*!P0Vj5u~oCMhqKnel^@*iOo+I8`aXc^;B^no?4!lIs*voXvoHVo&%d5?_51&QWZU+wU3!?)HFd47%HcR-@nD-QpTs-R-TeG30I! zS?++lyUjJWyW87cW7ypuM(&^s3$8xm?i5^Yi+k$a6X(8pdxxuSRl!ab45bCTTy2{Q zcB^1}TCm5}hFv(Q+>tbQudD6IRo|Hw>~pnUxq{tk!G2fUlPlPp794Q3eYt}DX~98P zJCG|lm=+vzwL`gr(X?RH)eh$hj-&;LUG1m}j%Xdn(t@Le`TW>%Y)$?D;?GzSv3LN% zTzqxC9uF!u(Q1cfE82mKpuW5kPc-V)yVvVc9PdQd%z7iPFN6={$$F*HTDH2|QLq+9 zaoC<)uea~UBS_CGJ=<>GsW(Eawhh?}_0@2`QLlyVc*rNGn``UVxwTOr({Z?(A{9`{ zUB)juj39KxB_I*D8t4QBW2Dao^BSevhdRk`f{iX9h_P&7Nzr}c+$Tl%1Zen4fr-UF zhV_2J0y$6gk0?4n#!<^-1WbUR)AHvCh+FmAau{=lG0}Z-vEHo5i;IHhJpo_~vZF92 zoMOh;oAqj|7LIXValZ;1cLIV z2IK0=`s%sWu(=+cU3(M|sDxz1iMqnx!cd{gy-j`s!MBjXWeN&_*vCcJ8gPXeC{f7r zi_Bl!3(%xh`&4zmpalTd`a7D&eQsW$A|91(Dedr1{h=1!4%Zr$YN+gXxEwxQQ#4w? zgBoLmf_|aM@z$~=aLjm$ir4bq41Vlw)i-21P+&2X(jlQ_pz*e!xXcz$jHc)uI zu&Xdo)Rg>=HY=+kc9g(fTwHC{)*DC)*1;jK7*<7@ z{%{wC`NW7W%n$pBw@*Z4pMvax#tw9x0`3Y&5elp!((4ppt3igbwH>FTU+6O6YJKdt z@bE1jj{2ahZ*h|!zUm(LIRNStogJK|$5wsFeS-O*`n@aeR*gr9qnGPHz)7nAHlh*9 z&r+p&ce&kKZ`Lj@0YC13wN!02TJ4JuRszJ&fqeBFT_L$C=zZGRUMxnqj|^i0iz%jNsbSRmdIc;%5ttmM}(BV zEDka=JwH2j{rXf8afi>J684;b>#b8@Zs;7fUHvNvz!{yp@%4zDwMqdftc{(Hwjx!j zR>QS;?6j!K#CUmP>bmmV;m2VW`D4O)R5bcBXIN;&OKc~E{6K=WP>&m-Xw=-b%dLmk zE000+1Sn{vA*bh^O;H+l;zv zBi6!p6*RrF912(xlEQ~!by3_hAmj`t&0ZZ%B^&6q%2JJt?k z)Y=sA#19}3&!+RchLIxTq5~B777iq`RnWx~W>F&>Qn8J20B+c6{1OguJl>5|P{H9^ z?Zp6y)ZCS55d0 z&We^08|D*q?Rsh%<3^|=>FykUQ5k`;vLVmR$i()5VHs=N12(o7 zERNxb7#!K$=Q25xxs=rX3KBfp&tr0tD=b3?C2i{`e`8&oTO3lfC_EYYxsuic@+ZX*vEPB(38MGTV@Z%X=1KZ&s*yy8JMESUMX;%W zM-V^82>#$}4Dj->ko8_Zf{a09`nc2?*HK1-w0_t1&gD9K^B6ebI!g>B%o)o0`oEyi|949S2Bfdt1L zqK8?*$btZ35i{~FFcHu?k{N6m(xAt{r5aUwvb!?K5>~Mlfq~-|V@nM1a{-U3z!ng^ z!hT44S6bEeNG32lNUBdjZVnuj6T9fr&m&6&$3ax1uqJR2B%JjGOL^1{W3etQY7J&E zu1hP$Vhsd{fWr#?RFDV-1_E~I4THiB(gv?_Q_BusM>;sgKybN(n2d>9_U0B#Qui#4 z{Q+|QdTGEKE!dWHiCI{lCw7#U0vt#fb`fMVQEVebh6IMvn+Asw>&rvK`v;|fn;~mr zrPYc;31Lwc_4J2(a2dboZz6bk`70C3`V*lH7XM_YAe%hZ{=svQWez5pZ~>$>&1nEZ zZ#!kWt(aW39|0pNq5Hi);IW+rVF(4VRQ<;>*I6-93Pi|+0_doc#1@UVnGmFtHJTi) zA(`DMxtYqJNKC-c#qAmp8h;|rF>^%73r!z$frPfx)#1<3@W^3ux3>@^f(F`S9-_8v zzbDsz&vV*K_{z1{#J%8TO1+K0_c`r5OamA{ZyGSc%i2TG>N)=o(*W8J=jOjZH-E@( zJ=;qj%*|h;`T3h^!p4VbqG$V^+|8uDnHxYSfi4iS1a|FSn)VixG`&~IKxDDDX4bH_ zCe%@swe)^NoHT8+DBEJ)GRydR!=8amoA+q2xWI=awy`z{Wvi^Hyd#KlK# z+_cNX-Cg?rw3Y-E=ug|{`#YAK(y`~X*ZPw7U6vaRe$1v}#v7y$E6wE}C-tSq0c(?i zN?1`~`jy1Y>=P#CXEjHySF7pu0d!eP)C!XOu>&~W<%pJ9nvl=c%*0`)9ooG%`0r;CFyxNK+;N-7UrjCX0K0`yg06D zfwj%oSJxV0U~ZI-`hjHlw7%~+kdvjeqDlWr$4N!WKS{;lOPGPA364qgX<9PR5;EEj zd+*rk7ZUAHpj}R?qF|bc0yC{zr4eus%wE)L-l;E3(E=Ep(XhVNqeD| z67NG`fSeB-u%CrBU!|AUF^+H$Y02U5vyp zm0qbg9F?$Y3Iz(JLx3zppxtxtnEPHK5mYJXICJiNgjmpIP+@SA0VTJbL|SDYMRf^8 z3N|7Y5#j$eelkcoNafW6Qj{f9IReYcmIQqU+6(ymJ7D1uSl)R8kz7)#_xw2b@m4u% zNwRp;f$pF!?p=uPh+(~^Sed-xWq3&oret|5k?0+z88Zk>l^3Rhgo<%uG6-MP>1)vN z99-ulDZ@)+rYkhqg;YTNHA5|TD?q<4pw<&`iE^nKd|yS<{JTV0b-Y%qS7Y^J$xS=d zlCzwrwEqU9L>$T$Uk5%7Kog>h`~NZYJwwQ#AKb_61^D0rV_Qb4o zFa9$Ue+GN;2m*LwLjVDjQgf?0>-w2H;6C2wTH~%z0F5eu%fp5MDo&aO3WW+=sTd$x zU;=s&%&A3pAjy!;+7$C|z^3P^9n9rW2JEr{q$IZ)J&W{0w1(B>q;7!c6PVzwPpzKHTjxfPcxCAdoJwGvE!>y1jggo`chFpBD}=81?_ z!)q6U3-hI0*S=Yryg4)b_WbL4DTJ6oDGFVESx>ad6A+5YD zo_bj=|M;go=$U){E2w{HX=Y+!U0s;b$-#MUgc%P$DP|2&Jy8du> zvI~;chMl)NVUS~SmH0|VPS!0%C>4bWrWIg8lyy5Ub(#$hyg~x;qA?1Y!k{F;x}DnK zAb^-l4R}SagpR**=nnby#oZ;(F9?gSZ(03%Z7!qm$AvXqOxV-m|sov$ebd_DD>)k~eMH5z%y(m%(@ zL%KMN`#q&fNu~$6Me`XK&DKG6sP{#nXPug|``A4pT^k|+ROgA>kE=vPW^;n73a3$R zz-F$afm=jmn_b3}puxOV1`;MR`^b6ZnY4btQil%Lux=vrmrk@+ms$`WMA0-4Cb%Hn zAzlsJl{gHjvdLRTZBJc6!0^}mrkl0!q4`a_3>CfHsF%=_d2DI(FwZPcx4BWdY!gK~ z7b9_`-i+e*dNqb56)B^_9sH?NAnQlFAfR^vjV_YipUsfQI$ z;nL{K`8jmO1qZL=LQ8tfCA-i9rM0hs`jQ;T0)qp{!`(q^jl_av8r=e|m5jb< zheGw^JI?sJ0#y5VHT}1R|?2Dv<}v_VRvehW;M6g zIRXkgN!sXrHlV2>`Q<**!=k@eHHG*#Y}?dN=Wi z$h3S3y47N7e^&+Skfn`&Vhyy|z$%{@y<0POn@2`=4~ygK@i-0OUUhnSo?J%OFawDS zNv#D|64`sdR=CyNCLbr^d0a3$!Jd4tuPO)ok-yLKnlf!UM$&D%uNmP+@0Na5Y0tXy zewve->q%EX<>J?^5!Ps+Joy|@cKB_;y7GRTH`JfCf8#mrJNz~_ce^xWbA7|6fvW?S zKAFyaOmN5gan1Uq!5#1bA`J*B9%EtP*l1-pkDAB8#VrGC!WCV^jnl6FCb}%B>`MuI z$Nsb~q%k*L+8rDp*fn16W(9QPm1Ij8ue1Y{ZQ&UK=ZtXL%L!?JXKdA& z=$APpJ14dYk{+Ywl){N+5*VHOY`W{oIhEDZg(XTFVzu<7d=9In4RPYyc=_sd`D*D( zfJ;fIB6}8a6eV)QtUlu7mKA6Ujqsd|k>_~9LRWGj_<+cfFy&qlpo<=!nATd@oZzE^ z#E}t^h#L7URZ9Lnz}d5Bqa(-0>FIAc_ zD!|JD%_C`WQ4)i_lxT;wuXf8AoTFdY^Q8;|Pf|v@im|iE>XtJ~%#)lUCY=czk~1iZ zS63=_``5NgS3vy@h-=!s;3jJ6+A25H@)EJaUr)x><9J1RSruJ;&U`y8&^~%U$uV{+ zNsODj60bI7FA-EM9}Sf165-B7SE+{K`U_`-RPv-0aNrTI)$djh0{^urE!s=a$ zPs7OfPQxnm@)>4D?~;`+v7>PY7Z9lWIJf`W1ol5{%he+ZP1c{8XxRiNZkY*8CC0QN zsR)?B0ymi;GufpyHZZx#uOgDrwASS#5(oe)Yr6Qrj6j-}Z>PP;o>|*#WBh^ z7E0r#55})gPnIUG-JDq%ziJmj{~p@vtR&aIq#}(VH~3WsOAP2ru#F^vxE?l_soTFTArNif=#Sm}zIE}ezt4T!gC1S+1WpD|$$-M4Lb?0m81W~2 zxMjAZA2IJAA;@N=*apxk_+>Po=RCOF!NTzL{;gsjW*xe*Cf%=!GW|it7qSegGt`~H zFZu~u+4=U*eSr~P?1wqQ+a>JO%FfGEn^#n_8(Jo3QBg^C4B#9P3dkp%O6)n1hj9hR zONT&F-%x6iS58ckLBk!y^rRsan`av0F_p9@-!T6;%SPY~>>k%H+J*QyOJ*qKGl|Dp z9Y&z8$6h8wTYKDq>e;@-2=wd?D1T!0;MwaHs|(zKU%k{&R%MeW?a? zP~I`>aT8B{d8a!iAKZ(}_(k7G&}CTe`FPqg8RE@PF2ubIP=Tl7P`60}Pw?}x-R8GHsOpI)Tn&lAAm<;udoj7m7z1 zb1-j^G4qR&8tBMIYGf79NL5N|I8Bg4+{iQvm06Zy{uSBv1kvcqA?m8JT^M9j8wFNv z8%0`kHi{JA#42u`NKbsCpf3AOnShE$CZ_ZBz*Qe(f7c*ME3?AffqQ*#bJCRL`l53hWd@zn{LrYY5+Yy$Q8ZacaBCpE0+%UFrJv?E71 z*J@Ci`Er(>tSiM+8X@Nla}dWxo(LMyJX9e(K%BD&MrTUh5#J!~!Z-Vj24kYo7$yI- zs23%dsa=(+U+STe-3lRv5m-4-e4?WwZF6o0(34!(GI2#|9_P7n*{&tfc!*g}FKtx1 z8*2F)UG!hCkH$G2Su^jKO}LbEjc6hw2kkAu)ni#u&}@Qij=nW zUSD$SuQ*Z!3qWeP&`1}dc{glVxM5RhhL*aKl$Nhf3FR4 z7A(p*DgMd`o-N`?CR7d-nLa%HlZudk7kTfbyTy@^my`YbFn&2AdcU@&kJAX=Qq9M?*MWTM9m92BBYVgcZA}p(iiW2*C4s8$+6!gnHBK%%1WpTk_;Y zt+qZO6LsB_(-2bFo14G575p=d@Tc5H5)fD9B}?kmJE3v!D^$5DWH>}`ZOji40d+TR z3Z75K4erCR?Z zE-Bnni4|#tcjE5-Q^Cirdeg)V(i!blEo_j|D2`Lcc{0@WPWw6TNQwFax_~!@= z)Ur&;;&76A_*t+K;qnjAXoQgA@JdKWy zWjWFtFI+8w^|$pPJHr9tA;iMHEC~5#d)wUSih|!qUwbm(oX{B-a7cSNW1-7$A_ACT zp^FA3;SCOLdcy(GvOJ@hB9{Umnn5U3y@wUMaSbfPF_r>K@(E2+y6@zNqyD8P0g3`p zVF7f{y(PZRocyq)I}@PKc;hYa6FWE2kw|*)XFbq)(sH=i>){2dR*odwYm65XUbLCn ztBziXPWo?1EtdZ&lmC>5_QMsLT*vOern!VWSle7(RvQA1?+N&FL$6BojPtLYN<6M#fcee1SPY4A4za z3$W)rq(l~xOkS5Vl9IQKVQx99B4aqF&tBLubWHVvzVQJgAT}cClu7BAc+%!&H?2`r zhwY?rT18aBr`gbg*P{^Ps}%O32^qAI<3BVZ9WqhpFs_tH4umI(Xa?_n-e!ku%E-i3 zsk|16uQVVNZ4*s#5xOHZN{pu`a_9{UW1mM|Y){>!EBZ|Hqr(wz%e0!M+|*0S)Kjg{ zzLAk?g&ZF3^G@y)YJbAj;gf&OHUyOn6eph3U#dE?zmuW_5D`G#PpPw#b(5w~D9yU? z%7bc{7Ho9|i2}7^OM7c$n)a^cH0>WRrfE5ZbM3v>oR<4XhiTee-5d|zeK8YZ<5(gJ z)+oBXs0w@rhg3583_eOR-&_AJ;Vkgs301E9QcQE7mm|L~y?Ht!DW^P{R^rhf>rs&| zQ;$EU(|ECYtxgHQ)T!J#>?fY>+j23vM@a}btM>|nYw7M;~})~ zyit}ol0|{Pc4OM!>&R9(wYnBR!nLr|Xk=pAS;k20f=s6sSE9ON?x0@kEZHBtw-kD* z(FXsRwf_l&9wtX|r&gQbFrTKpx|BTN%3cLrg5N+~`fe0fag%+*i_=_Nj4yp!E7Bl& zJ%hKI&q=e;K3Wy9J4s#4%YCEc67qw8!Qfp6(um(;Od9bxVuEcD-t z0?Io6M4v|x0l9$$17QtEGx`1~X5fN9X0U|dWxpf9?e}{}Rr8x%A4hN|V!Zf_{uA0r zba>erQS6HRb4a4pw{lbB%=+<5nOGZ%hj+=FCO@poN+587+=DZ{0w&@u1zoyQ&QbtM zXxDj-v4QWJ04(;0&ct3lHM+N@<1>~7&S%P&65P0k2%l$NZQ+xz%`u(?JFtrV4wJvj zfM-<_4Gad;sA;w(#sb0iRg`Cnh0IX?+(yB_WCtWvo5E~~EvBIQ^BR4dK<7^2)gr`A zy5^6W9>#;k6Dl12HAK8zV8|+=GZ6|Nem7MiB;XL6rDgz|!8SWp2vb-^_4nMnXez|T zgdf39YF|W5^%HFmI0Xa?lz{1?#GV|nECPR=6l@MRNp&-hhcAXFA2=bc z-O=OI#$6){zmy+?@A~2X|BAY*3yV1up;zOIu=tl`{ zak`b>{VBW*od1K9_@4|2ZS%bUFUIimU)K5Gh-J`KY$J^AkJy|uqRIsy{98lCp}wIl zLtF3(7jmKNtx63y&*s6tL%jPkP`G+ERxb_>hHq2hJ8n5gM`{5gYNQ^A}&^%Hjx;Bx$7X;@@=Ks z1Uy@Lw>z9$sD&?A%SpxjyxxHd7#LSjQ@sO8d|4&cJ2LY-xkFo3##~kFkCe`Q$CbSC^AR71lsqQe4oKM0@-=(!=WZdN}wcKn;1#l%!!ec zNM;9ZBWH|c>=CeC>V(5*M0Y@RJP7fSf9WZwt7K<(_pOKcMM^>>!9Nk`y!D3XNQ;!J zu!7I&zpNO>gU^0~5E2MK?)rVsp5ycq4PSh2(F*LN+ILc$O###N3-puD?T6Xi$|hlD zhNBq_V|o#pUQlG9@&5w~Bu1r3ij2+8DEL2U`H+*~2>=N_KoY9Ea^p+*im%;Ap!KoJ zG5Cj&yo{f|mgvbRXk9`+K_FQ}1dKIdwoiF zo!J!ikZDs$p)LL!0F`$g*f$KzCNcNGhHMbUHgcBxfj+;?k+?B~g)yqtqOP-#=Hj=F z#tFlIh6NOsm&0b*u2%y#2)G5pJNUvYt)-76`&uX^(z6^UW_@lYZC!=Lhd`fl&#;fx>X{0KVya fpg6j7bkFD;2d<6&(&*{YZ;zfB{a|!<^!Wb+=5PU! diff --git a/mispeller.pyc b/mispeller.pyc deleted file mode 100644 index e86c8b3dd79ff462dbd3ca1a8a32f482c27b0711..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2929 zcmcIlTW=dx5T3K^d+fHPByM_7TM{?TrRl|OA+#Wnc%l!^L%?ZNIeSj*jn})jciq^P z!%O)aJn<8d_!mgD1Jkves?d zO<8N2bb4w{TWgPY)6`5+Jwq+rAxp!r$mGam=$(S^GkWDvJx}!l4Ohfau!gH*n4x-+ zOrFdP9pJWEGDX_z{Y*Q(A84m_nRJG9mZ~~OIuBMLJp)!GD5|=|=BhqN`aIYLg1)Lh zApEL&mh?ri4+;7z7GY^s&yk)7E0ewic8MTW^#bY3V0qG4z^;*A#Of+ z_~>!<$?MV{ooNVLJ7>m<1&d@kZ;~X{9a&n%A*J#YoZ;p-&G|uzI z$9NF908#HJ+QEFgQb15I{S2tj0ptE4804{(#$ekvM*Is1@1bacLy#3Vgl?J?@1{6R z2WFQ~Mi9e8xt&Xg4n?ovgaEM|aQl!DH-H3IF5kGE04BNnJiEF7?8e(*(L7!<&gnfM z#qmJPIAR-s!Y&KUvDHG^-W+oIMi~I`bt@@E^irag2O|hnINpRwdtdurl5qZ8jreuj zj6~gUggWYo=(Qr>Gg3-{32`bf3L>wX;3UW16PFaTN928(kA8rth@|osEtkcTEtO{(5&LSA!xMbl8f3J>jgnB zRx!Tb-Q24&$O7uw0nGD;KsrVm%n~MX4usTgwWzLH&`zF#JOS>lfWnp;5GyZE@Us;R z6F^}7duxmzSaKPpvF~Yvp6jFOcEYIJ>&MC9&Czi5w!+7q!eOUV0L~sL{}b544NQVs zVwhuwp47^F;^b6J<2;E`y4AnDquOJvwD0JDii8WnM$$Lkpy3(L$t08|8w&S+&ZDI4 zIfT*dqyck@a`V~=bEK5?tZz=^L>-@m_qP=Cev>xADXd5yxpd-a5Nd7`6?XYcp>k=S zJy~4lvUMZy+h&tzoIg^on#D+?G^NAHV>vAr=|9poq%p*;!NEabD*PWNj|QzoORowC z9r0jAY2Z!@(f*r0bA>-WQ$|dA0pb=X=9~L$R^`%xFi!YS>y`;$zSnT`~qj;z=V03 zym{}z{QO?)+po80ug+&D?}HR;fuPj8;7+{`7aR92@Cck;N_*g#YeI<4Ly8l8P=k8v z3l-osb~njv<0k672cIIA&frRr5?L%WU}7A#eiButCQ(HU+4U$Hn=p`Hv)IneL~93e zGF0b}ZpMQKfTj0(Fve5BaVDA*j-IlqhE8&gei^ov`lW!il4$K9t@;Nx@-+)(G@-dN mV>6%Bj;11aY<^kuIm+5tVz+jbHLt{Tmnp0X?{B1MDfI`(rC^@` diff --git a/oyoyo/client.pyc b/oyoyo/client.pyc deleted file mode 100644 index 66e60625a075c79b0d9c60ff6a48f34824ba7653..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10871 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 IPOo14H=&QiWdHyG diff --git a/oyoyo/helpers.pyc b/oyoyo/helpers.pyc deleted file mode 100644 index 8a68fc5bbaa2ed41e6d66a09946982b20dde3bf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5020 zcmcIoTXP#l7CtkQY|EC3V<%n$1O!wlbBlq!WGlpkC0LQUAf}`|j_o>{`wvK=N?(AAQ2aQQu2A&{ z|CA!2O)v<&+^tG}R{~fd4b@UWg>WvwDqt?H3g+<5ySB~ZB&x73)_h#5{=@Ba1DlO;=_!Ih3>o?N>;m0j-`r6)3y9w`b zZP5UUqVGm&uK<{$NWIWYvVyan!2s^kp+P=Sws-S1GxV!E(a?znxyA>bEK7P$7Z?43 z;sM_5rLLICk&2(J(@)$pIL6VX@MbU~7tF*XX!Yk;%*ZfbN0|Y%fvEmjcYD38g$t3@x6l8eByO2^fMy ze9C^Tp^&cvugJLy|Me>vBu2fe7@sIeJ}p&n@6+uaub}3S#}(y~s;D`So+7cITdymS z$-Jk?i~Dvaoy{M>{tYw@6#{KOSPkN_))T+|14|H|`4Zwz19d&Cq8kdeuQI0~ar%@( z-3yoj8$h8tGN@&&dezDDlDpc(79fvf8hS``Ht%aUKFHHJ(S)`!u|w%)&NwxP#jhbV zjrV*eD-?C`LGXGZ-oZziMV}tW8F5Kj*)%4h(T^hg$bNzR3wczvZ|e=Dvk=`akMSnDY7*~yUVf^gpS{RgG@0UhP?Pb>{44kS=v1yc(aLfA zaM17!^CF11r$!#fra5vI`=Wm5Fxhimqwf6>0$d?C`b~n>P%(T2PtN1J(;KGUg96wQ z$q&7gA((z=xq2ka-@M;B(#*$IwC{B^M-jb!;SQj30>;O|rD!*yv|v)>G47dW48@j%59hx zCkdSf+v4QYAl~wbcApouW>RRANy{yP?r!h2Zti|~Ym(*2;1uc__k)ge_pSPP zBh9A60?tS+?)G&5NMS;GP{Gi%T_7vwHyiz}+A!iyucx5Am^7J10M=<1BkRw<*uB|A z*$1$VeL-f*K4RI&FCWROExxAr2W7rDN{f&2TZYfs)BBaTp(^k;I;RSRGC-DLzVZ3l z)5+*btxQ1_)Rzcfw0De`d!ougj*5mB@)s{Pr)yZEsIP`er^k<(e5Glw1=gi*F9e3+ zsJ0w*hQ5~05V?w!EH7{m#8{w}1(Szr-$sWC0M|H*TJ%FcDVUp8b7YbWD0m;dCdfP6 zcV1%MixYTFq4virl&H0`&Sm1b_i9=9Q~Q=aCnl+f=F!wn^5f(t@TUbx>uS@kiwKYO9*QJ7Ss&_vAHA=*yTE7HUkE&)E}bLrw(ne$Z?&j8t_idzE^B2Sh0Y0{ zXT;?PkG@A0m;NrNFn9td-y`Qa&2F^vlc5S>_{jb}pi1w-@liJFE10H$kRq`QK92#F z8kt>^|A$siOmS2}mqXNKn8uKLpIn%6B>-HBN<)|_^z`9vKH}K>B-c3c6iB%}^48aq zGR12ht?vvWqPSN^emhgS+2MBTgzcK`Cb2!O+58h1@NId0Tnz4x5)!~G3gH!L1R6f7 zCEvK(VW!m%Gp+d>c5LYLLqjpLc^pNCFF38u4WFBa>Cf{TOe~` oBdk~Jje4bCY0Nch_1bwnepc~??@FWE!2QU-b78$cAJ&(C116iffB*mh diff --git a/oyoyo/ircevents.pyc b/oyoyo/ircevents.pyc deleted file mode 100644 index 51fd3418d38d855a302b6ac575a6eb79b92bb159..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5693 zcmeI0Wt`Uw?*q=B+u$4Ga za1e2@;1J?a!C}PVf+L6{1xFD_3yvX<6&yz#FF1kNCODBeNpLc8ir`e@G{G#<5HyLF zz$1J?o9GC-#GGKBI9+fCai-ub;%vb=#JPg=i1P&(5ElwAA}$tOLR>1ijJRBI1#zX| zD&lIv9f)fLcO>p4xR$uH;4Z{n1$QIvF1U`^F1QDAPr<#2dkc0D_Ynldf*>Ryh=@f& zkLU|x;(Eankq8DvD#(bTU?-6a3ZfK@h-JYFaf4t?+*fcv;{Jjgi3bQCNIXdJVB#Ty zn}~-B9!5M|@Cf3Of=3aL7CeS{tl)9P;{{J3o+x+{@npeMh^GpkMm$~c4C0xBXA#d9 zJcoF$;CaN&g69)25WJ9hk>JI|O9U?^UM6@s@e08!iB}0;O}s|%THzY=j}RXfe2n2RiLVI0N_bU>ZxY`Ue4F@=;Jd{41m7oq zAowBiBf*b}p9p?R{7mq3;unHn62B7sn)r?2x5V!Rzb9@J{DJtR;7`P#1%Dy_D)<}m zcfmi1e+vFZ{9EuJLKKu@{VB{4YZTTJ>lD@#yDMxUHY)5v?5VJc*h^tEvA4n&VjqQl ziTxDzCk{~9N*t(g5OJ`=A;h5yhY^P>96=nZa1?R0!ZF0L3da%0E1W=VQ#g@0N#SJT z6opfX(-dZjhC-8QDR_jh&?Y(xU1CmQo;Y3M4At2#f-@D)QaD@T9EEcg&Qra0vRw(z zSGYjoLWPSIE>^fi;ZlXm6fRe|Lg7ksg2t!8uT;i(Mt=3SqbnZ@)8 z*~v}b^rq&tX7;D%xMpro%}X_NXKLPAGk2%vam{S^8>Pq=&2roV=S`N31{orry-ufA zt7(Gl;yB%=XSZpGut9b`JezB)BJX)7DYb2qRV~kETV>=>c1o|d#bml@->pQ4d^9X$ zm+&pW7S^oRycX7e&1}P(=rqzN>K5H@m~C2f5=W^moL0MOLSpRM(5|m-6WG{RC2-p& zupNY1pGHYFygwbLT6eo`Yyk#wI2;88ZwrQB|=q1_0#MmkMc9Jx6ne0&z zv>{jt#%6raX_1cgM2kGuzit&5nVryUSRopvwT?D6)P|bP#%86T#l=JfJeHf5EMwJ~ zE=3PANeizzZw^+M1j{hDIp?wDbbuy>;cUd!g18?RQeUduPrIggcm zyPKA+?=&m3VH{c;>sYICILdRK^fgDzYOc0S%HDH@9H-0iMC?6QroJAE(O{6J)fM2m zx-?CvcZuhB%&lR9bUU95;0<9kET{YT=cZkvU43>>Joh555{gBuuRxw!9t{(hi>z90 zOoKt)Xmx2RP7+Mgn8l)R)iBA5$!1)oXj?Qn16ImfHl(;L**f<+R$a{I>Sn8G#>@po zRqKwKXd$5NyQ|jg*gMKJUG11NiEbP=ckKao=50Aum$=up=`+YmtEXPqo}@m+T9$P^ zb7*F~>G^i;O{+WC+uHlzw5^TXG27P$D@k703YC6)M7rqg3g>KkN#?EGn34~BxUw>n`c$sHb*8YUv$EjaWv2bk>D%W~mhlZRcKz(h`;E4h zgrKzc`Qk}xoFy6TiEZ!VPCE)Kg2-D_8m zyF;@io1Bzy18G$faS<#e?kVp3HXTfk?&9gV+$(bihx(saeJFDJg`Gwb23qHWJQ%n{ zp@40nE8r#rjCbuwDYNO!0v#-7)0^3+p6MZnd;qWTRZ*8fi>m>|F3)-Vqhaa6okFs+Vm!^eHCp%!4_O9Nh z7h*P_js_9qzk~9aQhoJN_M%jOBaKiQb;b{KKBXu#l}*pP93&$ipVrtQsXW{Gn@s;H z8vJ#(&+qKB$b+;O<+CeUzBD^zM}95oj|Q{Zm_M^I70RsPwBgu@|CtQND2dMAj{_9^ d4@;R*>;M1rKSp5V+8I^-Y^Z&%Y?d2l{tGXXUfloy diff --git a/oyoyo/parse.pyc b/oyoyo/parse.pyc deleted file mode 100644 index 79ddf4499bc6cbeb126190cde91c5329c1da6c32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2869 zcmbtW?QRoC6uq>qeG>k6jl>>40pR*>yXy>Un6xcD}bJB!Q!EvJG!pf>?+2h`rGOJCHJ zFC!cK-Zv2!aSD(&kX#L!Cpu8{nn|$J!ap~2KFd)Uz?rxwtakhyK1~v(U7Pglut_r4 zfVDPAhi0vtg-PFJYm+qFTN@eYO%@Ht!?kpZ-`Xh5oVh-l`cvr8=_F>->8!wXOp8?R zl6{~q9GXtYGtEwCn0Ci8KHFS(?DxMpZ}V7}k;H3NMf}Z#P9w?O{DhJNEQ+k2RpbL+ zDa`O|{1wdLskcXGPjg$~F!?@)3a))p`w{ttqUO8jkLbsMW)+%&SCxbR-8uLg-Z6{{>Az#6 z^x`r8SvYv`Vnr#W#|M}!;o2(|+rs^Zz^G|F4+qxi-Z+W8O%p9~J*mP5U zd-JYFZ$B{FCZn;}-t7DJn)GT8jdNk&w6tDdzoDP4uCMB5?xv-iTMuq++-d3Ox>>M8 z8Hk5N2P4YjUMmMV?2v;roylIBjKjaB4|FrJ(OyeG)2o+&Jw_!X;`1gx2dVS;%wdk4 z2$yDTJoa8oztTtMOz_6T9WHMs?-)5sK^im8BU;7pmE^O6Yr((ZTC@fo9=Xp#8)N>2 z_t18`F@|t7?TMx^eA=C z?!=&%Q)~Pyx06`ucS*I1d5{PY`s@;v@7CPb= zCwoacNi~rAfU0!fnOej^kdIE`?E)$U zjy}Gi&Z{L=Q%gY=c`aB}C44Wb6}1qYSC@lDT2RaCOEn)vyeQ0`Cw+qvenB=}E=~{} z9FRK}OsHu5RM9aiW1hQ@Ji z8k)tbp;@D@79sz(mOX27tCqgO0{IWRCXs(h@*9%h+>~oV`vdTjQ2rr|$3~*E{SnIQ zycQBSOf)yZN{kE_5;54f80=XL=J|huiZ3d8Q1K}5mR$&xyQ`1#8_kSmv5 z^XhYG*XF2{=yp@*d2n)Nx{mNH_TK`^a56X?fE}CkQrR-;&aR2_ecisqFnkp|9*0=( czeAW1uMaL=tuwG4`(8lk*GeC%mCF3upUf42a{vGU diff --git a/parsetools.py b/parsetools.py index 5e65b21..8d49a4f 100644 --- a/parsetools.py +++ b/parsetools.py @@ -114,7 +114,7 @@ class smiley(object): self.string = string def convert(self, format): if format == "html": - return "" % (smiledict[self.string]) + return "%s" % (smiledict[self.string], self.string, self.string) else: return self.string class mecmd(object): @@ -227,6 +227,12 @@ def timeDifference(td): timetext = "%d HOURS %s" % (hours, when) return timetext +def img2smiley(string): + string = unicode(string) + def imagerep(mo): + return reverse_smiley[mo.group(1)] + string = re.sub(r'', imagerep, string) + return string smiledict = { ":rancorous:": "pc_rancorous.gif", @@ -269,4 +275,5 @@ smiledict = { ":pumpkin:": "whatpumpkin.gif", ":trollcool:": "trollcool.gif"} +reverse_smiley = dict((v,k) for k, v in smiledict.iteritems()) _smilere = re.compile("|".join(smiledict.keys())) diff --git a/parsetools.pyc b/parsetools.pyc deleted file mode 100644 index 4702ed921bbe126ef64b534c064583b64d96694a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11169 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 VP7DtX9~eGa#1D>szJDWy{|4t`aA5!d diff --git a/pesterchum.js b/pesterchum.js index bab7b21..ab6d67b 100644 --- a/pesterchum.js +++ b/pesterchum.js @@ -1 +1 @@ -{"tabs": false, "soundon": true, "server": "irc.tymoon.eu", "chums": ["unknownTraveler", "tentacleTherapist", "vaginalEngineer", "mechanicalSpectacle", "carcinoGeneticist", "schlagzeugGator", "gamblingGenocider", "gardenGnostic", "superGhost", "centaursTesticle", "arachnidsGrip", "grimAuxiliatrix", "remoteBloodbath", "nitroZealist", "greenZephyr", "arsenicCatnip", "cuttlefishCuller", "rageInducer", "gallowsCalibrator", "caligulasAquarium", "terminallyCapricious", "illuminatedWax", "aquaMarinist", "elegantDiversion", "moirailBunp", "uroborosUnbound", "androidTechnician", "midnightSparrow", "apocalypseArisen", "anguillaNuntia", "oilslickOrchid", "confusedTransient", "pretentiousFantasia", "aquaticMarinist", "lyricalKeraunoscopic", "counterRealist", "ectoBiologist", "percipientPedestrian", "asceticClinician", "doctectiveMiracles", "noSense", "obliviousCrafter", "ircMonster", "twinArmageddons", "cannabisHero", "jetRocket", "dFd"], "defaultprofile": "ghostDunk", "block": []} \ No newline at end of file +{"tabs": true, "soundon": true, "server": "irc.tymoon.eu", "chums": ["unknownTraveler", "tentacleTherapist", "vaginalEngineer", "mechanicalSpectacle", "carcinoGeneticist", "schlagzeugGator", "gamblingGenocider", "gardenGnostic", "superGhost", "centaursTesticle", "arachnidsGrip", "grimAuxiliatrix", "remoteBloodbath", "nitroZealist", "greenZephyr", "arsenicCatnip", "cuttlefishCuller", "rageInducer", "gallowsCalibrator", "caligulasAquarium", "terminallyCapricious", "illuminatedWax", "aquaMarinist", "elegantDiversion", "moirailBunp", "uroborosUnbound", "androidTechnician", "midnightSparrow", "apocalypseArisen", "anguillaNuntia", "oilslickOrchid", "confusedTransient", "pretentiousFantasia", "aquaticMarinist", "lyricalKeraunoscopic", "counterRealist", "ectoBiologist", "percipientPedestrian", "asceticClinician", "doctectiveMiracles", "noSense", "obliviousCrafter", "ircMonster", "twinArmageddons", "cannabisHero", "jetRocket"], "defaultprofile": "ghostDunk", "block": []} \ No newline at end of file diff --git a/pesterchum.py b/pesterchum.py index ed649b5..45b67c2 100644 --- a/pesterchum.py +++ b/pesterchum.py @@ -607,6 +607,8 @@ class PesterMoodHandler(QtCore.QObject): if self.mainwindow.currentMoodIcon: moodicon = newmood.icon(self.mainwindow.theme) self.mainwindow.currentMoodIcon.setPixmap(moodicon.pixmap(moodicon.realsize())) + for c in self.mainwindow.convos.values(): + c.myUpdateMood(newmood) self.mainwindow.moodUpdated.emit() class PesterMoodButton(QtGui.QPushButton): @@ -1683,6 +1685,7 @@ class MainProgram(QtCore.QObject): def __init__(self): QtCore.QObject.__init__(self) self.app = QtGui.QApplication(sys.argv) + self.app.setApplicationName("Pesterchum 3.14"); if pygame.mixer: # we could set the frequency higher but i love how cheesy it sounds try: @@ -1697,6 +1700,9 @@ class MainProgram(QtCore.QObject): self.trayicon = PesterTray(PesterIcon(self.widget.theme["main/icon"]), self.widget, self.app) self.traymenu = QtGui.QMenu() moodMenu = self.traymenu.addMenu("SET MOOD") + moodCategories = {} + for k in Mood.moodcats: + moodCategories[k] = moodMenu.addMenu(k.upper()) self.moodactions = {} for (i,m) in enumerate(Mood.moods): maction = QtGui.QAction(m.upper(), self) @@ -1704,7 +1710,7 @@ class MainProgram(QtCore.QObject): self.trayicon.connect(maction, QtCore.SIGNAL('triggered()'), mobj, QtCore.SLOT('updateMood()')) self.moodactions[i] = mobj - moodMenu.addAction(maction) + moodCategories[Mood.revmoodcats[m]].addAction(maction) exitAction = QtGui.QAction("EXIT", self) self.trayicon.connect(exitAction, QtCore.SIGNAL('triggered()'), self.widget, QtCore.SLOT('close()'))