From 49ee385e904883332fb323ff5336e0fa29b8effc Mon Sep 17 00:00:00 2001
From: liangliangyy
Date: Tue, 16 Nov 2021 17:31:31 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84=E8=B0=83?=
=?UTF-8?q?=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.dockerignore | 2 +-
.gitignore | 2 +-
DjangoBlog/urls.py | 56 -------------------
Dockerfile | 6 +-
accounts/admin.py | 8 +--
accounts/forms.py | 16 +-----
accounts/models.py | 5 +-
accounts/templatetags/__init__.py | 14 -----
accounts/tests.py | 4 +-
accounts/urls.py | 17 +-----
accounts/user_login_backend.py | 15 -----
accounts/utils.py | 2 +-
accounts/views.py | 9 +--
bin/django_start.sh | 32 -----------
bin/docker_start.sh | 4 +-
blog/admin.py | 11 ++--
blog/context_processors.py | 22 ++------
blog/documents.py | 21 ++-----
blog/forms.py | 18 +-----
blog/management/commands/build_index.py | 15 +----
.../management/commands/build_search_words.py | 16 +-----
blog/management/commands/clear_cache.py | 17 +-----
blog/management/commands/create_testdata.py | 22 ++------
blog/management/commands/ping_baidu.py | 20 +------
blog/management/commands/sync_user_avatar.py | 18 +-----
blog/middleware.py | 19 +------
blog/models.py | 6 +-
blog/search_indexes.py | 18 +-----
blog/templatetags/__init__.py | 14 -----
blog/templatetags/blog_tags.py | 37 +++++-------
blog/tests.py | 8 +--
blog/urls.py | 19 +------
blog/views.py | 26 ++++-----
comments/admin.py | 1 -
comments/forms.py | 19 +------
comments/models.py | 5 +-
comments/templatetags/__init__.py | 14 -----
comments/templatetags/comments_tags.py | 19 -------
comments/tests.py | 9 +--
comments/urls.py | 16 +-----
comments/utils.py | 20 +------
comments/views.py | 13 ++---
{DjangoBlog => djangoblog}/__init__.py | 0
{DjangoBlog => djangoblog}/admin_site.py | 35 +++++-------
{DjangoBlog => djangoblog}/blog_signals.py | 39 ++++---------
.../elasticsearch_backend.py | 21 +------
{DjangoBlog => djangoblog}/feeds.py | 24 ++------
{DjangoBlog => djangoblog}/logentryadmin.py | 28 ++--------
{DjangoBlog => djangoblog}/settings.py | 12 ++--
{DjangoBlog => djangoblog}/sitemap.py | 20 +------
{DjangoBlog => djangoblog}/spider_notify.py | 18 +-----
{DjangoBlog => djangoblog}/tests.py | 17 +-----
djangoblog/urls.py | 55 ++++++++++++++++++
{DjangoBlog => djangoblog}/utils.py | 9 ++-
.../whoosh_cn_backend.py | 46 +++++++--------
{DjangoBlog => djangoblog}/wsgi.py | 4 +-
docker-compose.es.yml | 4 +-
docker-compose.yml | 6 +-
docs/docker.md | 2 +-
docs/es.md | 2 +-
manage.py | 2 +-
oauth/admin.py | 8 +--
oauth/forms.py | 15 -----
oauth/models.py | 7 +--
oauth/oauthmanager.py | 26 ++-------
oauth/templatetags/__init__.py | 13 -----
oauth/templatetags/oauth_tags.py | 20 +------
oauth/tests.py | 1 +
oauth/urls.py | 17 +-----
oauth/views.py | 30 +++++-----
owntracks/admin.py | 1 -
owntracks/tests.py | 9 +--
owntracks/urls.py | 15 +----
owntracks/views.py | 16 +++---
servermanager/MemcacheStorage.py | 17 +-----
servermanager/admin.py | 1 -
servermanager/robot.py | 35 +++---------
servermanager/tests.py | 11 ++--
servermanager/urls.py | 16 +-----
servermanager/views.py | 2 -
templates/blog/article_detail.html | 27 ++++++++-
templates/blog/article_index.html | 23 +++++++-
templates/blog/tags/sidebar.html | 16 ------
83 files changed, 365 insertions(+), 940 deletions(-)
delete mode 100644 DjangoBlog/urls.py
delete mode 100755 bin/django_start.sh
rename {DjangoBlog => djangoblog}/__init__.py (100%)
rename {DjangoBlog => djangoblog}/admin_site.py (79%)
rename {DjangoBlog => djangoblog}/blog_signals.py (83%)
rename {DjangoBlog => djangoblog}/elasticsearch_backend.py (93%)
rename {DjangoBlog => djangoblog}/feeds.py (77%)
rename {DjangoBlog => djangoblog}/logentryadmin.py (89%)
rename {DjangoBlog => djangoblog}/settings.py (97%)
rename {DjangoBlog => djangoblog}/sitemap.py (78%)
rename {DjangoBlog => djangoblog}/spider_notify.py (74%)
rename {DjangoBlog => djangoblog}/tests.py (68%)
create mode 100644 djangoblog/urls.py
rename {DjangoBlog => djangoblog}/utils.py (96%)
rename {DjangoBlog => djangoblog}/whoosh_cn_backend.py (99%)
rename {DjangoBlog => djangoblog}/wsgi.py (74%)
diff --git a/.dockerignore b/.dockerignore
index da9aa07..48ff43b 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -4,7 +4,7 @@ venv/
migrations/
!migrations/__init__.py
collectedstatic/
-DjangoBlog/whoosh_index/
+djangoblog/whoosh_index/
uploads/
settings_production.py
*.md
diff --git a/.gitignore b/.gitignore
index 42272c4..d17ee1e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,7 +69,7 @@ venv/
migrations/
!migrations/__init__.py
collectedstatic/
-DjangoBlog/whoosh_index/
+djangoblog/whoosh_index/
google93fd32dbd906620a.html
baidu_verify_FlHL7cUyC9.html
BingSiteAuth.xml
diff --git a/DjangoBlog/urls.py b/DjangoBlog/urls.py
deleted file mode 100644
index 0bedda9..0000000
--- a/DjangoBlog/urls.py
+++ /dev/null
@@ -1,56 +0,0 @@
-"""DjangoBlog URL Configuration
-
-The `urlpatterns` list routes URLs to views. For more information please see:
- https://docs.djangoproject.com/en/1.10/topics/http/urls/
-Examples:
-Function views
- 1. Add an import: from my_app import views
- 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
-Class-based views
- 1. Add an import: from other_app.views import Home
- 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
-Including another URLconf
- 1. Import the include() function: from django.conf.urls import url, include
- 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
-"""
-from django.conf.urls import url, include
-from django.contrib import admin
-from django.contrib.sitemaps.views import sitemap
-from DjangoBlog.sitemap import StaticViewSitemap, ArticleSiteMap, CategorySiteMap, TagSiteMap, UserSiteMap
-from DjangoBlog.feeds import DjangoBlogFeed
-from django.views.decorators.cache import cache_page
-from django.conf import settings
-from django.conf.urls.static import static
-from DjangoBlog.admin_site import admin_site
-from django.urls import include, path
-
-sitemaps = {
-
- 'blog': ArticleSiteMap,
- 'Category': CategorySiteMap,
- 'Tag': TagSiteMap,
- 'User': UserSiteMap,
- 'static': StaticViewSitemap
-}
-
-handler404 = 'blog.views.page_not_found_view'
-handler500 = 'blog.views.server_error_view'
-handle403 = 'blog.views.permission_denied_view'
-urlpatterns = [
- url(r'^admin/', admin_site.urls),
- url(r'', include('blog.urls', namespace='blog')),
- url(r'mdeditor/', include('mdeditor.urls')),
- url(r'', include('comments.urls', namespace='comment')),
- url(r'', include('accounts.urls', namespace='account')),
- url(r'', include('oauth.urls', namespace='oauth')),
- url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},
- name='django.contrib.sitemaps.views.sitemap'),
- url(r'^feed/$', DjangoBlogFeed()),
- url(r'^rss/$', DjangoBlogFeed()),
- url(r'^search', include('haystack.urls'), name='search'),
- url(r'', include('servermanager.urls', namespace='servermanager')),
- url(r'', include('owntracks.urls', namespace='owntracks'))
-] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
-if settings.DEBUG:
- urlpatterns += static(settings.MEDIA_URL,
- document_root=settings.MEDIA_ROOT)
diff --git a/Dockerfile b/Dockerfile
index 7bec6eb..f8a86f2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
FROM python:3
ENV PYTHONUNBUFFERED 1
-WORKDIR /code/DjangoBlog/
+WORKDIR /code/djangoblog/
RUN apt-get install default-libmysqlclient-dev -y && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ADD requirements.txt requirements.txt
@@ -10,5 +10,5 @@ RUN pip install --upgrade pip && \
pip cache purge
ADD . .
-RUN chmod +x /code/DjangoBlog/bin/docker_start.sh
-ENTRYPOINT ["/code/DjangoBlog/bin/docker_start.sh"]
+RUN chmod +x /code/djangoblog/bin/docker_start.sh
+ENTRYPOINT ["/code/djangoblog/bin/docker_start.sh"]
diff --git a/accounts/admin.py b/accounts/admin.py
index 45ab895..c3fbf35 100644
--- a/accounts/admin.py
+++ b/accounts/admin.py
@@ -1,12 +1,12 @@
from django import forms
-from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
-from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.forms import ReadOnlyPasswordHashField
+from django.contrib.auth.forms import UserChangeForm
+from django.contrib.auth.forms import UsernameField
+from django.utils.translation import gettext_lazy as _
+
# Register your models here.
from .models import BlogUser
-from django.utils.translation import gettext, gettext_lazy as _
-from django.contrib.auth.forms import UsernameField
class BlogUserCreationForm(forms.ModelForm):
diff --git a/accounts/forms.py b/accounts/forms.py
index 8e8049d..70c492b 100644
--- a/accounts/forms.py
+++ b/accounts/forms.py
@@ -1,17 +1,3 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: forms.py
-@time: 2016/11/20 下午3:16
-"""
from django import forms
from django.contrib.auth import get_user_model, password_validation
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
@@ -108,7 +94,7 @@ class ForgetPasswordForm(forms.Form):
def clean_email(self):
user_email = self.cleaned_data.get("email")
if not BlogUser.objects.filter(
- email=user_email
+ email=user_email
).exists():
# todo 这里的报错提示可以判断一个邮箱是不是注册过,如果不想暴露可以修改
raise ValidationError("未找到邮箱对应的用户")
diff --git a/accounts/models.py b/accounts/models.py
index ff6241e..9f7454c 100644
--- a/accounts/models.py
+++ b/accounts/models.py
@@ -1,9 +1,10 @@
+from django.contrib.auth.models import AbstractUser
from django.db import models
-from django.contrib.auth.models import AbstractUser, BaseUserManager
from django.urls import reverse
-from DjangoBlog.utils import get_current_site
from django.utils.timezone import now
+from djangoblog.utils import get_current_site
+
# Create your models here.
diff --git a/accounts/templatetags/__init__.py b/accounts/templatetags/__init__.py
index 8875802..e69de29 100644
--- a/accounts/templatetags/__init__.py
+++ b/accounts/templatetags/__init__.py
@@ -1,14 +0,0 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: __init__.py
-@time: 2016/11/2 下午9:15
-"""
\ No newline at end of file
diff --git a/accounts/tests.py b/accounts/tests.py
index f0e7b12..ae3ae69 100644
--- a/accounts/tests.py
+++ b/accounts/tests.py
@@ -3,7 +3,7 @@ from django.test import Client, RequestFactory, TestCase
from django.urls import reverse
from django.utils import timezone
-from DjangoBlog.utils import *
+from djangoblog.utils import *
from accounts.models import BlogUser
from blog.models import Article, Category
from . import utils
@@ -83,7 +83,7 @@ class AccountTest(TestCase):
user.is_superuser = True
user.is_staff = True
user.save()
- delete_sidebar_cache(user.username)
+ delete_sidebar_cache()
category = Category()
category.name = "categoryaaa"
category.created_time = timezone.now()
diff --git a/accounts/urls.py b/accounts/urls.py
index e84123b..0dcdc73 100644
--- a/accounts/urls.py
+++ b/accounts/urls.py
@@ -1,23 +1,8 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: urls.py
-@time: 2016/11/20 下午3:52
-"""
-
from django.conf.urls import url
from django.urls import path
-from .forms import LoginForm
from . import views
+from .forms import LoginForm
app_name = "accounts"
diff --git a/accounts/user_login_backend.py b/accounts/user_login_backend.py
index d26ad09..73cdca1 100644
--- a/accounts/user_login_backend.py
+++ b/accounts/user_login_backend.py
@@ -1,18 +1,3 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: user_login_backend.py
-@time: 2017/2/17 下午8:45
-"""
-from django.conf import settings
from django.contrib.auth import get_user_model
from django.contrib.auth.backends import ModelBackend
diff --git a/accounts/utils.py b/accounts/utils.py
index cd5c360..6688667 100644
--- a/accounts/utils.py
+++ b/accounts/utils.py
@@ -3,7 +3,7 @@ from datetime import timedelta
from django.core.cache import cache
-from DjangoBlog.utils import send_email
+from djangoblog.utils import send_email
_code_ttl = timedelta(minutes=5)
diff --git a/accounts/views.py b/accounts/views.py
index 438337b..627aa2d 100644
--- a/accounts/views.py
+++ b/accounts/views.py
@@ -21,7 +21,7 @@ from django.views.decorators.csrf import csrf_protect
from django.views.decorators.debug import sensitive_post_parameters
from django.views.generic import FormView, RedirectView
-from DjangoBlog.utils import send_email, get_sha256, get_current_site, generate_code
+from djangoblog.utils import send_email, get_sha256, get_current_site, generate_code, delete_sidebar_cache
from . import utils
from .forms import RegisterForm, LoginForm, ForgetPasswordForm, ForgetPasswordCodeForm
from .models import BlogUser
@@ -84,9 +84,8 @@ class LogoutView(RedirectView):
return super(LogoutView, self).dispatch(request, *args, **kwargs)
def get(self, request, *args, **kwargs):
- from DjangoBlog.utils import cache
- cache.clear()
logout(request)
+ delete_sidebar_cache()
return super(LogoutView, self).get(request, *args, **kwargs)
@@ -116,9 +115,7 @@ class LoginView(FormView):
form = AuthenticationForm(data=self.request.POST, request=self.request)
if form.is_valid():
- from DjangoBlog.utils import cache
- if cache and cache is not None:
- cache.clear()
+ delete_sidebar_cache()
logger.info(self.redirect_field_name)
auth.login(self.request, form.get_user())
diff --git a/bin/django_start.sh b/bin/django_start.sh
deleted file mode 100755
index a27eb2e..0000000
--- a/bin/django_start.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-NAME="djangoblog" # Name of the application
-DJANGODIR=/var/www/DjangoBlog # Django project directory
-SOCKFILE=/var/www/DjangoBlog/run/gunicorn.sock # we will communicte using this unix socket
-USER=root # the user to run as
-GROUP=root # the group to run as
-NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
-DJANGO_SETTINGS_MODULE=DjangoBlog.settings # which settings file should Django use
-DJANGO_WSGI_MODULE=DjangoBlog.wsgi # WSGI module name
-
-echo "Starting $NAME as `whoami`"
-
-# Activate the virtual environment
-cd $DJANGODIR
-source /var/www/dev/python3/bin/activate
-export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
-export PYTHONPATH=$DJANGODIR:$PYTHONPATH
-
-# Create the run directory if it doesn't exist
-RUNDIR=$(dirname $SOCKFILE)
-test -d $RUNDIR || mkdir -p $RUNDIR
-
-# Start your Django Unicorn
-# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
-exec /var/www/dev/python3/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
---name $NAME \
---workers $NUM_WORKERS \
---user=$USER --group=$GROUP \
---bind=unix:$SOCKFILE \
---log-level=debug \
---log-file=-
diff --git a/bin/docker_start.sh b/bin/docker_start.sh
index ddada3a..b5b2eb2 100644
--- a/bin/docker_start.sh
+++ b/bin/docker_start.sh
@@ -4,8 +4,8 @@ DJANGODIR=/code/DjangoBlog # Django project directory
USER=root # the user to run as
GROUP=root # the group to run as
NUM_WORKERS=1 # how many worker processes should Gunicorn spawn
-#DJANGO_SETTINGS_MODULE=DjangoBlog.settings # which settings file should Django use
-DJANGO_WSGI_MODULE=DjangoBlog.wsgi # WSGI module name
+#DJANGO_SETTINGS_MODULE=djangoblog.settings # which settings file should Django use
+DJANGO_WSGI_MODULE=djangoblog.wsgi # WSGI module name
echo "Starting $NAME as `whoami`"
diff --git a/blog/admin.py b/blog/admin.py
index 4b6968b..f812dc6 100644
--- a/blog/admin.py
+++ b/blog/admin.py
@@ -1,11 +1,12 @@
-from django.contrib import admin
-# Register your models here.
-from .models import Article, Category, Tag, Links, SideBar, BlogSettings
from django import forms
+from django.contrib import admin
from django.contrib.auth import get_user_model
-from django.utils.translation import ugettext_lazy as _
from django.urls import reverse
from django.utils.html import format_html
+from django.utils.translation import ugettext_lazy as _
+
+# Register your models here.
+from .models import Article
class ArticleListFilter(admin.SimpleListFilter):
@@ -101,7 +102,7 @@ class ArticlelAdmin(admin.ModelAdmin):
url = obj.get_full_url()
return url
else:
- from DjangoBlog.utils import get_current_site
+ from djangoblog.utils import get_current_site
site = get_current_site().domain
return site
diff --git a/blog/context_processors.py b/blog/context_processors.py
index 2fb2ad7..3b2862d 100644
--- a/blog/context_processors.py
+++ b/blog/context_processors.py
@@ -1,22 +1,8 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: context_processors.py
-@time: 2016/11/6 下午4:23
-"""
-from .models import Category, Article, Tag, BlogSettings
-from DjangoBlog.utils import cache, get_blog_setting
-
-from datetime import datetime
import logging
+from datetime import datetime
+
+from djangoblog.utils import cache, get_blog_setting
+from .models import Category, Article
logger = logging.getLogger(__name__)
diff --git a/blog/documents.py b/blog/documents.py
index 16e9eb4..4554775 100644
--- a/blog/documents.py
+++ b/blog/documents.py
@@ -1,22 +1,11 @@
-#!/usr/bin/env python
-# encoding: utf-8
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: documents.py
-@time: 2019-04-05 13:05
-"""
-import elasticsearch.client
-from elasticsearch_dsl.connections import connections
import time
-from blog.models import Article
-from elasticsearch_dsl import Document, InnerDoc, Date, Integer, Long, Text, Object, GeoPoint, Keyword, Boolean
+import elasticsearch.client
from django.conf import settings
+from elasticsearch_dsl import Document, InnerDoc, Date, Integer, Long, Text, Object, GeoPoint, Keyword, Boolean
+from elasticsearch_dsl.connections import connections
+
+from blog.models import Article
ELASTICSEARCH_ENABLED = hasattr(settings, 'ELASTICSEARCH_DSL')
diff --git a/blog/forms.py b/blog/forms.py
index 5cb1086..715be76 100644
--- a/blog/forms.py
+++ b/blog/forms.py
@@ -1,21 +1,7 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: forms.py
-@time: 2017/1/7 上午12:36
-"""
+import logging
-from haystack.forms import SearchForm
from django import forms
-import logging
+from haystack.forms import SearchForm
logger = logging.getLogger(__name__)
diff --git a/blog/management/commands/build_index.py b/blog/management/commands/build_index.py
index 0391cc3..3c4acd7 100644
--- a/blog/management/commands/build_index.py
+++ b/blog/management/commands/build_index.py
@@ -1,21 +1,8 @@
-#!/usr/bin/env python
-# encoding: utf-8
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: build_index.py
-@time: 2019-04-20 20:39
-"""
+from django.core.management.base import BaseCommand
from blog.documents import ElapsedTimeDocument, ArticleDocumentManager, ElaspedTimeDocumentManager, \
ELASTICSEARCH_ENABLED
-from django.core.management.base import BaseCommand
-
# TODO 参数化
class Command(BaseCommand):
diff --git a/blog/management/commands/build_search_words.py b/blog/management/commands/build_search_words.py
index f955ffe..cfe7e0d 100644
--- a/blog/management/commands/build_search_words.py
+++ b/blog/management/commands/build_search_words.py
@@ -1,18 +1,6 @@
-#!/usr/bin/env python
-# encoding: utf-8
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: build_search_words.py
-@time: 2019/9/23 6:58 下午
-"""
-
from django.core.management.base import BaseCommand
-from blog.models import Article, Tag, Category
+
+from blog.models import Tag, Category
# TODO 参数化
diff --git a/blog/management/commands/clear_cache.py b/blog/management/commands/clear_cache.py
index 0cddbf8..0d66172 100644
--- a/blog/management/commands/clear_cache.py
+++ b/blog/management/commands/clear_cache.py
@@ -1,20 +1,7 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: clear_cache.py
-@time: 2017/2/17 下午10:30
-"""
-from DjangoBlog.utils import cache
from django.core.management.base import BaseCommand
+from djangoblog.utils import cache
+
class Command(BaseCommand):
help = 'clear the whole cache'
diff --git a/blog/management/commands/create_testdata.py b/blog/management/commands/create_testdata.py
index e979711..675d2ba 100644
--- a/blog/management/commands/create_testdata.py
+++ b/blog/management/commands/create_testdata.py
@@ -1,22 +1,8 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: create_testdata.py
-@time: 2017/3/11 上午1:58
-"""
-
-from django.core.management.base import BaseCommand
-from blog.models import Article, Tag, Category
from django.contrib.auth import get_user_model
from django.contrib.auth.hashers import make_password
+from django.core.management.base import BaseCommand
+
+from blog.models import Article, Tag, Category
class Command(BaseCommand):
@@ -49,6 +35,6 @@ class Command(BaseCommand):
article.tags.add(basetag)
article.save()
- from DjangoBlog.utils import cache
+ from djangoblog.utils import cache
cache.clear()
self.stdout.write(self.style.SUCCESS('created test datas \n'))
diff --git a/blog/management/commands/ping_baidu.py b/blog/management/commands/ping_baidu.py
index 14235a0..2c7fbdd 100644
--- a/blog/management/commands/ping_baidu.py
+++ b/blog/management/commands/ping_baidu.py
@@ -1,22 +1,8 @@
-#!/usr/bin/env python
-# encoding: utf-8
+from django.core.management.base import BaseCommand
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: ping_baidu.py
-@time: 2017/1/17 下午15:29
-"""
-
-from django.core.management.base import BaseCommand, CommandError
+from djangoblog.spider_notify import SpiderNotify
+from djangoblog.utils import get_current_site
from blog.models import Article, Tag, Category
-from DjangoBlog.spider_notify import SpiderNotify
-from DjangoBlog.utils import get_current_site
site = get_current_site().domain
diff --git a/blog/management/commands/sync_user_avatar.py b/blog/management/commands/sync_user_avatar.py
index 0fe86cc..263734c 100644
--- a/blog/management/commands/sync_user_avatar.py
+++ b/blog/management/commands/sync_user_avatar.py
@@ -1,21 +1,7 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: sync_user_avatar.py
-@time: 2018/7/18 下午10:21
-"""
-
from django.core.management.base import BaseCommand
+
+from djangoblog.utils import save_user_avatar
from oauth.models import OAuthUser
-from DjangoBlog.utils import save_user_avatar
class Command(BaseCommand):
diff --git a/blog/middleware.py b/blog/middleware.py
index d8824c9..94dd70c 100644
--- a/blog/middleware.py
+++ b/blog/middleware.py
@@ -1,22 +1,9 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: middleware.py
-@time: 2017/1/19 上午12:36
-"""
-
-import time
import logging
+import time
+
from ipware import get_client_ip
from user_agents import parse
+
from blog.documents import ELASTICSEARCH_ENABLED, ElaspedTimeDocumentManager
logger = logging.getLogger(__name__)
diff --git a/blog/models.py b/blog/models.py
index c04a4cd..60a89c0 100644
--- a/blog/models.py
+++ b/blog/models.py
@@ -10,8 +10,8 @@ from django.utils.translation import gettext_lazy as _
from mdeditor.fields import MDTextField
from uuslug import slugify
-from DjangoBlog.utils import cache_decorator, cache
-from DjangoBlog.utils import get_current_site
+from djangoblog.utils import cache_decorator, cache
+from djangoblog.utils import get_current_site
logger = logging.getLogger(__name__)
@@ -361,5 +361,5 @@ class BlogSettings(models.Model):
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
- from DjangoBlog.utils import cache
+ from djangoblog.utils import cache
cache.clear()
diff --git a/blog/search_indexes.py b/blog/search_indexes.py
index e14349e..7f1dfac 100644
--- a/blog/search_indexes.py
+++ b/blog/search_indexes.py
@@ -1,20 +1,6 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: search_indexes.py
-@time: 2017/1/7 上午12:44
-"""
from haystack import indexes
-from django.conf import settings
-from blog.models import Article, Category, Tag
+
+from blog.models import Article
class ArticleIndex(indexes.SearchIndex, indexes.Indexable):
diff --git a/blog/templatetags/__init__.py b/blog/templatetags/__init__.py
index 8875802..e69de29 100644
--- a/blog/templatetags/__init__.py
+++ b/blog/templatetags/__init__.py
@@ -1,14 +0,0 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: __init__.py
-@time: 2016/11/2 下午9:15
-"""
\ No newline at end of file
diff --git a/blog/templatetags/blog_tags.py b/blog/templatetags/blog_tags.py
index c899099..137f7ca 100644
--- a/blog/templatetags/blog_tags.py
+++ b/blog/templatetags/blog_tags.py
@@ -1,18 +1,3 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: blog_tags.py
-@time: 2016/11/2 下午11:10
-"""
-
import hashlib
import logging
import random
@@ -26,8 +11,8 @@ from django.template.defaultfilters import stringfilter
from django.urls import reverse
from django.utils.safestring import mark_safe
-from DjangoBlog.utils import cache
-from DjangoBlog.utils import get_current_site
+from djangoblog.utils import cache
+from djangoblog.utils import get_current_site
from blog.models import Article, Category, Tag, Links, SideBar, LinkShowType
from comments.models import Comment
from oauth.models import OAuthUser
@@ -60,13 +45,13 @@ def datetimeformat(data):
@register.filter(is_safe=True)
@stringfilter
def custom_markdown(content):
- from DjangoBlog.utils import CommonMarkdown
+ from djangoblog.utils import CommonMarkdown
return mark_safe(CommonMarkdown.get_markdown(content))
@register.simple_tag
def get_markdown_toc(content):
- from DjangoBlog.utils import CommonMarkdown
+ from djangoblog.utils import CommonMarkdown
body, toc = CommonMarkdown.get_markdown_with_toc(content)
return mark_safe(toc), mark_safe(body)
@@ -80,7 +65,7 @@ def truncatechars_content(content):
:return:
"""
from django.template.defaultfilters import truncatechars_html
- from DjangoBlog.utils import get_blog_setting
+ from djangoblog.utils import get_blog_setting
blogsetting = get_blog_setting()
return truncatechars_html(content, blogsetting.article_sub_length)
@@ -101,7 +86,7 @@ def load_breadcrumb(article):
:return:
"""
names = article.get_category_tree()
- from DjangoBlog.utils import get_blog_setting
+ from djangoblog.utils import get_blog_setting
blogsetting = get_blog_setting()
site = get_current_site().domain
names.append((blogsetting.sitename, '/'))
@@ -141,7 +126,7 @@ def load_sidebar(user, linktype):
:return:
"""
logger.info('load sidebar')
- from DjangoBlog.utils import get_blog_setting
+ from djangoblog.utils import get_blog_setting
blogsetting = get_blog_setting()
recent_articles = Article.objects.filter(
status='p')[:blogsetting.sidebar_article_count]
@@ -286,7 +271,7 @@ def load_article_detail(article, isindex, user):
:param isindex:是否列表页,若是列表页只显示摘要
:return:
"""
- from DjangoBlog.utils import get_blog_setting
+ from djangoblog.utils import get_blog_setting
blogsetting = get_blog_setting()
return {
@@ -340,3 +325,9 @@ def query(qs, **kwargs):
{% endfor %}
"""
return qs.filter(**kwargs)
+
+
+@register.filter
+def addstr(arg1, arg2):
+ """concatenate arg1 & arg2"""
+ return str(arg1) + str(arg2)
diff --git a/blog/tests.py b/blog/tests.py
index acf6ad8..4391f17 100644
--- a/blog/tests.py
+++ b/blog/tests.py
@@ -8,7 +8,7 @@ from django.test import Client, RequestFactory, TestCase
from django.urls import reverse
from django.utils import timezone
-from DjangoBlog.utils import get_current_site, get_sha256
+from djangoblog.utils import get_current_site, get_sha256
from accounts.models import BlogUser
from blog.forms import BlogSearchForm
from blog.models import Article, Category, Tag, SideBar, Links
@@ -85,7 +85,7 @@ class ArticleTest(TestCase):
response = self.client.get(article.get_absolute_url())
self.assertEqual(response.status_code, 200)
- from DjangoBlog.spider_notify import SpiderNotify
+ from djangoblog.spider_notify import SpiderNotify
SpiderNotify.notify(article.get_absolute_url())
response = self.client.get(tag.get_absolute_url())
self.assertEqual(response.status_code, 200)
@@ -125,7 +125,7 @@ class ArticleTest(TestCase):
f = BlogSearchForm()
f.search()
# self.client.login(username='liangliangyy', password='liangliangyy')
- from DjangoBlog.spider_notify import SpiderNotify
+ from djangoblog.spider_notify import SpiderNotify
SpiderNotify.baidu_notify([article.get_full_url()])
from blog.templatetags.blog_tags import gravatar_url, gravatar
@@ -186,7 +186,7 @@ class ArticleTest(TestCase):
'/upload?sign=' + sign, form_data, follow=True)
self.assertEqual(rsp.status_code, 200)
os.remove(imagepath)
- from DjangoBlog.utils import save_user_avatar, send_email
+ from djangoblog.utils import save_user_avatar, send_email
send_email(['qq@qq.com'], 'testTitle', 'testContent')
save_user_avatar(
'https://www.python.org/static/img/python-logo@2x.png')
diff --git a/blog/urls.py b/blog/urls.py
index 883847c..f04b126 100644
--- a/blog/urls.py
+++ b/blog/urls.py
@@ -1,24 +1,7 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: urls.py
-@time: 2016/11/2 下午7:15
-"""
-
from django.urls import path
from django.views.decorators.cache import cache_page
+
from . import views
-from haystack.forms import ModelSearchForm
-from haystack.query import SearchQuerySet
-from haystack.views import SearchView
app_name = "blog"
urlpatterns = [
diff --git a/blog/views.py b/blog/views.py
index 4b62f78..38e7327 100644
--- a/blog/views.py
+++ b/blog/views.py
@@ -1,22 +1,22 @@
-import uuid
-
-from django.shortcuts import render
-
+import datetime
+import logging
# Create your views here.
import os
-import datetime
-from django.views.generic.list import ListView
-from django.views.generic.detail import DetailView
-from django.conf import settings
+import uuid
+
from django import forms
-from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden
-from django.views.decorators.csrf import csrf_exempt
+from django.conf import settings
from django.contrib.auth.decorators import login_required
-from DjangoBlog.utils import cache, get_sha256, get_blog_setting
+from django.http import HttpResponse, HttpResponseForbidden
from django.shortcuts import get_object_or_404
+from django.shortcuts import render
+from django.views.decorators.csrf import csrf_exempt
+from django.views.generic.detail import DetailView
+from django.views.generic.list import ListView
+
+from djangoblog.utils import cache, get_sha256, get_blog_setting
from blog.models import Article, Category, Tag, Links, LinkShowType
from comments.forms import CommentForm
-import logging
logger = logging.getLogger(__name__)
@@ -316,7 +316,7 @@ def refresh_memcache(request):
try:
if request.user.is_superuser:
- from DjangoBlog.utils import cache
+ from djangoblog.utils import cache
if cache and cache is not None:
cache.clear()
return HttpResponse("ok")
diff --git a/comments/admin.py b/comments/admin.py
index 79f024d..6897e44 100644
--- a/comments/admin.py
+++ b/comments/admin.py
@@ -1,6 +1,5 @@
from django.contrib import admin
# Register your models here.
-from .models import Comment
from django.urls import reverse
from django.utils.html import format_html
diff --git a/comments/forms.py b/comments/forms.py
index ef8249e..8f4a480 100644
--- a/comments/forms.py
+++ b/comments/forms.py
@@ -1,22 +1,7 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: forms.py
-@time: 2016/11/12 下午2:45
-"""
-from .models import Comment
from django import forms
from django.forms import ModelForm
-from django.contrib.auth.models import User
-from django.contrib.auth import get_user_model
+
+from .models import Comment
class CommentForm(ModelForm):
diff --git a/comments/models.py b/comments/models.py
index 4ffb3c9..67df624 100644
--- a/comments/models.py
+++ b/comments/models.py
@@ -1,8 +1,9 @@
-from django.db import models
from django.conf import settings
-from blog.models import Article
+from django.db import models
from django.utils.timezone import now
+from blog.models import Article
+
# Create your models here.
diff --git a/comments/templatetags/__init__.py b/comments/templatetags/__init__.py
index 8875802..e69de29 100644
--- a/comments/templatetags/__init__.py
+++ b/comments/templatetags/__init__.py
@@ -1,14 +0,0 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: __init__.py
-@time: 2016/11/2 下午9:15
-"""
\ No newline at end of file
diff --git a/comments/templatetags/comments_tags.py b/comments/templatetags/comments_tags.py
index e0fb2c2..fde02b4 100644
--- a/comments/templatetags/comments_tags.py
+++ b/comments/templatetags/comments_tags.py
@@ -1,23 +1,4 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: comments_tags.py
-@time: 2016/11/2 下午9:17
-"""
-
from django import template
-from django.template.loader import render_to_string
-from ..models import Comment
-from blog.models import Article
-from comments.forms import CommentForm
register = template.Library()
diff --git a/comments/tests.py b/comments/tests.py
index 49d4424..3b95550 100644
--- a/comments/tests.py
+++ b/comments/tests.py
@@ -1,12 +1,13 @@
from django.test import Client, RequestFactory, TestCase
-from blog.models import Article, Category, Tag
-from django.contrib.auth import get_user_model
-from DjangoBlog.utils import get_current_site
from django.urls import reverse
from django.utils import timezone
+
from accounts.models import BlogUser
+from blog.models import Category, Article
+from comments.models import Comment
from comments.templatetags.comments_tags import *
-from DjangoBlog.utils import get_max_articleid_commentid
+from djangoblog.utils import get_current_site
+from djangoblog.utils import get_max_articleid_commentid
# Create your tests here.
diff --git a/comments/urls.py b/comments/urls.py
index 79b9c83..bc22017 100644
--- a/comments/urls.py
+++ b/comments/urls.py
@@ -1,19 +1,5 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: urls.py
-@time: 2016/11/12 下午3:03
-"""
-
from django.urls import path
+
from . import views
app_name = "comments"
diff --git a/comments/utils.py b/comments/utils.py
index 353f372..0380f08 100644
--- a/comments/utils.py
+++ b/comments/utils.py
@@ -1,22 +1,8 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: utils.py
-@time: 2018/10/8 10:24 PM
-"""
-
-from DjangoBlog.utils import send_email
-from DjangoBlog.utils import get_current_site
import logging
+from djangoblog.utils import get_current_site
+from djangoblog.utils import send_email
+
logger = logging.getLogger(__name__)
diff --git a/comments/views.py b/comments/views.py
index 1295175..4484f5b 100644
--- a/comments/views.py
+++ b/comments/views.py
@@ -1,13 +1,12 @@
-from django.shortcuts import render
-
# Create your views here.
-from .models import Comment
+from django import forms
+from django.contrib.auth import get_user_model
+from django.http import HttpResponseRedirect
+from django.views.generic.edit import FormView
+
from blog.models import Article
from .forms import CommentForm
-from django.views.generic.edit import FormView
-from django.http import HttpResponseRedirect
-from django.contrib.auth import get_user_model
-from django import forms
+from .models import Comment
class CommentPostView(FormView):
diff --git a/DjangoBlog/__init__.py b/djangoblog/__init__.py
similarity index 100%
rename from DjangoBlog/__init__.py
rename to djangoblog/__init__.py
diff --git a/DjangoBlog/admin_site.py b/djangoblog/admin_site.py
similarity index 79%
rename from DjangoBlog/admin_site.py
rename to djangoblog/admin_site.py
index d90ec5e..f120405 100644
--- a/DjangoBlog/admin_site.py
+++ b/djangoblog/admin_site.py
@@ -1,34 +1,25 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: admin_site.py
-@time: 2018/1/7 上午2:21
-"""
from django.contrib.admin import AdminSite
-from DjangoBlog.utils import get_current_site
-from django.contrib.sites.admin import SiteAdmin
from django.contrib.admin.models import LogEntry
+from django.contrib.sites.admin import SiteAdmin
from django.contrib.sites.models import Site
-from DjangoBlog.logentryadmin import LogEntryAdmin
-from blog.admin import *
+
from accounts.admin import *
-from oauth.admin import *
-from servermanager.admin import *
+from blog.admin import *
+from blog.models import *
from comments.admin import *
+from comments.models import *
+from djangoblog.logentryadmin import LogEntryAdmin
+from oauth.admin import *
+from oauth.models import *
from owntracks.admin import *
+from owntracks.models import *
+from servermanager.admin import *
+from servermanager.models import *
class DjangoBlogAdminSite(AdminSite):
- site_header = 'DjangoBlog administration'
- site_title = 'DjangoBlog site admin'
+ site_header = 'djangoblog administration'
+ site_title = 'djangoblog site admin'
def __init__(self, name='admin'):
super().__init__(name)
diff --git a/DjangoBlog/blog_signals.py b/djangoblog/blog_signals.py
similarity index 83%
rename from DjangoBlog/blog_signals.py
rename to djangoblog/blog_signals.py
index d0cbedd..525d45d 100644
--- a/DjangoBlog/blog_signals.py
+++ b/djangoblog/blog_signals.py
@@ -1,34 +1,20 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: blog_signals.py
-@time: 2017/8/12 上午10:18
-"""
import _thread
import logging
import django.dispatch
-from django.dispatch import receiver
from django.conf import settings
from django.contrib.admin.models import LogEntry
+from django.contrib.auth.signals import user_logged_in, user_logged_out
from django.core.mail import EmailMultiAlternatives
from django.db.models.signals import post_save
-from django.contrib.auth.signals import user_logged_in, user_logged_out
+from django.dispatch import receiver
-from oauth.models import OAuthUser
+from djangoblog.spider_notify import SpiderNotify
+from djangoblog.utils import cache, expire_view_cache, delete_sidebar_cache, delete_view_cache
+from djangoblog.utils import get_current_site
from comments.models import Comment
from comments.utils import send_comment_email
-from DjangoBlog.utils import get_current_site
-from DjangoBlog.utils import cache, expire_view_cache, delete_sidebar_cache, delete_view_cache
-from DjangoBlog.spider_notify import SpiderNotify
+from oauth.models import OAuthUser
logger = logging.getLogger(__name__)
@@ -71,13 +57,11 @@ def oauth_user_login_signal_handler(sender, **kwargs):
oauthuser = OAuthUser.objects.get(id=id)
site = get_current_site().domain
if oauthuser.picture and not oauthuser.picture.find(site) >= 0:
- from DjangoBlog.utils import save_user_avatar
+ from djangoblog.utils import save_user_avatar
oauthuser.picture = save_user_avatar(oauthuser.picture)
oauthuser.save()
- delete_sidebar_cache(oauthuser.author.username)
-
- cache.clear()
+ delete_sidebar_cache()
@receiver(post_save)
@@ -102,6 +86,7 @@ def model_post_save_callback(
logger.error("notify sipder", ex)
if not is_update_views:
clearcache = True
+
if isinstance(instance, Comment):
path = instance.article.get_absolute_url()
@@ -119,7 +104,7 @@ def model_post_save_callback(
comment_cache_key = 'article_comments_{id}'.format(
id=instance.article.id)
cache.delete(comment_cache_key)
- delete_sidebar_cache(instance.author.username)
+ delete_sidebar_cache()
delete_view_cache('article_comments', [str(instance.article.pk)])
_thread.start_new(send_comment_email, (instance,))
@@ -133,5 +118,5 @@ def model_post_save_callback(
def user_auth_callback(sender, request, user, **kwargs):
if user and user.username:
logger.info(user)
- delete_sidebar_cache(user.username)
- cache.clear()
+ delete_sidebar_cache()
+ # cache.clear()
diff --git a/DjangoBlog/elasticsearch_backend.py b/djangoblog/elasticsearch_backend.py
similarity index 93%
rename from DjangoBlog/elasticsearch_backend.py
rename to djangoblog/elasticsearch_backend.py
index c4ee3e3..9120589 100644
--- a/DjangoBlog/elasticsearch_backend.py
+++ b/djangoblog/elasticsearch_backend.py
@@ -1,28 +1,11 @@
-#!/usr/bin/env python
-# encoding: utf-8
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: elasticsearch_backend.py
-@time: 2019-04-13 11:46
-"""
-
-import logging
-import re
from django.utils.encoding import force_text
-
from elasticsearch_dsl import Q
-
-from haystack.backends import BaseEngine, BaseSearchBackend, BaseSearchQuery, EmptyResults, log_query
+from haystack.backends import BaseEngine, BaseSearchBackend, BaseSearchQuery, log_query
from haystack.models import SearchResult
from haystack.utils import log as logging
-from blog.models import Article
from blog.documents import ArticleDocument, ArticleDocumentManager
+from blog.models import Article
logger = logging.getLogger(__name__)
diff --git a/DjangoBlog/feeds.py b/djangoblog/feeds.py
similarity index 77%
rename from DjangoBlog/feeds.py
rename to djangoblog/feeds.py
index 1dd5bb4..1c09246 100644
--- a/DjangoBlog/feeds.py
+++ b/djangoblog/feeds.py
@@ -1,25 +1,11 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: feed.py
-@time: 2016/12/22 下午10:16
-"""
+from datetime import datetime
+from django.contrib.auth import get_user_model
from django.contrib.syndication.views import Feed
-from blog.models import Article
-from django.conf import settings
from django.utils.feedgenerator import Rss201rev2Feed
-from DjangoBlog.utils import CommonMarkdown
-from django.contrib.auth import get_user_model
-from datetime import datetime
+
+from djangoblog.utils import CommonMarkdown
+from blog.models import Article
class DjangoBlogFeed(Feed):
diff --git a/DjangoBlog/logentryadmin.py b/djangoblog/logentryadmin.py
similarity index 89%
rename from DjangoBlog/logentryadmin.py
rename to djangoblog/logentryadmin.py
index b8a3931..009ab9d 100644
--- a/DjangoBlog/logentryadmin.py
+++ b/djangoblog/logentryadmin.py
@@ -1,27 +1,11 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: logentryadmin.py
-@time: 2018/5/24 下午10:37
-"""
-from django.contrib.contenttypes.models import ContentType
-from django.urls import reverse, NoReverseMatch
+from django.contrib import admin
from django.contrib.admin.models import LogEntry, ADDITION, CHANGE, DELETION
-from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType
+from django.urls import reverse, NoReverseMatch
from django.utils.encoding import force_text
from django.utils.html import escape
-from django.utils.translation import pgettext_lazy, ugettext_lazy as _
from django.utils.safestring import mark_safe
-from django.contrib import admin
+from django.utils.translation import pgettext_lazy, ugettext_lazy as _
action_names = {
ADDITION: pgettext_lazy('logentry_admin:action_type', 'Addition'),
@@ -83,9 +67,9 @@ class LogEntryAdmin(admin.ModelAdmin):
def has_change_permission(self, request, obj=None):
return (
- request.user.is_superuser or
- request.user.has_perm('admin.change_logentry')
- ) and request.method != 'POST'
+ request.user.is_superuser or
+ request.user.has_perm('admin.change_logentry')
+ ) and request.method != 'POST'
def has_delete_permission(self, request, obj=None):
return False
diff --git a/DjangoBlog/settings.py b/djangoblog/settings.py
similarity index 97%
rename from DjangoBlog/settings.py
rename to djangoblog/settings.py
index 1344243..1ac8448 100644
--- a/DjangoBlog/settings.py
+++ b/djangoblog/settings.py
@@ -1,5 +1,5 @@
"""
-Django settings for DjangoBlog project.
+Django settings for djangoblog project.
Generated by 'django-admin startproject' using Django 1.10.2.
@@ -9,8 +9,8 @@ https://docs.djangoproject.com/en/1.10/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.10/ref/settings/
"""
-import sys
import os
+import sys
def env_to_bool(env, default):
@@ -74,7 +74,7 @@ MIDDLEWARE = [
'blog.middleware.OnlineMiddleware'
]
-ROOT_URLCONF = 'DjangoBlog.urls'
+ROOT_URLCONF = 'djangoblog.urls'
TEMPLATES = [
{
@@ -93,7 +93,7 @@ TEMPLATES = [
},
]
-WSGI_APPLICATION = 'DjangoBlog.wsgi.application'
+WSGI_APPLICATION = 'djangoblog.wsgi.application'
# Database
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
@@ -149,7 +149,7 @@ USE_TZ = True
HAYSTACK_CONNECTIONS = {
'default': {
- 'ENGINE': 'DjangoBlog.whoosh_cn_backend.WhooshEngine',
+ 'ENGINE': 'djangoblog.whoosh_cn_backend.WhooshEngine',
'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'),
},
}
@@ -299,6 +299,6 @@ if os.environ.get('DJANGO_ELASTICSEARCH_HOST'):
}
HAYSTACK_CONNECTIONS = {
'default': {
- 'ENGINE': 'DjangoBlog.elasticsearch_backend.ElasticSearchEngine',
+ 'ENGINE': 'djangoblog.elasticsearch_backend.ElasticSearchEngine',
},
}
diff --git a/DjangoBlog/sitemap.py b/djangoblog/sitemap.py
similarity index 78%
rename from DjangoBlog/sitemap.py
rename to djangoblog/sitemap.py
index e4bcfee..151492e 100644
--- a/DjangoBlog/sitemap.py
+++ b/djangoblog/sitemap.py
@@ -1,24 +1,8 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: sitemap.py
-@time: 2016/12/15 下午10:26
-"""
-
from django.contrib.sitemaps import Sitemap
-from blog.models import Article, Category, Tag
-from accounts.models import BlogUser
-from django.contrib.sitemaps import GenericSitemap
from django.urls import reverse
+from blog.models import Article, Category, Tag
+
class StaticViewSitemap(Sitemap):
priority = 0.5
diff --git a/DjangoBlog/spider_notify.py b/djangoblog/spider_notify.py
similarity index 74%
rename from DjangoBlog/spider_notify.py
rename to djangoblog/spider_notify.py
index f88db4e..f77c09b 100644
--- a/DjangoBlog/spider_notify.py
+++ b/djangoblog/spider_notify.py
@@ -1,22 +1,8 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: spider_notify.py
-@time: 2017/1/15 下午1:41
-"""
+import logging
-from django.contrib.sitemaps import ping_google
import requests
from django.conf import settings
-import logging
+from django.contrib.sitemaps import ping_google
logger = logging.getLogger(__name__)
diff --git a/DjangoBlog/tests.py b/djangoblog/tests.py
similarity index 68%
rename from DjangoBlog/tests.py
rename to djangoblog/tests.py
index 47fda83..01237d9 100644
--- a/DjangoBlog/tests.py
+++ b/djangoblog/tests.py
@@ -1,21 +1,6 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: tests.py
-@time: 2017/10/25 下午10:16
-"""
-
from django.test import TestCase
-from DjangoBlog.utils import *
+from djangoblog.utils import *
class DjangoBlogTest(TestCase):
diff --git a/djangoblog/urls.py b/djangoblog/urls.py
new file mode 100644
index 0000000..c0d96fa
--- /dev/null
+++ b/djangoblog/urls.py
@@ -0,0 +1,55 @@
+"""djangoblog URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+ https://docs.djangoproject.com/en/1.10/topics/http/urls/
+Examples:
+Function views
+ 1. Add an import: from my_app import views
+ 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
+Class-based views
+ 1. Add an import: from other_app.views import Home
+ 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
+Including another URLconf
+ 1. Import the include() function: from django.conf.urls import url, include
+ 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
+"""
+from django.conf import settings
+from django.conf.urls import url
+from django.conf.urls.static import static
+from django.contrib.sitemaps.views import sitemap
+from django.urls import include
+
+from djangoblog.admin_site import admin_site
+from djangoblog.feeds import DjangoBlogFeed
+from djangoblog.sitemap import StaticViewSitemap, ArticleSiteMap, CategorySiteMap, TagSiteMap, UserSiteMap
+
+sitemaps = {
+
+ 'blog': ArticleSiteMap,
+ 'Category': CategorySiteMap,
+ 'Tag': TagSiteMap,
+ 'User': UserSiteMap,
+ 'static': StaticViewSitemap
+}
+
+handler404 = 'blog.views.page_not_found_view'
+handler500 = 'blog.views.server_error_view'
+handle403 = 'blog.views.permission_denied_view'
+urlpatterns = [
+ url(r'^admin/', admin_site.urls),
+ url(r'', include('blog.urls', namespace='blog')),
+ url(r'mdeditor/', include('mdeditor.urls')),
+ url(r'', include('comments.urls', namespace='comment')),
+ url(r'', include('accounts.urls', namespace='account')),
+ url(r'', include('oauth.urls', namespace='oauth')),
+ url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},
+ name='django.contrib.sitemaps.views.sitemap'),
+ url(r'^feed/$', DjangoBlogFeed()),
+ url(r'^rss/$', DjangoBlogFeed()),
+ url(r'^search', include('haystack.urls'), name='search'),
+ url(r'', include('servermanager.urls', namespace='servermanager')),
+ url(r'', include('owntracks.urls', namespace='owntracks'))
+ ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
+if settings.DEBUG:
+ urlpatterns += static(settings.MEDIA_URL,
+ document_root=settings.MEDIA_ROOT)
diff --git a/DjangoBlog/utils.py b/djangoblog/utils.py
similarity index 96%
rename from DjangoBlog/utils.py
rename to djangoblog/utils.py
index 8cdbbfa..30d88d8 100644
--- a/DjangoBlog/utils.py
+++ b/djangoblog/utils.py
@@ -122,7 +122,7 @@ class CommonMarkdown:
def send_email(emailto, title, content):
- from DjangoBlog.blog_signals import send_email_signal
+ from djangoblog.blog_signals import send_email_signal
send_email_signal.send(
send_email.__class__,
emailto=emailto,
@@ -150,7 +150,7 @@ def get_blog_setting():
from blog.models import BlogSettings
if not BlogSettings.objects.count():
setting = BlogSettings()
- setting.sitename = 'DjangoBlog'
+ setting.sitename = 'djangoblog'
setting.site_description = '基于Django的博客系统'
setting.site_seo_description = '基于Django的博客系统'
setting.site_keywords = 'Django,Python'
@@ -207,13 +207,12 @@ def save_user_avatar(url):
return url
-def delete_sidebar_cache(username):
+def delete_sidebar_cache():
from django.core.cache.utils import make_template_fragment_key
from blog.models import LinkShowType
keys = (
make_template_fragment_key(
- 'sidebar', [
- username + x]) for x in LinkShowType.values)
+ 'sidebar', ["sidebar" + x]) for x in LinkShowType.values)
for k in keys:
logger.info('delete sidebar key:' + k)
cache.delete(k)
diff --git a/DjangoBlog/whoosh_cn_backend.py b/djangoblog/whoosh_cn_backend.py
similarity index 99%
rename from DjangoBlog/whoosh_cn_backend.py
rename to djangoblog/whoosh_cn_backend.py
index 4979e08..f246c81 100644
--- a/DjangoBlog/whoosh_cn_backend.py
+++ b/djangoblog/whoosh_cn_backend.py
@@ -1,17 +1,7 @@
# encoding: utf-8
from __future__ import absolute_import, division, print_function, unicode_literals
-from whoosh.writing import AsyncWriter
-from whoosh.searching import ResultsPage
-from whoosh.qparser import QueryParser
-from whoosh.highlight import ContextFragmenter, HtmlFormatter
-from whoosh.highlight import highlight as whoosh_highlight
-from whoosh.filedb.filestore import FileStorage, RamStorage
-from whoosh.fields import BOOLEAN, DATETIME, IDLIST, KEYWORD, NGRAM, NGRAMWORDS, NUMERIC, Schema, TEXT
-from whoosh.fields import ID as WHOOSH_ID
-from whoosh.analysis import StemmingAnalyzer
-from whoosh import index
-from jieba.analyse import ChineseAnalyzer
+
import json
import os
import re
@@ -19,20 +9,30 @@ import shutil
import threading
import warnings
+import six
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
-import six
from django.utils.datetime_safe import datetime
from django.utils.encoding import force_text
-
from haystack.backends import BaseEngine, BaseSearchBackend, BaseSearchQuery, EmptyResults, log_query
from haystack.constants import DJANGO_CT, DJANGO_ID, ID
from haystack.exceptions import MissingDependency, SearchBackendError, SkipDocument
from haystack.inputs import Clean, Exact, PythonData, Raw
from haystack.models import SearchResult
-from haystack.utils import log as logging
from haystack.utils import get_identifier, get_model_ct
+from haystack.utils import log as logging
from haystack.utils.app_loading import haystack_get_model
+from jieba.analyse import ChineseAnalyzer
+from whoosh import index
+from whoosh.analysis import StemmingAnalyzer
+from whoosh.fields import BOOLEAN, DATETIME, IDLIST, KEYWORD, NGRAM, NGRAMWORDS, NUMERIC, Schema, TEXT
+from whoosh.fields import ID as WHOOSH_ID
+from whoosh.filedb.filestore import FileStorage, RamStorage
+from whoosh.highlight import ContextFragmenter, HtmlFormatter
+from whoosh.highlight import highlight as whoosh_highlight
+from whoosh.qparser import QueryParser
+from whoosh.searching import ResultsPage
+from whoosh.writing import AsyncWriter
try:
import whoosh
@@ -853,14 +853,14 @@ class WhooshSearchBackend(BaseSearchBackend):
# Try to handle most built-in types.
if isinstance(
- converted_value,
- (list,
- tuple,
- set,
- dict,
- six.integer_types,
- float,
- complex)):
+ converted_value,
+ (list,
+ tuple,
+ set,
+ dict,
+ six.integer_types,
+ float,
+ complex)):
return converted_value
except BaseException:
# If it fails (SyntaxError or its ilk) or we don't trust it,
@@ -957,7 +957,7 @@ class WhooshSearchQuery(BaseSearchQuery):
'contains',
'startswith',
'endswith',
- 'fuzzy']:
+ 'fuzzy']:
if value.input_type_name == 'exact':
query_frag = prepared_value
else:
diff --git a/DjangoBlog/wsgi.py b/djangoblog/wsgi.py
similarity index 74%
rename from DjangoBlog/wsgi.py
rename to djangoblog/wsgi.py
index 6968759..2295efd 100644
--- a/DjangoBlog/wsgi.py
+++ b/djangoblog/wsgi.py
@@ -1,5 +1,5 @@
"""
-WSGI config for DjangoBlog project.
+WSGI config for djangoblog project.
It exposes the WSGI callable as a module-level variable named ``application``.
@@ -11,6 +11,6 @@ import os
from django.core.wsgi import get_wsgi_application
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DjangoBlog.settings")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoblog.settings")
application = get_wsgi_application()
diff --git a/docker-compose.es.yml b/docker-compose.es.yml
index 9ec00e0..12c316e 100644
--- a/docker-compose.es.yml
+++ b/docker-compose.es.yml
@@ -25,11 +25,11 @@ services:
djangoblog:
build: .
restart: always
- command: bash -c 'sh /code/DjangoBlog/bin/docker_start.sh'
+ command: bash -c 'sh /code/djangoblog/bin/docker_start.sh'
ports:
- "8000:8000"
volumes:
- - ./collectedstatic:/code/DjangoBlog/collectedstatic
+ - ./collectedstatic:/code/djangoblog/collectedstatic
environment:
- DJANGO_MYSQL_DATABASE=djangoblog
- DJANGO_MYSQL_USER=root
diff --git a/docker-compose.yml b/docker-compose.yml
index 42c75d6..307c66b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -27,11 +27,11 @@ services:
djangoblog:
build: .
restart: always
- command: bash -c 'sh /code/DjangoBlog/bin/docker_start.sh'
+ command: bash -c 'sh /code/djangoblog/bin/docker_start.sh'
ports:
- "8000:8000"
volumes:
- - ./collectedstatic:/code/DjangoBlog/collectedstatic
+ - ./collectedstatic:/code/djangoblog/collectedstatic
environment:
- DJANGO_MYSQL_DATABASE=djangoblog
- DJANGO_MYSQL_USER=root
@@ -53,7 +53,7 @@ services:
- "443:443"
volumes:
- ./bin/nginx.conf:/etc/nginx/nginx.conf
- - ./collectedstatic:/code/DjangoBlog/collectedstatic
+ - ./collectedstatic:/code/djangoblog/collectedstatic
links:
- djangoblog:djangoblog
container_name: nginx
diff --git a/docs/docker.md b/docs/docker.md
index 123e64e..92af9fa 100644
--- a/docs/docker.md
+++ b/docs/docker.md
@@ -55,5 +55,5 @@ docker-compose -f docker-compose.yml -f docker-compose.es.yml up -d
第一次启动之后,使用如下命令来创建超级用户:
```shell
-docker exec -it djangoblog python /code/DjangoBlog/manage.py createsuperuser
+docker exec -it djangoblog python /code/djangoblog/manage.py createsuperuser
```
diff --git a/docs/es.md b/docs/es.md
index 68ce49e..97226c5 100644
--- a/docs/es.md
+++ b/docs/es.md
@@ -17,7 +17,7 @@ ELASTICSEARCH_DSL = {
```python
HAYSTACK_CONNECTIONS = {
'default': {
- 'ENGINE': 'DjangoBlog.elasticsearch_backend.ElasticSearchEngine',
+ 'ENGINE': 'djangoblog.elasticsearch_backend.ElasticSearchEngine',
},
}
```
diff --git a/manage.py b/manage.py
index 88a745f..919ba74 100755
--- a/manage.py
+++ b/manage.py
@@ -3,7 +3,7 @@ import os
import sys
if __name__ == "__main__":
- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DjangoBlog.settings")
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoblog.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
diff --git a/oauth/admin.py b/oauth/admin.py
index 4708962..ec0e3c9 100644
--- a/oauth/admin.py
+++ b/oauth/admin.py
@@ -1,9 +1,9 @@
+import logging
+
from django.contrib import admin
# Register your models here.
-from .models import OAuthUser, OAuthConfig
from django.urls import reverse
from django.utils.html import format_html
-import logging
logger = logging.getLogger(__name__)
@@ -25,8 +25,8 @@ class OAuthUserAdmin(admin.ModelAdmin):
def get_readonly_fields(self, request, obj=None):
return list(self.readonly_fields) + \
- [field.name for field in obj._meta.fields] + \
- [field.name for field in obj._meta.many_to_many]
+ [field.name for field in obj._meta.fields] + \
+ [field.name for field in obj._meta.many_to_many]
def has_add_permission(self, request):
return False
diff --git a/oauth/forms.py b/oauth/forms.py
index a64f9c8..0e4ede3 100644
--- a/oauth/forms.py
+++ b/oauth/forms.py
@@ -1,18 +1,3 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: forms.py
-@time: 2017/3/7 下午8:58
-"""
-
from django.contrib.auth.forms import forms
from django.forms import widgets
diff --git a/oauth/models.py b/oauth/models.py
index cbe73ff..08cdd6f 100644
--- a/oauth/models.py
+++ b/oauth/models.py
@@ -1,9 +1,8 @@
-from django.db import models
-
# Create your models here.
from django.conf import settings
-from django.utils.timezone import now
from django.core.exceptions import ValidationError
+from django.db import models
+from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _
@@ -57,7 +56,7 @@ class OAuthConfig(models.Model):
def clean(self):
if OAuthConfig.objects.filter(
type=self.type).exclude(
- id=self.id).count():
+ id=self.id).count():
raise ValidationError(_(self.type + '已经存在'))
def __str__(self):
diff --git a/oauth/oauthmanager.py b/oauth/oauthmanager.py
index 5d897ef..16dc55c 100644
--- a/oauth/oauthmanager.py
+++ b/oauth/oauthmanager.py
@@ -1,26 +1,12 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: oauthmanager.py
-@time: 2016/11/26 下午5:09
-"""
-
-from abc import ABCMeta, abstractmethod, abstractproperty
-from oauth.models import OAuthUser, OAuthConfig
-from django.conf import settings
-import requests
import json
import logging
import urllib.parse
-from DjangoBlog.utils import parse_dict_to_url, cache_decorator
+from abc import ABCMeta, abstractmethod
+
+import requests
+
+from djangoblog.utils import cache_decorator
+from oauth.models import OAuthUser, OAuthConfig
logger = logging.getLogger(__name__)
diff --git a/oauth/templatetags/__init__.py b/oauth/templatetags/__init__.py
index fa0f602..8b13789 100644
--- a/oauth/templatetags/__init__.py
+++ b/oauth/templatetags/__init__.py
@@ -1,14 +1 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: __init__.py
-@time: 2017/3/4 下午3:22
-"""
diff --git a/oauth/templatetags/oauth_tags.py b/oauth/templatetags/oauth_tags.py
index 54067de..7b687d5 100644
--- a/oauth/templatetags/oauth_tags.py
+++ b/oauth/templatetags/oauth_tags.py
@@ -1,21 +1,7 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
+from django import template
+from django.urls import reverse
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: oauth_tags.py
-@time: 2017/3/4 下午3:22
-"""
from oauth.oauthmanager import get_oauth_apps
-from django.urls import reverse
-from django import template
-from django.conf import settings
register = template.Library()
@@ -27,7 +13,7 @@ def load_oauth_applications(request):
baseurl = reverse('oauth:oauthlogin')
path = request.get_full_path()
- apps = list(map(lambda x: (x.ICON_NAME, '{baseurl}?type={type}&next_url={next}' .format(
+ apps = list(map(lambda x: (x.ICON_NAME, '{baseurl}?type={type}&next_url={next}'.format(
baseurl=baseurl, type=x.ICON_NAME, next=path)), applications))
else:
apps = []
diff --git a/oauth/tests.py b/oauth/tests.py
index 74568e7..c8fcfc8 100644
--- a/oauth/tests.py
+++ b/oauth/tests.py
@@ -1,4 +1,5 @@
from django.test import TestCase
+
from .models import OAuthConfig
diff --git a/oauth/urls.py b/oauth/urls.py
index 7820f60..c4a12a0 100644
--- a/oauth/urls.py
+++ b/oauth/urls.py
@@ -1,20 +1,5 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: urls.py
-@time: 2016/11/26 下午5:25
-"""
-
from django.urls import path
-from django.views.decorators.cache import cache_page
+
from . import views
app_name = "oauth"
diff --git a/oauth/views.py b/oauth/views.py
index cde1ff4..fdfb542 100644
--- a/oauth/views.py
+++ b/oauth/views.py
@@ -1,26 +1,26 @@
-from django.shortcuts import render
-
+import datetime
+import logging
# Create your views here.
from urllib.parse import urlparse
-import datetime
+
from django.conf import settings
-from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth import get_user_model
-from .models import OAuthUser
from django.contrib.auth import login
-from django.shortcuts import get_object_or_404
-from django.views.generic import FormView, RedirectView
-from oauth.forms import RequireEmailForm
-from django.urls import reverse
-from django.db import transaction
-from DjangoBlog.utils import send_email, get_sha256, save_user_avatar
-from DjangoBlog.utils import get_current_site
from django.core.exceptions import ObjectDoesNotExist
+from django.db import transaction
from django.http import HttpResponseForbidden
-from .oauthmanager import get_manager_by_type, OAuthAccessTokenException
-from DjangoBlog.blog_signals import oauth_user_login_signal
+from django.http import HttpResponseRedirect
+from django.shortcuts import get_object_or_404
+from django.shortcuts import render
+from django.urls import reverse
+from django.views.generic import FormView
-import logging
+from djangoblog.blog_signals import oauth_user_login_signal
+from djangoblog.utils import get_current_site
+from djangoblog.utils import send_email, get_sha256
+from oauth.forms import RequireEmailForm
+from .models import OAuthUser
+from .oauthmanager import get_manager_by_type, OAuthAccessTokenException
logger = logging.getLogger(__name__)
diff --git a/owntracks/admin.py b/owntracks/admin.py
index 66d16d3..655b535 100644
--- a/owntracks/admin.py
+++ b/owntracks/admin.py
@@ -1,7 +1,6 @@
from django.contrib import admin
# Register your models here.
-from .models import OwnTrackLog
class OwnTrackLogsAdmin(admin.ModelAdmin):
diff --git a/owntracks/tests.py b/owntracks/tests.py
index aa2dfbe..1ad14fc 100644
--- a/owntracks/tests.py
+++ b/owntracks/tests.py
@@ -1,8 +1,9 @@
+import json
+
from django.test import Client, RequestFactory, TestCase
-from .models import OwnTrackLog
+
from accounts.models import BlogUser
-from owntracks.views import convert_to_amap
-import json
+from .models import OwnTrackLog
# Create your tests here.
@@ -52,7 +53,7 @@ class OwnTrackLogTest(TestCase):
s.lon = 123.234
s.lat = 34.234
s.save()
-
+
rsp = self.client.get('/owntracks/show_dates')
self.assertEqual(rsp.status_code, 200)
rsp = self.client.get('/owntracks/show_maps')
diff --git a/owntracks/urls.py b/owntracks/urls.py
index 7225c0a..c19ada8 100644
--- a/owntracks/urls.py
+++ b/owntracks/urls.py
@@ -1,18 +1,5 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: urls.py
-@time: 2018/2/25 下午3:04
-"""
from django.urls import path
+
from . import views
app_name = "owntracks"
diff --git a/owntracks/views.py b/owntracks/views.py
index 76c3053..65bfd3e 100644
--- a/owntracks/views.py
+++ b/owntracks/views.py
@@ -1,18 +1,18 @@
-from django.shortcuts import render
-
# Create your views here.
-import json
import datetime
import itertools
+import json
+import logging
from itertools import groupby
+
+import requests
+from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
-from .models import OwnTrackLog
-import logging
-from django.shortcuts import render
from django.http import JsonResponse
-from django.contrib.auth.decorators import login_required
+from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
-import requests
+
+from .models import OwnTrackLog
logger = logging.getLogger(__name__)
diff --git a/servermanager/MemcacheStorage.py b/servermanager/MemcacheStorage.py
index d068814..38a7990 100644
--- a/servermanager/MemcacheStorage.py
+++ b/servermanager/MemcacheStorage.py
@@ -1,20 +1,7 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: MemcacheStorage.py
-@time: 2017/8/27 上午2:42
-"""
from werobot.session import SessionStorage
from werobot.utils import json_loads, json_dumps
-from DjangoBlog.utils import cache
+
+from djangoblog.utils import cache
class MemcacheStorage(SessionStorage):
diff --git a/servermanager/admin.py b/servermanager/admin.py
index 7897041..361b923 100644
--- a/servermanager/admin.py
+++ b/servermanager/admin.py
@@ -1,6 +1,5 @@
from django.contrib import admin
# Register your models here.
-from .models import commands, EmailSendLog
class CommandsAdmin(admin.ModelAdmin):
diff --git a/servermanager/robot.py b/servermanager/robot.py
index 7eaface..86cbb58 100644
--- a/servermanager/robot.py
+++ b/servermanager/robot.py
@@ -1,33 +1,18 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: robot.py
-@time: 2017/8/27 上午1:55
-"""
+import os
+import re
+import jsonpickle
from werobot import WeRoBot
-import re
-from werobot.replies import ArticlesReply, MusicReply, ImageReply, Article
-from .MemcacheStorage import MemcacheStorage
+from werobot.replies import ArticlesReply, Article
+from django.conf import settings
+from djangoblog.utils import get_sha256
from servermanager.api.blogapi import BlogApi
from servermanager.api.commonapi import TuLing
-import os
-import json
-from DjangoBlog.utils import get_sha256
-from django.conf import settings
-import jsonpickle
from servermanager.models import commands
+from .MemcacheStorage import MemcacheStorage
robot = WeRoBot(token=os.environ.get('DJANGO_WEROBOT_TOKEN')
- or 'lylinux', enable_session=True)
+ or 'lylinux', enable_session=True)
memstorage = MemcacheStorage()
if memstorage.is_available:
robot.config['SESSION_STORAGE'] = memstorage
@@ -45,9 +30,7 @@ tuling = TuLing()
def convert_to_articlereply(articles, message):
reply = ArticlesReply(message=message)
- from blog.templatetags.blog_tags import custom_markdown, truncatechars_content
- from DjangoBlog.utils import CommonMarkdown
- from django.utils.safestring import mark_safe
+ from blog.templatetags.blog_tags import truncatechars_content
for post in articles:
imgs = re.findall(r'(?:http\:|https\:)?\/\/.*\.(?:png|jpg)', post.body)
imgurl = ''
diff --git a/servermanager/tests.py b/servermanager/tests.py
index 55b4fc8..85a1c14 100644
--- a/servermanager/tests.py
+++ b/servermanager/tests.py
@@ -1,13 +1,14 @@
from django.test import Client, RequestFactory, TestCase
-from DjangoBlog.utils import get_current_site
-from .models import commands
from django.utils import timezone
+from werobot.messages.messages import TextMessage
+
+from djangoblog.utils import get_current_site
from accounts.models import BlogUser
from blog.models import Category, Article
-from .robot import search, category, recents
-from werobot.messages.messages import TextMessage
-from .robot import MessageHandler, CommandHandler
from servermanager.api.commonapi import TuLing
+from .models import commands
+from .robot import MessageHandler, CommandHandler
+from .robot import search, category, recents
# Create your tests here.
diff --git a/servermanager/urls.py b/servermanager/urls.py
index 8600186..8d134d2 100644
--- a/servermanager/urls.py
+++ b/servermanager/urls.py
@@ -1,20 +1,6 @@
-#!/usr/bin/env python
-# encoding: utf-8
-
-
-"""
-@version: ??
-@author: liangliangyy
-@license: MIT Licence
-@contact: liangliangyy@gmail.com
-@site: https://www.lylinux.net/
-@software: PyCharm
-@file: urls.py
-@time: 2017/8/27 上午2:27
-"""
-
from django.urls import path
from werobot.contrib.django import make_view
+
from .robot import robot
app_name = "servermanager"
diff --git a/servermanager/views.py b/servermanager/views.py
index 91ea44a..60f00ef 100644
--- a/servermanager/views.py
+++ b/servermanager/views.py
@@ -1,3 +1 @@
-from django.shortcuts import render
-
# Create your views here.
diff --git a/templates/blog/article_detail.html b/templates/blog/article_detail.html
index d0bc985..9ec51d3 100755
--- a/templates/blog/article_detail.html
+++ b/templates/blog/article_detail.html
@@ -72,9 +72,30 @@
{% endblock %}
{% block sidebar %}
- {% with request.user.username|add:'p' as cachekey %}
+ {% with "sidear"|addstr:"p" as cachekey %}
{% cache 36000 sidebar cachekey %}
- {% load_sidebar user 'p' %}
+ {% load_sidebar user "p" %}
{% endcache %}
{% endwith %}
-{% endblock %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/templates/blog/article_index.html b/templates/blog/article_index.html
index f6f96bb..8542733 100644
--- a/templates/blog/article_index.html
+++ b/templates/blog/article_index.html
@@ -38,9 +38,30 @@
{% endblock %}
{% block sidebar %}
- {% with request.user.username|add:linktype as cachekey %}
+ {% with "sidear"|addstr:linktype as cachekey %}
{% cache 36000 sidebar cachekey %}
{% load_sidebar user linktype %}
{% endcache %}
{% endwith %}
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/blog/tags/sidebar.html b/templates/blog/tags/sidebar.html
index c2de415..05f2da4 100755
--- a/templates/blog/tags/sidebar.html
+++ b/templates/blog/tags/sidebar.html
@@ -114,22 +114,6 @@
alt="GitHub forks">
-