支持自定义后台路径

master
Abbey 5 years ago
parent 0525b13429
commit ad2465f259
  1. 6
      app/__init__.py
  2. 35
      app/admin/setting.py
  3. 6
      app/templates/admin/layout.html
  4. 102
      app/templates/admin/setting/setting.html
  5. 123
      app/templates/admin/setting/sys_setting.html
  6. 2
      config.py
  7. 3
      self_config.py.sample
  8. 8
      update.sh

@ -2,7 +2,9 @@
from flask import Flask
from werkzeug.contrib.fixers import ProxyFix
from config import config
from extend import *
from .extend import *
from utils.header import GetConfig
def create_app():
@ -17,7 +19,7 @@ def create_app():
app.register_blueprint(front_blueprint)
from .admin import admin as admin_blueprint
app.register_blueprint(admin_blueprint,url_prefix='/admin')
app.register_blueprint(admin_blueprint,url_prefix='/{}'.format(GetConfig('admin_prefix')))
return app

@ -12,6 +12,26 @@ def setting():
title=request.form.get('title','PyOne')
theme=request.form.get('theme','material')
title_pre=request.form.get('title_pre','index of ')
set('title',title)
set('title_pre',title_pre)
set('theme',theme)
# reload()
redis_client.set('title',title)
redis_client.set('title_pre',title_pre)
redis_client.set('theme',theme)
flash('更新成功')
resp=MakeResponse(redirect(url_for('admin.setting')))
return resp
resp=MakeResponse(render_template('admin/setting/setting.html'))
return resp
@admin.route('/sys_setting',methods=['GET','POST'])
def sys_setting():
if request.method=='POST':
downloadUrl_timeout=request.form.get('downloadUrl_timeout',5*60)
allow_site=request.form.get('allow_site','no-referrer')
#Aria2
@ -34,11 +54,10 @@ def setting():
order_m=request.form.get('order_m','desc')
default_sort=request.form.get('default_sort','lastModtime')
admin_prefix=request.form.get('admin_prefix','admin')
show_secret=request.form.get('show_secret','no')
encrypt_file=request.form.get('encrypt_file','no')
set('title',title)
set('title_pre',title_pre)
set('theme',theme)
set('downloadUrl_timeout',downloadUrl_timeout)
set('allow_site',allow_site)
#Aria2
@ -59,13 +78,12 @@ def setting():
set('REDIS_PASSWORD',REDIS_PASSWORD)
set('default_sort',default_sort)
set('admin_prefix',admin_prefix)
set('order_m',order_m)
set('show_secret',show_secret)
set('encrypt_file',encrypt_file)
# reload()
redis_client.set('title',title)
redis_client.set('title_pre',title_pre)
redis_client.set('theme',theme)
redis_client.set('downloadUrl_timeout',downloadUrl_timeout)
redis_client.set('allow_site',','.join(allow_site.split(',')))
#Aria2
@ -88,13 +106,14 @@ def setting():
redis_client.set('REDIS_PASSWORD',REDIS_PASSWORD)
redis_client.set('default_sort',default_sort)
redis_client.set('admin_prefix',admin_prefix)
redis_client.set('order_m',order_m)
redis_client.set('show_secret',show_secret)
redis_client.set('encrypt_file',encrypt_file)
flash('更新成功')
resp=MakeResponse(redirect(url_for('admin.setting')))
resp=MakeResponse(redirect(url_for('admin.sys_setting')))
return resp
resp=MakeResponse(render_template('admin/setting/setting.html'))
resp=MakeResponse(render_template('admin/setting/sys_setting.html'))
return resp

@ -139,7 +139,11 @@
<br><br>
<a href="{{url_for('admin.setting')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe8b8;</i>
<div class="mdui-list-item-content">基本设置</div>
<div class="mdui-list-item-content">网站设置</div>
</a>
<a href="{{url_for('admin.sys_setting')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe62a;</i>
<div class="mdui-list-item-content">系统设置</div>
</a>
<a href="{{url_for('admin.setCode')}}" class="mdui-list-item">
<i class="mdui-list-item-icon mdui-icon material-icons">&#xe8b8;</i>

