Sindbad~EG File Manager
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session,json
import datetime
from datetime import timedelta,date,datetime
from flask import session, app
from .. import Cryptography,Auth,RouteGroup,Helper
from dateutil.rrule import rrule, DAILY
from core.model.BadgeModel import BadgeModel
from core.model.QueryModel import QueryModel
app = Blueprint('query', __name__)
@app.route('/<int:conf_id>/<conf_key>/query', methods = ["GET", "POST"])
def QueryLogin(conf_id,conf_key):
if session.get("querysession"):
return redirect (url_for('query.Days',conf_id=conf_id ,conf_key = conf_key))
else:
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
conf_data = QueryModel().getConf_open_closedForQuery(conf_id,conf_key,current_dt)
if conf_data:
return render_template('query/user/login.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data)
else:
return "<h2 style= 'color:red;text-align:center' ; >Conference closed </h2>"
@app.route('/<int:conf_id>/<conf_key>/post_query_login', methods = ["GET", "POST"])
def postQueryLogin(conf_id,conf_key):
if request.method == 'POST':
get_conf = BadgeModel().GetConf(conf_id,conf_key)
if get_conf :
del_table_name = get_conf["del_table_name"]
else :
return "<h4 style='color:red;'> Invalid URL </h4>"
delegate_name = request.values.get('full_name') or None
session['querysession'] = {'delegate_name':delegate_name}
return redirect (url_for('query.Days',conf_id=conf_id ,conf_key = conf_key))
else :
return "Method not allowed"
@app.route('/<int:conf_id>/<conf_key>/days', methods = ["GET", "POST"])
def Days(conf_id,conf_key):
if session.get("querysession"):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
getDays = QueryModel().getDaysQueryModel(conf_data['abs_ses_table_name'],conf_id)
now = datetime.now()
current_date = now.strftime('%Y-%m-%d')
return render_template('query/user/days.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getDays=getDays,current_date=current_date)
else:
flash("Session Expired","errorMsg")
return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/halls/<conf_date>', methods = ["GET", "POST"])
def Halls(conf_id,conf_key,conf_date):
if session.get("querysession"):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
getHalls = QueryModel().getHallsQueryModel(conf_data['abs_ses_table_name'],conf_id,conf_date)
hall_1 = getHalls[0]
return render_template('query/user/halls.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getHalls=getHalls,conf_date=conf_date,hall_1=hall_1)
else:
flash("Session Expired","errorMsg")
return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/abs_sessions/<hall_id>/<conf_date>', methods = ["GET", "POST"])
def AbsSessions(conf_id,conf_key,hall_id,conf_date):
if session.get("querysession"):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
getSessionName = QueryModel().getSessionNameQuery(conf_data['abs_ses_table_name'],conf_id,hall_id,conf_date)
session_1 = getSessionName[0]
now = datetime.now()
current_dt = now.strftime('%Y-%m-%d %H:%M:%S')
currentsession = QueryModel().getCurrentSessionQueryModel(conf_data['abs_ses_table_name'],conf_id,current_dt,hall_id,conf_date)
return render_template('query/user/session.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,getSessionName=getSessionName,conf_date=conf_date,session_1=session_1,currentsession=currentsession)
else:
flash("Session Expired","errorMsg")
return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/get_query/<asession_id>', methods = ["GET", "POST"])
def getQuery(conf_id,conf_key,asession_id):
if session.get("querysession"):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
sessionData = QueryModel().get_sessionQueryModel(conf_data['abs_ses_table_name'],conf_id,asession_id)
if sessionData:
return render_template('query/user/query.html',conf_id=conf_id,conf_key=conf_key,conf_data=conf_data,sessionData=sessionData)
else:
pass
else:
flash("Session Expired","errorMsg")
return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))
@app.route('/<int:conf_id>/<conf_key>/post_query', methods = ["GET", "POST"])
def postQuery(conf_id,conf_key):
try:
delegateData = session.get("querysession")
conf_data = BadgeModel().GetConf(conf_id,conf_key)
now = datetime.now()
current_dt = now.strftime("%Y-%m-%d %H:%M:%S")
if delegateData :
asession_id = request.values.get('asession_id') or 0
commands = request.values.get('commands') or ' '
# data = {'asession_id':asession_id,'commands':commands,'delegate_name':delegateData['delegate_name'],'created_at':datetime.now()}
insert_stmt ="insert into "+str(conf_data['abs_ses_query_table_name'])+"(asession_id,commands,delegate_name,created_at) values("+str(asession_id)+",'"+str(commands)+"','"+str(delegateData['delegate_name'])+"','"+current_dt+"');"
QueryModel().insert_delegate_query(insert_stmt)
datas = {"msg" : "Your query posted successfully" ,"status" : 1}
json_data = json.dumps(datas,default=str)
return json_data
else:
data = { "msg" : "INVALID LOGIN" ,"status" :3}
json_data = json.dumps(data,default=str)
return json_data
except Exception as e:
data = {"msg" : str(e) ,"status" : 401}
json_data = json.dumps(data,default=str)
return json_data
@app.route('/<int:conf_id>/<conf_key>/logout', methods = ["GET", "POST"])
def Logout(conf_id,conf_key):
if session.get("querysession") :
session.pop('querysession', None)
else :
pass
return redirect(url_for('query.QueryLogin' ,conf_id = conf_id,conf_key= conf_key))
# For generating abstract session for query and current active session
@app.route('/<int:conf_id>/<conf_key>/generate_abstract_session', methods = ["GET", "POST"])
def GenerateAbstractSession(conf_id,conf_key):
conf_data = BadgeModel().GetConf(conf_id,conf_key)
QueryModel().usp_generate_query_session(conf_data['conf_schema'] ,conf_data['abs_ses_table_name'],conf_id)
start_date = conf_data['conf_start_time']
end_date = conf_data['conf_end_time']
i=1
if start_date and end_date:
for dt in rrule(DAILY, dtstart=start_date, until=end_date):
session_date = dt.strftime("%Y-%m-%d")
QueryModel().update_abs_sessions(conf_data['abs_ses_table_name'],session_date,"Day "+str(i),conf_id)
i=i+1
return 'Abstract sessions generated successfully'
# <span style="float: right;"><i class="fa fa-arrow-right" aria-hidden="true"></i></span>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists