Changeset 1711

Show
Ignore:
Timestamp:
07/24/08 12:18:54 (20 months ago)
Author:
JensDiemer
Message:

blog: merge some code parts.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pylucid/PyLucid/plugins_internal/blog/blog.py

    r1710 r1711  
    151151        context["feed_info"] = self._get_feeds_info() 
    152152        context["tag_feed_info"] = self._get_tag_feeds_info(used_tags) 
     153 
     154        context["tag_cloud"] = self._get_tag_cloud() 
    153155 
    154156        self._render_template("display_blog", context, debug=0) 
     
    711713        return feeds 
    712714 
     715    def _get_tag_cloud(self): 
     716        """ 
     717        Build the tag cloud context. 
     718        """ 
     719 
     720        return [] 
     721 
    713722    def select_feed_format(self, raw_feed_name=None): 
    714723        """ 
     
    719728 
    720729        feed_name = raw_feed_name.strip("/") 
    721         existing_filenames = self._feed_filenames() 
    722         if feed_name not in existing_filenames: 
    723             return self.error(_("Wrong URL."), "Feed filename doesn't exist") 
     730 
     731        # Verify the feed name 
     732        try: 
     733            self._feed_info_by_filename(feed_name) 
     734        except WrongFeedFilename, err: 
     735            return self.error(_("Wrong URL."), " feed name unknown: %s" % err) 
    724736 
    725737        format_info = [] 
     
    741753        self._render_template("select_feed_format", context, debug=0) 
    742754 
     755    def _feed_info_by_filename(self, feed_name): 
     756        """ 
     757        returns the queryset with all blog entries and a title of the feed. 
     758        raised WrongFeedFilename if feed_name is not valid. 
     759        used in self.select_feed_format() and self.feed() 
     760        """ 
     761        if feed_name == ENTRIES_FEED_NAME: 
     762            title = _("Feed with all blog entries") 
     763            queryset = BlogEntry.objects 
     764 
     765        elif feed_name == COMMENTS_FEED_NAME: 
     766            title = _("Feed with all blog comments") 
     767            queryset = BlogComment.objects 
     768 
     769        elif feed_name.startswith(TAG_FEED_PREFIX): 
     770            # Feed with all blog entries tagged with the given tag 
     771            tag_slug = feed_name[len(TAG_FEED_PREFIX):] 
     772            try: 
     773                tag_obj = BlogTag.objects.get(slug = tag_slug) 
     774            except BlogTag.DoesNotExist, err: 
     775                raise WrongFeedFilename( 
     776                    "tag '%s' unknown: %s" % (tag_slug, err) 
     777                ) 
     778 
     779            title = _("Feed with all blog entries tagged as '%s'") % ( 
     780                tag_obj.name 
     781            ) 
     782            queryset = tag_obj.blogentry_set 
     783        else: 
     784            raise WrongFeedFilename("feed name '%s' unknown." % feed_name) 
     785 
     786        return queryset, title 
     787 
    743788    def feed(self, raw_feed_name=None): 
    744789        """ 
     
    753798        if raw_feed_name == None: 
    754799            return self.error(_("Wrong URL."), "No feed filename given in URL.") 
    755  
    756         title = self.preferences["blog_title"] 
    757800 
    758801        feed_info = FeedFormat() 
     
    767810        FeedGenerator = format_info["generator"] 
    768811 
     812        try: 
     813            entries, title = self._feed_info_by_filename(feed_name) 
     814        except WrongFeedFilename, err: 
     815            return self.error(_("Wrong URL."), " feed name unknown: %s" % err) 
     816 
     817        title = "%s - %s" % (self.preferences["blog_title"], title) 
     818 
     819        # Get the items 
    769820        limit = self._get_max_count() 
    770  
    771         if feed_name == ENTRIES_FEED_NAME: 
    772             # Feed with all blog entries 
    773             entries = BlogEntry.objects 
    774             title += " - all blog entries" 
    775  
    776         elif feed_name == COMMENTS_FEED_NAME: 
    777             # Feed with all comments 
    778             entries = BlogComment.objects 
    779             title += " - all blog comments" 
    780  
    781         elif feed_name.startswith(TAG_FEED_PREFIX): 
    782             # Feed with all blog entries tagged with the given tag 
    783             tag_slug = feed_name[len(TAG_FEED_PREFIX):] 
    784             #self.page_msg("Tag slug: '%s'" % tag_slug) 
    785             tag_obj = BlogTag.objects.get(slug = tag_slug) 
    786             title += " - all blog entries tagged with '%s'" % tag_obj.name 
    787             entries = tag_obj.blogentry_set 
    788  
    789         else: 
    790             return self.error( 
    791                 _("Wrong URL."), " feed name '%s' unknown." % feed_name 
    792             ) 
    793  
    794         # Get the items 
    795821        items = entries.filter(is_public=True).all()[:limit] 
    796822 
     
    869895    """ 
    870896    pass 
     897 
     898class WrongFeedFilename(Exception): 
     899    """ 
     900    The feed filename from the url is not valid. 
     901    """ 
     902    pass