@ -4,7 +4,7 @@
<div class="mdui-container-fluid">
<div class="mdui-typo">
<h1> 基本设置 <small>设置PyOne基本参数</small></h1>
<h1> 网站设置 <small></small></h1>
</div>
<form action="{{url_for('admin.setting')}}" method="POST" enctype="multipart/form-data">
@ -31,107 +31,7 @@
<input class="mdui-textfield-input" type="text" name="title_pre" value="{{GetConfig('title_pre')}}"/>
</div>
<div class="mdui-textfield">
<h4>缓存过期时间()</h4>
<input class="mdui-textfield-input" type="text" name="downloadUrl_timeout" value="{{GetConfig('downloadUrl_timeout')}}"/>
</div>
<div class="mdui-textfield">
<h4>防盗链设置不限制则设置no-referrer仅限3pp.me调用则设置3pp.me可调用域名通过英文逗号分隔</h4>
<input class="mdui-textfield-input" type="text" name="allow_site" value="{{GetConfig('allow_site')}}"/>
</div>
<h4>默认排序字段</h4>
<select class="mdui-select" name="default_sort" mdui-select>
<option value="lastModtime"{%if GetConfig('default_sort')=='lastModtime'%} selected{%endif%}>修改时间</option>
<option value="name"{%if GetConfig('default_sort')=='name'%} selected{%endif%}>文件名</option>
<option value="type"{%if GetConfig('default_sort')=='type'%} selected{%endif%}>文件类型</option>
<option value="size"{%if GetConfig('default_sort')=='size'%} selected{%endif%}>文件大小</option>
</select>
<h4>默认排序方法</h4>
<select class="mdui-select" name="order_m" mdui-select>
<option value="desc"{%if GetConfig('order_m')=='desc'%} selected{%endif%}>降序</option>
<option value="asc"{%if GetConfig('order_m')=='asc'%} selected{%endif%}>升序</option>
</select>
<div class="mdui-textfield">
<h4>Aria2信息编辑</h4>
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">点击配置</div>
<div class="mdui-panel-item-body">
<h5>Aria2协议</h5>
<select class="mdui-select" name="ARIA2_SCHEME" mdui-select>
<option value="http"{%if GetConfig('ARIA2_SCHEME')=='http'%} selected{%endif%}>http</option>
<option value="https"{%if GetConfig('ARIA2_SCHEME')=='https'%} selected{%endif%}>https</option>
</select>
<h5>主机默认localhost如果不是本机的aria2怎么下载到本机然后上传</h5>
<input class="mdui-textfield-input" type="text" readonly="readonly" name="ARIA2_HOST" placeholder="请输入aria2主机" value="{{GetConfig('ARIA2_HOST')}}" />
<h5>端口</h5>
<input class="mdui-textfield-input" type="text" name="ARIA2_PORT" placeholder="请输入aria2端口" value="{{GetConfig('ARIA2_PORT')}}" />
<h5>秘钥</h5>
<input class="mdui-textfield-input" type="text" name="ARIA2_SECRET" placeholder="请输入aria2秘钥" value="{{GetConfig('ARIA2_SECRET')}}" />
</div>
</div>
</div>
</div>
<div class="mdui-textfield">
<h4>MongoDB信息编辑</h4>
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">点击配置</div>
<div class="mdui-panel-item-body">
<h5>主机默认localhost</h5>
<input class="mdui-textfield-input" type="text" readonly="readonly" name="MONGO_HOST" placeholder="请输入MongoDB主机" value="{{GetConfig('MONGO_HOST')}}" />
<h5>端口</h5>
<input class="mdui-textfield-input" type="text" name="MONGO_PORT" placeholder="请输入MongoDB端口" value="{{GetConfig('MONGO_PORT')}}" />
<h5>数据库原则上不要修改</h5>
<input class="mdui-textfield-input" type="text" name="MONGO_DB" placeholder="请输入数据库名" value="{{GetConfig('MONGO_DB')}}" />
<h5>用户名如果有</h5>
<input class="mdui-textfield-input" type="text" name="MONGO_USER" placeholder="请输入用户名" value="{{GetConfig('MONGO_USER')}}" />
<h5>密码如果有</h5>
<input class="mdui-textfield-input" type="text" name="MONGO_PASSWORD" placeholder="请输入密码" value="{{GetConfig('MONGO_PASSWORD')}}" />
</div>
</div>
</div>
</div>
<div class="mdui-textfield">
<h4>Redis信息编辑</h4>
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">点击配置</div>
<div class="mdui-panel-item-body">
<h5>主机默认localhost</h5>
<input class="mdui-textfield-input" type="text" readonly="readonly" name="REDIS_HOST" placeholder="请输入Redis主机" value="{{GetConfig('REDIS_HOST')}}" />
<h5>端口</h5>
<input class="mdui-textfield-input" type="text" name="REDIS_PORT" placeholder="请输入Redis端口" value="{{GetConfig('REDIS_PORT')}}" />
<h5>数据库原则上不要修改</h5>
<input class="mdui-textfield-input" type="text" name="REDIS_DB" placeholder="请输入数据库名" value="{{GetConfig('REDIS_DB')}}" />
<h5>密码如果有</h5>
<input class="mdui-textfield-input" type="text" name="REDIS_PASSWORD" placeholder="请输入密码" value="{{GetConfig('REDIS_PASSWORD')}}" />
</div>
</div>
</div>
</div>
<div class="mdui-textfield">
<h4>搜索结果是否展示加密文件开启之后前台搜索结果会展示出加密文件夹及加密文件夹下的文件</h4>
<label class="mdui-switch">
<input type="checkbox" name="show_secret" {%if GetConfig('show_secret')=='on'%}checked{%endif%}/>
<i class="mdui-switch-icon"></i>
</label>
</div>
<div class="mdui-textfield">
<h4>加密文件夹下的文件是否加密本选项是配合前一个选项新增的选项看个人需求开启</h4>
<label class="mdui-switch">
<input type="checkbox" name="encrypt_file" {%if GetConfig('encrypt_file')=='on'%}checked{%endif%}/>
<i class="mdui-switch-icon"></i>
</label>
</div>
<button type="submit" class="mdui-btn mdui-color-theme-accent mdui-ripple mdui-float-right">
<i class="mdui-icon material-icons">&#xe161;</i> 保存
</button>

