]>
code.delx.au - pymsnt/blob - src/utils.py
1 # Copyright 2004-2005 James Bunton <james@delx.cjb.net>
2 # Licensed for distribution under the GPL version 2, check COPYING for details
5 """ Mutilates a class :) """
7 # exec "me." + key + " = None"
10 return el
.getAttribute((u
'http://www.w3.org/XML/1998/namespace', u
'lang'))
15 format
= "{%4X%4X-%4X-%4X-%4X-%4X%4X%4X}"
18 data
.append(random
.random() * 0xAAFF + 0x1111)
26 return base64
.encodestring(s
).replace('\n', '')
29 return base64
.decodestring(s
)
35 def convertToPNG(imageData
):
36 inbuff
= StringIO
.StringIO(imageData
)
37 outbuff
= StringIO
.StringIO()
38 Image
.open(inbuff
).save(outbuff
, "PNG")
40 imageData
= outbuff
.read()
43 print "WARNING! Only PNG avatars will be understood by this transport. Please install the Python Imaging Library."
45 def convertToPNG(imageData
):
52 "feature-not-implemented" : 501,
55 "internal-server-error" : 500,
56 "item-not-found" : 404,
57 "jid-malformed" : 400,
58 "not-acceptable" : 406,
60 "not-authorized" : 401,
61 "payment-required" : 402,
62 "recipient-unavailable" : 404,
64 "registration-required" : 407,
65 "remote-server-not-found" : 404,
66 "remote-server-timeout" : 504,
67 "resource-constraint" : 500,
68 "service-unavailable" : 503,
69 "subscription-required" : 407,
70 "undefined-condition" : 500,
71 "unexpected-request" : 400
75 def parseText(text
, beExtremelyLenient
=False):
76 t
= TextParser(beExtremelyLenient
)
80 def parseFile(filename
, beExtremelyLenient
=False):
81 t
= TextParser(beExtremelyLenient
)
86 checkTwistedCached
= None
88 """ Returns False if we're using an old version that needs tlib, otherwise returns True """
89 global checkTwistedCached
90 if checkTwistedCached
== None:
91 import twisted
.copyright
92 checkTwistedCached
= (VersionNumber(twisted
.copyright
.version
) >= VersionNumber("2.0.0"))
93 return checkTwistedCached
96 def __init__(self
, vstring
):
102 self
.varray
.append(0)
105 elif c
.isdigit() and flag
:
106 self
.varray
[index
] *= 10
107 self
.varray
[index
] += int(c
)
111 def __cmp__(self
, other
):
114 if i
== len(other
.varray
):
115 if i
< len(self
.varray
):
119 if i
== len(self
.varray
):
120 if i
< len(other
.varray
):
125 if self
.varray
[i
] > other
.varray
[i
]:
127 elif self
.varray
[i
] < other
.varray
[i
]:
134 from twisted
.xish
.domish
import SuxElementStream
136 from tlib
.domish
import SuxElementStream
138 """ Taken from http://xoomer.virgilio.it/dialtone/rsschannel.py """
140 def __init__(self
, beExtremelyLenient
=False):
142 self
.beExtremelyLenient
= beExtremelyLenient
144 def parseFile(self
, filename
):
145 return self
.parseString(file(filename
).read())
147 def parseString(self
, data
):
148 es
= SuxElementStream()
149 es
.beExtremelyLenient
= self
.beExtremelyLenient
150 es
.DocumentStartEvent
= self
.docStart
151 es
.DocumentEndEvent
= self
.docEnd
152 es
.ElementEvent
= self
.element
156 def docStart(self
, e
):
162 def element(self
, e
):
163 self
.root
.addChild(e
)
168 def __init__(self
, size
):
172 def push(self
, data
):
173 self
.lst
.append(str(data
))
174 if len(self
.lst
) > self
.size
:
175 self
.lst
.remove(self
.lst
[0])
178 return "".join(self
.lst
)