def add_url(request): code = 0 url = request.POST['url'] folder = request.POST['folder'] feed = None logging.info(" ---> [%s] Adding URL: %s (in %s)" % (request.user, url, folder)) if url: url = urlnorm.normalize(url) # See if it exists as a duplicate first duplicate_feed = DuplicateFeed.objects.filter(duplicate_address=url) if duplicate_feed: feed = [duplicate_feed[0].feed] else: feed = Feed.objects.filter(feed_address=url) if feed: feed = feed[0] else: try: feed = fetch_address_from_page(url) except: code = -2 message = "This feed has been added, but something went wrong"\ " when downloading it. Maybe the server's busy." if not feed: code = -1 message = "That URL does not point to an RSS feed or a website that has an RSS feed." else: us, _ = UserSubscription.objects.get_or_create( feed=feed, user=request.user, defaults={ 'needs_unread_recalc': True, 'active': True, } ) code = 1 message = "" user_sub_folders_object, created = UserSubscriptionFolders.objects.get_or_create(user=request.user, defaults={'folders': '[]'} ) if created: user_sub_folders = [] else: user_sub_folders = json.decode(user_sub_folders_object.folders) user_sub_folders = _add_object_to_folder(feed.pk, folder, user_sub_folders) user_sub_folders_object.folders = json.encode(user_sub_folders) user_sub_folders_object.save() return dict(code=code, message=message)
def add_url(request): code = 0 url = request.POST["url"] folder = request.POST["folder"] feed = None logging.info(" ---> [%s] ~FRAdding URL: ~SB%s (in %s)" % (request.user, url, folder)) if url: url = urlnorm.normalize(url) # See if it exists as a duplicate first duplicate_feed = DuplicateFeed.objects.filter(duplicate_address=url).order_by("pk") if duplicate_feed: feed = [duplicate_feed[0].feed] else: feed = Feed.objects.filter(feed_address=url).order_by("pk") if feed: feed = feed[0] else: try: feed = fetch_address_from_page(url) except: code = -2 message = ( "This feed has been added, but something went wrong" " when downloading it. Maybe the server's busy." ) if not feed: code = -1 message = "That URL does not point to an RSS feed or a website that has an RSS feed." else: us, _ = UserSubscription.objects.get_or_create( feed=feed, user=request.user, defaults={"needs_unread_recalc": True, "active": True} ) code = 1 message = "" user_sub_folders_object, created = UserSubscriptionFolders.objects.get_or_create( user=request.user, defaults={"folders": "[]"} ) if created: user_sub_folders = [] else: user_sub_folders = json.decode(user_sub_folders_object.folders) user_sub_folders = _add_object_to_folder(feed.pk, folder, user_sub_folders) user_sub_folders_object.folders = json.encode(user_sub_folders) user_sub_folders_object.save() if feed.last_update < datetime.datetime.utcnow() - datetime.timedelta(days=1): feed.update() return dict(code=code, message=message)
def add_subscription(cls, user, feed_address, folder=None, bookmarklet=False): feed = None us = None logging.info(" ---> [%s] ~FRAdding URL: ~SB%s (in %s)" % (user, feed_address, folder)) if feed_address: feed_address = urlnorm.normalize(feed_address) # See if it exists as a duplicate first duplicate_feed = DuplicateFeed.objects.filter( duplicate_address=feed_address).order_by('pk') if duplicate_feed: feed = [duplicate_feed[0].feed] else: feed = Feed.objects.filter( feed_address=feed_address).order_by('pk') if feed: feed = feed[0] else: try: feed = fetch_address_from_page(feed_address) except: code = -2 message = "This feed has been added, but something went wrong"\ " when downloading it. Maybe the server's busy." if not feed: code = -1 if bookmarklet: message = "This site does not have an RSS feed. Nothing is linked to from this page." else: message = "This site does not point to an RSS feed or a website with an RSS feed." else: us, subscription_created = cls.objects.get_or_create( feed=feed, user=user, defaults={ 'needs_unread_recalc': True, 'active': True, }) code = 1 message = "" if us and not subscription_created: code = -3 message = "You are already subscribed to this site." elif us: user_sub_folders_object, created = UserSubscriptionFolders.objects.get_or_create( user=user, defaults={'folders': '[]'}) if created: user_sub_folders = [] else: user_sub_folders = json.decode(user_sub_folders_object.folders) user_sub_folders = add_object_to_folder(feed.pk, folder, user_sub_folders) user_sub_folders_object.folders = json.encode(user_sub_folders) user_sub_folders_object.save() feed.setup_feed_for_premium_subscribers() if feed.last_update < datetime.datetime.utcnow( ) - datetime.timedelta(days=1): feed.update() print code, message, us return code, message, us
def add_subscription(cls, user, feed_address, folder=None, bookmarklet=False): feed = None us = None logging.info(" ---> [%s] ~FRAdding URL: ~SB%s (in %s)" % (user, feed_address, folder)) if feed_address: feed_address = urlnorm.normalize(feed_address) # See if it exists as a duplicate first duplicate_feed = DuplicateFeed.objects.filter(duplicate_address=feed_address).order_by('pk') if duplicate_feed: feed = [duplicate_feed[0].feed] else: feed = Feed.objects.filter(feed_address=feed_address).order_by('pk') if feed: feed = feed[0] else: try: feed = fetch_address_from_page(feed_address) except: code = -2 message = "This feed has been added, but something went wrong"\ " when downloading it. Maybe the server's busy." if not feed: code = -1 if bookmarklet: message = "This site does not have an RSS feed. Nothing is linked to from this page." else: message = "This site does not point to an RSS feed or a website with an RSS feed." else: us, subscription_created = cls.objects.get_or_create( feed=feed, user=user, defaults={ 'needs_unread_recalc': True, 'active': True, } ) code = 1 message = "" if us and not subscription_created: code = -3 message = "You are already subscribed to this site." elif us: user_sub_folders_object, created = UserSubscriptionFolders.objects.get_or_create( user=user, defaults={'folders': '[]'} ) if created: user_sub_folders = [] else: user_sub_folders = json.decode(user_sub_folders_object.folders) user_sub_folders = add_object_to_folder(feed.pk, folder, user_sub_folders) user_sub_folders_object.folders = json.encode(user_sub_folders) user_sub_folders_object.save() feed.setup_feed_for_premium_subscribers() if feed.last_update < datetime.datetime.utcnow() - datetime.timedelta(days=1): feed.update() print code, message, us return code, message, us