@ -0,0 +1,123 @@
{%extends 'admin/layout.html'%}
{%block content%}
<div class="mdui-container-fluid">
<div class="mdui-typo">
<h1> 系统设置 <small>*号表示需重启网站才能生效</small></h1>
</div>
<form action="{{url_for('admin.sys_setting')}}" method="POST">
<div class="mdui-textfield">
<h4>*后台路径默认是admin如果改为uadmin则进后台路径为/uadmin</h4>
<input class="mdui-textfield-input" type="text" name="admin_prefix" value="{{GetConfig('admin_prefix')}}"/>
</div>
<div class="mdui-textfield">
<h4>缓存过期时间()非自动刷新文件列表不懂勿改</h4>
<input class="mdui-textfield-input" type="text" name="downloadUrl_timeout" value="{{GetConfig('downloadUrl_timeout')}}"/>
</div>
<div class="mdui-textfield">
<h4>防盗链设置不限制则设置no-referrer仅限3pp.me调用则设置3pp.me可调用域名通过英文逗号分隔</h4>
<input class="mdui-textfield-input" type="text" name="allow_site" value="{{GetConfig('allow_site')}}"/>
</div>
<h4>默认排序字段</h4>
<select class="mdui-select" name="default_sort" mdui-select>
<option value="lastModtime"{%if GetConfig('default_sort')=='lastModtime'%} selected{%endif%}>修改时间</option>
<option value="name"{%if GetConfig('default_sort')=='name'%} selected{%endif%}>文件名</option>
<option value="type"{%if GetConfig('default_sort')=='type'%} selected{%endif%}>文件类型</option>
<option value="size"{%if GetConfig('default_sort')=='size'%} selected{%endif%}>文件大小</option>
</select>
<h4>默认排序方法</h4>
<select class="mdui-select" name="order_m" mdui-select>
<option value="desc"{%if GetConfig('order_m')=='desc'%} selected{%endif%}>降序</option>
<option value="asc"{%if GetConfig('order_m')=='asc'%} selected{%endif%}>升序</option>
</select>
<div class="mdui-textfield">
<h4>*Aria2信息编辑</h4>
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">点击配置</div>
<div class="mdui-panel-item-body">
<h5>Aria2协议</h5>
<select class="mdui-select" name="ARIA2_SCHEME" mdui-select>
<option value="http"{%if GetConfig('ARIA2_SCHEME')=='http'%} selected{%endif%}>http</option>
<option value="https"{%if GetConfig('ARIA2_SCHEME')=='https'%} selected{%endif%}>https</option>
</select>
<h5>主机默认localhost如果不是本机的aria2怎么下载到本机然后上传</h5>
<input class="mdui-textfield-input" type="text" readonly="readonly" name="ARIA2_HOST" placeholder="请输入aria2主机" value="{{GetConfig('ARIA2_HOST')}}" />
<h5>端口</h5>
<input class="mdui-textfield-input" type="text" name="ARIA2_PORT" placeholder="请输入aria2端口" value="{{GetConfig('ARIA2_PORT')}}" />
<h5>秘钥</h5>
<input class="mdui-textfield-input" type="text" name="ARIA2_SECRET" placeholder="请输入aria2秘钥" value="{{GetConfig('ARIA2_SECRET')}}" />
</div>
</div>
</div>
</div>
<div class="mdui-textfield">
<h4>*MongoDB信息编辑</h4>
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">点击配置</div>
<div class="mdui-panel-item-body">
<h5>主机默认localhost</h5>
<input class="mdui-textfield-input" type="text" readonly="readonly" name="MONGO_HOST" placeholder="请输入MongoDB主机" value="{{GetConfig('MONGO_HOST')}}" />
<h5>端口</h5>
<input class="mdui-textfield-input" type="text" name="MONGO_PORT" placeholder="请输入MongoDB端口" value="{{GetConfig('MONGO_PORT')}}" />
<h5>数据库原则上不要修改</h5>
<input class="mdui-textfield-input" type="text" name="MONGO_DB" placeholder="请输入数据库名" value="{{GetConfig('MONGO_DB')}}" />
<h5>用户名如果有</h5>
<input class="mdui-textfield-input" type="text" name="MONGO_USER" placeholder="请输入用户名" value="{{GetConfig('MONGO_USER')}}" />
<h5>密码如果有</h5>
<input class="mdui-textfield-input" type="text" name="MONGO_PASSWORD" placeholder="请输入密码" value="{{GetConfig('MONGO_PASSWORD')}}" />
</div>
</div>
</div>
</div>
<div class="mdui-textfield">
<h4>*Redis信息编辑</h4>
<div class="mdui-panel" mdui-panel>
<div class="mdui-panel-item">
<div class="mdui-panel-item-header">点击配置</div>
<div class="mdui-panel-item-body">
<h5>主机默认localhost</h5>
<input class="mdui-textfield-input" type="text" readonly="readonly" name="REDIS_HOST" placeholder="请输入Redis主机" value="{{GetConfig('REDIS_HOST')}}" />
<h5>端口</h5>
<input class="mdui-textfield-input" type="text" name="REDIS_PORT" placeholder="请输入Redis端口" value="{{GetConfig('REDIS_PORT')}}" />
<h5>数据库原则上不要修改</h5>
<input class="mdui-textfield-input" type="text" name="REDIS_DB" placeholder="请输入数据库名" value="{{GetConfig('REDIS_DB')}}" />
<h5>密码如果有</h5>
<input class="mdui-textfield-input" type="text" name="REDIS_PASSWORD" placeholder="请输入密码" value="{{GetConfig('REDIS_PASSWORD')}}" />
</div>
</div>
</div>
</div>
<div class="mdui-textfield">
<h4>搜索结果是否展示加密文件开启之后前台搜索结果会展示出加密文件夹及加密文件夹下的文件</h4>
<label class="mdui-switch">
<input type="checkbox" name="show_secret" {%if GetConfig('show_secret')=='on'%}checked{%endif%}/>
<i class="mdui-switch-icon"></i>
</label>
</div>
<div class="mdui-textfield">
<h4>加密文件夹下的文件是否加密本选项是配合前一个选项新增的选项看个人需求开启</h4>
<label class="mdui-switch">
<input type="checkbox" name="encrypt_file" {%if GetConfig('encrypt_file')=='on'%}checked{%endif%}/>
<i class="mdui-switch-icon"></i>
</label>
</div>
<button type="submit" class="mdui-btn mdui-color-theme-accent mdui-ripple mdui-float-right">
<i class="mdui-icon material-icons">&#xe161;</i> 保存
</button>
</form>
</div>
{%endblock content%}

