latest audit changes 02052024

This commit is contained in:
Ubuntu 2024-05-02 12:38:32 +00:00
parent 31ef7d4e27
commit 71c9bc0f44
1 changed files with 260 additions and 5 deletions

View File

@ -12,11 +12,15 @@ from conversion.translation.external_conversion import Conversion
from centralisedFileSystem.models import Script, File from centralisedFileSystem.models import Script, File
from scriptAudit.models import ScriptAuditModel from scriptAudit.models import ScriptAuditModel
from scriptAudit.models import States from scriptAudit.models import States
from utils import filesystem from utils import filesystem, utilities
from scriptAudit.utils import update_audit_status from scriptAudit.utils import update_audit_status
from scriptAudit.mnf_script_audit import NeutralAudit from scriptAudit.mnf_script_audit import NeutralAudit
from django.core.files.base import ContentFile from django.core.files.base import ContentFile
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from users.models import UserCredentialsForBlockchain
from django.core.files.base import File as DjangoFile
import tempfile
from io import BytesIO
basePath = BasePath() basePath = BasePath()
User = get_user_model() User = get_user_model()
@ -62,6 +66,12 @@ def run_conversion(msg):
def run_audit(msg): def run_audit(msg):
from Blockchain2.decryption import decryptionOfPrivate, decryptionOfUrl, download_file_System,decryptionOflocalUrl,hash_decrypation
from Blockchain2.DataStorage import uploadDataToIPFSNode
from Blockchain2.scriptAudit import getUserprojectIds,UploadScriptAuditData,getScriptAudit
from Blockchain2.blockchainsetting import OWNER_KEY
print("Hello World inside ")
body_dict = json.loads(msg.body) body_dict = json.loads(msg.body)
user = body_dict.get("user") user = body_dict.get("user")
s3_url = body_dict.get("s3-file-path") s3_url = body_dict.get("s3-file-path")
@ -70,8 +80,8 @@ def run_audit(msg):
language = body_dict.get("language") language = body_dict.get("language")
script_ext = body_dict.get("script_ext") script_ext = body_dict.get("script_ext")
script_file_name = body_dict.get("script_file_name") script_file_name = body_dict.get("script_file_name")
language = "en"
print("112")
object_key = "INPUT/" + str(script_file_name) object_key = "INPUT/" + str(script_file_name)
local_file_path = "/home/ubuntu/Conversion_Kitchen_Code/kitchen_counter/media/audit_counter_files/" + script_file_name local_file_path = "/home/ubuntu/Conversion_Kitchen_Code/kitchen_counter/media/audit_counter_files/" + script_file_name
s3_client = boto3.client('s3', s3_client = boto3.client('s3',
@ -79,8 +89,9 @@ def run_audit(msg):
aws_secret_access_key="ZWc6KOc5LuBLuCEBDDfQTor+Q7rp3fFH74gVt+AA", aws_secret_access_key="ZWc6KOc5LuBLuCEBDDfQTor+Q7rp3fFH74gVt+AA",
region_name="ap-south-1" region_name="ap-south-1"
) )
print(object_key, local_file_path)
s3_client.download_file("conversion-kitchen", object_key, local_file_path) s3_client.download_file("conversion-kitchen", object_key, local_file_path)
print("113")
with open(local_file_path, 'rb') as file: with open(local_file_path, 'rb') as file:
file_content = file.read() file_content = file.read()
@ -132,8 +143,252 @@ def run_audit(msg):
), ),
defaults={"status" : "FAILURE"} defaults={"status" : "FAILURE"}
) )
status = ScriptAuditModel.objects.get(
script = Script.objects.get(
id = script_id
))
# blockchain
blockchain_obj = UserCredentialsForBlockchain.objects.get(user=user)
script_original= {}
audit_data={}
script_original["status"] = "STARTED"
script_original["script_id"] = script_id
with open(local_file_path, 'rb') as file:
hash = uploadDataToIPFSNode(file)
script_original["script_file"] = hash
script_original["type"] = "script-original"
script_original["script_file_path"] = local_file_path
audit_data["script-original"] = script_original
userkey= decryptionOfPrivate(blockchain_obj.privateKey)
print("userkey = ", str(userkey))
# status,getData = getScriptAudit(userkey.decode('utf-8'),user_id,str(script_id))
# privatekeyfordb = userkey.decode('utf-8')
# print(privatekeyfordb)
# status.bchain_privatekey = privatekeyfordb
# status.save()
print("blockchain_obj.publicKey",blockchain_obj.publicKey)
print("blockchain_obj.privateKey",blockchain_obj.privateKey)
if status.status == "SUCCESS":
msg.delete() msg.delete()
file_to_audit = File.objects.get(
script=script_id,
type="script-csv"
)
file_to_audit_report = File.objects.get(
script=script_id,
type="audit-report"
)
hash2 = ""
try:
file_to_audit_docx = File.objects.get(
script=script_id,
type="script-docx"
)
script_docx = {}
script_path1 = file_to_audit_docx.file.path
script_size = file_to_audit_docx.file.size
with open(script_path1, 'rb') as _file:
hash2 = uploadDataToIPFSNode(_file)
script_docx["script_file_path"] = script_path1
script_docx["script_file"] = hash2
script_docx["type"] = "script-docx"
audit_data["script-docx"] = script_docx
except:
csv_script_path = file_to_audit.file.path
df = pd.read_csv(csv_script_path)
docx = utilities.csv_to_docx(df)
temp_file_stream = BytesIO()
docx.save(temp_file_stream)
temp_file_stream.seek(0)
docx_file = ContentFile(
temp_file_stream.getvalue(),
"from_audited_csv_to_document.docx",
)
query_file = File.objects.create(
script= file_to_audit.script,
file=docx_file,
type="script-docx",
)
file_to_audit_docx = File.objects.get(
script=script_id,
type="script-docx"
)
script_docx = {}
script_path1 = file_to_audit_docx.file.path
script_size = file_to_audit_docx.file.size
with open(script_path1, 'rb') as _file:
hash2 = uploadDataToIPFSNode(_file)
script_docx["script_file_path"] = script_path1
script_docx["script_file"] = hash2
script_docx["type"] = "script-docx"
audit_data["script-docx"] = script_docx
## code for pdf also
try:
temp_dir = tempfile.TemporaryDirectory()
pdf_file_path = utilities.docx_to_pdf(
script_path1, temp_dir.name)
with open(pdf_file_path, "rb") as temp_pdf:
pdf_file = DjangoFile(temp_pdf,pdf_file_path.rsplit('/', 1)[1],)
query_file = File.objects.create(
script = file_to_audit.script,
file = pdf_file,
type="script-pdf",
)
script_pdf = {}
script_path1 = pdf_file_path
# script_size = file_to_audit_docx.file.size
with open(script_path1, 'rb') as _file:
hash2 = uploadDataToIPFSNode(_file)
script_pdf["script_file_path"] = script_path1
script_pdf["script_file"] = hash2
script_pdf["type"] = "script-pdf"
audit_data["script-pdf"] = script_pdf
except:
pass
# convert csv to json and store JSON
try:
csv_script_path = file_to_audit.file.path
df = pd.read_csv(csv_script_path)
df = df.loc[:, ["content", "script_element"]]
script_json: dict = json.loads(utilities.csv_to_json(df))
with tempfile.TemporaryDirectory() as temp_dir:
print("Temporary directory created:", temp_dir)
temp_filename = os.path.join(temp_dir, 'script_json_file.json')
print(temp_filename)
with open(temp_filename, 'w') as json_file:
json.dump(script_json, json_file, indent=4)
script_json = {}
script_path1 = temp_filename
# script_size = file_to_audit_docx.file.size
with open(script_path1, 'rb') as _file:
hash2 = uploadDataToIPFSNode(_file)
script_json["script_file_path"] = script_path1
script_json["script_file"] = hash2
script_json["type"] = "script-json"
audit_data["script-json"] = script_json
except:
pass
script_csv = {}
audit_report ={}
audit_report_path = file_to_audit_report.file.path
script_path = file_to_audit.file.path
script_size = file_to_audit.file.size
print("script_file_path_is_here",script_path)
with open(script_path, 'rb') as _file:
hash1 = uploadDataToIPFSNode(_file)
script_csv["script_file"] = hash1
script_csv["script_file_path"] = script_path
script_csv["type"] = "script-csv"
with open(audit_report_path, 'rb') as file1:
hash2 = uploadDataToIPFSNode(file1)
audit_report["script_file"] = hash2
script_csv["script_file_path"] = audit_report_path
script_csv["type"] = "audit-report"
audit_data["script-csv"]= script_csv
audit_data["audit-report"]= audit_report
with open("/home/ubuntu/Conversion_Kitchen_Code/kitchen_counter/Blockchain2/file_stroge.txt","a") as file01:
file01.write("audit userkey------------------SUCCESS1\n")
file01.write(str(audit_data) + "\n")
Response,gasprice = UploadScriptAuditData(OWNER_KEY,blockchain_obj.publicKey,blockchain_obj.user_id,script_id,str(audit_data))
print("tx_hash",Response)
with open("/home/ubuntu/Conversion_Kitchen_Code/kitchen_counter/Blockchain2/file_stroge.txt","a") as file01:
file01.write("audit userkey------------------SUCCESS\n"+str(Response))
transactioni_id = str(Response)
# with open("/home/mnfbeta/mnf/app/Blockchain2/file_stroge.txt","a") as file01:
# file01.write(f"Transaction hash for audit is {str(transactioni_id)}\n")
# current_time = datetime.now()
# formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
# file01.write(f"Transaction hash for audit is {str(type(transactioni_id))}\n")
# file01.write(f" time for the above transaction id {str(formatted_time)}\n")
# audit_model_obj = ScriptAuditModel.objects.get(
# script = Script.objects.get(id = script_id))
status.transaction_hash =str(transactioni_id)
# audit_model_obj.transaction_hash = str(transactioni_id)
# audit_model_obj.save()
status.save()
# user_infos = user_info(tx_hash=Response,service="Script Audit",gas_fee=gasprice)
# addition_result = user_infos.update_info(request)
hash2 = hash_decrypation(hash2)
tx_id = Response
certificate = certificateGenrate(user.username,"script audit",tx_id,projectname=script_file_name,matic=gasprice)
to_email = [user.email]
email_code = 'BL1'
key_value = {
"service":"Audited Script",
"hash": hash2,
"public key":blockchain_obj.publicKey,
"Transaction Hash": tx_id,
}
print("userkey = ", userkey)
sendmail(to_email=to_email , email_code=email_code, key_value=key_value, filePath=certificate)
print("mail send sucessfully:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
data = {"message": "Success"}
# deleting the folder and files
# Delete a file
media_path = os.path.join(settings.MEDIA_ROOT, "audit_counter_files", script_file_name)
if os.path.exists(media_path):
os.remove(media_path)
print(f"File '{media_path}' deleted successfully.")
else:
print(f"File '{media_path}' does not exist.")
# Delete a folder and its contents
folder1_path = os.path.join(settings.MEDIA_ROOT, "scripts_folder", script_id)
if os.path.exists(folder1_path):
shutil.rmtree(folder1_path)
print(f"Folder '{folder1_path}' and its contents deleted successfully.")
else:
print(f"Folder '{folder1_path}' does not exist.")
folder2_path = os.path.join(settings.MEDIA_ROOT, "audit_folder", script_id)
if os.path.exists(folder2_path):
shutil.rmtree(folder2_path)
print(f"Folder '{folder2_path}' and its contents deleted successfully.")
else:
print(f"Folder '{folder2_path}' does not exist.")
# return JsonResponse(data, status=200)
# return Response("Success", status=200)
else:
with open("/home/mnftaj/mnf_march22/MNF/app/Blockchain2/file_stroge.txt","a") as file01:
file01.write("audit userkey------------------else\n")
Response = UploadScriptAuditData(OWNER_KEY,blockchain_obj.publicKey,blockchain_obj.user_id,script_id,str(audit_data))
print("tx_hash",Response)
hash = hash_decrypation(hash)
#certificate = certificateGenrate(request.user.username,"script audit",hash)
tx_id = Response
# certificate = certificateGenrate(request.user.username,"script audit",tx_id,projectname=script_file_name,matic=gasprice)
to_email = [user.email]
email_code = 'BL1'
key_value = {
"service":"Orginal Script Audit",
"hash": hash,
"public key":blockchain_obj.publicKey,
"private key":userkey,
"Transaction Hash": tx_id,
}
print("::::::::::::::",key_value)
print("userkey = ", userkey)
# sendmail(to_email=to_email , email_code=email_code,key_value=key_value,filePath=certificate)