Rotating log
authorEd Page <eopage@byu.net>
Sat, 26 Feb 2011 22:11:46 +0000 (16:11 -0600)
committerEd Page <eopage@byu.net>
Wed, 16 Mar 2011 02:58:04 +0000 (21:58 -0500)
src/WatersOfShiloah.py
src/backend.py
src/watersofshiloah_gtk.py

index b649363..79584e0 100755 (executable)
@@ -1,36 +1,13 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-import os
 import sys
-import logging
 
-_moduleLogger = logging.getLogger(__name__)
 sys.path.append('/opt/WatersOfShiloah/lib')
 
 
-import constants
 import watersofshiloah_gtk
 
 
 if __name__ == "__main__":
-       try:
-               os.makedirs(constants._data_path_)
-       except OSError, e:
-               if e.errno != 17:
-                       raise
-
-       try:
-               os.makedirs(constants._cache_path_)
-       except OSError, e:
-               if e.errno != 17:
-                       raise
-
-       logFormat = '(%(asctime)s) %(levelname)-5s %(threadName)s.%(name)s: %(message)s'
-       logging.basicConfig(level=logging.DEBUG, filename=constants._user_logpath_, format=logFormat)
-       _moduleLogger.info("%s %s-%s" % (constants.__app_name__, constants.__version__, constants.__build__))
-       _moduleLogger.info("OS: %s" % (os.uname()[0], ))
-       _moduleLogger.info("Kernel: %s (%s) for %s" % os.uname()[2:])
-       _moduleLogger.info("Hostname: %s" % os.uname()[1])
-
        watersofshiloah_gtk.run()
index 00efca6..d87054b 100755 (executable)
@@ -116,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)
index ad25b6c..94c2121 100755 (executable)
@@ -10,6 +10,7 @@ from __future__ import with_statement
 import os
 import gc
 import logging
+import logging.handlers
 import ConfigParser
 
 import gobject
@@ -143,6 +144,29 @@ class WatersOfShiloahProgram(hildonize.get_app_class()):
 
 
 def run():
+       try:
+               os.makedirs(constants._data_path_)
+       except OSError, e:
+               if e.errno != 17:
+                       raise
+
+       try:
+               os.makedirs(constants._cache_path_)
+       except OSError, e:
+               if e.errno != 17:
+                       raise
+
+       logFormat = '(%(relativeCreated)5d) %(levelname)-5s %(threadName)s.%(name)s.%(funcName)s: %(message)s'
+       logging.basicConfig(level=logging.DEBUG, format=logFormat)
+       rotating = logging.handlers.RotatingFileHandler(constants._user_logpath_, maxBytes=512*1024, backupCount=1)
+       rotating.setFormatter(logging.Formatter(logFormat))
+       root = logging.getLogger()
+       root.addHandler(rotating)
+       _moduleLogger.info("%s %s-%s" % (constants.__app_name__, constants.__version__, constants.__build__))
+       _moduleLogger.info("OS: %s" % (os.uname()[0], ))
+       _moduleLogger.info("Kernel: %s (%s) for %s" % os.uname()[2:])
+       _moduleLogger.info("Hostname: %s" % os.uname()[1])
+
        gobject.threads_init()
        gtk.gdk.threads_init()
        l = dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)