mirror of
https://github.com/Llloooggg/Jarvis.git
synced 2026-03-06 03:56:23 +03:00
Добавлено заполнение списков триггеров и экшенов, переструктурирована бд
This commit is contained in:
29
__init__.py
29
__init__.py
@@ -1,6 +1,6 @@
|
|||||||
from flask import render_template, request, redirect, url_for
|
from flask import render_template, request, redirect, url_for
|
||||||
import db_routing
|
import db_routing
|
||||||
from flask_login import LoginManager, login_user, login_required, logout_user
|
from flask_login import LoginManager, login_user, login_required, logout_user, current_user
|
||||||
from db_routing import app, db
|
from db_routing import app, db
|
||||||
import os
|
import os
|
||||||
import hashlib
|
import hashlib
|
||||||
@@ -11,7 +11,7 @@ login_manager = LoginManager(app)
|
|||||||
|
|
||||||
@login_manager.user_loader
|
@login_manager.user_loader
|
||||||
def load_user(user_id):
|
def load_user(user_id):
|
||||||
return db_routing.find_user(id=user_id)
|
return db_routing.get_user(id=user_id)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/', methods=['GET'])
|
@app.route('/', methods=['GET'])
|
||||||
@@ -20,13 +20,15 @@ def index():
|
|||||||
|
|
||||||
|
|
||||||
@app.route('/registration', methods=['GET', 'POST'])
|
@app.route('/registration', methods=['GET', 'POST'])
|
||||||
def register():
|
def registration():
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
userName = request.form['RegUserLogin']
|
userName = request.form['RegUserLogin']
|
||||||
userPassw = request.form['RegUserPassw']
|
userPassw = request.form['RegUserPassw']
|
||||||
if string_check(userName) and string_check(userPassw):
|
if string_check(userName) and string_check(userPassw):
|
||||||
|
print('попытка регистрации')
|
||||||
if db_routing.add_user(userName, passw_hash(userPassw)):
|
if db_routing.add_user(userName, passw_hash(userPassw)):
|
||||||
login_user(db_routing.find_user(username=userName))
|
print(db_routing.get_user(username=userName))
|
||||||
|
login_user(db_routing.get_user(username=userName))
|
||||||
return redirect(url_for('workshop'))
|
return redirect(url_for('workshop'))
|
||||||
return render_template('registration.html')
|
return render_template('registration.html')
|
||||||
|
|
||||||
@@ -41,10 +43,10 @@ def login():
|
|||||||
login_user(user)
|
login_user(user)
|
||||||
return redirect(url_for('workshop'))
|
return redirect(url_for('workshop'))
|
||||||
else:
|
else:
|
||||||
return redirect(url_for('register'))
|
return redirect(url_for('registration'))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return redirect(url_for('register'))
|
return redirect(url_for('registration'))
|
||||||
|
|
||||||
|
|
||||||
@app.route('/logout')
|
@app.route('/logout')
|
||||||
@@ -56,12 +58,16 @@ def logout():
|
|||||||
@app.route('/workshop', methods=['GET'])
|
@app.route('/workshop', methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
def workshop():
|
def workshop():
|
||||||
return render_template('workshop.html')
|
triggers_list = db_routing.get_trigers()
|
||||||
|
actions_list = db_routing.get_actions()
|
||||||
|
user_scripts_list = db_routing.get_user_scripts(current_user.get_id())
|
||||||
|
return render_template('workshop.html', triggers_list=triggers_list, actions_list=actions_list,
|
||||||
|
user_scripts_list=user_scripts_list)
|
||||||
|
|
||||||
|
|
||||||
@app.errorhandler(Exception)
|
# @app.errorhandler(Exception)
|
||||||
def universal_error(error):
|
# def universal_error(error):
|
||||||
return render_template('error.html'), 404
|
# return render_template('error.html'), 404
|
||||||
|
|
||||||
|
|
||||||
def string_check(string):
|
def string_check(string):
|
||||||
@@ -84,8 +90,7 @@ def passw_hash(user_passw, salt=os.urandom(32)):
|
|||||||
|
|
||||||
|
|
||||||
def verify_password(username, password):
|
def verify_password(username, password):
|
||||||
User = db_routing.find_user(username=username)
|
User = db_routing.get_user(username=username)
|
||||||
print(User)
|
|
||||||
if User:
|
if User:
|
||||||
userSalt = User.password[:32]
|
userSalt = User.password[:32]
|
||||||
if passw_hash(password, userSalt) == User.password:
|
if passw_hash(password, userSalt) == User.password:
|
||||||
|
|||||||
@@ -13,10 +13,12 @@ class User(db.Model):
|
|||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
username = db.Column(db.String(80), unique=True, nullable=False)
|
username = db.Column(db.String(80), unique=True, nullable=False)
|
||||||
password = db.Column(db.String(120), nullable=False)
|
password = db.Column(db.String(120), nullable=False)
|
||||||
|
telegram_username = db.Column(db.String(80), unique=True)
|
||||||
|
|
||||||
def __init__(self, username, password):
|
def __init__(self, username, password, telegram_username=None):
|
||||||
self.username = username
|
self.username = username
|
||||||
self.password = password
|
self.password = password
|
||||||
|
self.telegram_username = telegram_username
|
||||||
|
|
||||||
def is_active(self):
|
def is_active(self):
|
||||||
return True
|
return True
|
||||||
@@ -31,15 +33,15 @@ class User(db.Model):
|
|||||||
class Trigger(db.Model):
|
class Trigger(db.Model):
|
||||||
__tablename__ = 'Triggers'
|
__tablename__ = 'Triggers'
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
triggername = db.Column(db.String(80), unique=True, nullable=False)
|
name = db.Column(db.String(80), unique=True, nullable=False)
|
||||||
trigger_def = db.Column(db.String(200))
|
def_name = db.Column(db.String(200))
|
||||||
|
|
||||||
|
|
||||||
class Action(db.Model):
|
class Action(db.Model):
|
||||||
__tablename__ = 'Actions'
|
__tablename__ = 'Actions'
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
actionname = db.Column(db.String(80), unique=True, nullable=False)
|
name = db.Column(db.String(80), unique=True, nullable=False)
|
||||||
action_def = db.Column(db.String(200))
|
def_nme = db.Column(db.String(200))
|
||||||
|
|
||||||
|
|
||||||
class Scenario(db.Model):
|
class Scenario(db.Model):
|
||||||
@@ -53,7 +55,7 @@ class Scenario(db.Model):
|
|||||||
|
|
||||||
|
|
||||||
def add_user(user_name, passw_hash):
|
def add_user(user_name, passw_hash):
|
||||||
if not find_user(user_name):
|
if not get_user(user_name):
|
||||||
new_user = User(username=user_name, password=passw_hash)
|
new_user = User(username=user_name, password=passw_hash)
|
||||||
db.session.add(new_user)
|
db.session.add(new_user)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
@@ -63,11 +65,23 @@ def add_user(user_name, passw_hash):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def find_user(id=None, username=None):
|
def get_user(id=None, username=None):
|
||||||
if id:
|
if id:
|
||||||
return User.query.filter_by(id=id).first()
|
return User.query.filter_by(id=id).first()
|
||||||
if username:
|
if username:
|
||||||
return User.query.filter_by(username=username).first()
|
return User.query.filter_by(username=username).first()
|
||||||
|
|
||||||
|
|
||||||
# def get_trigers():
|
def get_trigers():
|
||||||
|
triggers_list = Trigger.query.all()
|
||||||
|
return triggers_list
|
||||||
|
|
||||||
|
|
||||||
|
def get_actions():
|
||||||
|
actions_list = Action.query.all()
|
||||||
|
return actions_list
|
||||||
|
|
||||||
|
|
||||||
|
def get_user_scripts(current_user_id):
|
||||||
|
user_scripts_list = Scenario.query.filter_by(owner_id=current_user_id).all()
|
||||||
|
return user_scripts_list
|
||||||
|
|||||||
@@ -56,11 +56,9 @@
|
|||||||
Условие:
|
Условие:
|
||||||
</div>
|
</div>
|
||||||
<select class="form__input-text" >
|
<select class="form__input-text" >
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
{% for trigger in triggers_list %}
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
<option>{{ trigger.name }}</option>
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
{% endfor %}
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<label class="form__log">
|
<label class="form__log">
|
||||||
@@ -68,11 +66,9 @@
|
|||||||
Действие:
|
Действие:
|
||||||
</div>
|
</div>
|
||||||
<select class="form__input-text" >
|
<select class="form__input-text" >
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
{% for action in actions_list %}
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
<option>{{ action.name }}</option>
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
{% endfor %}
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
|
||||||
<option>Lorem ipsum dolor sit amet.</option>
|
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<div class="form__btns">
|
<div class="form__btns">
|
||||||
@@ -96,18 +92,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<form action="" method="POST">
|
<form action="" method="POST">
|
||||||
<ul class="events_list">
|
<ul class="events_list">
|
||||||
<li class="events_item">
|
{% for user_script in user_scripts_list%}
|
||||||
<p>Lorem ipsum dolor sit.</p>
|
<li class="events_item">
|
||||||
<div class="cl-btn-7"></div>
|
<p>{{ user_scripts.name }}</p>
|
||||||
</li>
|
<div class="cl-btn-7"></div>
|
||||||
<li class="events_item">
|
</li>
|
||||||
<p>Lorem, ipsum.</p>
|
{% endfor %}
|
||||||
<div class="cl-btn-7"></div>
|
|
||||||
</li>
|
|
||||||
<li class="events_item">
|
|
||||||
<p>Lorem ipsum dolor sit.</p>
|
|
||||||
<div class="cl-btn-7"></div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</form>
|
</form>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user