diff --git a/.gitignore b/.gitignore index 5d6eb23..0d08943 100644 --- a/.gitignore +++ b/.gitignore @@ -63,7 +63,7 @@ target/ # http://www.jetbrains.com/pycharm/webhelp/project.html .idea .iml - +static/ # virtualenv venv/ diff --git a/blog/management/commands/sync_user_avatar.py b/blog/management/commands/sync_user_avatar.py index bbaf974..d0f4612 100644 --- a/blog/management/commands/sync_user_avatar.py +++ b/blog/management/commands/sync_user_avatar.py @@ -19,21 +19,26 @@ class Command(BaseCommand): def handle(self, *args, **options): static_url = static("../") - users = OAuthUser.objects.filter(picture__isnull=False).all() + users = OAuthUser.objects.all() self.stdout.write(f'开始同步{len(users)}个用户头像') for u in users: self.stdout.write(f'开始同步:{u.nickname}') url = u.picture - if url.startswith(static_url): - if self.test_picture(url): - continue - else: - if u.metadata: - manage = get_manager_by_type(u.type) - url = manage.get_picture(u.metadata) - else: + if url: + if url.startswith(static_url): + if self.test_picture(url): continue - url = save_user_avatar(url) + else: + if u.metadata: + manage = get_manager_by_type(u.type) + url = manage.get_picture(u.metadata) + url = save_user_avatar(url) + else: + url = static('blog/img/avatar.png') + else: + url = save_user_avatar(url) + else: + url = static('blog/img/avatar.png') if url: self.stdout.write( f'结束同步:{u.nickname}.url:{url}') diff --git a/blog/tests.py b/blog/tests.py index dfe63c1..7be7b47 100644 --- a/blog/tests.py +++ b/blog/tests.py @@ -4,6 +4,7 @@ from django.conf import settings from django.core.files.uploadedfile import SimpleUploadedFile from django.core.management import call_command from django.core.paginator import Paginator +from django.templatetags.static import static from django.test import Client, RequestFactory, TestCase from django.urls import reverse from django.utils import timezone @@ -13,6 +14,7 @@ from blog.forms import BlogSearchForm from blog.models import Article, Category, Tag, SideBar, Links from blog.templatetags.blog_tags import load_pagination_info, load_articletags from djangoblog.utils import get_current_site, get_sha256 +from oauth.models import OAuthUser, OAuthConfig # Create your tests here. @@ -197,6 +199,33 @@ class ArticleTest(TestCase): user.is_superuser = True user.save() + c = OAuthConfig() + c.type = 'qq' + c.appkey = 'appkey' + c.appsecret = 'appsecret' + c.save() + + u = OAuthUser() + u.type = 'qq' + u.openid = 'openid' + u.user = user + u.picture = static("/blog/img/avatar.png") + u.metadata = ''' +{ +"figureurl": "https://qzapp.qlogo.cn/qzapp/101513904/C740E30B4113EAA80E0D9918ABC78E82/30" +}''' + u.save() + + u = OAuthUser() + u.type = 'qq' + u.openid = 'openid1' + u.picture = 'https://qzapp.qlogo.cn/qzapp/101513904/C740E30B4113EAA80E0D9918ABC78E82/30' + u.metadata = ''' + { + "figureurl": "https://qzapp.qlogo.cn/qzapp/101513904/C740E30B4113EAA80E0D9918ABC78E82/30" + }''' + u.save() + from blog.documents import ELASTICSEARCH_ENABLED if ELASTICSEARCH_ENABLED: call_command("build_index")