]> code.delx.au - pymsnt/blobdiff - src/utils.py
Fixed OneSwitchboardSession being reused problem.
[pymsnt] / src / utils.py
index c27d5365df163f8a7acdec7958be0c8e8d8929f1..8107ddc6aef70e5c3c79d978e7b35adfe9497d5e 100644 (file)
@@ -12,6 +12,18 @@ def socks5Hash(sid, initiator, target):
        return sha.new("%s%s%s" % (sid, initiator, target)).hexdigest()
 
 
+import urllib
+import os.path
+def getURLBits(url, assumedType=None):
+       type, rest = urllib.splittype(url)
+       if assumedType and type != assumedType:
+               return
+       hostport, path = urllib.splithost(rest)
+       host, port = urllib.splitnport(hostport, 80)
+       filename = os.path.basename(path)
+       return host, port, path, filename
+
+
 try:
        import Image
        import StringIO
@@ -56,16 +68,6 @@ errorCodeMap = {
 }
 
 
-def parseText(text, beExtremelyLenient=False):
-       t = TextParser(beExtremelyLenient)
-       t.parseString(text)
-       return t.root
-
-def parseFile(filename, beExtremelyLenient=False):
-       t = TextParser(beExtremelyLenient)
-       t.parseFile(filename)
-       return t.root
-
 
 checkTwistedCached = None
 def checkTwisted():
@@ -114,36 +116,4 @@ class VersionNumber:
                        i += 1
        
 
-if checkTwisted():
-       from twisted.xish.domish import SuxElementStream
-else:
-       from tlib.domish import SuxElementStream
-class TextParser:
-       """ Taken from http://xoomer.virgilio.it/dialtone/rsschannel.py """
-
-       def __init__(self, beExtremelyLenient=False):
-               self.root = None
-               self.beExtremelyLenient = beExtremelyLenient
-
-       def parseFile(self, filename):
-               return self.parseString(file(filename).read())
-
-       def parseString(self, data):
-               es = SuxElementStream()
-               es.beExtremelyLenient = self.beExtremelyLenient
-               es.DocumentStartEvent = self.docStart
-               es.DocumentEndEvent = self.docEnd
-               es.ElementEvent = self.element
-               es.parse(data)
-               return self.root
-
-       def docStart(self, e):
-               self.root = e
-
-       def docEnd(self):
-               pass
-
-       def element(self, e):
-               self.root.addChild(e)
-