deskbar-applet r2115 - in trunk: . deskbar/handlers
- From: sebp svn gnome org
- To: svn-commits-list gnome org
- Subject: deskbar-applet r2115 - in trunk: . deskbar/handlers
- Date: Mon, 14 Apr 2008 15:00:08 +0100 (BST)
Author: sebp
Date: Mon Apr 14 15:00:08 2008
New Revision: 2115
URL: http://svn.gnome.org/viewvc/deskbar-applet?rev=2115&view=rev
Log:
Refactored parser for search results
Modified:
trunk/ChangeLog
trunk/deskbar/handlers/yahoo.py
Modified: trunk/deskbar/handlers/yahoo.py
==============================================================================
--- trunk/deskbar/handlers/yahoo.py (original)
+++ trunk/deskbar/handlers/yahoo.py Mon Apr 14 15:00:08 2008
@@ -151,6 +151,12 @@
def __init__(self):
xml.sax.handler.ContentHandler.__init__(self)
+ # Elements we want to store the contents of
+ self._elements = set([self.TITLE_ELMENT,
+ self.SUMMARY_ELEMENT,
+ self.URL_ELEMENT,
+ self.CLICK_URL_ELEMENT,
+ self.MIME_TYPE_ELEMENT])
def get_results(self):
"""
@@ -163,11 +169,7 @@
self._reset_result()
def _reset_result(self):
- self.__result_started = False
- self.__title_started = False
- self.__summary_started = False
- self.__click_url_started = False
- self.__mime_type_started = False
+ self.__not_interested = False
self.__result = {}
self._reset_contents()
@@ -175,45 +177,36 @@
self.__contents = ""
def _add_to_result(self, key):
- if len(self.__contents) == 0:
- self.__contents = None
- self.__result[key] = self.__contents
+ value = self.__contents.strip()
+ if len(value) == 0:
+ self.value = None
+ self.__result[key] = value
self._reset_contents()
def startElement(self, name, attrs):
- if name == self.RESULT_ELEMENT:
- self.__result_started = True
- elif name == self.TITLE_ELMENT:
- self.__title_started = True
- elif name == self.SUMMARY_ELEMENT:
- self.__summary_started = True
- elif name == self.CLICK_URL_ELEMENT:
- self.__click_url_started = True
- elif name == self.MIME_TYPE_ELEMENT:
- self.__mime_type_started = True
+ if name in self._elements:
+ self.__not_interested = False
+ else:
+ self.__not_interested = True
def endElement(self, name):
if name == self.RESULT_ELEMENT:
self._results.append(self.__result)
self._reset_result()
elif name == self.TITLE_ELMENT:
- self.__title_started = False
self._add_to_result("title")
elif name == self.SUMMARY_ELEMENT:
- self.__summary_started = False
self._add_to_result("summary")
elif name == self.CLICK_URL_ELEMENT:
- self.__click_url_started = False
self._add_to_result("clickurl")
elif name == self.MIME_TYPE_ELEMENT:
- self.__mime_type_started = False
self._add_to_result("mimetype")
+
+ self.__mime_type_started = False
def characters(self, content):
# Only save content for the elements we're interested in
- if self.__result_started \
- and (self.__title_started or self.__summary_started \
- or self.__click_url_started or self.__mime_type_started):
+ if not self.__not_interested:
self.__contents += content
class SearchWithYahooAction(ShowUrlAction):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]