From cd72fed98e2666403bd7104bc087d21e1b8c207e Mon Sep 17 00:00:00 2001 From: liangliangyy Date: Mon, 7 Jul 2025 22:00:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blog/views.py | 14 ++------------ djangoblog/settings.py | 1 + plugins/view_count/__init__.py | 1 + plugins/view_count/plugin.py | 18 ++++++++++++++++++ 4 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 plugins/view_count/__init__.py create mode 100644 plugins/view_count/plugin.py diff --git a/blog/views.py b/blog/views.py index 8bb5264..d7d056e 100644 --- a/blog/views.py +++ b/blog/views.py @@ -115,12 +115,6 @@ class ArticleDetailView(DetailView): pk_url_kwarg = 'article_id' context_object_name = "article" - def get_object(self, queryset=None): - obj = super(ArticleDetailView, self).get_object() - obj.viewed() - self.object = obj - return obj - def get_context_data(self, **kwargs): comment_form = CommentForm() @@ -162,12 +156,8 @@ class ArticleDetailView(DetailView): # Action Hook, 通知插件"文章详情已获取" hooks.run_action('after_article_body_get', article=article, request=self.request) # # Filter Hook, 允许插件修改文章正文 - article.body = hooks.apply_filters(ARTICLE_CONTENT_HOOK_NAME, article.body, article=article, request=self.request) - # # toc = markdown.toc - # md = markdown.Markdown(extensions=[ - # 'markdown.extensions.extra', - # ]) - # article.body = md.convert(article.body) + article.body = hooks.apply_filters(ARTICLE_CONTENT_HOOK_NAME, article.body, article=article, + request=self.request) return context diff --git a/djangoblog/settings.py b/djangoblog/settings.py index 9b527da..e48a018 100644 --- a/djangoblog/settings.py +++ b/djangoblog/settings.py @@ -337,6 +337,7 @@ ACTIVE_PLUGINS = [ 'article_copyright', 'reading_time', 'external_links', + 'view_count' ] # 加载插件 diff --git a/plugins/view_count/__init__.py b/plugins/view_count/__init__.py new file mode 100644 index 0000000..8804fdf --- /dev/null +++ b/plugins/view_count/__init__.py @@ -0,0 +1 @@ +# This file makes this a Python package \ No newline at end of file diff --git a/plugins/view_count/plugin.py b/plugins/view_count/plugin.py new file mode 100644 index 0000000..15e9d94 --- /dev/null +++ b/plugins/view_count/plugin.py @@ -0,0 +1,18 @@ +from djangoblog.plugin_manage.base_plugin import BasePlugin +from djangoblog.plugin_manage import hooks + + +class ViewCountPlugin(BasePlugin): + PLUGIN_NAME = '文章浏览次数统计' + PLUGIN_DESCRIPTION = '统计文章的浏览次数' + PLUGIN_VERSION = '0.1.0' + PLUGIN_AUTHOR = 'liangliangyy' + + def register_hooks(self): + hooks.register('after_article_body_get', self.record_view) + + def record_view(self, article, *args, **kwargs): + article.viewed() + + +plugin = ViewCountPlugin() \ No newline at end of file