]>
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
7 return el
.getAttribute((u
'http://www.w3.org/XML/1998/namespace', u
'lang'))
11 def socks5Hash(sid
, initiator
, target
):
12 return sha
.new("%s%s%s" % (sid
, initiator
, target
)).hexdigest()
17 def getURLBits(url
, assumedType
=None):
18 type, rest
= urllib
.splittype(url
)
19 if assumedType
and type != assumedType
:
21 hostport
, path
= urllib
.splithost(rest
)
22 host
, port
= urllib
.splitnport(hostport
, 80)
23 filename
= os
.path
.basename(path
)
24 return host
, port
, path
, filename
31 def convertToPNG(imageData
):
32 inbuff
= StringIO
.StringIO(imageData
)
33 outbuff
= StringIO
.StringIO()
34 Image
.open(inbuff
).save(outbuff
, "PNG")
36 imageData
= outbuff
.read()
39 print "WARNING! Only PNG avatars will be understood by this transport. Please install the Python Imaging Library."
41 def convertToPNG(imageData
):
48 "feature-not-implemented" : 501,
51 "internal-server-error" : 500,
52 "item-not-found" : 404,
53 "jid-malformed" : 400,
54 "not-acceptable" : 406,
56 "not-authorized" : 401,
57 "payment-required" : 402,
58 "recipient-unavailable" : 404,
60 "registration-required" : 407,
61 "remote-server-not-found" : 404,
62 "remote-server-timeout" : 504,
63 "resource-constraint" : 500,
64 "service-unavailable" : 503,
65 "subscription-required" : 407,
66 "undefined-condition" : 500,
67 "unexpected-request" : 400
71 def parseText(text
, beExtremelyLenient
=False):
72 t
= TextParser(beExtremelyLenient
)
76 def parseFile(filename
, beExtremelyLenient
=False):
77 t
= TextParser(beExtremelyLenient
)
82 checkTwistedCached
= None
84 """ Returns False if we're using an old version that needs tlib, otherwise returns True """
85 global checkTwistedCached
86 if checkTwistedCached
== None:
87 import twisted
.copyright
88 checkTwistedCached
= (VersionNumber(twisted
.copyright
.version
) >= VersionNumber("2.0.0"))
89 return checkTwistedCached
92 def __init__(self
, vstring
):
101 elif c
.isdigit() and flag
:
102 self
.varray
[index
] *= 10
103 self
.varray
[index
] += int(c
)
107 def __cmp__(self
, other
):
110 if i
== len(other
.varray
):
111 if i
< len(self
.varray
):
115 if i
== len(self
.varray
):
116 if i
< len(other
.varray
):
121 if self
.varray
[i
] > other
.varray
[i
]:
123 elif self
.varray
[i
] < other
.varray
[i
]:
130 from twisted
.xish
.domish
import SuxElementStream
132 from tlib
.domish
import SuxElementStream
134 """ Taken from http://xoomer.virgilio.it/dialtone/rsschannel.py """
136 def __init__(self
, beExtremelyLenient
=False):
138 self
.beExtremelyLenient
= beExtremelyLenient
140 def parseFile(self
, filename
):
141 return self
.parseString(file(filename
).read())
143 def parseString(self
, data
):
144 es
= SuxElementStream()
145 es
.beExtremelyLenient
= self
.beExtremelyLenient
146 es
.DocumentStartEvent
= self
.docStart
147 es
.DocumentEndEvent
= self
.docEnd
148 es
.ElementEvent
= self
.element
152 def docStart(self
, e
):
158 def element(self
, e
):
159 self
.root
.addChild(e
)