Sindbad~EG File Manager
from flask import Flask, request, Blueprint, jsonify, redirect, url_for,flash, render_template,session, app,json,jsonify
from core.model.UserModel import UserModel
from core.model.Log import Log
from random import randint
import datetime
from core.library.email import EMAIL
from datetime import timedelta,date,datetime
from .. import Cryptography,Auth,RouteGroup
from core.library.helper import Helper
import math, random
import ast
# import collections
import os
from werkzeug.utils import secure_filename
from os.path import join, dirname, realpath
from urllib.parse import unquote
import time,requests
import base64
from itertools import groupby
from operator import itemgetter
app = Blueprint('user', __name__)
""" Strating page """
@app.route('/', methods = ["GET", "POST"])
def Home():
# return redirect(url_for('user.DayIndex'))
if Helper.data_inprogress == 1:
return redirect(url_for('user.Login'))
else:
return render_template('users/alert_page.html')
@app.route('/msg', methods = ["GET", "POST"])
def Msg():
return render_template('users/alert_page.html')
""" Login and logout functions """
@app.route('/login')
def Login():
# return redirect(url_for('user.DayIndex'))
# return redirect(url_for('user.Msg'))
if Helper.data_inprogress == 1:
return render_template('users/login.html')
else:
return render_template('users/alert_page.html')
@app.route('/admin_login')
def AdminLogin():
# return redirect(url_for('user.Msg'))
if Helper.data_inprogress == 1:
return render_template('users/login.html')
else:
return render_template('users/alert_page.html')
@app.route('/post_login',methods = ["GET","POST"])
def Post_login():
now = datetime.now()
conf_id = Helper.conf_id
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
if request.method == "POST":
email = request.form['email']
if not email :
flash('Please enter your email-id ' , "errorMsg")
return redirect (url_for('user.Login'))
else :
otp_random = random.randint(1000,9999)
otp_sent_at = now
otp_expire_on = now + timedelta(minutes=30)
otp_expire_at = otp_expire_on
user_output = UserModel().get_users_email_data(email,conf_id)
# print(user_output)
# return "wait baby."
if user_output :
# Auth.login(user_output)
# code updated on May 30 ,29023
user_id = user_output["user_id"]
membership_no = user_output["membership_no"]
delegate_no = user_output["delegate_no"]
if not membership_no or not delegate_no:
flash("Scientific programming videos access only for members only" , "errorMsg")
return redirect(url_for('user.Login'))
else :
# encrypt_user_id = Cryptography.encrypt(user_id)
# session['user'] = user_output
# end_time = now + timedelta(minutes = 180)
# otp_verified_at = curr_dt
# data = {'email' : email, 'updated_at' : curr_dt ,"full_name" : " ","session_end_time" : end_time, "otp_verified_at" : curr_dt}
# update_user = UserModel().updateUser(user_id,data)
# return redirect(url_for('user.DayIndex',user_id=encrypt_user_id))
# user_id = user_output['user_id']
data = {'otp_expire_on' : otp_expire_on,'otp_sent_at':otp_sent_at,'otp' : otp_random}
update_user = UserModel().updateUser(user_id,data)
encrypt_user_id = Cryptography.encrypt(int(user_output["user_id"]))
subject = str(otp_random)+"-OTP for TRICON 2023 - Scientific Session Recordings"
to = user_output["email"]
email = user_output["email"]
html = render_template('users/email/otp_generation_mail.html',user_id=user_id,data=user_output,otp=otp_random,otp_expire_at=otp_expire_at)
EMAIL.sendMail(subject,html,email)
encrypt_user_id = Cryptography.encrypt(user_id)
msg = "OTP send to your mail-id " + email
flash(msg , "successMsg")
return redirect (url_for('user.OtpPage',user_id = encrypt_user_id))
else:
flash("Access Denied. " ,"errorMsg")
return redirect(url_for('user.Login'))
# OLD BLOCK
end_time = now + timedelta(minutes = 120)
data = {'email' : email, 'created_at' : curr_dt ,"full_name" : " ","session_end_time" : end_time,"otp_verified_at" : curr_dt}
# data = {'email' : email, 'created_at' : curr_dt,'otp_expire_on' : otp_expire_on,'otp_sent_at':otp_sent_at,'otp' : otp_random}
user_output = UserModel().insertUser(data)
user_id = user_output['user_id']
encrypt_user_id = Cryptography.encrypt(user_id)
session['user'] = user_output
return redirect(url_for('user.DayIndex',user_id=encrypt_user_id))
# OLD BLOCK END
# subject = str(otp_random)+"-OTP for TRICON 2023 - Scientific Session Recordings "
# html = render_template('users/email/otp_generation_mail.html',user_id=user_id,data=user_output,otp=otp_random,otp_expire_at=otp_expire_at)
# EMAIL.sendMail(subject,html,email)
# encrypt_user_id = Cryptography.encrypt(user_id)
# msg = "OTP send to your mail-id " + email
# flash(msg , "successMsg")
# return redirect (url_for('user.OtpPage',user_id = encrypt_user_id))
# flash("Sorry. We cannot find a membership record matching the given email id. For assistance, please write to support@numerotec.com" )
else :
flash("Error. Try again !" , "errorMsg")
return redirect (url_for('user.Login'))
@app.route('/logout', methods = ["GET", "POST"])
# @RouteGroup.login_required
def Logout():
if session.get("user") :
session.pop('user')
is_session_end = request.values.get('is_session_end') or 0
if is_session_end and int(is_session_end) > 0 :
flash("Session expired. Please re-login" ,"errorMsg")
return redirect(url_for('user.Login'))
else :
pass
return redirect(url_for('user.Login'))
""" END Login and Logout functions """
""" OTP LOGIN START """
@app.route('/otp_page/<user_id>', methods = ["GET","POST"])
# @RouteGroup.login_required
def OtpPage(user_id):
user_id = unquote(user_id)
user_id = int(Cryptography.decrypt(user_id))
encrypt_user_id = Cryptography.encrypt(int(user_id))
return render_template('users/otp_new.html',encrypt_user_id=encrypt_user_id,user_id=user_id)
@app.route('/otp_password/<user_id>', methods = ["GET","POST"])
# @RouteGroup.login_required
def OtpPassword(user_id):
user_id = unquote(user_id)
user_id = int(Cryptography.decrypt(user_id))
user = UserModel().get_member(user_id)
email = user["email"]
encrypt_user_id = Cryptography.encrypt(int(user_id))
msg = "An OTP has been sent to your registered email id "+ Helper.email_mask(email)
# flash(msg ,"successMsg")
return redirect(url_for('user.OtpPage',user_id=encrypt_user_id))
@app.route('/otp_mail/<user_id>', methods = ["GET","POST"])
# @RouteGroup.login_required
def OtpMail(user_id):
# random.seed(time.clock())
user_id = unquote(user_id)
user_id = int(Cryptography.decrypt(user_id))
now = datetime.now()
user = UserModel().get_otp_random(user_id)
if user['otp']:
otp_random = user['otp']
else :
digits = "123456789"
otp_random = random.randint(1000,9999)
otp_sent_at = now
otp_expire_on = now + timedelta(minutes=30)
otp_expire_at = otp_expire_on
data = {'otp_expire_on' : otp_expire_on,'otp_sent_at':otp_sent_at,'otp' : otp_random}
user = UserModel().updateOtpAndGetUser(user_id,data)
if user :
otp_expire_on = datetime.strptime(str(otp_expire_on), "%Y-%m-%d %H:%M:%S.%f").strftime('%d-%m-%Y %H:%M:%S.%f')
period = otp_expire_at.strftime('%p')
hour = otp_expire_at.strftime('%I')
date = datetime.strptime(str(otp_expire_on), "%d-%m-%Y %H:%M:%S.%f")
if len(str(date.minute)) == 1:
minute = "0"+str(date.minute)
else:
minute = date.minute
month_num = date.month
datetime_object = datetime.strptime(str(month_num), "%m")
full_month_name = datetime_object.strftime("%B")
subject = str(otp_random)+"-OTP for TRICON 2023 - Scientific Session Recordings , valid upto "+str(date.day)+" "+str(full_month_name)+" "+str(date.year)+" "+str(hour)+":"+str(minute)+" "+period
to = user["email"]
# to="mukeshkumar@numerotec.com"
html = render_template('users/email/otp_generation_mail.html',user_id=user_id,data=user,otp=otp_random,otp_expire_at=otp_expire_at)
# return html
# send mail using mail gun
EMAIL.sendMail(subject,html,to)
if user:
encrypt_user_id = Cryptography.encrypt(int(user_id))
# return redirect(url_for('user.OtpPassword',user_id=encrypt_user_id))
# msg = "OTP send to your mail-id + " email
msg = "An OTP has been sent to your registered email id "+ Helper.email_mask(to)
flash(msg ,"successMsg")
return redirect(url_for('user.OtpPassword',user_id=encrypt_user_id))
# return redirect(url_for('user.OtpPage',user_id=encrypt_user_id))
@app.route('/verify_otp/<user_id>', methods = ["POST"])
def VerifyOtp(user_id):
try:
encrypt_user_id = unquote(user_id)
user_id = Cryptography.decrypt(encrypt_user_id)
user_id = int(user_id)
now = datetime.now()
otp = request.values.get('otp_number')
userData = UserModel().getUserByUserID(user_id)
if userData :
if userData["email"] == Helper.testmail and int(otp) == 9999 :
session['user'] = userData
# return "aa"
# return redirect(url_for('user.Vidoes',user_id=encrypt_user_id))
# return redirect(url_for('user.VidoeIndex',user_id=encrypt_user_id))
# DayIndex
return redirect(url_for('user.DayIndex',user_id=encrypt_user_id))
if(int(otp) == userData['otp']) :
end_time = now + timedelta(minutes = 120)
data = {'otp' : None, 'otp_verified_at':now , 'session_end_time' : end_time}
output = UserModel().update_member(user_id,data)
otp_expire_on = datetime.strptime(str(userData['otp_expire_on']),'%Y-%m-%d %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')
if str(now)>str(otp_expire_on):
flash("Expired!OTP valid for 1 mintue" , "errorMsg")
return render_template('users/otp_new.html',encrypt_user_id=encrypt_user_id,user_id=user_id)
else:
session['user'] = userData
# return redirect(url_for('user.VidoeIndex',user_id=encrypt_user_id))
return redirect(url_for('user.DayIndex',user_id=encrypt_user_id))
# check payment already paid or not here ...
# checkAlreadyPaid = UserModel().checkAlreadyPaid(user_id)
# if checkAlreadyPaid :
# session['user'] = userData
# # return redirect(url_for('user.Vidoes',user_id=encrypt_user_id))
# return redirect(url_for('user.VidoeIndex',user_id=encrypt_user_id))
# else :
# return redirect(url_for('user.MakePayment',user_id=encrypt_user_id))
else:
flash("Incorrect OTP. Please provide the correct OTP" , "errorMsg")
return render_template('users/otp_new.html',encrypt_user_id=encrypt_user_id,user_id=user_id)
else :
return "USER DATA NOT EXIST"
except Exception as e:
return str(e)
@app.route('/make_payment/<user_id>',methods = ["GET","POST"])
def MakePayment(user_id):
encrypt_user_id = unquote(user_id)
user_id = Cryptography.decrypt(encrypt_user_id)
user_id = int(user_id)
userData = UserModel().getUserByUserID(user_id)
if userData :
return render_template('users/make_payment.html',userData=userData,user_id = user_id,encrypt_user_id = encrypt_user_id)
else :
flash("Invalid Login")
return redirect(url_for('user.Login'))
@app.route('/post_payment',methods = ["POST"])
def PostPayment():
now = datetime.now()
curr_dt = now.strftime("%Y-%m-%d %H:%M:%S")
user_id = request.form['user_id']
full_name = request.form['full_name']
mobile = request.form['mobile']
amount = request.form['amount']
encrypt_user_id = request.form['encrypt_user_id']
unique_id = now.strftime('%Y%m%d%H%M%S%f')
url = 'https://paymentapi.numerotech.com/api_key'
r = requests.get(url)
apikey = json.loads(r.content.decode())
am_id = 18
for index,value in enumerate(apikey) :
api_am_id = value['am_id']
if api_am_id == am_id :
app_key = value['app_key']
app_name = value['app_name']
break
else :
pass
payment_for = app_name
unique_id = app_key+"_"+unique_id
data_for_user = {'full_name' : full_name ,'mobile' : mobile , 'updated_at' : curr_dt}
data_for_payment = {'user_id' :user_id ,'amount' : amount , 'unique_id' : unique_id,'payment_status' : 'YETTOPAY','created_at' : curr_dt}
save_pay_record = UserModel().savePayRecord(user_id,data_for_user,data_for_payment)
return redirect(url_for('user.CallPayment',user_id=encrypt_user_id,unique_id=unique_id))
@app.route('/call_payment/<user_id>/<unique_id>', methods = ["GET", "POST"])
def CallPayment(user_id,unique_id):
encrypt_user_id = unquote(user_id)
user_id = Cryptography.decrypt(encrypt_user_id)
user_id = int(user_id)
getData = UserModel().getDataforPayments(user_id,unique_id)
if getData :
am_id = 18
# gateway_id = base64.b64encode(bytes(gateway_id, 'utf-8'))
sample_string = str(am_id)
sample_string_bytes = sample_string.encode("ascii")
base64_bytes = base64.b64encode(sample_string_bytes)
am_id_base64 = base64_bytes.decode("ascii")
res_url = request.host_url
# if "https" in res_url :
# pass
# else :
# res_url = res_url.replace("http" ,"https")
getData['res_url'] = res_url+"payment_server_response"
getData['remarks'] = " TRICON 2023"
getData['is_test'] = 1
getData['am_id'] = am_id
return render_template("users/call_payment_screen.html" ,data= getData,am_id_base64 =am_id_base64,user_id=user_id)
else :
flash("Invalid URL.")
return redirect(url_for('user.Login'))
@app.route('/payment_server_response', methods = ["GET", "POST"])
def PaymentServerResponse():
payment_id = request.values.get('payment_id')
status = request.values.get('status')
email = request.values.get('email')
mobile = request.values.get('mobile')
unique_id = request.values.get('unique_id') #['3343434']
payment_method = request.values.get('method')
result = UserModel().getPaymentByUniqueId(email,unique_id)
user_id = result['user_id']
if payment_id is None:
encrypt_user_id = Cryptography.encrypt(int(user_id))
flash("Transaction failed" , "errorMsg")
return redirect(url_for('user.MakePayment' ,user_id =encrypt_user_id ))
else:
now = datetime.now()
dt_string = now.strftime('%Y-%m-%d %H:%M:%S')
data = {'api_payment_id' : payment_id,'payment_status' : status ,'updated_at' :dt_string,'paid_at':dt_string,'payment_method':payment_method}
update_and_get_data = UserModel().updatePayments(unique_id,data) # update payment status in your table
if status == "success" or status == "captured":
encrypt_user_id = Cryptography.encrypt(int(user_id))
result.pop("amount")
result.pop("updated_at")
session['user'] = result
flash("Payment success", "successMsg")
# return redirect(url_for('user.Vidoes',user_id=encrypt_user_id))
return redirect(url_for('user.VidoeIndex',user_id=encrypt_user_id))
else:
flash("Payment failed", "errorMsg")
encrypt_user_id = Cryptography.encrypt(int(user_id))
return redirect(url_for('user.MakePayment',user_id=encrypt_user_id))
""" OTP LOGIN END """
@app.route('/videos/<user_id>',methods = ["GET","POST"])
# @RouteGroup.login_required
def Vidoes(user_id):
# return redirect(url_for('user.Msg'))
if session.get("user") :
now = datetime.now()
user_id = unquote(user_id)
user_id = int(Cryptography.decrypt(user_id))
user_data = UserModel().get_member(user_id)
if not user_data:
return "<html><h1>PAGE NOT FOUND</h1><h4>Sorry, the page you were looking for could not found. Please check the URL and try your luck again.</h4></html>"
else :
session_end_time = user_data["session_end_time"]
if(now > session_end_time) :
flash("Session expired. Please re-login.")
return redirect(url_for('user.Login'))
else :
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
diff = session_end_time - now
diff_times = str(diff)
diff_times_1 = diff_times.split(':')
diff_hour = diff_times_1[0]
diff_minutes = diff_times_1[1]
diff_seconds = diff_times_1[2]
diff_seconds = float(diff_seconds)
diff_seconds = int(diff_seconds)
video_link = UserModel().get_video_link()
# return "wait"
return render_template('users/video_screen.html',data=user_data,video_link=video_link,str = str ,diff_hour = diff_hour,diff_minutes=diff_minutes,diff_seconds=diff_seconds)
else :
flash("Invalid Login" , "errorMsg")
return redirect(url_for('user.Login'))
@app.route('/videos_testing/<user_id>',methods = ["GET","POST"])
# @RouteGroup.login_required
def VidoesTesting(user_id):
user_id = unquote(user_id)
user_id = int(Cryptography.decrypt(user_id))
user_data = UserModel().get_member(user_id)
if not user_data:
session_end_time = user_data.session_end_time
end_month = session_end_time.strftime("%m")
end_date = session_end_time.strftime("%d")
end_hour = session_end_time.strftime("%H")
end_minutes = session_end_time.strftime("%M")
dt_string_format = now.strftime("%m-%d")
return "<html><h1>PAGE NOT FOUND</h1><h4>Sorry, the page you were looking for could not found. Please check the URL and try your luck again.</h4></html>"
video_link = UserModel().get_video_link()
return render_template('users/video_screen_testing.html',data=user_data,video_link=video_link,str = str)
# New update on Dec 16 , 2022
@app.route('/video_index',methods = ["GET","POST"])
# @RouteGroup.login_required
def VidoeIndex():
video_link = UserModel().get_video_link()
return render_template('users/video_index.html',video_link=video_link,str = str )
if session.get("user") :
now = datetime.now()
user_id = unquote(user_id)
enc_user_id = user_id
user_id = int(Cryptography.decrypt(user_id))
user_data = UserModel().get_member(user_id)
if not user_data:
return "<html><h1>PAGE NOT FOUND</h1><h4>Sorry, the page you were looking for could not found. Please check the URL and try your luck again.</h4></html>"
else :
session_end_time = user_data["session_end_time"]
if(now > session_end_time) :
flash("Session expired. Please re-login.")
return redirect(url_for('user.Login'))
else :
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
diff = session_end_time - now
diff_times = str(diff)
diff_times_1 = diff_times.split(':')
diff_hour = diff_times_1[0]
diff_minutes = diff_times_1[1]
diff_seconds = diff_times_1[2]
diff_seconds = float(diff_seconds)
diff_seconds = int(diff_seconds)
video_link = UserModel().get_video_link()
# return "wait"
return render_template('users/video_index.html',data=user_data,enc_user_id = enc_user_id,video_link=video_link,str = str ,diff_hour = diff_hour,diff_minutes=diff_minutes,diff_seconds=diff_seconds)
else :
flash("Invalid Login" , "errorMsg")
return redirect(url_for('user.Login'))
@app.route('/view_video/<int:video_id>/<int:program_day>/<user_id>',methods = ["GET","POST"])
def ViewVideo(video_id,program_day,user_id):
# user_id = unquote(user_id)
# enc_user_id = user_id
# video_link = UserModel().get_video_linkByVideoIdAndDay(video_id,program_day)
# speaker_name = " "
# user_id = unquote(user_id)
# enc_user_id = user_id
# # enc_user_id = user_id
# user_id = int(Cryptography.decrypt(user_id))
# user_data = UserModel().get_member(user_id)
# if not user_data:
# return "<html><h1>PAGE NOT FOUND</h1><h4>Sorry, the page you were looking for could not found. Please check the URL and try your luck again.</h4></html>"
# if video_link :
# video_link_1 = video_link[0]
# min_video_id = video_link_1["min_video_id"]
# max_video_id = video_link_1["max_video_id"]
# next_video_id = video_link_1["next_video_id"]
# previous_video_id = video_link_1["previous_video_id"]
# video_name_11 = video_link_1["video_name"]
# video_name_1 = video_name_11.split("<br/>")
# video_name = video_name_1[0]
# if "<br/>" in video_name_11:
# speaker_name = video_name_1[1]
# else :
# pass
# if video_name_1 :
# pass
# else :
# video_name = ""
# speaker_name = ""
# else :
# return "<h4>Records does not exist. </h4>"
# return render_template('users/video_screen_2.html',data = user_data,enc_user_id=enc_user_id,video_name=video_name,speaker_name=speaker_name,video_link=video_link,str = str ,min_video_id=min_video_id,max_video_id=max_video_id,next_video_id=next_video_id,previous_video_id=previous_video_id,video_id=video_id,program_day=program_day)
speaker_name = ""
video_name = ""
if session.get("user") :
now = datetime.now()
user_id = unquote(user_id)
enc_user_id = user_id
user_id = int(Cryptography.decrypt(user_id))
user_data = UserModel().get_member(user_id)
if not user_data:
return "<html><h1>PAGE NOT FOUND</h1><h4>Sorry, the page you were looking for could not found. Please check the URL and try your luck again.</h4></html>"
else :
session_end_time = user_data["session_end_time"]
if(now > session_end_time) :
flash("Session expired. Please re-login.")
return redirect(url_for('user.Login'))
else :
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
diff = session_end_time - now
diff_times = str(diff)
diff_times_1 = diff_times.split(':')
diff_hour = diff_times_1[0]
diff_minutes = diff_times_1[1]
diff_seconds = diff_times_1[2]
diff_seconds = float(diff_seconds)
diff_seconds = int(diff_seconds)
video_link = UserModel().get_video_linkByVideoIdAndDay(video_id,program_day)
if video_link :
video_link_1 = video_link[0]
min_video_id = video_link_1["min_video_id"]
max_video_id = video_link_1["max_video_id"]
next_video_id = video_link_1["next_video_id"]
previous_video_id = video_link_1["previous_video_id"]
video_name_11 = video_link_1["video_name"]
video_name_1 = video_name_11.split("<br/>")
video_name = video_name_1[0]
if "<br/>" in video_name_11:
speaker_name = video_name_1[1]
else :
pass
if video_name_1 :
pass
else :
video_name = ""
speaker_name = ""
else :
return "<h4>Records does not exist. </h4>"
return render_template('users/video_screen_2.html',video_name=video_name,speaker_name=speaker_name,enc_user_id = enc_user_id, data=user_data,video_link=video_link,str = str ,diff_hour = diff_hour,diff_minutes=diff_minutes,diff_seconds=diff_seconds,min_video_id=min_video_id,max_video_id=max_video_id,next_video_id=next_video_id,previous_video_id=previous_video_id,video_id=video_id,program_day=program_day)
else :
flash("Invalid Login" , "errorMsg")
return redirect(url_for('user.Login'))
@app.route('/view_video_testing/<int:video_id>/<int:program_day>',methods = ["GET","POST"])
def ViewVideoTesting(video_id,program_day):
# return redirect(url_for('user.Msg'))
speaker_name = ""
video_name = ""
if session.get("user") :
now = datetime.now()
user_id = unquote(user_id)
enc_user_id = user_id
user_id = int(Cryptography.decrypt(user_id))
user_data = UserModel().get_member(user_id)
if not user_data:
return "<html><h1>PAGE NOT FOUND</h1><h4>Sorry, the page you were looking for could not found. Please check the URL and try your luck again.</h4></html>"
else :
session_end_time = user_data["session_end_time"]
if(now > session_end_time) :
flash("Session expired. Please re-login.")
return redirect(url_for('user.Login'))
else :
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
diff = session_end_time - now
diff_times = str(diff)
diff_times_1 = diff_times.split(':')
diff_hour = diff_times_1[0]
diff_minutes = diff_times_1[1]
diff_seconds = diff_times_1[2]
diff_seconds = float(diff_seconds)
diff_seconds = int(diff_seconds)
# video_link = UserModel().get_video_linkByVideoId(video_id)
video_link = UserModel().get_video_linkByVideoIdAndDay(video_id,program_day)
if video_link :
video_link_1 = video_link[0]
min_video_id = video_link_1["min_video_id"]
max_video_id = video_link_1["max_video_id"]
next_video_id = video_link_1["next_video_id"]
previous_video_id = video_link_1["previous_video_id"]
video_name_11 = video_link_1["video_name"]
video_name_1 = video_name_11.split("<br/>")
video_name = video_name_1[0]
if "<br/>" in video_name_11:
speaker_name = video_name_1[1]
else :
pass
if video_name_11 :
pass
else :
video_name = ""
speaker_name = ""
else :
return "<h4>Records does not exist. </h4>"
return render_template('users/video_screen_2_testing.html',enc_user_id = enc_user_id, data=user_data,video_link=video_link,str = str ,diff_hour = diff_hour,diff_minutes=diff_minutes,diff_seconds=diff_seconds,min_video_id=min_video_id,max_video_id=max_video_id,next_video_id=next_video_id,previous_video_id=previous_video_id,video_id=video_id,program_day=program_day)
else :
flash("Invalid Login" , "errorMsg")
return redirect(url_for('user.Login'))
# DEC 29 ,2022 Ganesan J for Day index VRSI 22
# New update on Dec 16 , 2022
# @app.route('/day_index/<user_id>',methods = ["GET","POST"])
# def DayIndex(user_id):
@app.route('/day_index/<user_id>',methods = ["GET","POST"])
def DayIndex(user_id):
conf_id = Helper.conf_id
day_index = UserModel().getDataForDay(conf_id)
# return render_template('users/day_index.html',day_index=day_index,str = str,enc_user_id=enc_user_id )
conf_id = Helper.conf_id
if session.get('user') :
now = datetime.now()
user_id = unquote(user_id)
enc_user_id = user_id
user_id = int(Cryptography.decrypt(user_id))
user_data = UserModel().get_member(user_id)
if not user_data:
return "<html><h1>PAGE NOT FOUND</h1><h4>Sorry, the page you were looking for could not found. Please check the URL and try your luck again.</h4></html>"
else :
session_end_time = user_data["session_end_time"]
if(now > session_end_time) :
flash("Session expired. Please re-login.")
return redirect(url_for('user.Login'))
else :
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
diff = session_end_time - now
diff_times = str(diff)
diff_times_1 = diff_times.split(':')
diff_hour = diff_times_1[0]
diff_minutes = diff_times_1[1]
diff_seconds = diff_times_1[2]
diff_seconds = float(diff_seconds)
diff_seconds = int(diff_seconds)
day_index = UserModel().getDataForDay(conf_id)
return render_template('users/day_index.html',data=user_data,enc_user_id = enc_user_id,day_index=day_index,str = str ,diff_hour = diff_hour,diff_minutes=diff_minutes,diff_seconds=diff_seconds)
else :
flash("Invalid Login" , "errorMsg")
return redirect(url_for('user.Login'))
# getDataByDay
@app.route('/daywise_video_index/<int:program_day>/<user_id>',methods = ["GET","POST"])
# @RouteGroup.login_required
def DaywiseVideoIndex(program_day,user_id):
user_id = unquote(user_id)
day_index = UserModel().getDataByDay(program_day)
# return render_template('users/hall_index.html',day_index=day_index,str = str,int=int ,itemgetter =itemgetter ,groupby = groupby,program_day=program_day)
if session.get("user") :
now = datetime.now()
user_id = unquote(user_id)
enc_user_id = user_id
user_id = int(Cryptography.decrypt(user_id))
user_data = UserModel().get_member(user_id)
if not user_data:
return "<html><h1>PAGE NOT FOUND</h1><h4>Sorry, the page you were looking for could not found. Please check the URL and try your luck again.</h4></html>"
else :
session_end_time = user_data["session_end_time"]
if(now > session_end_time) :
flash("Session expired. Please re-login.")
return redirect(url_for('user.Login'))
else :
dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
diff = session_end_time - now
diff_times = str(diff)
diff_times_1 = diff_times.split(':')
diff_hour = diff_times_1[0]
diff_minutes = diff_times_1[1]
diff_seconds = diff_times_1[2]
diff_seconds = float(diff_seconds)
diff_seconds = int(diff_seconds)
day_index = UserModel().getDataByDay(program_day)
# return "hi baby"
return render_template('users/hall_index.html',data=user_data,enc_user_id = enc_user_id,day_index=day_index,str = str ,diff_hour = diff_hour,diff_minutes=diff_minutes,diff_seconds=diff_seconds,int=int ,itemgetter =itemgetter ,groupby = groupby,program_day=program_day)
else :
flash("Invalid Login" , "errorMsg")
return redirect(url_for('user.Login'))
@app.route('/bulk_mail',methods = ["GET","POST"])
def BulkMail():
getUsers = UserModel().getDelegates()
if getUsers :
for index,value in enumerate(getUsers) :
full_name = value["full_name"]
email = value["email"]
subject = "Dear " + full_name + " TRICON 2023 - Scientific Session Recordings ."
html = render_template('users/email/bulk_mail.html' ,full_name=full_name,email=email)
EMAIL.sendMail(subject,html,email)
else :
return "<h4>Delegate Records not exists. </h4>"
return "Mail has been sent."
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists