2012-07-16 18:11:18 -07:00
|
|
|
import sys
|
2011-02-06 15:04:21 -05:00
|
|
|
from django.db import models
|
2012-08-14 12:28:52 -07:00
|
|
|
from django.contrib.auth.models import User
|
2011-02-06 15:04:21 -05:00
|
|
|
from apps.rss_feeds.models import DuplicateFeed
|
|
|
|
from utils import log as logging
|
|
|
|
|
|
|
|
class UserSubscriptionManager(models.Manager):
|
|
|
|
def get(self, *args, **kwargs):
|
|
|
|
try:
|
|
|
|
return super(UserSubscriptionManager, self).get(*args, **kwargs)
|
2012-07-16 18:11:18 -07:00
|
|
|
except self.model.DoesNotExist:
|
2011-06-09 14:59:22 -04:00
|
|
|
if isinstance(kwargs.get('feed'), int):
|
|
|
|
feed_id = kwargs.get('feed')
|
|
|
|
elif 'feed' in kwargs:
|
2011-02-06 20:07:03 -05:00
|
|
|
feed_id = kwargs['feed'].pk
|
|
|
|
elif 'feed__pk' in kwargs:
|
|
|
|
feed_id = kwargs['feed__pk']
|
2012-07-16 18:11:18 -07:00
|
|
|
elif 'feed_id' in kwargs:
|
|
|
|
feed_id = kwargs['feed_id']
|
2011-02-06 20:07:03 -05:00
|
|
|
dupe_feed = DuplicateFeed.objects.filter(duplicate_feed_id=feed_id)
|
2011-02-06 15:04:21 -05:00
|
|
|
if dupe_feed:
|
|
|
|
feed = dupe_feed[0].feed
|
2011-02-06 20:07:03 -05:00
|
|
|
if 'feed' in kwargs:
|
|
|
|
kwargs['feed'] = feed
|
|
|
|
elif 'feed__pk' in kwargs:
|
|
|
|
kwargs['feed__pk'] = feed.pk
|
2012-07-16 18:11:18 -07:00
|
|
|
elif 'feed_id' in kwargs:
|
|
|
|
kwargs['feed_id'] = feed.pk
|
2012-08-01 12:38:32 -07:00
|
|
|
user = kwargs.get('user')
|
2012-08-14 12:28:52 -07:00
|
|
|
if isinstance(user, int):
|
|
|
|
user = User.objects.get(pk=user)
|
2012-08-01 12:38:32 -07:00
|
|
|
logging.debug(" ---> [%s] ~BRFound dupe UserSubscription: ~SB%s (%s)" % (user and user.username, feed, feed_id))
|
2012-07-16 18:11:18 -07:00
|
|
|
return super(UserSubscriptionManager, self).get(*args, **kwargs)
|
|
|
|
else:
|
|
|
|
exc_info = sys.exc_info()
|
2020-11-07 10:46:41 +07:00
|
|
|
raise exc_info[1]
|