def post_entries(url, entrylist): entrycount = 0 for entry in entrylist: postdata = entry.get_data() try: http.post_portaln(url, config.PORTALN_ACTION["post_food"], postdata) entrycount += 1 except http.HTTPException as e: raise return entrycount
def main(): start_time = time.time() errorhandler = error.ErrorHandler() try: entrylist = generate_food_entries(config.TARGET_URL) except http.HTTPException as e: errorhandler.add_error(e, config.ERROR_FATAL["postback"]) entrycount = 0 for url in config.PORTALN_POST_URLS: try: http.post_portaln(url, config.PORTALN_ACTION["clear_table"]) #Clear database table. except http.HTTPException as e: errorhandler.add_error(e, config.ERROR_FATAL["clear_table"]) try: entrycount = post_entries(url, entrylist) except http.HTTPException as e: errorhandler.add_error(e, config.ERROR_FATAL["post_entry"]) total_time = time.time() - start_time nl = config.CONFIG["mail_newline"] mail_content = ("fetchfood.py completed at:" + nl + nl + datehelper.to_string(datehelper.current_date(), datehelper.PRECISION_DATE) + nl + datehelper.to_string(datehelper.current_date(), datehelper.PRECISION_TIME) + nl + nl + "Entries posted: " + str(entrycount) + nl + "Execution time: %.1fs") % total_time if errorhandler.has_error: print("error") mail_content += nl + nl + "These (non-fatal) errors occurred during execution:" + nl + errorhandler.get_errors_compiled() if config.CONFIG["mail_enabled"]: mail.sendmail("FetchFood Completed!", mail_content) elif config.DEBUG: print(mail_content) sys.exit(0)