From 0da3cf8ab549ffedfbc317f52348d21a3475c842 Mon Sep 17 00:00:00 2001 From: Oliver Marks Date: Sun, 18 Oct 2015 16:54:06 +0100 Subject: [PATCH] produce traceback on error generating static page --- site/generate.py | 17 ++++++++++++----- site/libs/rss_fetcher.py | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/site/generate.py b/site/generate.py index 0c49fbf..13a3004 100644 --- a/site/generate.py +++ b/site/generate.py @@ -35,7 +35,7 @@ def examples(): if __name__ == "__main__": parser = argparse.ArgumentParser(description='Generate static pages') - parser.add_argument('--folder', dest='folder', nargs='?', help='output folder') + parser.add_argument('--folder', dest='folder', default='./html/' ,nargs='?', help='output folder') #module, function, output file pages_list = ( @@ -44,11 +44,18 @@ if __name__ == "__main__": ('pages.chat', 'index', 'chat.html'), ('pages.competition', 'index', 'competition.html')) + args = parser.parse_args() + print args.folder + for module, page, filename in pages_list: page_module = __import__(module, globals(), locals(), page) - with codecs.open('./html/%s' % filename, 'w', "utf-8") as fp: + with codecs.open(args.folder + '%s' % filename, 'w', "utf-8") as fp: try: fp.write(getattr(page_module, page)().decode('utf-8')) - print('Successfully Generated ./html/%s' % filename) - except: - print('Failed to Generate ./html/%s' % filename) + print('Successfully Generated %s%s' % (args.folder, filename)) + except Exception as e: + print('Failed to Generate %s%s' % (args.folder, filename)) + import traceback + exc_type, exc_value, exc_traceback = sys.exc_info() + traceback.print_tb(exc_traceback, limit=5, file=sys.stdout) + diff --git a/site/libs/rss_fetcher.py b/site/libs/rss_fetcher.py index 6961585..ae5cd80 100644 --- a/site/libs/rss_fetcher.py +++ b/site/libs/rss_fetcher.py @@ -155,7 +155,7 @@ class feed_reader: """fetch the text from the node we are given, we are working in unicode so decode byte strings to unicode""" result = node.xpath('./%s' % name) - if result is None: + if result is None or len(result) is 0: return default if type(result[-1].text) is str: