import logging

from django.utils import timezone

from djangoblog.utils import cache, get_blog_setting
from .models import Category, Article

logger = logging.getLogger(__name__)

#zhq: SEO上下文处理器 - 为所有模板提供SEO相关变量和导航数据
def seo_processor(requests):
    key = 'seo_processor'
    value = cache.get(key)
    if value:
        return value
    else:
        logger.info('set processor cache.')
        # zhq: 获取博客全局设置
        setting = get_blog_setting()
        # zhq: 构建上下文数据字典
        value = {
            'SITE_NAME': setting.site_name,#zhq: 网站名称
            'SHOW_GOOGLE_ADSENSE': setting.show_google_adsense,#zhq: 是否显示Google广告
            'GOOGLE_ADSENSE_CODES': setting.google_adsense_codes,#zhq: Google广告代码
            'SITE_SEO_DESCRIPTION': setting.site_seo_description,#zhq: SEO描述
            'SITE_DESCRIPTION': setting.site_description,#zhq: 网站描述
            'SITE_KEYWORDS': setting.site_keywords,#zhq: 网站关键词
            'SITE_BASE_URL': requests.scheme + '://' + requests.get_host() + '/',#zhq: 网站基础URL
            'ARTICLE_SUB_LENGTH': setting.article_sub_length,#zhq: 文章摘要长度
            'nav_category_list': Category.objects.all(),#zhq: 导航分类列表
            'nav_pages': Article.objects.filter(
                type='p',#zhq: 页面类型
                status='p'),#zhq: 发布状态
            'OPEN_SITE_COMMENT': setting.open_site_comment,#zhq: 是否开启全站评论
            'BEIAN_CODE': setting.beian_code,#zhq: ICP备案号
            'ANALYTICS_CODE': setting.analytics_code,#zhq: 网站统计代码
            "BEIAN_CODE_GONGAN": setting.gongan_beiancode,#zhq: 公安备案号
            "SHOW_GONGAN_CODE": setting.show_gongan_code,#zhq: 是否显示公安备案号
            "CURRENT_YEAR": timezone.now().year,#zhq: 当前年份
            "GLOBAL_HEADER": setting.global_header,#zhq: 全局头部HTML
            "GLOBAL_FOOTER": setting.global_footer,#zhq: 全局尾部HTML
            "COMMENT_NEED_REVIEW": setting.comment_need_review,#zhq: 评论是否需要审核
        }
        # zhq: 缓存上下文数据10小时，提高性能
        cache.set(key, value, 60 * 60 * 10)
        return value
