clean up code for tracking failing subscriptions
This commit is contained in:
parent
90a7b44383
commit
cf804e6003
3 changed files with 14 additions and 7 deletions
|
@ -77,7 +77,7 @@ class Feed(db.Model):
|
||||||
last_pinged = db.Column(db.DateTime)
|
last_pinged = db.Column(db.DateTime)
|
||||||
|
|
||||||
last_response = db.Column(db.Text)
|
last_response = db.Column(db.Text)
|
||||||
failure_count = db.Column(db.Integer)
|
failure_count = db.Column(db.Integer, default=0)
|
||||||
|
|
||||||
def get_feed_code(self):
|
def get_feed_code(self):
|
||||||
return self.feed # binascii.hexlify(self.feed.encode())
|
return self.feed # binascii.hexlify(self.feed.encode())
|
||||||
|
@ -116,7 +116,7 @@ class Entry(db.Model):
|
||||||
author_name = db.Column(db.String(512))
|
author_name = db.Column(db.String(512))
|
||||||
author_url = db.Column(db.String(512))
|
author_url = db.Column(db.String(512))
|
||||||
author_photo = db.Column(db.String(512))
|
author_photo = db.Column(db.String(512))
|
||||||
title = db.Column(db.String(512))
|
title = db.Column(db.Text)
|
||||||
content = db.Column(db.Text)
|
content = db.Column(db.Text)
|
||||||
content_cleaned = db.Column(db.Text)
|
content_cleaned = db.Column(db.Text)
|
||||||
# other properties
|
# other properties
|
||||||
|
|
|
@ -63,6 +63,9 @@ def tick():
|
||||||
if not feed.last_checked:
|
if not feed.last_checked:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
if not feed.subscriptions:
|
||||||
|
return False
|
||||||
|
|
||||||
if feed.failure_count > 8:
|
if feed.failure_count > 8:
|
||||||
update_interval = datetime.timedelta(days=1)
|
update_interval = datetime.timedelta(days=1)
|
||||||
elif feed.failure_count > 4:
|
elif feed.failure_count > 4:
|
||||||
|
@ -127,7 +130,7 @@ def update_feed(feed_id, content=None,
|
||||||
except:
|
except:
|
||||||
feed.last_response = 'exception while retrieving: {}'.format(
|
feed.last_response = 'exception while retrieving: {}'.format(
|
||||||
sys.exc_info()[0])
|
sys.exc_info()[0])
|
||||||
feed.failure_count = (feed.failure_count or 0) + 1
|
feed.failure_count += 1
|
||||||
return
|
return
|
||||||
|
|
||||||
if response.status_code // 100 != 2:
|
if response.status_code // 100 != 2:
|
||||||
|
@ -136,7 +139,7 @@ def update_feed(feed_id, content=None,
|
||||||
response.text)
|
response.text)
|
||||||
feed.last_response = 'bad response while retrieving: {}: {}'.format(
|
feed.last_response = 'bad response while retrieving: {}: {}'.format(
|
||||||
response, response.text)
|
response, response.text)
|
||||||
feed.failure_count = (feed.failure_count or 0) + 1
|
feed.failure_count += 1
|
||||||
return
|
return
|
||||||
|
|
||||||
feed.failure_count = 0
|
feed.failure_count = 0
|
||||||
|
@ -428,6 +431,7 @@ def process_html_feed_for_new_entries(feed, content, backfill, now):
|
||||||
hfeed = parsed.get('entries', [])
|
hfeed = parsed.get('entries', [])
|
||||||
|
|
||||||
for hentry in hfeed:
|
for hentry in hfeed:
|
||||||
|
current_app.logger.debug('building entry: %s', hentry.get('url'))
|
||||||
entry = hentry_to_entry(hentry, feed, backfill, now)
|
entry = hentry_to_entry(hentry, feed, backfill, now)
|
||||||
if entry:
|
if entry:
|
||||||
current_app.logger.debug('built entry: %s', entry.permalink)
|
current_app.logger.debug('built entry: %s', entry.permalink)
|
||||||
|
|
|
@ -25,8 +25,11 @@
|
||||||
{% for s in subscriptions %}
|
{% for s in subscriptions %}
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
{% if s.feed.failure_count > 0 %}<i class="fa fa-warning"></i> {{ s.feed.failure_count }} Failure(s){% endif %}
|
{% if s.feed.failure_count > 0 %}
|
||||||
|
<div>
|
||||||
|
<i class="fa fa-warning"></i> Last {{ s.feed.failure_count }} Attempt(s) Failed
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
<form class="edit-subscription" action="{{ url_for('.edit_subscription') }}" method="POST">
|
<form class="edit-subscription" action="{{ url_for('.edit_subscription') }}" method="POST">
|
||||||
<input type="hidden" name="id" value="{{ s.id }}"/>
|
<input type="hidden" name="id" value="{{ s.id }}"/>
|
||||||
<label>Name</label>
|
<label>Name</label>
|
||||||
|
@ -34,7 +37,7 @@
|
||||||
<label>Tags</label>
|
<label>Tags</label>
|
||||||
<input type="text" name="tags" value="{{ s.tags or ''}}"/>
|
<input type="text" name="tags" value="{{ s.tags or ''}}"/>
|
||||||
<label>URL</label>
|
<label>URL</label>
|
||||||
<input type="text" name="feed" value="{{ s.feed.feed }}" disabled />
|
<input type="text" name="feed" value="{{ s.feed.feed }}" readonly />
|
||||||
<button type="submit">Save Edits</button> <span class="save-status"></span>
|
<button type="submit">Save Edits</button> <span class="save-status"></span>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue