diff --git a/src/DjangoBlog-master/blog/management/commands/ping_baidu.py b/src/DjangoBlog-master/blog/management/commands/ping_baidu.py index 2c7fbdd..c6427a6 100644 --- a/src/DjangoBlog-master/blog/management/commands/ping_baidu.py +++ b/src/DjangoBlog-master/blog/management/commands/ping_baidu.py @@ -4,47 +4,47 @@ from djangoblog.spider_notify import SpiderNotify from djangoblog.utils import get_current_site from blog.models import Article, Tag, Category -site = get_current_site().domain - - -class Command(BaseCommand): - help = 'notify baidu url' - - def add_arguments(self, parser): - parser.add_argument( - 'data_type', - type=str, - choices=[ - 'all', - 'article', - 'tag', - 'category'], - help='article : all article,tag : all tag,category: all category,all: All of these') - - def get_full_url(self, path): - url = "https://{site}{path}".format(site=site, path=path) - return url - - def handle(self, *args, **options): - type = options['data_type'] - self.stdout.write('start get %s' % type) - - urls = [] - if type == 'article' or type == 'all': - for article in Article.objects.filter(status='p'): - urls.append(article.get_full_url()) - if type == 'tag' or type == 'all': - for tag in Tag.objects.all(): - url = tag.get_absolute_url() - urls.append(self.get_full_url(url)) - if type == 'category' or type == 'all': - for category in Category.objects.all(): - url = category.get_absolute_url() - urls.append(self.get_full_url(url)) - - self.stdout.write( - self.style.SUCCESS( - 'start notify %d urls' % +site = get_current_site().domain #ZNY 获取当前站点的域名 + + +class Command(BaseCommand): #ZNY 定义通知百度URL命令类,继承BaseCommand + help = 'notify baidu url' #ZNY 命令帮助信息:通知百度URL + + def add_arguments(self, parser): #ZNY 添加命令行参数方法 + parser.add_argument( #ZNY 添加数据类型参数 + 'data_type', #ZNY 参数名称 + type=str, #ZNY 参数类型为字符串 + choices=[ #ZNY 参数可选值 + 'all', #ZNY 所有类型 + 'article', #ZNY 仅文章 + 'tag', #ZNY 仅标签 + 'category'], #ZNY 仅分类 + help='article : all article,tag : all tag,category: all category,all: All of these') #ZNY 参数帮助信息 + + def get_full_url(self, path): #ZNY 获取完整URL方法 + url = "https://{site}{path}".format(site=site, path=path) #ZNY 构建完整的HTTPS URL + return url #ZNY 返回完整URL + + def handle(self, *args, **options): #ZNY 命令处理主方法 + type = options['data_type'] #ZNY 从参数获取数据类型 + self.stdout.write('start get %s' % type) #ZNY 输出开始获取数据的提示 + + urls = [] #ZNY 初始化URL列表 + if type == 'article' or type == 'all': #ZNY 如果类型是文章或全部 + for article in Article.objects.filter(status='p'): #ZNY 遍历所有已发布的文章 + urls.append(article.get_full_url()) #ZNY 将文章完整URL添加到列表 + if type == 'tag' or type == 'all': #ZNY 如果类型是标签或全部 + for tag in Tag.objects.all(): #ZNY 遍历所有标签 + url = tag.get_absolute_url() #ZNY 获取标签的相对URL + urls.append(self.get_full_url(url)) #ZNY 转换为完整URL并添加到列表 + if type == 'category' or type == 'all': #ZNY 如果类型是分类或全部 + for category in Category.objects.all(): #ZNY 遍历所有分类 + url = category.get_absolute_url() #ZNY 获取分类的相对URL + urls.append(self.get_full_url(url)) #ZNY 转换为完整URL并添加到列表 + + self.stdout.write( #ZNY 输出开始通知的提示 + self.style.SUCCESS( #ZNY 使用成功样式 + 'start notify %d urls' % #ZNY 显示要通知的URL数量 len(urls))) - SpiderNotify.baidu_notify(urls) - self.stdout.write(self.style.SUCCESS('finish notify')) + SpiderNotify.baidu_notify(urls) #ZNY 调用百度通知功能推送URL + self.stdout.write(self.style.SUCCESS('finish notify')) #ZNY 输出完成通知的提示