mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-31 21:41:33 +00:00
Newsletters feeds now de-duplicate based on sender email as well as sender name. This should cut down on duplicates.
This commit is contained in:
parent
7de6dc84ab
commit
cb6262b8b3
1 changed files with 15 additions and 2 deletions
|
@ -31,9 +31,22 @@ class EmailNewsletter:
|
||||||
return
|
return
|
||||||
usf.add_folder('', 'Newsletters')
|
usf.add_folder('', 'Newsletters')
|
||||||
|
|
||||||
|
# First look for the email address
|
||||||
try:
|
try:
|
||||||
feed = Feed.objects.get(feed_address=feed_address)
|
feed = Feed.objects.get(feed_address=feed_address)
|
||||||
except Feed.DoesNotExist:
|
except Feed.DoesNotExist:
|
||||||
|
feed = None
|
||||||
|
|
||||||
|
# If not found, check among titles user has subscribed to
|
||||||
|
if not feed:
|
||||||
|
newsletter_subs = UserSubscription.objects.filter(user=user, is_newsletter=True).only('feed')
|
||||||
|
newsletter_feed_ids = [us.feed.pk for us in newsletter_subs]
|
||||||
|
feeds = Feed.objects.filter(feed_title__iexact=sender_name, pk__in=newsletter_feed_ids)
|
||||||
|
if feeds.count():
|
||||||
|
feed = feeds[0]
|
||||||
|
|
||||||
|
# Create a new feed if it doesn't exist by sender name or email
|
||||||
|
if not feed:
|
||||||
feed = Feed.objects.create(feed_address=feed_address,
|
feed = Feed.objects.create(feed_address=feed_address,
|
||||||
feed_link='http://' + sender_domain,
|
feed_link='http://' + sender_domain,
|
||||||
feed_title=sender_name,
|
feed_title=sender_name,
|
||||||
|
@ -148,8 +161,8 @@ class EmailNewsletter:
|
||||||
|
|
||||||
return profile.user
|
return profile.user
|
||||||
|
|
||||||
def _feed_address(self, user, sender):
|
def _feed_address(self, user, sender_email):
|
||||||
return 'newsletter:%s:%s' % (user.pk, sender)
|
return 'newsletter:%s:%s' % (user.pk, sender_email)
|
||||||
|
|
||||||
def _split_sender(self, sender):
|
def _split_sender(self, sender):
|
||||||
tokens = re.search('(.*?) <(.*?)@(.*?)>', sender)
|
tokens = re.search('(.*?) <(.*?)@(.*?)>', sender)
|
||||||
|
|
Loading…
Add table
Reference in a new issue