forked from tanner/qotnews
		
	Check if cache is broken
This commit is contained in:
		| @@ -5,6 +5,7 @@ logging.basicConfig( | ||||
|  | ||||
| import copy | ||||
| import threading | ||||
| import traceback | ||||
| import time | ||||
| import shelve | ||||
| from urllib.parse import urlparse, parse_qs | ||||
| @@ -42,8 +43,14 @@ with shelve.open(DATA_FILE) as db: | ||||
|             nid = news_ref_to_id[ref] | ||||
|             _ = news_cache[nid] | ||||
|     except KeyError as e: | ||||
|         logging.error('Unable to find key {}. Trying to remove...'.format(str(e))) | ||||
|         news_list.remove(str(e)) | ||||
|         ekey = str(e) | ||||
|         logging.error('Unable to find key {}. Trying to remove...'.format(ekey)) | ||||
|         if ekey in news_cache: | ||||
|             news_cache.remove(ekey) | ||||
|         if ekey in news_list: | ||||
|             news_list.remove(ekey) | ||||
|         if ekey in news_ref_to_id: | ||||
|             news_ref_to_id.remove(ekey) | ||||
|  | ||||
| def get_story(sid): | ||||
|     if sid in news_cache: | ||||
| @@ -73,8 +80,12 @@ def api(): | ||||
|     try: | ||||
|         front_page = [news_cache[news_ref_to_id[ref]] for ref in news_list] | ||||
|     except KeyError as e: | ||||
|         logging.error('Unable to find key {}. Trying to remove...'.format(str(e))) | ||||
|         news_list.remove(str(e)) | ||||
|         ekey = str(e) | ||||
|         logging.error('Unable to find key {}. Trying to remove...'.format(ekey)) | ||||
|         if ekey in news_cache: | ||||
|             news_cache.remove(ekey) | ||||
|         if ekey in news_list: | ||||
|             news_list.remove(ekey) | ||||
|  | ||||
|     front_page = [copy.copy(x) for x in front_page if 'title' in x and x['title']] | ||||
|     front_page = front_page[:60] | ||||
| @@ -125,6 +136,7 @@ def submit(): | ||||
|  | ||||
|     except BaseException as e: | ||||
|         logging.error('Problem with article submission: {} - {}'.format(e.__class__.__name__, str(e))) | ||||
|         print(traceback.format_exc()) | ||||
|         abort(400) | ||||
|  | ||||
|  | ||||
| @@ -194,9 +206,19 @@ def feed_thread(): | ||||
|  | ||||
|             # update current stories | ||||
|             if news_index < len(news_list): | ||||
|                 update_ref = news_list[news_index] | ||||
|                 update_id = news_ref_to_id[update_ref] | ||||
|                 news_story = news_cache[update_id] | ||||
|                 try: | ||||
|                     update_ref = news_list[news_index] | ||||
|                     update_id = news_ref_to_id[update_ref] | ||||
|                     news_story = news_cache[update_id] | ||||
|                 except KeyError as e: | ||||
|                     ekey = str(e) | ||||
|                     logging.error('Unable to find key {}. Trying to remove...'.format(ekey)) | ||||
|                     if ekey in news_cache: | ||||
|                         news_cache.remove(ekey) | ||||
|                     if ekey in news_list: | ||||
|                         news_list.remove(ekey) | ||||
|                     if ekey in news_ref_to_id: | ||||
|                         news_ref_to_id.remove(ekey) | ||||
|                 valid = feed.update_story(news_story) | ||||
|                 if valid: | ||||
|                     archive.update(news_story) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user