Sindbad~EG File Manager

Current Path : /home/numerotech/s3.numerotech.com/s3_backup_app_v1/core/library/
Upload File :
Current File : //home/numerotech/s3.numerotech.com/s3_backup_app_v1/core/library/helper.py

from core import app
from flask import render_template_string
from flask import url_for,render_template,request,redirect,session
from datetime import datetime, date, time, timedelta
import datetime
import math,random
import time
from requests.utils import requote_uri
import boto3

class Helper:
	
	AppType 			 = "MEMBERSHIP"
	AiosMembershipNumber = ['vrsi','mos','tnoa']
	AadhaarNumber        = ['tnoa']
	AadhaarAddress       = ['tnoa']
	ColumnDescription    = ['vrsi','mos','tnoa','ipgs','csos','apots']
	HospitalAddress      = {'iages':{'show':1,'req':1}}
	AttachTypeId         = {'vrsi':7,'tnoa':12,'mos':1,'asitn':41,'csos':23,'ipgs':16,'apots':17,'iages':33}
	AssociateMemberId    = 6
	FellowshipAttachId   = {'vrsi' :11}
	def date_diff(d1, d2):
		# fmt	= '%H:%M'
		d1		=	date(d1,'%Y, %m, %d')
		d2		=	date(d2,'%Y, %m, %d')   		
		diff	=	str(d1) - str(d2)		
		return diff

	def random_otp():
		digits      = "123456789"
		otp_random  = ""
		for i in range(4) :
			random.seed(time.process_time())
			otp_random += digits[math.floor(random.random() * 9)]
			print(otp_random)
		return otp_random

	def getcurrenttimestamp():
		ct = datetime.datetime.now()
		ts = ct.timestamp()
		return ts 
		
	def email_mask(email):
		if email:
			lo = email.find('@')
			if lo>0:
				mask_email =  email[0]+"*****"+email[lo-1:]
				return mask_email
		return email      

	def mobile_mask(mobile):
		if mobile:
			lo = len(mobile)
			if lo>0:
				mask =  mobile[:2]+"******"+mobile[lo-2:]
			return mask
		return mobile  

	def convert_html_for_payment_screen(payment_content,member):
		temp = app.jinja_env.from_string("{{payment_content.payment_content|safe}}").render(payment_content=payment_content,member=member)
		return render_template_string(temp,payment_content=payment_content,member=member)

	# def convert_html_for_mail_screen(mail_content,userData,qul_data,exp_data,image,prosec_data,society):
	# 	temp = app.jinja_env.from_string("{{mail_content|safe}}").render(mail_content=mail_content,userData=userData,qul_data=qul_data,exp_data=exp_data,image=image,prosec_data=prosec_data,society=society)
	# 	return render_template_string(temp,mail_content=mail_content,userData=userData,qul_data=qul_data,exp_data=exp_data,image=image,prosec_data=prosec_data,society=society)

	def convert_html_for_mail_screen(data):
		temp = app.jinja_env.from_string("{{mail_content|safe}}").render(**data)
		return render_template_string(temp,**data)
	

	def merge_tags(text,values):
		for k, v in values.items():
			text = text.replace('*|'+k+'|*', v)
		return text

	def pagination_tool(total,page,limit):
		numpages = math.ceil(total/limit)
		return render_template('back_office/pagination.html',total=total,limit=limit,page=page,numpages=numpages)

	def base_url():
		base_url         = request.host_url
		if "https" in base_url :
			pass
		else :
			base_url = base_url.replace("http" ,"https")
			return base_url

	def sendWhatsApp(mobile,wp_content):
		wp_content = requote_uri(wp_content)
		h_link = "http://wa.me/91"+mobile+"?text="+wp_content
		return h_link

	def getSoceityAssets(society_id,asset_name):
		assets_dict = session.get('asset_'+str(society_id),None) # check asset data from session 
		if assets_dict is None: # if session data not the get from database and set in session 
			assetsData = SocietyAssets().getsociety_assets(society_id)
			assets_dict = {}
			for ad in assetsData:
				assets_dict[ad['asset_name']] = ad['asset_url']
			session['asset_'+str(society_id)] = assets_dict # set asset_dict to session 
		return assets_dict[asset_name]
	
	def s3_pagination(bucket,folder,maxitems,pagesize,page_no):
		session = boto3.Session( aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ', aws_secret_access_key='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')
		s3 = session.client("s3")
		paginator = s3.get_paginator("list_objects_v2")
		result = paginator.paginate(Bucket=bucket, Prefix=folder, Delimiter='/',  PaginationConfig={
			'MaxItems': maxitems,
			'PageSize': pagesize,
			})
		list_data = []

		for page in result:
			list_data.append(page)
			# print(len(list_data))
		# print(list_data)			
		if len(list_data) >= page_no:
			# print(list_data[page_no-1])
			return list_data[page_no-1] if list_data else None 		
		else:
			return None	

	def s3_pagination_v2(bucket,folder,maxitems,pagesize):
		session = boto3.Session( aws_access_key_id='AKIAILLDAQ7NFUMVOYLQ', aws_secret_access_key='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')
		s3 = session.client("s3")
		paginator = s3.get_paginator("list_objects_v2")
		result = paginator.paginate(Bucket=bucket, Prefix=folder, Delimiter='/',  PaginationConfig={
			'MaxItems': maxitems,
			'PageSize': pagesize,
			})
		list_data = []
		CommonPrefixes = []
		Contents     = []
		i = 0
		for page in result:
			list_data.append(page)
			if 'CommonPrefixes' in  list_data[i]:
				CommonPrefixes = CommonPrefixes + list_data[i]['CommonPrefixes']

			if 'Contents' in list_data[i]:
				Contents = Contents + list_data[i]['Contents']

			i = i+1
		print(len(CommonPrefixes))
		print(len(Contents))	 	
		json_data = {'Contents':Contents , 'CommonPrefixes':CommonPrefixes	}	
		return json_data	
app.jinja_env.globals.update(Helper=Helper)	





Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists