Removing duplicate code
[watersofshiloah] / src / backend.py
index 4bd0b22..d87054b 100755 (executable)
@@ -31,7 +31,6 @@ class Backend(object):
 
        def get_radio_channel_programming(self, chanId, date=None):
                if date is not None:
-                       date = date.strftime("%Y-%m-%d")
                        tree = self._get_page_with_validation(
                                action="lds.radio.radiochannels.programming.query",
                                channelID=chanId,
@@ -117,9 +116,24 @@ class Backend(object):
                items = tree.find("chapters")
                return self._process_list(items, ["title", "url"])
 
+       CONFERENCE_SEARCH = 1
+       MAGAZINE_SEARCH = 2
+       VIDEO_SEARCH = 8
+       SEARCH_ALL = 11
+
+       def search(self, langId, phrase, content):
+               tree = self._get_page_with_validation(
+                       action="lds.search",
+                       languageID=langId,
+                       phrase=phrase,
+                       content=content,
+               )
+               return tree
+
        def _get_page_with_validation(self, **params):
                encodedParams = urllib.urlencode(params)
-               page = self._browser.download("http://tech.lds.org/radio?%s" % encodedParams)
+               url = "http://tech.lds.org/radio?%s" % encodedParams
+               page = self._browser.download(url)
                if not page:
                        raise RuntimeError("Blank page")
                tree = ElementTree.fromstring(page)
@@ -160,6 +174,7 @@ if __name__ == "__main__":
                for confData in confs:
                        sessions = list(b.get_conference_sessions(confData["id"]))
                        for sessionData in sessions:
+                               print sessionData
                                talks = list(b.get_conference_talks(sessionData["id"]))
                                print talks
 
@@ -168,8 +183,8 @@ if __name__ == "__main__":
                print mags
                for magData in mags:
                        issues = list(b.get_magazine_issues(magData["id"]))
-                       issues
                        for issueData in issues:
+                               print issueData
                                articles = list(b.get_magazine_articles(issueData["id"]))
                                print articles
 
@@ -178,7 +193,7 @@ if __name__ == "__main__":
                print mags
                for magData in mags:
                        books = list(b.get_scripture_books(magData["id"]))
-                       print books
                        for bookData in books:
+                               print bookData
                                chapters = list(b.get_scripture_chapters(bookData["id"]))
                                print chapters