@ -14,7 +14,7 @@ class config:
if REDIS_PASSWORD!='':
CACHE_REDIS_PASSWORD=REDIS_PASSWORD
SEND_FILE_MAX_AGE_DEFAULT=timedelta(seconds=1)
version='4.190521'
version='4.190522'
@staticmethod
def init_app(app):

@ -70,6 +70,9 @@ encrypt_file="no"
#默认盘位
default_pan="A"
#后台路径
admin_prefix="admin"
od_users={
"A":{
"client_id":"",

@ -91,6 +91,13 @@ Disallow: /
"""' >> self_config.py
fi
num=`cat self_config.py | grep "admin_prefix" | wc -l`
if [ $num == 0 ]; then
echo '' >> self_config.py
echo 'admin_prefix="admin"' >> self_config.py
fi
}
@ -168,6 +175,7 @@ echo "2019.05.09更新版本:1、修复【网盘搬家】部分bug;2、修
echo "2019.05.10更新版本:1、新增robots.txt自定义;2、离线下载功能独立出来"
echo "2019.05.11更新版本:1、修复离线下载bug;2、优化离线下载界面体验"
echo "2019.05.21更新版本:修复若干bug"
echo "2019.05.22更新版本:支持自定义后台路径(更安全)"
echo "---------------------------------------------------------------"
echo "更新完成!"
echo "如果网站无法访问,请检查config.py!"

Loading…
Cancel
Save