update-hib.py
changeset 5 b6a3b0987bfc
parent 4 e102d2bb7a9e
child 6 0c6d2ed2cd7c
equal deleted inserted replaced
4:e102d2bb7a9e 5:b6a3b0987bfc
   124               "x86_64.tar.gz" : ("x64", "tgz"),
   124               "x86_64.tar.gz" : ("x64", "tgz"),
   125               ".tar.gz"       : ("tgz",),
   125               ".tar.gz"       : ("tgz",),
   126               ".deb"          : ("deb",),
   126               ".deb"          : ("deb",),
   127               ".rpm"          : ("rpm",),
   127               ".rpm"          : ("rpm",),
   128               "32-bit"        : ("x86",),
   128               "32-bit"        : ("x86",),
   129               "64-bit"        : ("x64",),              
   129               "64-bit"        : ("x64",),
       
   130               "(HD)"          : ("HD",),
   130               }
   131               }
   131     def __init__(self, dltype, dom):
   132     def __init__(self, dltype, dom):
   132         self.dltype = dltype
   133         self.dltype = dltype
   133         self.id = dom.name[len("download "):]
   134         self.id = dom.name[len("download "):]
   134         button = list(dom.find("flexbtn "))[0]
   135         button = list(dom.find("flexbtn "))[0]
   149             self.md5 = details.a.attrs["href"]
   150             self.md5 = details.a.attrs["href"]
   150         else:
   151         else:
   151             self.size = "Unknown"
   152             self.size = "Unknown"
   152             self.md5 = "Unknown"
   153             self.md5 = "Unknown"
   153     def format(self, prefix=""):
   154     def format(self, prefix=""):
   154         res = prefix + '<download id="' + self.id + '">\n'
   155         res = prefix + '<download type="' + self.dltype + '" id="' + self.id + '">\n'
   155         res += prefix + "  <web>" + self.web + "</web>\n"
   156         res += prefix + "  <web>" + self.web + "</web>\n"
   156         res += prefix + "  <torrent>" + self.torrent + "</torrent>\n"
   157         res += prefix + "  <torrent>" + self.torrent + "</torrent>\n"
   157         res += prefix + "  <size>" + self.size + "</size>\n"
   158         res += prefix + "  <size>" + self.size + "</size>\n"
   158         res += prefix + "  <md5>" + self.md5 + "</md5>\n"
   159         res += prefix + "  <md5>" + self.md5 + "</md5>\n"
   159         res += prefix + "</download>"
   160         res += prefix + "</download>"
   258             if "deb" in dl.attrs:
   259             if "deb" in dl.attrs:
   259                 score += 1
   260                 score += 1
   260             return score
   261             return score
   261         if dl.dltype == "android":
   262         if dl.dltype == "android":
   262             return -1
   263             return -1
       
   264         if dl.dltype == "ebook":
       
   265             if "MOBI" in dl.attrs:
       
   266                 return -1
       
   267             if "HD" in dl.attrs:
       
   268                 return 2
       
   269             return 1
   263         raise Exception("Unknown dls type: %r" % (dl,))
   270         raise Exception("Unknown dls type: %r" % (dl,))
   264 
   271 
   265     def chooseDownloads(self, dls):
   272     def chooseDownloads(self, dls):
   266         return sorted(((self.scoreDownload(dl),dl) for dl in dls), key=lambda x: x[0], reverse=True)
   273         return sorted(((self.scoreDownload(dl),dl) for dl in dls), key=lambda x: x[0], reverse=True)
   267 
   274