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