- Use warnings for BuilderDuplicateExceptions
- Show user known urls in rules list view
This commit is contained in:
Sonny Bakker 2020-10-17 17:29:42 +02:00
parent 9e5e05c056
commit ee9b36d8ae
4 changed files with 21 additions and 2 deletions

View file

@ -75,6 +75,19 @@ class CollectionRule(TimeStampedModel):
return reverse("news:collection:feed-update", kwargs={"pk": self.pk}) return reverse("news:collection:feed-update", kwargs={"pk": self.pk})
@property
def source_url(self):
if self.type == RuleTypeChoices.subreddit:
from newsreader.news.collection.reddit import REDDIT_API_URL, REDDIT_URL
return self.url.replace(REDDIT_API_URL, REDDIT_URL)
elif self.type == RuleTypeChoices.twitter_timeline:
from newsreader.news.collection.twitter import TWITTER_URL
return f"{TWITTER_URL}/{self.screen_name}"
return self.url
@property @property
def failed(self): def failed(self):
return not self.succeeded and self.last_run return not self.succeeded and self.last_run

View file

@ -131,6 +131,9 @@ class RedditBuilder(PostBuilder):
for entry in entries: for entry in entries:
try: try:
post = self.build_post(entry) post = self.build_post(entry)
except BuilderDuplicateException:
logger.warning("Skipping duplicate post")
continue
except BuilderException: except BuilderException:
logger.exception("Failed building post") logger.exception("Failed building post")
continue continue

View file

@ -53,8 +53,8 @@
<a class="link" href="{% url 'news:core:category-update' pk=rule.category.pk %}">{{ rule.category.name }}</a> <a class="link" href="{% url 'news:core:category-update' pk=rule.category.pk %}">{{ rule.category.name }}</a>
{% endif %} {% endif %}
</td> </td>
<td class="table__item rules-table__item" title="{{ rule.url }}"> <td class="table__item rules-table__item" title="{{ rule.source_url }}">
<a class="link" href="{{ rule.url }}" target="_blank" rel="noopener noreferrer">{{ rule.url }}</a> <a class="link" href="{{ rule.source_url }}" target="_blank" rel="noopener noreferrer">{{ rule.source_url }}</a>
</td> </td>
<td class="table__item rules-table__item"> <td class="table__item rules-table__item">
{% if rule.failed %} {% if rule.failed %}

View file

@ -56,6 +56,9 @@ class TwitterBuilder(PostBuilder):
for post in self.payload: for post in self.payload:
try: try:
post = self.build_post(post) post = self.build_post(post)
except BuilderDuplicateException:
logger.warning("Skipping duplicate post")
continue
except BuilderException: except BuilderException:
logger.exception("Failed building post") logger.exception("Failed building post")
continue continue