|
11 | 11 | from django.urls import reverse
|
12 | 12 | from django.utils.safestring import mark_safe
|
13 | 13 |
|
14 |
| -from djangoblog.utils import cache |
15 |
| -from djangoblog.utils import get_current_site |
16 | 14 | from blog.models import Article, Category, Tag, Links, SideBar, LinkShowType
|
17 | 15 | from comments.models import Comment
|
| 16 | +from djangoblog.utils import cache |
| 17 | +from djangoblog.utils import get_current_site |
18 | 18 | from oauth.models import OAuthUser
|
19 | 19 |
|
20 | 20 | logger = logging.getLogger(__name__)
|
|
26 | 26 | def timeformat(data):
|
27 | 27 | try:
|
28 | 28 | return data.strftime(settings.TIME_FORMAT)
|
29 |
| - # print(data.strftime(settings.TIME_FORMAT)) |
30 |
| - # return "ddd" |
31 | 29 | except Exception as e:
|
32 | 30 | logger.error(e)
|
33 | 31 | return ""
|
@@ -125,50 +123,57 @@ def load_sidebar(user, linktype):
|
125 | 123 | 加载侧边栏
|
126 | 124 | :return:
|
127 | 125 | """
|
128 |
| - logger.info('load sidebar') |
129 |
| - from djangoblog.utils import get_blog_setting |
130 |
| - blogsetting = get_blog_setting() |
131 |
| - recent_articles = Article.objects.filter( |
132 |
| - status='p')[:blogsetting.sidebar_article_count] |
133 |
| - sidebar_categorys = Category.objects.all() |
134 |
| - extra_sidebars = SideBar.objects.filter( |
135 |
| - is_enable=True).order_by('sequence') |
136 |
| - most_read_articles = Article.objects.filter(status='p').order_by( |
137 |
| - '-views')[:blogsetting.sidebar_article_count] |
138 |
| - dates = Article.objects.datetimes('created_time', 'month', order='DESC') |
139 |
| - links = Links.objects.filter(is_enable=True).filter( |
140 |
| - Q(show_type=str(linktype)) | Q(show_type=LinkShowType.A)) |
141 |
| - commment_list = Comment.objects.filter(is_enable=True).order_by( |
142 |
| - '-id')[:blogsetting.sidebar_comment_count] |
143 |
| - # 标签云 计算字体大小 |
144 |
| - # 根据总数计算出平均值 大小为 (数目/平均值)*步长 |
145 |
| - increment = 5 |
146 |
| - tags = Tag.objects.all() |
147 |
| - sidebar_tags = None |
148 |
| - if tags and len(tags) > 0: |
149 |
| - s = [t for t in [(t, t.get_article_count()) for t in tags] if t[1]] |
150 |
| - count = sum([t[1] for t in s]) |
151 |
| - dd = 1 if (count == 0 or not len(tags)) else count / len(tags) |
152 |
| - import random |
153 |
| - sidebar_tags = list( |
154 |
| - map(lambda x: (x[0], x[1], (x[1] / dd) * increment + 10), s)) |
155 |
| - random.shuffle(sidebar_tags) |
156 |
| - |
157 |
| - return { |
158 |
| - 'recent_articles': recent_articles, |
159 |
| - 'sidebar_categorys': sidebar_categorys, |
160 |
| - 'most_read_articles': most_read_articles, |
161 |
| - 'article_dates': dates, |
162 |
| - 'sidebar_comments': commment_list, |
163 |
| - 'user': user, |
164 |
| - 'sidabar_links': links, |
165 |
| - 'show_google_adsense': blogsetting.show_google_adsense, |
166 |
| - 'google_adsense_codes': blogsetting.google_adsense_codes, |
167 |
| - 'open_site_comment': blogsetting.open_site_comment, |
168 |
| - 'show_gongan_code': blogsetting.show_gongan_code, |
169 |
| - 'sidebar_tags': sidebar_tags, |
170 |
| - 'extra_sidebars': extra_sidebars |
171 |
| - } |
| 126 | + value = cache.get("sidebar" + linktype) |
| 127 | + if value: |
| 128 | + value['user'] = user |
| 129 | + return value |
| 130 | + else: |
| 131 | + logger.info('load sidebar') |
| 132 | + from djangoblog.utils import get_blog_setting |
| 133 | + blogsetting = get_blog_setting() |
| 134 | + recent_articles = Article.objects.filter( |
| 135 | + status='p')[:blogsetting.sidebar_article_count] |
| 136 | + sidebar_categorys = Category.objects.all() |
| 137 | + extra_sidebars = SideBar.objects.filter( |
| 138 | + is_enable=True).order_by('sequence') |
| 139 | + most_read_articles = Article.objects.filter(status='p').order_by( |
| 140 | + '-views')[:blogsetting.sidebar_article_count] |
| 141 | + dates = Article.objects.datetimes('created_time', 'month', order='DESC') |
| 142 | + links = Links.objects.filter(is_enable=True).filter( |
| 143 | + Q(show_type=str(linktype)) | Q(show_type=LinkShowType.A)) |
| 144 | + commment_list = Comment.objects.filter(is_enable=True).order_by( |
| 145 | + '-id')[:blogsetting.sidebar_comment_count] |
| 146 | + # 标签云 计算字体大小 |
| 147 | + # 根据总数计算出平均值 大小为 (数目/平均值)*步长 |
| 148 | + increment = 5 |
| 149 | + tags = Tag.objects.all() |
| 150 | + sidebar_tags = None |
| 151 | + if tags and len(tags) > 0: |
| 152 | + s = [t for t in [(t, t.get_article_count()) for t in tags] if t[1]] |
| 153 | + count = sum([t[1] for t in s]) |
| 154 | + dd = 1 if (count == 0 or not len(tags)) else count / len(tags) |
| 155 | + import random |
| 156 | + sidebar_tags = list( |
| 157 | + map(lambda x: (x[0], x[1], (x[1] / dd) * increment + 10), s)) |
| 158 | + random.shuffle(sidebar_tags) |
| 159 | + |
| 160 | + value = { |
| 161 | + 'recent_articles': recent_articles, |
| 162 | + 'sidebar_categorys': sidebar_categorys, |
| 163 | + 'most_read_articles': most_read_articles, |
| 164 | + 'article_dates': dates, |
| 165 | + 'sidebar_comments': commment_list, |
| 166 | + 'sidabar_links': links, |
| 167 | + 'show_google_adsense': blogsetting.show_google_adsense, |
| 168 | + 'google_adsense_codes': blogsetting.google_adsense_codes, |
| 169 | + 'open_site_comment': blogsetting.open_site_comment, |
| 170 | + 'show_gongan_code': blogsetting.show_gongan_code, |
| 171 | + 'sidebar_tags': sidebar_tags, |
| 172 | + 'extra_sidebars': extra_sidebars |
| 173 | + } |
| 174 | + cache.set("sidebar" + linktype, value, 60 * 60 * 60 * 3) |
| 175 | + value['user'] = user |
| 176 | + return value |
172 | 177 |
|
173 | 178 |
|
174 | 179 | @register.inclusion_tag('blog/tags/article_meta_info.html')
|
|
0 commit comments