server/sources/datafeed.py
branchstable
changeset 9224 5c6d6a9f4fc8
parent 9182 75493f6ca586
child 9448 3e7cad3967c5
child 9517 3338b2205ea3
equal deleted inserted replaced
9223:233e770293a9 9224:5c6d6a9f4fc8
   443 
   443 
   444     def parse(self, url):
   444     def parse(self, url):
   445         if url.startswith('http'):
   445         if url.startswith('http'):
   446             url = self.normalize_url(url)
   446             url = self.normalize_url(url)
   447             self.source.info('GET %s', url)
   447             self.source.info('GET %s', url)
   448             stream = _OPENER.open(url, timeout=self.http_timeout)
   448             stream = _OPENER.open(url, timeout=self.source.http_timeout)
   449         elif url.startswith('file://'):
   449         elif url.startswith('file://'):
   450             stream = open(url[7:])
   450             stream = open(url[7:])
   451         else:
   451         else:
   452             stream = StringIO.StringIO(url)
   452             stream = StringIO.StringIO(url)
   453         return self.parse_etree(etree.parse(stream).getroot())
   453         return self.parse_etree(etree.parse(stream).getroot())
   460 
   460 
   461     def is_deleted(self, extid, etype, eid):
   461     def is_deleted(self, extid, etype, eid):
   462         if extid.startswith('http'):
   462         if extid.startswith('http'):
   463             try:
   463             try:
   464                 _OPENER.open(self.normalize_url(extid), # XXX HTTP HEAD request
   464                 _OPENER.open(self.normalize_url(extid), # XXX HTTP HEAD request
   465                              timeout=self.http_timeout)
   465                              timeout=self.source.http_timeout)
   466             except urllib2.HTTPError as ex:
   466             except urllib2.HTTPError as ex:
   467                 if ex.code == 404:
   467                 if ex.code == 404:
   468                     return True
   468                     return True
   469         elif extid.startswith('file://'):
   469         elif extid.startswith('file://'):
   470             return exists(extid[7:])
   470             return exists(extid[7:])