This commit is contained in:
fomys 2019-06-10 22:15:19 +02:00
parent 9da22def72
commit 354f365c48
16 changed files with 130 additions and 123 deletions

1
.gitignore vendored
View File

@ -69,3 +69,4 @@ migrations/*
.env
.idea/*
*.zip

View File

@ -12,6 +12,7 @@ from PDMI.blueprints.admin import admin
from PDMI.blueprints.api import api, api_0_0_1
from PDMI.blueprints.front import front
from PDMI.blueprints.documentation import documentation
from PDMI.blueprints.external import external
from PDMI.models import db, Users, Roles
from PDMI.views import main_bp
@ -73,6 +74,7 @@ api_0_0_1.init_app(server)
server.register_blueprint(front)
server.register_blueprint(documentation)
server.register_blueprint(external)
# Register main blueprint
server.register_blueprint(main_bp)

View File

@ -106,7 +106,8 @@ admin = Admin( # server,
},
endpoint='administration',
disconnect_route="security.logout",
connect_route="security.login"
connect_route="security.login",
favicon="favicon.ico"
)
admin.add_view(SuperUserView(

View File

@ -1,6 +1,6 @@
from flask import Blueprint, render_template, abort
documentation = Blueprint('documentation', __name__, template_folder="templates")
documentation = Blueprint('documentation', __name__, template_folder="templates", url_prefix="/documentation")
@documentation.route("/")

13
PDMI/blueprints/external/__init__.py vendored Normal file
View File

@ -0,0 +1,13 @@
from flask import Blueprint, render_template, abort
external = Blueprint('external', __name__, template_folder="templates")
@external.route("/external/download")
def download():
return redirect("https://moriya.zapto.org/PDBA/bot-base", code=302)
@external.route("/external/download_server")
def download_server():
return redirect("https://moriya.zapto.org/PDBA/PDMI", code=302)

View File

@ -1,8 +1,13 @@
from flask import Blueprint, render_template, abort
from flask import Blueprint, render_template, abort, send_from_directory
front = Blueprint('front', __name__, template_folder="templates")
@front.route('/favicon.ico')
def favicon():
return send_from_directory('static', 'favicon.ico', mimetype='image/vnd.microsoft.icon')
@front.route("/")
def index():
return render_template("front/index.html")
return render_template("front/index.html")

View File

View File

View File

@ -13,6 +13,7 @@
<link href="{{ url_for('static', filename='documentation/vendor/bootstrap-4.3.1/css/bootstrap.css') }}" rel="stylesheet">
</head>
<body>
{% include "front/base/navbar.html" %}
{% block body %}
{% endblock %}
</body>

View File

@ -13,6 +13,7 @@
<link href="{{ url_for('static', filename='front/vendor/bootstrap-4.3.1/css/bootstrap.css') }}" rel="stylesheet">
</head>
<body>
{% include "front/base/navbar.html" %}
{% block body %}
{% endblock %}
</body>

View File

@ -0,0 +1,31 @@
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<a class="navbar-brand" href="#">P.D.M.I</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="{{ url_for('front.index') }}">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url_for('documentation.index') }}">Documentation</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Download</a>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item" href="{{ url_for('external.download') }}">Download bot</a>
<a class="dropdown-item" href="{{ url_for('external.download_server') }}">Download server</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ url_for('admin.index') }}">Gestion des modules</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>

View File

@ -2,103 +2,68 @@
{% block body %}
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
<main role="main">
<!-- Main jumbotron for a primary marketing message or call to action -->
<div class="jumbotron">
<!-- Main jumbotron for a primary marketing message or call to action -->
<div class="jumbotron">
<div class="container">
<h1 class="display-3">PDMI - Python Discord Module Index</h1>
<p>
PDMI is a part of PDBA project. PDBA is a basic discord bot which integrate possibility to install
modules.
PDMI is the website where most of modules are uploaded. If you want to create your own module you can
check
<a href="{{ url_for('documentation.create_module') }}">documentation</a>. You can also create your own
<a href="{{ url_for('documentation.create_repository') }}">repository</a>.
</p>
<p><a class="btn btn-primary btn-lg" href="{{ url_for('documentation.index') }}" role="button">Learn more
&raquo;</a></p>
</div>
</div>
{#
<div class="container">
<h1 class="display-3">PDMI - Python Discord Module index</h1>
<p>
PDMI is a part of PDBA project. PDBA is a basic discord bot which integrate possibility to install modules.
PDMI is the website where most of modules are uploaded. If you want to create your own module you can check
<a href="{{ url_for('documentation.create_module') }}">documentation</a>. You can also create your own
<a href="{{ url_for('documentation.create_repository') }}">repository</a>.
</p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more &raquo;</a></p>
</div>
</div>
<!-- Example row of columns -->
<div class="row">
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor
mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna
mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor
mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna
mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula
porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh,
ut fermentum massa justo sit amet risus.</p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
</div>
<div class="container">
<!-- Example row of columns -->
<div class="row">
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-md-4">
<h2>Heading</h2>
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div>
</div>
<hr>
<hr>
</div> <!-- /container -->
</div> <!-- /container -->#}
</main>
<footer class="container">
<p>&copy; Company 2017-2019</p>
<p>&copy; Louis Chauvet 2019</p>
</footer>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="/docs/4.3/assets/js/vendor/jquery-slim.min.js"><\/script>')</script><script src="/docs/4.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o" crossorigin="anonymous"></script></body>
<h1>PDMI - Python Discord Module Index</h1>
<p>PDMI is a module's repository for Python Discord Bot (insert here bot name)</p>
<div>
<input>
</div>
<div>
<h2>Téléchargements du serveur</h2>
<ul>
<li>Code source: <a href="https://moriya.zapto.org/PDBA/PDMI">PDMI</a></li>
</ul>
<h2>Téléchargements du gestionaire</h2>
<ul>
<li>Code source: <a href="https://moriya.zapto.org/PDBA/PDBd">PDBd</a></li>
</ul>
</div>
<a href="{{ url_for('admin.index') }}">Connection à la gestion des modules</a><br/>
{% endblock %}
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="/docs/4.3/assets/js/vendor/jquery-slim.min.js"><\/script>')
</script>
<script src="/docs/4.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o"
crossorigin="anonymous"></script>
{% endblock %}

View File

@ -2,11 +2,9 @@ import os
from flask import render_template, Blueprint, send_from_directory
main_bp = Blueprint('', __name__)
@main_bp.route('/favicon.ico')
def favicon():
return send_from_directory('static','favicon.ico', mimetype='image/vnd.microsoft.icon')
return send_from_directory('static', 'favicon.ico', mimetype='image/vnd.microsoft.icon')

View File

@ -19,6 +19,8 @@ flask-sqlalchemy = "*"
flask-restful = "*"
gunicorn = "*"
aiohttp = "*"
pymysql = "*"
mysqlclient = "*"
[dev-packages]

20
Pipfile.lock generated
View File

@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "ea0d8bb7db8b76ca580aaa467b0d8986afa79a1c1fb3424f8a810489a603c602"
"sha256": "716ae46683112c8d3575155ca5485cf73cf9cd02c589f5fa5213b51acb3397e2"
},
"host-environment-markers": {
"implementation_name": "cpython",
@ -11,7 +11,7 @@
"platform_python_implementation": "CPython",
"platform_release": "4.19.27-gentoo-r1",
"platform_system": "Linux",
"platform_version": "#1 SMP Wed May 1 11:50:20 CEST 2019",
"platform_version": "#1 SMP Sat Jun 1 19:49:57 CEST 2019",
"python_full_version": "3.7.3",
"python_version": "3.7",
"sys_platform": "linux"
@ -51,7 +51,7 @@
},
"babel": {
"hashes": [],
"version": "==2.6.0"
"version": "==2.7.0"
},
"blinker": {
"hashes": [],
@ -86,7 +86,7 @@
},
"flask-migrate": {
"hashes": [],
"version": "==2.5.1"
"version": "==2.5.2"
},
"flask-principal": {
"hashes": [],
@ -139,7 +139,7 @@
},
"mako": {
"hashes": [],
"version": "==1.0.10"
"version": "==1.0.11"
},
"markupsafe": {
"hashes": [],
@ -149,10 +149,18 @@
"hashes": [],
"version": "==4.5.2"
},
"mysqlclient": {
"hashes": [],
"version": "==1.4.2.post1"
},
"passlib": {
"hashes": [],
"version": "==1.7.1"
},
"pymysql": {
"hashes": [],
"version": "==0.9.3"
},
"python-dateutil": {
"hashes": [],
"version": "==2.8.0"
@ -175,7 +183,7 @@
},
"sqlalchemy": {
"hashes": [],
"version": "==1.3.3"
"version": "==1.3.4"
},
"typing-extensions": {
"hashes": [],

21
conf.sh
View File

@ -255,7 +255,6 @@ bdd_config () {
2>&1 1>&3)
local exit_status=$?
exec 3>&-
close ${exit_status}
source .env
case ${selection} in
1)
@ -278,29 +277,11 @@ add_super_admin () {
2>&1 1>&3)
local exit_status=$?
exec 3>&-
close ${exit_status}
source .env
pipenv run python manage.py set_superadmin -m "${utilisateur}"
exit
}
#configuration () {
# exec 3>&1
# local selection=$($DIALOG \
# --backtitle "Configuration" \
# --menu "Quelle variable modifier?" \
# 0 0 0 \
# "1" "DATABASE_URI" \
# 2>&1 1>&3)
# exit_status=$?
# exec 3>&-
# close $exit_status
# case $selection in
# 1)
# set_env_var "DATABASE_URI";;
# esac
#}
utilitaires () {
exec 3>&1
selection=$(${DIALOG} \
@ -312,7 +293,6 @@ utilitaires () {
2>&1 1>&3)
exit_status=$?
exec 3>&-
close ${exit_status}
case ${selection} in
1)
add_super_admin;;
@ -424,7 +404,6 @@ while true; do
eend 0 "End."
;;
esac
close ${exit_status}
case ${selection} in
1)
initialisation;;