添加后台管理新版本静默检测功能

This commit is contained in:
yangjian 2020-10-28 21:25:34 +08:00
parent af890001b4
commit 8ccfe0a4e0
4 changed files with 48 additions and 3 deletions

View File

@ -19,5 +19,6 @@ urlpatterns = [
path('forget_pwd/',views.forget_pwd,name='forget_pwd'), # 忘记密码
path('send_email_vcode/',views.send_email_vcode,name='send_email_vcode'), # 忘记密码发送邮件验证码
path('admin_register_code/',views.admin_register_code,name='register_code_manage'), # 注册邀请码管理
path('check_update/',views.check_update,name='check_update'), # 检测版本更新
]

View File

@ -8,7 +8,8 @@ from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage,InvalidPa
from app_admin.decorators import superuser_only,open_register
from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Q
import json,datetime,hashlib,random
import datetime
import requests
from app_doc.models import *
from app_admin.models import *
from app_admin.utils import *
@ -760,4 +761,11 @@ def admin_setting(request):
name='attachment_size',
defaults={'value': attachment_size, 'types': 'doc'}
)
return render(request, 'app_admin/admin_setting.html', locals())
return render(request, 'app_admin/admin_setting.html', locals())
# 检测版本更新
def check_update(request):
url = 'https://gitee.com/api/v5/repos/zmister/MrDoc/tags'
resp = requests.get(url,timeout=5).json()
return JsonResponse({'status':True,'data':resp[-1]})

View File

@ -4,4 +4,5 @@ lxml
pillow==6.2.2
pyppeteer==0.0.25
loguru==0.4.1
djangorestframework==3.9.1
djangorestframework==3.9.1
requests

View File

@ -75,6 +75,7 @@
{% if debug %}
<blockquote class="layui-elem-quote">当前站点处于Debug调试模式</blockquote>
{% endif %}
<blockquote id="check_update_div" class="layui-elem-quote" style="border-left: 5px solid #ff213b !important;display: none;">检测到新版本发布,请及时更新!下载地址:<a href="https://github.com/zmister2016/MrDoc" target="_blank">GitHub</a><a href="https://gitee.com/zmister/MrDoc" target="_blank">码云</a></blockquote>
{% block content %}{% endblock %}
</div>
</div>
@ -109,6 +110,40 @@
content: $('#dashang_img')
});
})
</script>
<script async>
// 检测版本更新
checkUpdate = function(){
$.get("{% url 'check_update' %}",function(r){
console.log(r)
if(r.status){
var new_version = r.data.name.slice(1,5)
var current_version = '{{mrdoc_version}}'
// 如果存在新版本顶部提示div
if(new_version > current_version){
$("#check_update_div").show()
}
}
})
}
var check_update = window.localStorage.getItem('check_update')
// console.log(check_update)
// 如果没有检测过,立即检测
if(check_update == null){
checkUpdate();
window.localStorage.setItem('check_update',new Date().getTime())
}else{
// 如果上次检测时间距今超过5天再次检测
var time_diff = (new Date().getTime() - check_update)/86400000
// console.log(time_diff)
if(time_diff > 5){
checkUpdate()
window.localStorage.setItem('check_update',new Date().getTime())
}
}
</script>
{% block custom_script %}
{% endblock %}