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
|
||||
usf.add_folder('', 'Newsletters')
|
||||
|
||||
# First look for the email address
|
||||
try:
|
||||
feed = Feed.objects.get(feed_address=feed_address)
|
||||
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_link='http://' + sender_domain,
|
||||
feed_title=sender_name,
|
||||
|
@ -148,8 +161,8 @@ class EmailNewsletter:
|
|||
|
||||
return profile.user
|
||||
|
||||
def _feed_address(self, user, sender):
|
||||
return 'newsletter:%s:%s' % (user.pk, sender)
|
||||
def _feed_address(self, user, sender_email):
|
||||
return 'newsletter:%s:%s' % (user.pk, sender_email)
|
||||
|
||||
def _split_sender(self, sender):
|
||||
tokens = re.search('(.*?) <(.*?)@(.*?)>', sender)
|
||||
|
|
Loading…
Add table
Reference in a new issue