# from tkinter.messagebox import NO # import phonenumbers # from project.MNF.narration.views import character_list # from tkinter import E import concurrent.futures import datetime import io import json import logging import os import random import re # added import import select import subprocess import sys import time from centralizePayment.models import CentralPayment import traceback import zipfile # added import from io import StringIO from itertools import zip_longest from pathlib import Path from queue import Queue from subprocess import Popen import razorpay import requests import stripe from asgiref.sync import async_to_sync from bs4 import BeautifulSoup from bs4.element import Comment from channels.generic.websocket import (AsyncWebsocketConsumer, WebsocketConsumer) from channels.layers import get_channel_layer from django.conf import settings from django.contrib import messages from django.contrib.auth.decorators import login_required from django.contrib.sites.shortcuts import get_current_site from django.core.files.base import ContentFile from django.core.mail import EmailMessage, EmailMultiAlternatives from django.db.models.signals import post_save from django.dispatch import Signal, receiver from django.forms import ValidationError as FormValidationError # sse from django.http import (HttpResponse, HttpResponseRedirect, JsonResponse, StreamingHttpResponse) from django.shortcuts import redirect, render from django.template import loader # Multiligule from django.template.loader import render_to_string from django.urls import reverse from django.utils.encoding import force_bytes from django.utils.html import strip_tags from django.views import View from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_GET from forex_python.converter import CurrencyRates from google.cloud import texttospeech from google.cloud import translate_v2 as Translate from PyPDF2 import PdfFileReader from pytz import timezone from tqdm import tqdm from urllib3 import HTTPResponse # Websocket from auto_email.views import sendmail from users.models import UserCredentialsForBlockchain from Blockchain2.decryption import decryptionOfPrivate, decryptionOfUrl, download_file_System from Blockchain2.DataStorage import uploadDataToIPFSNode from Blockchain2.Narration import getUserprojectIds,NarrationData,getNarrationData import tempfile from Blockchain2.blockchainsetting import (GET_OWNER, SET_ONLY_OWNER, UPLOAD_FILES) # from Blockchain2.GetFromBlockChain import getUserprojectIds from Blockchain2.WalletCreation import walletCreation from blockchain.submitIPFS import upload_zipfile_to_ipfs from centralizePayment.views import callback, create_indent from conversion.forms import CScript, NScript from conversion.models import UploadScript from conversion.translation.detection import getInputs from conversion.translation.translation_function import translate_comparison from MNF.email import mnfnsendemail # from neutralAudit import mnf_script_subset_v2 as mnf_ss # 2 # from neutralAudit import sa_functions as sf # 9 # from neutralAudit import sa_functions_english as sf_eng from MNF.settings import BasePath, GetMongoDBUrl from mnfapp.models import (Author, MNFScriptDatabase, Notifications, PaymentData, PitchVector, SampleScript, centralDatabase) from narration.vectorcode.code import vector_generation from neutralAudit_old import mnf_script_subset_v2 as mnf_ss # 2 from neutralAudit_old import sa_functions as sf # 9 from neutralAudit_old import sa_functions_english as sf_eng from payment.models import privilegedUser1 from Pitchdeck.models import Name, PitchVectorMultiAuthor # from .models import ProgressBar from scriptAudit.mnf_script_audit import NeutralAudit from scriptAudit.models import ScriptAuditModel from scriptAudit.utils import (check_status_and_trigger_vector, generate_script_id_for_pitchdeck) from scriptpage.forms import userForm from users.models import * from users.views import deduction_for_sep_wall from utils import filesystem from utils.scripts_functions import script_upload from . import linebyline_narration # from .Pitchdeck.Character_Introduction import TestingC, Char_function from .Pitchdeck.Character_Introduction import (Char_audio_class, Char_function, TestingC, audio_video) from .Pitchdeck.ElevatorPitch import pitch_function from .Pitchdeck.onepager import Pager_function from .Pitchdeck.screenplay import screenplay_main # from narration.Narration_Code import linebyline_narration basePath = BasePath() os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = rf"{basePath}/narration/Narration_Code/authentication.json" client = texttospeech.TextToSpeechClient() translate_client = Translate.Client() #end PROGRESS = 10 progress_dict = {} old_progress_dict = {} from pymongo import MongoClient # from Character_Introduction.char_function import char_function # Commented as audit app changed - mohit # from scriptAudit.script_audit_codes.script_audit import do_script_audit # from videos.models import Video logging.basicConfig(filename="./yameen.log", format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p',level=logging.DEBUG,filemode="a") # from rest_framework.decorators import (api_view, authentication_classes, # permission_classes) # from django.core.mail import EmailMultiAlternatives # from django.utils.html import strip_tags # from . import global_database # from .Narration_Code import narration_generation # see here # this has been imported by rohit on 26th December 2021 # from .Pitchdeck.Character_Introduction import TestingC # removed version numbers from blow imports - Amulya 22/12/22 # from neutralAudit import mnf_script_subset_v1 as MongoDBUrl = GetMongoDBUrl() # MongoDBUrl="mongodb+srv://mnfv:1234@cluster0.h09hcrq.mongodb.net/?retryWrites=true&w=majority" print("narration MongodbUrl", MongoDBUrl) # Create your views here. # stripe.api_key = settings.STRIPE_SECRET_KEY STRIPE_PUB_KEY = settings.STRIPE_PUBLISHABLE_KEY # keyID = settings.RAZORPAY_KEY_ID # keySecret = settings.RAZORPAY_KEY_SECRET UsdConversionRate = 80 # keyID = "rzp_test_6U9A7gZuno8Qz1" # keySecret = "SrhczTH4dmrxW8SrzeqOdBSP" progress_updated = Signal() def set_payment_token(request): if request.user.is_superuser: request.session["keyID"] = settings.T_RAZORPAY_KEY_ID request.session["keySecret"] = settings.T_RAZORPAY_KEY_SECRET else: request.session["keyID"] = settings.RAZORPAY_KEY_ID request.session["keySecret"] = settings.RAZORPAY_KEY_SECRET # Multiligule def multilingual_render(req, templateName: str, context: dict): t = loader.get_template(templateName) rendered_html = t.render(context, req) soup = BeautifulSoup(rendered_html, 'html.parser') def translate_and_replace_text(text): if "multi_language" in req.session: trans_text = translate_client.translate(text, source_language="en", target_language=req.session["multi_language"]) return trans_text["translatedText"] return text def find_and_replace_text_in_element(element): with concurrent.futures.ThreadPoolExecutor() as executor: futures = [executor.submit(translate_and_replace_text, text) for text in element.find_all(text=is_user_visible)] for future, text in zip(futures, element.find_all(text=is_user_visible)): if text != '\n': translated_text = future.result() text.replace_with(translated_text) if "multi_language" in req.session: if req.session["multi_language"] != "en": target_element = soup.find(id="mulitligule") if target_element: find_and_replace_text_in_element(target_element) target_element_nav = soup.find(id="nav_mulitligual") if target_element_nav: find_and_replace_text_in_element(target_element_nav) footer_elements = soup.find_all('footer') for footer in footer_elements: find_and_replace_text_in_element(footer) modified_html = soup.prettify(encoding="UTF-8") with open("/home/user/mnf/project/MNF/Pitchdeck/test2024.html", "wb") as file: file.write(modified_html) return HttpResponse(modified_html, content_type='text/html; charset=utf-8') ## caution : in case of a variant interpertition the english version will take priority. def set_language(request): if request.method == 'POST': selected_language = request.POST.get('selected_language') if selected_language: request.session['multi_language'] = selected_language with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("multi_language:-" + str(request.session['multi_language']) + str(selected_language)+"\n") return HttpResponse(status=200) def is_user_visible(element): if element.parent.name in ['style', 'script', 'head', 'meta', '[document]']: return False elif isinstance(element, Comment): return False return True #end BASE_DIR = Path(__file__).resolve().parent.parent demo_files ={ "en":[ ["sample_english",rf"{basePath}/media/NarrationDemoVideos/sample_english_pitchdeck.webm", rf"{basePath}/media/NarrationDemoVideos/sample_english.pdf", rf"{basePath}/media/NarrationDemoVideos/sample_english_screenplay.webm", rf"{basePath}/media/NarrationDemoVideos/Character_Introduction.webm",{"characterName":["pravesh","yameen"],"filepath":["pravesh.mp4","yameen.mp4"],}], ], "hi":[ ["yameenHI.docx","/home/user/mnf/project/MNF/media/NarrationDemoVideos/xyz_neha12_line.webm","/home/user/mnf/project/MNF/media/NarrationDemoVideos/newEnglis549_Ra7WQGc.pdf", "/home/user/mnf/project/MNF/media/NarrationDemoVideos/Character_Introduction.webm", "/home/user/mnf/project/MNF/media/NarrationDemoVideos/Character_Introduction.webm", "/home/user/mnf/project/MNF/media/NarrationDemoVideos/AroundYa4_Vuazii8.webm",], ["parveshHi.docx","/home/user/mnf/project/MNF/media/NarrationDemoVideos/xyz_neha12_line.webm","/home/user/mnf/project/MNF/media/NarrationDemoVideos/newEnglis549_Ra7WQGc.pdf", "/home/user/mnf/project/MNF/media/NarrationDemoVideos/Character_Introduction.webm", "/home/user/mnf/project/MNF/media/NarrationDemoVideos/Character_Introduction.webm", "/home/user/mnf/project/MNF/media/NarrationDemoVideos/AroundYa4_Vuazii8.webm",], ], "fr":[ ["sample_french",rf"{basePath}/media/NarrationDemoVideos/sample_french_pitchdeck.webm", rf"{basePath}/media/NarrationDemoVideos/sample_french.pdf", rf"{basePath}/media/NarrationDemoVideos/sample_french_screenplay.webm", rf"{basePath}/media/NarrationDemoVideos/Character_Introduction.webm", " ",], ], "mr":[ ["Sample_Marathi Script", rf"{basePath}/media/NarrationDemoVideos/Sample_Marathi_Script_pitchdeck.webm", rf"{basePath}/media/NarrationDemoVideos/Sample_Marathi_Script.pdf", rf"{basePath}/media/NarrationDemoVideos/Sample_Marathi_Script_screenplay.webm", rf"{basePath}/media/NarrationDemoVideos/Character_Introduction.webm", " ",], ], } languages = { "hi": "Hindi", "en": "English", "ur": "Urdu", "ar": "Arabic", "bn": "Bengali", "kn": "Kannada", "ta": "Tamil", "bg": "Bulgarian", "bn": "Bangla", "ml": "Malayalam", "ru": "Russian", "sr": "Serbian", "uk": "Ukranian", "hr": "Croatian", "ga": "Irish", "sq": "Albanian", "mr": "Marathi", "fa": "Persian", "te": "Telugu", "tr": "Turkish", "hu": "Hungarian", "it": "Italian", "ro": "Romanian", "pa": "Punjabi", "gu": "Gujrati", "or": "Odia", "zh": "Chinese", "ne": "Nepali", "fr": "French", "es": "Spanish", "id": "Indonesian", "el": "Greek", "ja": "Japanese", "jv": "Javanese", "ko": "Korean", "be": "Belarusian", "uz": "Uzbek", "sd": "Sindhi", "af": "Afrikaans", "de": "German", "is": "Icelandic", "ig": "Igbo", "la": "Latin", "pt": "Portugese", "my": "Myanmar", "th": "Thai", "su": "Sundanese", "lo": "Lao", "am": "amharic", "si": "Sinhala", "az": "Azerbaijani", "kk": "Kazak", "mk": "Macedonian", "bs": "Bosnian", "ps": "Pashto", "mg": "Malagasy", "ms": "Malay", "yo": "Yoruba", "cs": "Czech", "da": "Danish", "nl": "Dutch", "tl": "Tagalog", "no": "Norwegian", "sl": "Slovenian", "sv": " Swedish", "vi": "Vietnamese", "cy": "Welsh", "he": "Hebrew", "hy": "Armenian", "km": "Khmer", "ka": "Georgian", "mn": "Mongolian", "ku": "Kurdish", "ky": "Kyrgyz", "tk": "Turkmen", "fi": "Finnish", "ht": "Haitian Creole", "haw": "Hawaiian", "lt": "Lithuanian", "lb": "Luxembourgish", "mt": "Maltese", "pl": "Polish", "eo": "Esperanto", "tt": "Tatar", "ug": "Uyghur", "ha": "Hausa", "so": "Somali", "sw": "Swahili", "yi": "Yiddish", "eu": "Basque", "ca": "Catalan", "ceb": "Cebuano", "co": "Corsican", "et": "Estonian", "fy": "Frisian", "gl": "Galician", "hmn": "Hmong", "rw": "Kinyarwanda", "lv": "Latvian", "mi": "Maori", "sm": "Samoan", "gd": "Scots Gaelic", "st": "Sesotho", "sn": "Shona", "sk": "Slovak", "xh": "Xhosa", "zu": "Zulu", } CURRENCY_SYMBOLS_MAP = { "AED": "د.إ", "AFN": "؋", "ALL": "L", "AMD": "֏", "ANG": "ƒ", "AOA": "Kz", "ARS": "$", "AUD": "$", "AWG": "ƒ", "AZN": "₼", "BAM": "KM", "BBD": "$", "BDT": "৳", "BGN": "лв", "BHD": ".د.ب", "BIF": "FBu", "BMD": "$", "BND": "$", "BOB": "$b", "BRL": "R$", "BSD": "$", "BTC": "฿", "BTN": "Nu.", "BWP": "P", "BYR": "Br", "BYN": "Br", "BZD": "BZ$", "CAD": "$", "CDF": "FC", "CHF": "CHF", "CLP": "$", "CNY": "¥", "COP": "$", "CRC": "₡", "CUC": "$", "CUP": "₱", "CVE": "$", "CZK": "Kč", "DJF": "Fdj", "DKK": "kr", "DOP": "RD$", "DZD": "دج", "EEK": "kr", "EGP": "£", "ERN": "Nfk", "ETB": "Br", "ETH": "Ξ", "EUR": "€", "FJD": "$", "FKP": "£", "GBP": "£", "GEL": "₾", "GGP": "£", "GHC": "₵", "GHS": "GH₵", "GIP": "£", "GMD": "D", "GNF": "FG", "GTQ": "Q", "GYD": "$", "HKD": "$", "HNL": "L", "HRK": "kn", "HTG": "G", "HUF": "Ft", "IDR": "Rp", "ILS": "₪", "IMP": "£", "INR": "₹", "IQD": "ع.د", "IRR": "﷼", "ISK": "kr", "JEP": "£", "JMD": "J$", "JOD": "JD", "JPY": "¥", "KES": "KSh", "KGS": "лв", "KHR": "៛", "KMF": "CF", "KPW": "₩", "KRW": "₩", "KWD": "KD", "KYD": "$", "KZT": "₸", "LAK": "₭", "LBP": "£", "LKR": "₨", "LRD": "$", "LSL": "M", "LTC": "Ł", "LTL": "Lt", "LVL": "Ls", "LYD": "LD", "MAD": "MAD", "MDL": "lei", "MGA": "Ar", "MKD": "ден", "MMK": "K", "MNT": "₮", "MOP": "MOP$", "MRO": "UM", "MRU": "UM", "MUR": "₨", "MVR": "Rf", "MWK": "MK", "MXN": "$", "MYR": "RM", "MZN": "MT", "NAD": "$", "NGN": "₦", "NIO": "C$", "NOK": "kr", "NPR": "₨", "NZD": "$", "OMR": "﷼", "PAB": "B/.", "PEN": "S/.", "PGK": "K", "PHP": "₱", "PKR": "₨", "PLN": "zł", "PYG": "Gs", "QAR": "﷼", "RMB": "¥", "RON": "lei", "RSD": "Дин.", "RUB": "₽", "RWF": "R₣", "SAR": "﷼", "SBD": "$", "SCR": "₨", "SDG": "ج.س.", "SEK": "kr", "SGD": "$", "SHP": "£", "SLL": "Le", "SOS": "S", "SRD": "$", "SSP": "£", "STD": "Db", "STN": "Db", "SVC": "$", "SYP": "£", "SZL": "E", "THB": "฿", "TJS": "SM", "TMT": "T", "TND": "د.ت", "TOP": "T$", "TRL": "₤", "TRY": "₺", "TTD": "TT$", "TVD": "$", "TWD": "NT$", "TZS": "TSh", "UAH": "₴", "UGX": "USh", "USD": "$", "UYU": "$U", "UZS": "лв", "VEF": "Bs", "VND": "₫", "VUV": "VT", "WST": "WS$", "XAF": "FCFA", "XBT": "Ƀ", "XCD": "$", "XOF": "CFA", "XPF": "₣", "YER": "﷼", "ZAR": "R", "ZWD": "Z$", "XPD": "Pd", "ZMK": "ZK", "VEB": "Bs", "SDD": "SD", "ESP": "Pt", "SKK": "Sk", "RUR": "₽", "ROL": "RON", "PLZ": "zł", "XPD": "Pd oz", "NLG": "ƒ", "MXP": "$", "LUF": "F", "ITL": "ITL", "IEP": "£", "GRD": "₯", "XAU": "XAU", "DEM": "DEM", "FRF": "Fr", "FIM": "Mk", "NLG": "ƒ", "CSK": "Kčs", "CYP": "C£", "BGL": "лв", "BEF": "ƒ", "ATS": "ATS", "ARP": "$", "XPT": "XPT", "PTE": "₠", "XDR": "XDR", "XAG": "XAG", "XPD": "XPD", } # from .serializers import ProgressBarSerializer # from rest_framework.response import Response # @api_view(['GET']) # def progressBar(request,userid): # if request.method == "GET": # if id is not None: # main = ProgressBar.objects.all().filter(id=userid) # serializer = ProgressBarSerializer(main, many=True) # return Response(serializer.data) # main = ProgressBar.objects.all().filter(id = userid) # serializer = ProgressBarSerializer(main, many=True) # return Response(serializer.data) def convert_to_pdf(input_docx, out_folder): p = subprocess.Popen( [ "libreoffice", "--headless", "--convert-to", "pdf", "--outdir", out_folder, input_docx, ] ) print(["--convert-to", "pdf", input_docx]) p.communicate() def countPages(docfile, pdfname): convert_to_pdf(docfile, rf"{basePath}/media/PdfFiles") pdf = PdfFileReader(open(rf"{basePath}/media/PdfFiles/{pdfname}", "rb")) number_of_pages = pdf.getNumPages() return number_of_pages def narration(request): number = ReferUser.objects.filter(refferedBy=request.user).count() file_pk = request.GET.get("file_detail") if file_pk: file_qry = MNFScriptDatabase.objects.filter(script_id=file_pk).first() else: file_qry = None M = MNFScriptDatabase() sampleList = SampleScript.objects.filter(status="N") MyURL = "" dial_src_script = "" dial_src_lang = "" non_dial_src_lang = "" non_dial_src_script = "" script_title = "" author_name = "" numPages = 0 UScript = CScript() id = "" x = datetime.datetime.now(timezone("UTC")).astimezone( timezone("Asia/Kolkata")) # print("MY base path is " ,str(BASE_DIR)) UploadedScript = UploadScript() print(" Upar Aaa rha hai") if request.method == "POST": M.script = request.FILES["script"] if request.POST.get("linebyline"): M.linebyline = "True" if request.POST.get("characterintro"): M.character_intro = "True" if request.POST.get("screenplayanalysis"): M.screenplay_analysis = "True" M.save() MyURL = M.script.url # UScript = CScript(request.POST, request.FILES) # if UScript.is_valid(): # UploadedScript.script = UScript.cleaned_data.get("script") # MyURL = UploadedScript.script.url print(MyURL) print("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" * 4) # UploadedScript.save() # script_title = MyURL[7:-5] + str(x.strftime("%d"))+ "_"+ str(x.strftime("%b"))+ "_"+ str(x.strftime("%H"))+ str(x.strftime("%I")) author_name = str(request.user.username) # ------------------neha request.session["script_name"] = M.script.name script_title = request.session["script_name"] # script_title = script_title[8:] if script_title[-3:] == "pdf": print( "This do_script_audit start->", datetime.datetime.now(timezone("UTC")).astimezone( timezone("Asia/Kolkata") ), ) # print(do_script_audit(basePath + MyURL, "1234", "scripts")) print( "This do_script_audit end->", datetime.datetime.now(timezone("UTC")).astimezone( timezone("Asia/Kolkata") ), ) pdf = PdfFileReader(open(rf"{basePath}/{MyURL}", "rb")) numPages = pdf.getNumPages() # MyURL = MyURL[:-3]+"docx" else: numPages = countPages(str(BASE_DIR) + MyURL, script_title[7:-4] + "pdf") print( "This do_script_audit start->", datetime.datetime.now(timezone("UTC")).astimezone( timezone("Asia/Kolkata")), ) formInput = getInputs(str(BASE_DIR) + MyURL) print( "This do_script_audit end->", datetime.datetime.now(timezone("UTC")).astimezone( timezone("Asia/Kolkata")), ) dial_src_script = formInput[2] dial_src_lang = formInput[1] non_dial_src_lang = formInput[0] non_dial_src_script = formInput[3] print("done") return render( request, "narration/narration.html", { "numPages": numPages, "id": M.id, "list": sampleList, "fileName": MyURL, "non_dial_src_script": non_dial_src_script, "author_name": author_name, "script_title": script_title, "UScript": UScript, "dial_src_script": dial_src_script, "dial_src_lang": dial_src_lang, "dial_src_lang_full": languages.get(dial_src_lang), "non_dial_src_lang_full": languages.get(non_dial_src_lang), "non_dial_src_lang": non_dial_src_lang, "file": file_qry, "number": number, }, ) def get_page_count(file): archive = zipfile.ZipFile(file, "r") ms_data = archive.read("doc/docx") archive.close() app_xml = ms_data.decode("utf-8") regex = r"<(Pages|Slides)>(\d)" matches = re.findall(regex, app_xml, re.MULTILINE) match = matches[0] if matches[0:] else [0, 0] page_count = match[1] return page_count def characterNarrate(request): print("characterNarrate starting here") if request.method == "POST": print("characterNarrate POST starting here") selected_character = request.POST.getlist("character_check") print(f" selected characters {selected_character}") # Pitchvector-- Add a field for selected Character list and save input_dir = request.session.get("script_dir_url") print(f"input dir {input_dir}") # input_filename=request.session["script_name"] input_filename = request.session["script_name"] print("enter subset characters") dic_of_chr_path = mnf_ss.get_subset_character_script( input_dir, input_filename, selected_character ) print(dic_of_chr_path) print("exit subset characters") return render( request, "Pitchdeck/Pitchnarrate2.html", {"script": request.session["script_name"][:-5]}, ) return render( request, "Pitchdeck/characterNarration.html", {"character_list": request.session["saved_characters_list"]}, ) # @login_required(login_url="/") def pitchnarrate_view(request): number = ReferUser.objects.filter(refferedBy=request.user).count() print("Delhi India: 0") screenplay_form = userForm(request.POST, request.FILES) if request.method == "POST": logging.debug("in pitchnarrate_view") if not screenplay_form.is_valid(): raise screenplay_form.error_class logging.debug(screenplay_form.changed_data) screenplay_name = screenplay_form.cleaned_data["screenplay"] author = screenplay_form.cleaned_data["author"] language = screenplay_form.cleaned_data["language"] script_file = screenplay_form.cleaned_data["file"] # script_file = screenplay_form.cleaned_data["file"] script_ext = script_file.name.split(".")[-1] script_file_name = screenplay_name + "." + script_ext file = ContentFile( script_file.read(), script_file_name, ) script_data = filesystem.new_screenplay( request.user, author, screenplay_name, file, "script-original", language, ) request.session["script_name"] = script_data.get("name") request.session["line_by_line_narration"] = request.POST.get( "line_by_line_narration" ) request.session["character_introduction"] = request.POST.get( "character_introduction" ) request.session["screenplay_analysis"] = request.POST.get( "screenplay_analysis") request.session["one_pager"] = request.POST.get("one_pager") request.session["elevator_pitch"] = request.POST.get("elevator_pitch") request.session["character_narration"] = request.POST.get( "character_narration") script_id = script_data.get("script").get("id") print("new Delhi India: 1") z = PitchVector() while True: audit_model = ScriptAuditModel.objects.get(script__id=script_id) if audit_model.status == "SUCCESS": break elif audit_model.status == "FAILURE": raise Exception("Audit Failed") print("apple100") file = filesystem.get_script(script_id, "script-docx", create=True) z.choosescript = file z.save() request.session["script_url"] = file.path print( "apple101 _______________________________________________________________________________\n\n", file.path, ) request.session["script_dir_url"] = str(BASE_DIR) + "/media/scripts/" print("harsh") formInput = getInputs(file.path) dial_src_script = formInput[2] dial_src_lang = formInput[1] non_dial_src_lang = formInput[0] non_dial_src_script = formInput[3] print("done") request.session["dial_src_script"] = dial_src_script request.session["dial_src_lang"] = dial_src_lang request.session["non_dial_src_lang"] = non_dial_src_lang request.session["non_dial_src_script"] = non_dial_src_script print("character started") request.session["line_by_line_narration"] = request.POST.get( "line_by_line_narration" ) request.session["character_introduction"] = request.POST.get( "character_introduction" ) request.session["screenplay_analysis"] = request.POST.get( "screenplay_analysis") request.session["one_pager"] = request.POST.get("one_pager") request.session["elevator_pitch"] = request.POST.get("elevator_pitch") request.session["character_narration"] = request.POST.get( "character_narration") print("checklbl", request.session["line_by_line_narration"]) print("checkci", request.session["character_introduction"]) print("checksa", request.session["screenplay_analysis"]) print("checkop", request.session["one_pager"]) print("checkep", request.session["elevator_pitch"]) print("checkcn", request.session["character_narration"]) input_dir = str(BASE_DIR) + "/media/scripts/" input_filename = request.session["script_name"] print("----------OM----------view") print(input_dir) # char_list = mnf_ss.get_character_list(input_dir, input_filename) audit = NeutralAudit(script_id) char_list = audit.get_character_list() request.session["saved_characters_list"] = list(char_list) print("get_character_list done") char_list1 = list(char_list) script_upload(file, request.user) if len(char_list1) > 2: newlist = char_list1[0:2] else: newlist = char_list1 no_of_char = len(newlist) print( "\n\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n\n" ) print("checkcn", request.session.items()) print( "\n\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n\n" ) # if no_of_char == 1: # return render( # request, # "Pitchdeck/Pitchnarrate2.html", # { # "script": request.session["script_name"], # "character_list": char_list1, # "firstcharacter": newlist[0], # "five_character": newlist, # "cd": centralDatabase.objects.get(user_id=request.user), # }, # ) # else: # return render( # request, # "Pitchdeck/Pitchnarrate2.html", # { # "script": request.session["script_name"], # "character_list": char_list1, # "firstcharacter": newlist[0], # "secondcharacter": newlist[1], # "five_character": newlist, # "cd": centralDatabase.objects.get(user_id=request.user), # }, # ) return render( request, "Pitchdeck/pitchnarratefile.html", {"number": number, "formInput": screenplay_form}, ) @login_required(login_url="/") def Pitchnarrate_yameen(request): # print("request",request) print("request.user",request.user) number = ReferUser.objects.filter(refferedBy=request.user).count() # print("Delhi India: 1") z = PitchVector() if request.method == "POST": # UScript = NScript(request.POST, request.FILES) # print("request.FILES", request.FILES) # print('UScript',UScript) # if UScript.is_valid(): # z.choosescript = UScript.cleaned_data.get("scriptss") # # print("****************************777777777778888888889999999999999**************************") # print('z.choosescript', z.choosescript) # z.save() # # filename = UScript.cleaned_data.get("scriptss") # aa = re.sub("[^A-Za-z0-9 /._]+", "", str(z.choosescript)) # print("aa",aa) # # bb = aa.replace(" ", "_") # # print(bb) # filename = str(aa).replace(" ", "_") # filename = filename[8:] id = request.POST.get("Nscript_id") print("Iddddddddd", type(id)) x = SampleScript.objects.get(id=id) filePath = x.script_file_path filename = filePath.split('/')[-1] print("filenamessssssssssssssssssss", filename) z.choosescript = filename z.save() request.session["script_name"] = filename file_url = str(BASE_DIR) + "/media/scripts/" + filename print("file_urlss", file_url) request.session["script_url"] = file_url # used because get_subset_character_script needs file dir request.session["script_dir_url"] = str(BASE_DIR) + "/media/scripts/" print("harsh") formInput = getInputs(file_url) dial_src_script = formInput[2] dial_src_lang = formInput[1] non_dial_src_lang = formInput[0] non_dial_src_script = formInput[3] print("done") request.session["dial_src_script"] = dial_src_script request.session["dial_src_lang"] = dial_src_lang request.session["non_dial_src_lang"] = non_dial_src_lang request.session["non_dial_src_script"] = non_dial_src_script print("character started") checkedopt = [] print(request.POST.get("line_by_line_narration")) request.session["line_by_line_narration"] = request.POST.get( "line_by_line_narration" ) request.session["character_introduction"] = request.POST.get( "character_introduction" ) request.session["screenplay_analysis"] = request.POST.get( "screenplay_analysis") request.session["one_pager"] = request.POST.get("one_pager") request.session["elevator_pitch"] = request.POST.get("elevator_pitch") request.session["character_narration"] = request.POST.get( "character_narration") input_dir = str(BASE_DIR) + "/media/scripts/" input_filename = filename print("----------OM----------yameen") print(input_dir) char_list = mnf_ss.get_character_list(input_dir, input_filename) print(char_list) request.session["saved_characters_list"] = list(char_list) print("get_character_list done") numPages = countPages(file_url, file_url.rsplit( "/", 1)[1].rsplit(".", 1)[0] + ".pdf") print("no of page", numPages) if numPages > 5: try: membertype = privilegedUser1.objects.get( user=request.user, is_active="yes") print("neha privalige", membertype) char_list1 = list(char_list) # script_upload(filePat, request.user) if len(char_list1) > 2: newlist = char_list1[0:2] else: newlist = char_list1 no_of_char = len(newlist) if no_of_char == 1: return render( request, "Pitchdeck/Pitchnarrate2.html", { "script": filename[:-5], "character_list": char_list1, "firstcharacter": newlist[0], "five_character": newlist, "cd": centralDatabase.objects.get(user_id=request.user), "numPages": numPages, }, ) else: return render( request, "Pitchdeck/Pitchnarrate2.html", { "script": filename[:-5], "character_list": char_list1, "firstcharacter": newlist[0], "secondcharacter": newlist[1], "five_character": newlist, "cd": centralDatabase.objects.get(user_id=request.user), "numPages": numPages, }, ) except: messages.error(request, "You are not a privileged member.") return render(request, "Pitchdeck/Pitchnarrate1.html") # return redirect("payment") else: char_list1 = list(char_list) # script_upload(filePath, request.user) if len(char_list1) > 2: newlist = char_list1[0:2] else: newlist = char_list1 no_of_char = len(newlist) if no_of_char == 1: return render( request, "Pitchdeck/Pitchnarrate2.html", { "script": filename[:-5], "character_list": char_list1, "firstcharacter": newlist[0], "five_character": newlist, "cd": centralDatabase.objects.get(user_id=request.user), "numPages": numPages, }, ) else: return render( request, "Pitchdeck/Pitchnarrate2.html", { "script": filename[:-5], "character_list": char_list1, "firstcharacter": newlist[0], "secondcharacter": newlist[1], "five_character": newlist, "cd": centralDatabase.objects.get(user_id=request.user), "numPages": numPages, }, ) return render(request, "Pitchdeck/Pitchnarrate1.html", {"number": number}) @login_required(login_url="/") def Pitchnarrate1(request, id=None): print("request", request) print("request.user", request.user.email) number = ReferUser.objects.filter(refferedBy=request.user).count() print("Delhi India: 1") Module= "narration" servicesName = "PitchdeckCreation" z = PitchVector() if request.method == "POST": # if 'form_identifier' in request.POST: # print("############################# TRUE ###################################################") # print('request.FILES["scriptss"]',request.FILES["scriptss"]) # fileExists = script_upload(request.FILES["scriptss"], request.user, 1) # print("fileExists",fileExists) # return render(request, "Pitchdeck/Pitchnarrate1.html") # MongoDBUrl = "mongodb+srv://MNF:root@cluster0.gbkxi.gcp.mongodb.net/DB?retryWrites=true&w=majority" MongoDBUrl = "mongodb+srv://mynextfilm:mnf123@cluster0.ojasb.mongodb.net/myFirstDatabase?retryWrites=true&w=majority" client = MongoClient(MongoDBUrl) db = client.DB # try: try: # script_upload(request.FILES["scriptss"], request.user) fileExists = script_upload(request.FILES["scriptss"], request.user, 1) if fileExists: # pitch_data = db["mnfapp_pitchvector"].find_one({"script_id": str(script_id)}) print("scriptName########////", str(request.FILES["scriptss"].name)) s_name=str(request.FILES["scriptss"].name) # numPages = countPages(s_name, s_name.rsplit("/", 1)[1].rsplit(".", 1)[0] + ".pdf") # print("with file exist",numPages) sript_title=s_name.split(".")[0] user_script_data = db["mnfapp_mnfscriptdatabase"].find_one({"script_title": sript_title}) print("user_script_data ##########################",user_script_data) if user_script_data: recent_id=user_script_data.get('script_id') if user_script_data['characterwise_narration']=='True'or user_script_data['linebyline']=='True'or user_script_data['screenplay_analysis']=='True'or user_script_data['character_intro']=='True' or user_script_data['onepager']=='True'or user_script_data['elevator_pitch']=='True': script_database = db["mnfapp_pitchvector"].find_one({"script_id":recent_id}) print(script_database) else: pass else: pass except Exception as e: error = e return render(request, "Pitchdeck/Pitchnarrate1.html", {"error":error}) UScript = NScript(request.POST, request.FILES) print("request.FILES", request.FILES) print('UScript', UScript) if UScript.is_valid(): z.choosescript = UScript.cleaned_data.get("scriptss") print('z.choosescript', z.choosescript) z.save() # filename = UScript.cleaned_data.get("scriptss") # aa = re.sub("[^A-Za-z0-9 /._]+", "", str(z.choosescript)) # print("aa", aa) # # bb = aa.replace(" ", "_") # # print(bb) # filename = str(aa).replace(" ", "_") filename = str(z.choosescript) filename = filename[8:] #Blockchain if UserCredentialsForBlockchain.objects.filter(user=request.user).exists(): blockchain_obj = UserCredentialsForBlockchain.objects.get(user=request.user) contex = z.choosescript hash = uploadDataToIPFSNode(contex) print("hash;;;;;;;;>>",hash) request.session["original_script_file_hash"] = hash # ::::::::::::: # print("filename................................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...................>>>>>>>>>>>>>>>>..", filename) # print(filename.name) request.session["script_name"] = filename file_url = str(BASE_DIR) + "/media/scripts/" + filename print("file_url", file_url) request.session["script_url"] = file_url with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("f: " + str(file_url) + "\n") # used because get_subset_character_script needs file dir request.session["script_dir_url"] = str(BASE_DIR) + "/media/scripts/" print("harsh") try: # print("Entered Try *&*&*&*&*&") # formInput = getInputs(file_url) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("In Try block" + "\n") print("entered Try :::::::::::::::") formInput = getInputs(file_url) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("form data: " + str(formInput ) + "\n") dial_src_script = formInput[2] with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("dial_src_script data: " + str(dial_src_script ) + "\n") dial_src_lang = formInput[1] with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("dial_src_langa: " + str(dial_src_lang ) + "\n") non_dial_src_lang = formInput[0] with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("non_dial_src_lang: " + str(non_dial_src_lang ) + "\n") non_dial_src_script = formInput[3] with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("non_dial_src_script: " + str(non_dial_src_script ) + "\n") print("done") request.session["dial_src_script"] = dial_src_script request.session["dial_src_lang"] = dial_src_lang request.session["non_dial_src_lang"] = non_dial_src_lang request.session["non_dial_src_script"] = non_dial_src_script except: error = "Could not process this type of file" return render(request, "Pitchdeck/Pitchnarrate1.html", {"error": error}) print("character started") checkedopt = [] # print(request.POST.get("line_by_line_narration")) request.session["line_by_line_narration"] = request.POST.get( "line_by_line_narration" ) request.session["character_introduction"] = request.POST.get( "character_introduction" ) request.session["screenplay_analysis"] = request.POST.get( "screenplay_analysis") request.session["one_pager"] = request.POST.get("one_pager") request.session["elevator_pitch"] = request.POST.get("elevator_pitch") request.session["character_narration"] = request.POST.get( "character_narration") print("charWise") print(request.session["character_narration"]) services_use = [] if request.session["line_by_line_narration"] == "Line by Line Narration(Video)": print(request.session["line_by_line_narration"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Line by line1: " + str(request.session["line_by_line_narration"]) + "\n") services_use.append("Line by Line Narration") if request.session["character_introduction"] == "Character Introduction(Video)": print(request.session["character_introduction"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Character introduction1: " + str(request.session["character_introduction"]) + "\n") services_use.append("Character Introduction") if request.session["screenplay_analysis"] == "Screenplay Analysis(Video)": print(request.session["screenplay_analysis"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Screenplay analysis1: " + str(request.session["screenplay_analysis"]) + "\n") services_use.append("Screenplay Analysis") if request.session["elevator_pitch"] == "Elevator Pitch(Video)": print(request.session["elevator_pitch"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Elevator pitch1: " + str(request.session["elevator_pitch"]) + "\n") services_use.append("Elevator Pitch") if request.session["one_pager"] == "One Pager(PDF)": print(request.session["one_pager"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("One pager1: " + str(request.session["one_pager"]) + "\n") services_use.append("One Pager") if request.session["character_narration"] == "Characterwise Narration(Video)": print(request.session["character_narration"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Character narration1: " + str(request.session["character_narration"]) + "\n") services_use.append("Characterwise Narration") input_dir = str(BASE_DIR) + "/media/scripts/" input_filename = filename print("----------OM----------") print(input_dir) #----------------------modified audit part input_script_path = os.path.join(input_dir,input_filename) #paveen print("input_script_path:::::::::::", input_script_path) script_id_audit = generate_script_id_for_pitchdeck(input_script_path,request) request.session["script_id_audit"] = script_id_audit print('Yameenmrequest.session["script_id_audit"]', request.session["script_id_audit"]) print("neutral audit started---------------") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("1.neutral audit started---------------" + "\n") try: neutral_aud = NeutralAudit(script_id_audit) print("neutral audit ended-----------") char_lst = neutral_aud.get_character_list() except: char_lst = None error = "Our Services are currently not available" return render(request, "Pitchdeck/Pitchnarrate1.html", {"error": error}) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("char list ended-------------------------" + "\n") print("2.neutral audit ended-------------------------") print("HERE IS THE CHARACTER SUBSET",str(char_lst)) # dist_audit_character_subset = script_audit_obj.get_character_subset(char_list) char_list = char_lst #---------------------------------------------end-------------------------- with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("3.LIST of CHARACTERS: " + str(char_list) + "\n") # print("dist_audit_character_subsetyameen",dist_audit_character_subset) # request.session["dist_audit_character_subset"] = dist_audit_character_subset # char_list = mnf_ss.get_character_list(input_dir, input_filename) print("char_list________________________________________________",char_list) request.session["saved_characters_list"] = list(char_list) print("get_character_list done") numPages = countPages(file_url, file_url.rsplit( "/", 1)[1].rsplit(".", 1)[0] + ".pdf") print("no of page", numPages) # if numPages > 5: # try: # membertype = privilegedUser1.objects.filter(user=request.user, is_active="yes") # print("neha privalige", membertype) # char_list1 = list(char_list) # if len(char_list1) > 2: # newlist = char_list1[0:2] # else: # newlist = char_list1 # no_of_char = len(newlist) # print("........",newlist) # print(">>>>>>>>>>>>>charlenght",no_of_char) # if no_of_char == 1: # return render( # request, # "Pitchdeck/Pitchnarrate2.html", # { # "script": filename[:-5], # "character_list": char_list1, # "numberofcharacter": len(char_list1), # "firstcharacter": newlist[0], # "five_character": newlist, # "cd": centralDatabase.objects.get(user_id=request.user), # "numPages": numPages, # "user_name": request.user.username, # "user_email": request.user.email, # "services_use": services_use, # "services_len": len(services_use), # # "script_database": script_database # }, # ) # else: # return render( # request, # "Pitchdeck/Pitchnarrate2.html", # { # "script": filename[:-5], # "character_list": char_list1, # "numberofcharacter": len(char_list1), # "firstcharacter": newlist[0], # "secondcharacter": newlist[1], # "five_character": newlist, # "cd": centralDatabase.objects.get(user_id=request.user), # "numPages": numPages, # "user_name": request.user.username, # "user_email": request.user.email, # "services_use": services_use, # "services_len": len(services_use), # # "script_database": script_database # }, # ) # except: # messages.error(request, "You are not a privileged member.") # print("@@@@@@@@ privileged member nahi hai hai @@@@@@@@@@@@@@@@") # return render(request, "Pitchdeck/Pitchnarrate1.html") # # return redirect("payment") # else: char_list1 = list(char_list) print("char_list", char_list1) if len(char_list1) > 2: newlist = char_list1[0:2] else: newlist = char_list1 no_of_char = len(newlist) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Number of char pitchnarrate1: " + str(no_of_char) + "\n") print("characater lenght ",no_of_char) if no_of_char != 0: if no_of_char == 1: print("no_of_char == 1") return render( request, "Pitchdeck/Pitchnarrate2.html", { "script": filename[:-5], "character_list": char_list1, "firstcharacter": newlist[0], "numberofcharacter": len(char_list1), "five_character": newlist, "cd": centralDatabase.objects.get(user_id=request.user), "numPages": numPages, "user_name": request.user.username, "user_email": request.user.email, "services_use": services_use, "services_len": len(services_use), # "script_database": script_database }, ) else: print("no_of_char, else",) return render( request, "Pitchdeck/Pitchnarrate2.html", { "script": filename[:-5], "character_list": char_list1, "numberofcharacter": len(char_list1), "firstcharacter": newlist[0], "secondcharacter": newlist[1], "five_character": newlist, "cd": centralDatabase.objects.get(user_id=request.user), "numPages": numPages, "user_name": request.user.username, "user_email": request.user.email, "services_use": services_use, "services_len": len(services_use), # "script_database": script_database }, ) else: error = "Sorry something went wrong while fetching The characters from script" return render(request, "Pitchdeck/Pitchnarrate1.html", {"error": error}) print("Return to page one") return render(request,"Pitchdeck/Pitchnarrate1.html",{"context":number}) @login_required(login_url="/") def Pitchnarrate2(request): # number = ReferUser.objects.filter(refferedy=request.user).count() print("Delhi India****************************************: 2") print(request.session) print(request.session.items()) MNFScriptDatabase1 = {} if request.method == "GET": print("Delhigetting") if request.method == "POST": l = request.session["saved_characters_list"] print(f"saved characters: {l}") y = MNFScriptDatabase() y.script_id = "scr_" + str(int(time.time())) blockchainscript_id = int(time.time()) request.session["blockchainscript_id"]=blockchainscript_id print("we are printing script id",y.script_id) y.connecting_id = "" connecting_id = "" # y.author_name = request.POST.get('author_name') y.script_title = request.POST.get("scriptname") script_title = request.POST.get("scriptname") url = request.session.get("script_url") script_filename = request.session["script_name"] # get the filename y.document_name = script_filename # save the filename document_name = script_filename print(script_filename) script_page_count = countPages( url, (((script_filename.split("/"))[-1]).split("."))[0] + ".pdf" ) # get the page count print("neha1155op") print(script_page_count) y.numPages = script_page_count # save the page count # y.script_title = request.POST['script_title'] numPages = script_page_count y.script_file_path = url script_file_path = url y.actionline_language = request.session["non_dial_src_lang"] actionline_language = request.session["non_dial_src_lang"] y.actionline_script_language = request.session["non_dial_src_script"] actionline_script_language = request.session["non_dial_src_script"] y.dialogues_script_language = request.session["dial_src_script"] dialogues_script_language = request.session["dial_src_script"] y.dialogues_language = request.session["dial_src_lang"] dialogues_language = request.session["dial_src_lang"] request.session["line_by_line_narration"] = request.POST.get( "line_by_line_narration" ) request.session["character_introduction"] = request.POST.get( "character_introduction" ) request.session["screenplay_analysis"] = request.POST.get( "screenplay_analysis") request.session["one_pager"] = request.POST.get("one_pager") request.session["elevator_pitch"] = request.POST.get("elevator_pitch") request.session["character_narration"] = request.POST.get( "character_narration") print(request.session["character_narration"]) print(request.session["line_by_line_narration"]) print(request.session["screenplay_analysis"]) print(request.session["one_pager"]) print(request.session["elevator_pitch"]) service_use = [] if request.session["line_by_line_narration"] == "Line by Line Narration(Video)": print(request.session["line_by_line_narration"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Line by Line narration: " + str(request.session["line_by_line_narration"]) + "\n") y.linebyline = "True" MNFScriptDatabase1["linebyline"] = "True" service_use.append("Line by Line Narration") if request.session["character_introduction"] == "Character Introduction(Video)": print(request.session["character_introduction"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Character introduction: " + str(request.session["character_introduction"]) + "\n") y.character_intro = "True" MNFScriptDatabase1["character_intro"] = "True" service_use.append("Character Introduction") if request.session["screenplay_analysis"] == "Screenplay Analysis(Video)": print(request.session["screenplay_analysis"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Screenplay analysis: " + str(request.session["screenplay_analysis"]) + "\n") y.screenplay_analysis = "True" MNFScriptDatabase1["screenplay_analysis"] = "True" service_use.append("Screenplay Analysis") if request.session["elevator_pitch"] == "Elevator Pitch(Video)": print(request.session["elevator_pitch"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Elevator Pitch: " + str(request.session["elevator_pitch"]) + "\n") y.elevator_pitch = "True" MNFScriptDatabase1["elevator_pitch"] = "True" service_use.append("Elevator Pitch") if request.session["one_pager"] == "One Pager(PDF)": print(request.session["one_pager"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("One pager: " + str(request.session["one_pager"]) + "\n") y.onepager = "True" MNFScriptDatabase1["one_pager"] = "True" service_use.append("One Pager") if request.session["character_narration"] == "Characterwise Narration(Video)": print(request.session["character_narration"]) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Character narration: " + str(request.session["character_narration"]) + "\n") y.characterwise_narration = "True" MNFScriptDatabase1["characterwise_narration"] = "True" service_use.append("Characterwise Narration") y.user_id = request.user user_id = request.user # print("userid session") # y.progress = 10 request.session["service_use"]=len(service_use) y.save() MNFScriptDatabase1["user_id_id"] = str(user_id) MNFScriptDatabase1["blockchainscript_id"] = blockchainscript_id MNFScriptDatabase1["script_title"] = script_title MNFScriptDatabase1["script_filename"]= script_filename MNFScriptDatabase1["actionline_language"] = actionline_language MNFScriptDatabase1["actionline_script_language"] = actionline_script_language MNFScriptDatabase1["dialogues_language"] = dialogues_language MNFScriptDatabase1["dialogues_script_language"] = dialogues_script_language MNFScriptDatabase1["document_name"] = document_name MNFScriptDatabase1["script_file_path"] = script_file_path MNFScriptDatabase1["original_script_file_hash"] = request.session["original_script_file_hash"] # xx = PitchVectorMultiAuthor() pitchvector1={} x = PitchVector() x.choosescript = request.session["script_name"] x.scriptDetails = y x.script_id = y.script_id x.scriptname = y.script scriptname = y.script x.genre = request.POST.get("genre") genre = request.POST.get("genre") x.subGenre = request.POST.get("subgenre") subGenre = request.POST.get("subgenre") x.projecttype = request.POST.get("projecttype") projecttype = request.POST.get("projecttype") x.noepisodes = request.POST.get("nepisode") noepisodes = request.POST.get("nepisode") x.eachepisodes = request.POST.get("eachepisode") eachepisodes = request.POST.get("eachepisode") x.other = request.POST.get("other") other = request.POST.get("other") x.language = request.POST.get("language") language = request.POST.get("language") x.dialect_language = request.POST.get( "dialect_language") # ---------changes dialect_language = request.POST.get( "dialect_language") x.platformproposed = request.POST.get("proposed") platformproposed = request.POST.get("proposed") x.country = request.POST.get("country") country = request.POST.get("country") x.countryCode = request.POST.get("code") countryCode = request.POST.get("code") x.state = request.POST.get("state") state = request.POST.get("state") x.city = request.POST.get("city") city = request.POST.get("city") x.languagebelt = request.POST.get("langugebelt") languagebelt = request.POST.get("langugebelt") x.target_audience = request.POST.get("target") target_audience = request.POST.get("target") x.target_field = request.POST.get("field") target_field = request.POST.get("field") x.timeperiod = request.POST.get("period") timeperiod = request.POST.get("period") x.geography = request.POST.get("geography") geography = request.POST.get("geography") x.dialogue_reference = request.POST.get("dialogue") dialogue_reference = request.POST.get("dialogue") x.premise = request.POST.get("premise") premise = request.POST.get("premise") x.logline = request.POST.get("logline") logline = request.POST.get("logline") x.save() # y.progress = 20 # y.save() # manoj - store data to central database cd = centralDatabase.objects.get(user_id=request.user) cd.country = x.country cd.state = x.state cd.city = x.city cd.project_type = x.projecttype cd.genre = x.genre cd.subgenre = x.subGenre cd.language = x.language cd.set_in_time = x.timeperiod cd.set_in_geography = x.geography cd.logline = x.logline with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("disct "+ str(pitchvector1)+ "\n") # #CharacterWise Narration print(request.POST.getlist("`character_check`")) if request.POST.get("characterwise"): selected_characters = request.POST.getlist("character_check") # replace " " with "_" as uncove docx to pdf conversion was given error # for i in range(len(selected_characters)): # if " " in selected_characters[i]: # selected_characters[i] = selected_characters[i].replace(" ","_") x.set_selected_characters(selected_characters) y.set_selected_characters(selected_characters) print( f"selected characters: {x.get_selected_characters()} type: {type(x.get_selected_characters())}" ) # # Author details if request.POST.get("author"): # authorss = [] # # xx.script_id = y.script_id # # xx.save() # print("request.POST.getlist('name')",request.POST.getlist('name')) # print("request.POST.getlist('auth_name')",request.POST.getlist('auth_name')) # print("request.POST.getlist('auth_name') len", len(request.POST.getlist('auth_name'))) # print("request.FILES.getlist('uploadimage1')[i]",request.FILES.getlist('uploadimage1')) # zips = zip_longest(request.POST.getlist('name'), request.POST.getlist('email'),request.POST.getlist('number'),request.POST.getlist('link'),request.FILES.getlist('uploadimage1'),request.POST.getlist('about')) # print("::::::::::::::zip:::::::::::",set(zips)) # # for i in range(len(request.POST.getlist('name'))): # # author = { # # 'name': request.POST.getlist('name')[i], # # 'email': request.POST.getlist('email')[i], # # 'phone': request.POST.getlist('number')[i], # # 'link': request.POST.getlist('link')[i], # # 'image': request.FILES.getlist('uploadimage1')[i], # # 'about': request.POST.getlist('about')[i], # # } # # authorss.append(author) # for name, email, number, link, img, about in zip_longest(request.POST.getlist('name'), request.POST.getlist('email'),request.POST.getlist('number'),request.POST.getlist('link'),request.FILES.getlist('uploadimage1'),request.POST.getlist('about')): # author = { # 'name': name, # 'email': email, # 'phone': number, # 'link': link, # 'image': img, # 'about': about, # } # authorss.append(author) # # name_obj = Name.objects.create(name=name) # # xx.names.add(name_obj) # # xx.save() # print("::::::::::::::::::--> authorss <--::::::::::::::::::",authorss) # # l = request.FILES.getlist('uploadimage')[5] # # lst = global_database.DB['mnfapp_pitchvector'] x.author = True author = True x.name = request.POST.get("auth_name") name = request.POST.get("auth_name") y.author_name = request.POST.get("auth_name") author_name = request.POST.get("auth_name") y.save() x.author_profile = request.FILES.get("uploadimage") x.author_email = request.POST.get("email") x.phonenumber = request.POST.get("number") x.author_about = request.POST.get("about") x.author_link = request.POST.get("link") x.save() # Blockchain Data MNFScriptDatabase1["author_name"] = author_name # central database cd.about = x.author_about x.author1 = [ x.author_profile, request.POST.get("auth_name"), request.POST.get("about"), request.POST.get("number"), request.POST.get("email"), request.POST.get("link"), ] auth_name = request.POST.get("auth_name") # store session variable request.session["author_name"] = auth_name auth_img = request.FILES.get("uploadimage") auth_email = request.POST.get("email") auth_phone = request.POST.get("number") auth_about = request.POST.get("about") auth_link = request.POST.get("link") print( auth_email, auth_about, auth_img, auth_link, auth_name, auth_phone, "====================Author Details Here===========================", ) created_author = Author.objects.create( author_profile=auth_img, name=auth_name, author_about=auth_about, author_email=auth_email, phonenumber=auth_phone, author_link=auth_link, ) # if auth_img: # created_author.author_profile = request.FILES.get("uploadimage") # created_author.save() x.author_details.add(created_author) print(created_author, "000000000000000000000000000000000") x.save() # # Plot and story flow if request.POST.get("plot_story_flow"): x.plot_story_flow = True plot_story_flow = True x.protagonist = request.POST.get("protagonist") x.barrier = request.POST.get("barrier") x.midpoint = request.POST.get("midpoint") x.climax = request.POST.get("climax") x.conflictresolved = request.POST.get("resolved") x.minute_protogonist = request.POST.get("minute_pro") x.conflict_reaches_climax = request.POST.get("conflict") x.save() # Blockchain # # About shooting if request.POST.get("shooting"): x.shooting = True x.special_preperation = request.POST.get("specialpre") x.days_shoot_required = request.POST.get("shoot") x.percentage_location = request.POST.get("location") x.percentage_scene = request.POST.get( "scene" ) # percentage of scenes having stunts percentage_scene = request.POST.get( "scene" ) x.major_prosthetic = request.POST.get("major") x.during_production = request.POST.get("during_pro") x.save() # Dream cast & Locations if request.POST.get("dream_cast_locations"): x.dream_cast_locations = True dream_cast_locations = True x.upload_image1 = request.FILES.get("uploadimage1") upload_image1 = request.FILES.get("uploadimage1") x.leadcharacter = [ request.POST.get("leadcharacter"), request.POST.get("proposedactor1"), x.upload_image1, ] leadcharacter = [ request.POST.get("leadcharacter"), request.POST.get("proposedactor1"), upload_image1, ] # x.leadcharacter = request.POST.get('leadcharacter') # x.proposedactor1 = request.POST.get('proposedactor1') x.upload_image2 = request.FILES.get("uploadimage2") upload_image2 = request.FILES.get("uploadimage2") x.secondleadcharacter = [ request.POST.get("secondleadcharacter"), request.POST.get("proposedactor2"), x.upload_image2, ] secondleadcharacter = [ request.POST.get("secondleadcharacter"), request.POST.get("proposedactor2"), upload_image2, ] # x.secondleadcharacter = request.POST.get('secondleadcharacter') # x.proposedactor2 = request.POST.get('proposedactor2') x.upload_image3 = request.FILES.get("uploadimage3") upload_image3 = request.FILES.get("uploadimage3") x.mainvillan = [ request.POST.get("mainvillan"), request.POST.get("proposedactor3"), x.upload_image3, ] mainvillan = [ request.POST.get("mainvillan"), request.POST.get("proposedactor3"), upload_image3, ] # x.mainvillan = request.POST.get('mainvillan') # x.proposedactor3 = request.POST.get('proposedactor3') x.upload_image4 = request.FILES.get("uploadimage4") upload_image4 = request.FILES.get("uploadimage4") x.associatecharacter = [ request.POST.get("associatecharacter"), request.POST.get("proposedactor4"), x.upload_image4, ] associatecharacter = [ request.POST.get("associatecharacter"), request.POST.get("proposedactor4"), upload_image4, ] # x.proposedactor4 = request.POST.get('proposedactor4') x.upload_image5 = request.FILES.get("uploadimage5") upload_image5 = request.FILES.get("uploadimage5") x.associatevillan = [ request.POST.get("associatevillan"), request.POST.get("proposedactor5"), x.upload_image5, ] associatevillan = [ request.POST.get("associatevillan"), request.POST.get("proposedactor5"), upload_image5, ] # x.proposedactor5 = request.POST.get('proposedactor5') x.upload_image6 = request.FILES.get("uploadimage6") upload_image6 = request.FILES.get("uploadimage6") x.firstlocation = [ request.POST.get("firstlocation"), request.POST.get("proposedactor6"), x.upload_image6, ] firstlocation = [ request.POST.get("firstlocation"), request.POST.get("proposedactor6"), upload_image6, ] x.upload_image7 = request.FILES.get("uploadimage7") upload_image7 = request.FILES.get("uploadimage7") x.secondlocation = [ request.POST.get("secondlocation"), request.POST.get("proposedactor7"), x.upload_image7, ] secondlocation = [ request.POST.get("secondlocation"), request.POST.get("proposedactor7"), upload_image7, ] # Pager_function # x.proposedactor7 = request.POST.get('proposedactor7') x.upload_image8 = request.FILES.get("uploadimage8") upload_image8 = request.FILES.get("uploadimage8") x.thirdlocation = [ request.POST.get("thirdlocation"), request.POST.get("proposedactor8"), x.upload_image8, ] if request.session["character_introduction"] == "Character Introduction(Video)": extraCharData = [] for charName, purposeActor, image in zip_longest(request.POST.getlist('character_list'), request.POST.getlist('proposed_actor_list'),request.FILES.getlist('upload_image_list')): charData = { "name": charName, "purpose_actor": purposeActor, "image": str(image) } extraCharData.append(charData) print("$$$$$$$$$$$$$$______extraCharData______$$$$$$$$$$$$$$", extraCharData) x.upload_image6 = str(extraCharData) upload_image6 = str(extraCharData) pitchvector1["upload_image6 "]=upload_image6 x.save() # x.proposedactor8 = request.POST.get('proposedactor8') x.save() # # About Film budget if request.POST.get("film_budget"): x.film_budget = True film_budget = True # x.making_expenses = request.POST.get("expense") x.percentage_scenes_required = request.POST.get("percentage_vfx") # x.vfx_expenses = request.POST.get("vfx") x.approx_budget_required = request.POST.get("approx_budget") # ---------------------changes by neha 18/03/23 # x.making_expenses_currency = request.POST.get("projectbudget1") # x.vfx_expenses_currency = request.POST.get("projectbudget2") x.approx_budget_currency = request.POST.get("projectbudget3") # --------end x.save() # cd.budget_amount = x.approx_budget_required # # Strengths & Expectations if request.POST.get("strengths_and_expectation"): x.strengths_and_expectation = True x.script_succed = request.POST.get("succed") x.produced_now = request.POST.get("produce_now") x.monetary_non_monetary_expectation = request.POST.get( "expectations") x.save() cd.save() # return render(request,"Pitchdeck/PitchnarratedVideos.html",{"script_id": y.script_id,"script_file_path": "","restrict_to_five": "Yes",},) # altered line # -----BY HARSH # try: # membertype = privilegedUser1.objects.get( # user=request.user, is_active="yes" # ).memberType # except: # messages.error(request, "You are not a privileged member.") # return render(request, "Pitchdeck/Pitchnarrate1.html") request.session["script_id"] = y.script_id script_id=request.session["script_id"] request.session["numPages"] = y.numPages request.session["actionline_language"] = y.actionline_language request.session["actionline_script_language"] = y.actionline_script_language request.session["dialogues_language"] = y.dialogues_language request.session["dialogues_script_language"] = y.dialogues_script_language request.session["languages"] = [ y.actionline_language, y.dialogues_language] request.session["document_name"] = y.document_name request.session["script_title"] = y.script_title request.session["script_file_path"] = y.script_file_path context = { "script_id": y.script_id, "script_file_path": y.script_file_path, } context["restrict_to_five"] = "yes" context["numPages"] = y.numPages context['script_title'] = y.script_title context["ndial_src"] = y.actionline_language context["dial_src"] = y.dialogues_language context["ndial_script"] = y.actionline_script_language context["dial_script"] = y.dialogues_script_language # y.progress = 40 y.save() # Blockchain code by Asha.. request.session["pitchvector1"] = str(pitchvector1) request.session["MNFScriptDatabase1"] = str(MNFScriptDatabase1) # ::::::::::::: # x = User.objects.get(id=request.user) # id = x.id id = request.user.id num_pages = request.session["numPages"] print("did lil chanps1", num_pages) # ---------------------------------------changes if num_pages > 5: # check user is priviledged member or not if not privilegedUser1.objects.filter(user=request.user,is_active="yes").exists(): with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Not a privilage user"+ str(privilegedUser1.objects.filter(user=request.user,is_active="yes"))+ "\n") context["membershipNarration"] = int(settings.MONTHLY_MEMBER) request.session["UpdatePriviledgedUser"] = True # try: # lasto = privilegedUser1.objects.last() # privilegedUser1.objects.create( # id=int(lasto.id) + 1, # user=user_id, # is_active="yes", # transactionId=payment_id, # memberType="normal", # months=1 # ) # except: # pass pricelist = NarrationPricing(y.script_id, l, id) print("pricelist in pre",pricelist) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("4."+ str(pricelist)+ "\n") request.session["total_amount"] = pricelist["total_amount"] context["total_amount"] = pricelist["total_amount"] context["amount_charged"] = pricelist["amount_charged"] + int(settings.MONTHLY_MEMBER) request.session["amount_charged"] = pricelist["amount_charged"] + int(settings.MONTHLY_MEMBER) # context["discount"] = context["total_amount"] + context["membershipNarration"] - context["amount_charged"] # request.session["discount"]=round(context["discount"], 2) # context["discount"] = request.session["discount"] pdiscount= 0 context["pdiscount"] = pdiscount context["sdiscount"] = pricelist["sdiscount"] with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("5.stafff discount-------------------" + str(context["sdiscount"]) + "\n") if pricelist["sdiscount"]==0: context["staff_discount_calculate"] = 0 else: staff_discount_calculate = float((pricelist["sdiscount"] / 100) * pricelist["total_amount"]) context["staff_discount_calculate"] = staff_discount_calculate p_discount_calculate = float((context["total_amount"]-context["staff_discount_calculate"])*pricelist["pdiscount"] / 100) context["p_discount_calculate"] = p_discount_calculate context["rdiscount"] = pricelist["rdiscount"] running_discount_calculate = float((context["total_amount"]-context["staff_discount_calculate"]-context["p_discount_calculate"])*context["rdiscount"]/ 100) context["running_discount_calculate"] = running_discount_calculate context["imdiscount"] = pricelist["imdiscount"] im_discount_calculate = float((context["total_amount"]-context["staff_discount_calculate"]-context["p_discount_calculate"]-context["running_discount_calculate"])*pricelist["imdiscount"]/ 100) context["im_discount_calculate"] =round(im_discount_calculate,2) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("5.student discount-------------------" + str(context["im_discount_calculate"]) + "\n") # context["discount"] = context["total_amount"] - \ # context["amount_charged"] # context["discount"]= context["amount_charged"]+ context["p_discount_calculate"]+ context["staff_discount_calculate"]+ context["running_discount_calculate"]+ context["im_discount_calculate"] context["discount"] = float(context["staff_discount_calculate"]+context["p_discount_calculate"]+context["running_discount_calculate"]+context["im_discount_calculate"]) request.session["discount"]=round(context["discount"], 2) context["discount"] = request.session["discount"] print("did lil chanps0") try: wall = Wallet.objects.get(user=request.user) context["balance"] = wall.balance except: context["balance"] = -1 with open(f"{basePath}/MNF/json_keys/conversionRates.json") as c: curr = json.load(c) try: rate = curr["rates"]["INR"] # c = CurrencyRates() # rate = c.get_rate("USD", str(currency.upper())) except Exception as e: print("checkout error", e) rate = 80 context["rate"] = rate print("did lil chanps2") request.session["pages_greater_than_five"] = "true" indent_context = create_indent(request,"Pitchdeck",script_id,len(service_use), "",pricelist["total_amount"], pricelist["amount_charged"],context["discount"]) request.session["indent_context"] = indent_context return render(request, "Pitchdeck/narration_checkoutnew.html", context) else: request.session["UpdatePriviledgedUser"] = False pricelist = NarrationPricing(y.script_id, l, id) # changes done by manoj print("pricelist in post",pricelist) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("5." + str(pricelist) + "\n") request.session["total_amount"] = pricelist["total_amount"] context["total_amount"] = pricelist["total_amount"] context["membershipNarration"] = 0 context["amount_charged"] = pricelist["amount_charged"] request.session["amount_charged"] = pricelist["amount_charged"] context["pdiscount"] = pricelist["pdiscount"] context["sdiscount"] = pricelist["sdiscount"] with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("5.stafff discount-------------------" + str(context["sdiscount"]) + "\n") if pricelist["sdiscount"]==0: context["staff_discount_calculate"] = 0 else: staff_discount_calculate = float((pricelist["sdiscount"] / 100) * pricelist["total_amount"]) context["staff_discount_calculate"] = staff_discount_calculate p_discount_calculate = float((context["total_amount"]-context["staff_discount_calculate"])*pricelist["pdiscount"] / 100) context["p_discount_calculate"] = p_discount_calculate context["rdiscount"] = pricelist["rdiscount"] running_discount_calculate = float((context["total_amount"]-context["staff_discount_calculate"]-context["p_discount_calculate"])*context["rdiscount"]/ 100) context["running_discount_calculate"] = running_discount_calculate context["imdiscount"] = pricelist["imdiscount"] im_discount_calculate = float((context["total_amount"]-context["staff_discount_calculate"]-context["p_discount_calculate"]-context["running_discount_calculate"])*pricelist["imdiscount"]/ 100) context["im_discount_calculate"] =round(im_discount_calculate,2) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("5.student discount-------------------" + str(context["im_discount_calculate"]) + "\n") # context["discount"] = context["total_amount"] - \ # context["amount_charged"] # context["discount"]= context["amount_charged"]+ context["p_discount_calculate"]+ context["staff_discount_calculate"]+ context["running_discount_calculate"]+ context["im_discount_calculate"] context["discount"] = float(context["staff_discount_calculate"]+context["p_discount_calculate"]+context["running_discount_calculate"]+context["im_discount_calculate"]) request.session["discount"]=round(context["discount"], 2) context["discount"] = request.session["discount"] try: wall = Wallet.objects.get(user=request.user) context["balance"] = wall.balance except: context["balance"] = -1 with open(f"{basePath}/MNF/json_keys/conversionRates.json") as c: curr = json.load(c) try: rate = curr["rates"]["INR"] # c = CurrencyRates() # rate = c.get_rate("USD", str(currency.upper())) except Exception as e: print("checkout error", e) rate = 80 context["rate"] = rate print("did lil chanps2") request.session["pages_greater_than_five"] = "true" indent_context = create_indent(request,"Pitchdeck",script_id,len(service_use), "",pricelist["total_amount"], pricelist["amount_charged"],context["discount"]) request.session["indent_context"] = indent_context return render(request, "Pitchdeck/narration_checkoutnew.html", context) else: print("did lil chanps3") request.session["pages_greater_than_five"] = "false" context = { "script_id": request.session["script_id"], "script_file_path": request.session["script_file_path"], "restrict_to_five": "no", "servies_user":service_use, "servies_user_length" : len(service_use), } return render(request, "Pitchdeck/PitchnarratedVideos.html", context) # ---------------------------------end change return render( request, "Pitchdeck/Pitchnarrate2.html", {"cd": centralDatabase.objects.get(user_id=request.user)}, ) def NarrationPricing(script_id, l, u): script_info = MNFScriptDatabase.objects.get(script_id=script_id) vector_info = PitchVector.objects.get(script_id=script_id) numPages = script_info.numPages amt_linebyline = 0 amt_character_intro = 0 amt_screenplay_analysis = 0 amt_elevator_pitch = 0 amt_onepager = 0 amt_characterwise_narration = 0 if script_info.linebyline == "True": amt_linebyline = settings.LINE_BY_LINE * numPages if script_info.onepager == "True": # amt_onepager = settings.ONE_PAGER if numPages > 0 and numPages <= 15: amt_onepager = settings.ONE_PAGER1 if numPages >= 16 and numPages <= 50: amt_onepager = settings.ONE_PAGER2 if numPages >= 51 and numPages <= 100: amt_onepager = settings.ONE_PAGER3 if numPages > 100: amt_onepager = settings.ONE_PAGER4 if script_info.elevator_pitch == "True": # amt_elevator_pitch = settings.ELEVATOR_PITCH if numPages > 0 and numPages <= 15: amt_elevator_pitch = settings.ELEVATOR_PITCH1 if numPages >= 16 and numPages <= 50: amt_elevator_pitch = settings.ELEVATOR_PITCH2 if numPages >= 51 and numPages <= 100: amt_elevator_pitch = settings.ELEVATOR_PITCH3 if numPages > 100: amt_elevator_pitch = settings.ELEVATOR_PITCH4 if script_info.screenplay_analysis == "True": if numPages > 0 and numPages <= 15: amt_screenplay_analysis = settings.SCREENPLAY_ANALYSIS1 if numPages >= 16 and numPages <= 50: amt_screenplay_analysis = settings.SCREENPLAY_ANALYSIS2 if numPages >= 51 and numPages <= 100: amt_screenplay_analysis = settings.SCREENPLAY_ANALYSIS3 if numPages > 100: amt_screenplay_analysis = settings.SCREENPLAY_ANALYSIS4 if script_info.character_intro == "True": # amt_character_intro = len(l) * settings.CHARACTER_INTRODUCTION if numPages > 0 and numPages <= 15: amt_character_intro = settings.CHARACTER_INTRODUCTION1 if numPages >= 16 and numPages <= 50: amt_character_intro = settings.CHARACTER_INTRODUCTION2 if numPages >= 51 and numPages <= 100: amt_character_intro = settings.CHARACTER_INTRODUCTION3 if numPages > 100: amt_character_intro = settings.CHARACTER_INTRODUCTION4 if script_info.characterwise_narration == "True": # selected_character = vector_info.selected_characters # selected_character = json.loads(selected_character) # amt_characterwise_narration = ( # len(selected_character) * settings.CHARACTERWISE_NARATION # ) amt_characterwise_narration = settings.CHARACTERWISE_NARATION * numPages total_amount = ( amt_linebyline + amt_onepager + amt_elevator_pitch + amt_screenplay_analysis + amt_character_intro + amt_characterwise_narration ) amount_charged = total_amount # ----To calculate if package discount is available if ( script_info.linebyline == "True" and script_info.onepager == "True" and script_info.elevator_pitch == "True" and script_info.screenplay_analysis == "True" and script_info.character_intro == "True" and script_info.characterwise_narration == "True" ): amount_charged = total_amount - ( total_amount * settings.COMPLETE_PITCHDECK / 100 ) if ( script_info.linebyline != "True" and script_info.onepager == "True" and script_info.elevator_pitch == "True" and script_info.screenplay_analysis != "True" and script_info.character_intro != "True" and script_info.characterwise_narration != "True" ): amount_charged = total_amount - ( total_amount * settings.ONEPAGER_ELEVATORPITCH / 100 ) if ( script_info.linebyline != "True" and script_info.onepager != "True" and script_info.elevator_pitch != "True" and script_info.screenplay_analysis == "True" and script_info.character_intro == "True" and script_info.characterwise_narration != "True" ): amount_charged = total_amount - ( total_amount * settings.SCREENPLAY_CHARACTERINTRO / 100 ) if ( script_info.linebyline == "True" and script_info.onepager != "True" and script_info.elevator_pitch != "True" and script_info.screenplay_analysis == "True" and script_info.character_intro == "True" and script_info.characterwise_narration != "True" ): amount_charged = total_amount - ( total_amount * settings.LBL_SCREENPLAY_CHARACTERINTRO / 100 ) pricelist = { "total_amount": total_amount, "amt_linebyline": amt_linebyline, "amt_character_intro": amt_character_intro, "amt_screenplay_analysis": amt_screenplay_analysis, "amt_elevator_pitch": amt_elevator_pitch, "amt_onepager": amt_onepager, "amt_characterwise_narration": amt_characterwise_narration, "pdiscount":int(0), } # ------To calculate priviledge discount user = User.objects.get(id=u) # manoj updated code for priviledged user try: memberType = privilegedUser1.objects.filter(user=user, is_active="yes") # changes done by manoj if memberType: memberType = memberType.first().memberType if memberType == "normal": pricelist["pdiscount"] = 0 elif memberType == "yearly": pricelist["pdiscount"] = settings.YEARLY_MEMBER_ADDITIONAL amount_charged = amount_charged - ( settings.YEARLY_MEMBER_ADDITIONAL * amount_charged / 100 ) elif memberType == "Life Member": pricelist["pdiscount"] = settings.LIFE_MEMBER_ADDITIONAL amount_charged = amount_charged - ( settings.LIFE_MEMBER_ADDITIONAL * amount_charged / 100 ) except: pricelist["pdiscount"] = 0 pricelist["sdiscount"] = 0 if User.objects.get(id=u).is_staff: # changes done by manoj pricelist["sdiscount"] = settings.EMPLOY_DISCOUNT amount_charged = amount_charged - ( settings.EMPLOY_DISCOUNT * amount_charged / 100 ) pricelist["rdiscount"] = settings.RUNNING_DISCOUNT_PITCHDECK amount_charged = amount_charged - ( settings.RUNNING_DISCOUNT_PITCHDECK * amount_charged / 100 ) pricelist["imdiscount"] = 0 # changes done by manoj if Institutional_user.objects.filter(user=user, status="verified").exists(): pricelist["imdiscount"] = settings.IM_DISCOUNT amount_charged = amount_charged - \ (settings.IM_DISCOUNT * amount_charged / 100) pricelist["amount_charged"] = float(round(amount_charged, 2)) return pricelist # @csrf_exempt # @require_GET # def Pitch_creation(request): # reset_progress_dict(userId=request.user.id) # script_id = request.GET["script_id"] # from pymongo import MongoClient # # MongoDBUrl = "mongodb+srv://mynextfilm:mnf123@cluster0.ojasb.mongodb.net/myFirstDatabase?retryWrites=true&w=majority" # client = MongoClient(MongoDBUrl) # db = client.DB # ScriptDatabase = "mnfapp_mnfscriptdatabase" # script_info = db[ScriptDatabase].find_one({"script_id": script_id}) # script_file_path = script_info.get("script_file_path") # # try: # data_for_blockchain = [] # data_for_blockchain.append(script_file_path) # # raise ValueError #-----to test for payment refund commentout # update_progress(userId=request.user.id, progress=30) # try: # print("vector started in pitchcretatio") # vector_generation.vector_gen(script_file_path, script_id) # print("Vectors generated succesfully") # update_progress(userId=request.user.id, progress=50) # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(20) # delet_user_progress(userId=request.user.id) # sys.exit(e) # script_info = db[ScriptDatabase].find_one({"script_id": script_id}) # VectorDatabase = "mnfapp_pitchvector" # vector_info = db[VectorDatabase].find_one({"script_id": script_id}) # # try: # if script_info != None: # # Code to convert docx to pdf # """ # str1 = "unoconv -f pdf" # str2 = script_info.get("script_file_path") # str3 = str1 + " " + str2 # print("Filpath:", script_info.get("script_file_path")) # os.system(str3) # print("File converted") # temp = script_info.get("script_file_path").split("/") # temp = temp[-1].split(".") # # print(rf"{basePath}/MNF/media/PdfFiles/{temp} + '.pdf'") # """ # document_name = script_info["document_name"][0:-5] # script_info[ # "script_file_pdf_path" # ] = rf"{basePath}/media/PdfFiles/{document_name}.pdf" # print("Pitch Creation", script_info) # script_info["narration_video_path"] = "" # script_info["line_by_line_narration_video_path"] = "" # script_info["script_genre"] = "" # # pdf = PdfFileReader(open(script_info.get("script_file_pdf_path"), "rb")) # # number_of_pages = pdf.getNumPages() # # print("No. of pages in PDF:", number_of_pages) # # script_info["number_of_pages"] = int(number_of_pages) # db[ScriptDatabase].save(script_info) # else: # print(" Entry for script id not found") # # restrict = request.GET["restrict_to_five"] # # narration_generation.narration_function(script_id, restrict) # # narration_generation.narration_function(script_id) # # linebyline_narration.line_by_line_narration(script_id) #changed 12th March # print( # "**************************************************************************************************************" # ) # print( # "******************************_______*************************************************************************" # ) # # screenplay_main.screenplay_function(script_id) # # pitch_function.pitch_function(script_id) # print("________start here______") # script_title = script_info.get("script_title") # print("$$") # if script_info["characterwise_narration"] == "True": # """ # access selected_characters here from database # run characterwise script generation function # """ # try: # print("________characterwise_narration______") # selected_character = vector_info["selected_characters"] # # selected_character = script_info["selected_characters"] # input_dir = request.session.get("script_dir_url") # input_filename = request.session["script_name"] # selected_character = json.loads( # selected_character) # json string to list # dic_of_chr_path = mnf_ss.get_subset_character_script( # input_dir, input_filename, selected_character # ) # print("Out of Mohit Function") # path_list = [] # # character_pagecount=[] # for i in selected_character: # print("Entering loop of character ,", i) # c = MNFScriptDatabase() # c.script_id = "scr_" + str(int(time.time())) # # c.main_script_id = script_info["main"] # print("script_info connecting_id", # script_info["connecting_id"]) # # c.connecting_id = script_id # c.connecting_id = script_info # print("Printing Script id of first character", c.script_id) # c.script_title = script_title + \ # "_" + str(i) # session variable # url = dic_of_chr_path[i] # pdfname = url.split("/")[-1][0:-5] + ".pdf" # c.script_file_path = url # str1 = "unoconv -f pdf" # # str2 = script_info.get("script_file_path") # # str2 = url.replace(" ","_") # str2 = url # str3 = str1 + " " + '"' + str2 + '"' # print("Filpath:", url) # os.system(str3) # print("File converted") # temp = url.split("/") # # name.docx # temp = temp[-1].split(".") # # c.script_file_pdf_path = rf"{basePath}/media/PdfFiles/{temp[0]}"+ ".pdf" # c.script_file_pdf_path = rf"{url[:-5]}" + ".pdf" # print("printing script path", c.script_file_pdf_path) # print("printing url", url) # print( # "************************", # rf"{basePath}/media/PdfFiles/{temp[0]}" + ".pdf", # ) # # pdf = PdfFileReader(open(rf"{basePath}/media/PdfFiles/{temp[0]}"+ ".pdf", "rb")) # pdf = PdfFileReader(open(rf"{c.script_file_pdf_path}", "rb")) # # number_of_pages = countPages( # # url, pdfname) # get the page count # print("1") # number_of_pages = pdf.getNumPages() # # character_pagecount.append(number_of_pages) # print("1") # c.numPages = number_of_pages # # print("1") # # c.script_file_path = url # print("1") # c.actionline_language = request.session["non_dial_src_lang"] # print("1") # c.actionline_script_language = request.session["non_dial_src_script"] # print("1") # c.dialogues_script_language = request.session["dial_src_script"] # print("1") # c.dialogues_language = request.session["dial_src_lang"] # c.author_name = request.session["author_name"] # print("1") # # c.user_id = script_info["user_id_id"] # # c.user_id = request.user # print("1") # c.save() # print("Vector Creating for Character") # print("script path", c.script_file_path) # print("script id", c.script_id) # vector_generation.vector_gen(c.script_file_path, c.script_id) # print(f"Vector Created for {script_title}") # # c.save() # linebyline_narration.line_by_line_narration( # c.script_id) # error here # print("Characterwise Video Created") # c.line_by_line_narration_video_path = ( # rf"{basePath}/media/videos/Narrated_Videos/{c.script_title}.webm" # ) # # lst.append() # path_list.append( # rf"{basePath}/media/videos/Narrated_Videos/{c.script_title}.webm" # ) # # exit() # # script_info["character_pagecount"] = json.dumps(character_pagecount) # script_info["characterwise_video_path"] = json.dumps(path_list) # data_for_blockchain.append(json.dumps(path_list)) # db[ScriptDatabase].save(script_info) # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(10) # delet_user_progress(userId=request.user.id) # sys.exit(e) # # print("will this work",dic_of_chr_path) # if script_info["onepager"] == "True": # try: # print("Before pager_function", script_id) # Pager_function.pager_function(script_id) # script_info[ # "onepager_pdf_path" # ] = rf"{basePath}/media/Onepager/{script_title}.pdf" # data_for_blockchain.append( # rf"{basePath}/media/Onepager/{script_title}.pdf") # db[ScriptDatabase].save(script_info) # print("One Pager generated sucessfully") # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(10) # delet_user_progress(userId=request.user.id) # sys.exit(e) # if script_info["screenplay_analysis"] == "True": # try: # print("Rohit before") # screenplay_main.screenplay_function(script_id) # print("Rohit after") # script_info[ # "screenplay_analysis_video_path" # ] = rf"{basePath}/media/Screenplay/{script_title}_screenplay.webm" # data_for_blockchain.append( # rf"{basePath}/media/Screenplay/{script_title}_screenplay.webm" # ) # db[ScriptDatabase].save(script_info) # print("Screenplay generated sucessfully") # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(10) # delet_user_progress(userId=request.user.id) # sys.exit(e) # if script_info["elevator_pitch"] == "True": # try: # print("Entering ElevatorPitch: ") # pitch_function.pitch_function(script_id) # script_info["elevator_pitch_video_path"] = ( # rf"{basePath}/media/Pitch/" + # str(script_title) + "_pitchdeck.webm" # ) # data_for_blockchain.append( # rf"{basePath}/media/Pitch/" + # str(script_title) + "_pitchdeck.webm" # ) # print("ElevatorPitch generated sucessfully") # db[ScriptDatabase].save(script_info) # print("Rohit2") # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(10) # delet_user_progress(userId=request.user.id) # sys.exit(e) # if script_info["character_intro"] == "True": # try: # print("----Entering character introduction-----") # # obj = TestingC.Char_video_class(script_id) # # characterdata = obj.char_data_written() # # for i in characterdata: # # obj.first_intro_page(i) # Char_function.char_function(script_id) # script_info["character_intro_video_path"] = rf'{basePath}/media/character_Intro/{str(script_title)}.webm' # # # # data_for_blockchain.append(rf"{basePath}/media/Pitch/" + str(script_title) + "_pitchdeck.webm") # print("character introduction generated sucessfully") # db[ScriptDatabase].save(script_info) # print("Rohit2") # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(10) # delet_user_progress(userId=request.user.id) # sys.exit(e) # if script_info["linebyline"] == "True": # try: # print("Rohit3") # linebyline_narration.line_by_line_narration(script_id) # print("Narration generated sucessfully") # script_title = script_info.get("script_title") # # script_info[ # # 'narration_video_path'] = rf"{basePath}/media/videos/Narrated_Videos/{script_title}.webm" # script_info[ # "line_by_line_narration_video_path" # ] = rf"{basePath}/media/videos/Narrated_Videos/{script_title}.webm" # script_info["narration_video_path"] = script_info[ # "line_by_line_narration_video_path" # ] # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(10) # delet_user_progress(userId=request.user.id) # sys.exit(e) # # data_for_blockchain.append(script_info["narration_video_path"]) # context = { # "status": "Success", # } # user = request.user # email = user.email # # ------------------------------------------------------blockchain # # script_path = str(rf"{basePath}/media/scripts/{script_title}") # print("list ", data_for_blockchain) # # data = [script_path, data_for_blockchain ] # # print("All Files ",data) # print("Function 11") # update_progress(userId=request.user.id, progress=85) # try: # files, timestamp = upload_zipfile_to_ipfs( # data_for_blockchain, str(script_title), "pitchdeck", email # ) # script_info["timestamp"] = timestamp # print("timestamp of blockchain", files, timestamp) # script_info["uploaded_script_encoded"] = files # # script_info["translated_script_encoded"] = files[1] # db[ScriptDatabase].save(script_info) # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(10) # delet_user_progress(userId=request.user.id) # sys.exit(e) # # --------------------------------------------------------------------------- # current_site = get_current_site(request) # context = { # "domain": current_site.domain, # "serviceName": "Pitch Creation", # "name": email, # "amount": request.POST.get("total_amount"), # # "timestamp":timestamp, # # "key":script_title # } # num_pages = request.session["numPages"] # if num_pages > 5: # ----------------neha # request.session["pages_greater_than_five"] == "true" # message = render_to_string("narration/MR31.html", context) # text_content = strip_tags(message) # msg = EmailMultiAlternatives( # "Successfully Narrated", # text_content, # settings.EMAIL_HOST_USER, # [email], # ) # msg.attach_alternative(message, "text/html") # msg.send() # else: # # send mail only for confirmation hjgjh # request.session["pages_greater_than_five"] = "false" # --------neha # message = render_to_string("narration/MR31.html", context) # text_content = strip_tags(message) # msg = EmailMultiAlternatives( # "Successfully Narrated", # text_content, # settings.EMAIL_HOST_USER, # [email], # ) # msg.attach_alternative(message, "text/html") # msg.send() # del request.session["pages_greater_than_five"] # var = Notifications( # user_id=request.user, # notification=str( # "Narration generated successfully for " + script_title), # ) # var.save() # update_progress(userId=request.user.id, progress=100) # time.sleep(10) # delet_user_progress(userId=request.user.id) # return JsonResponse(context) def Pitch_creation(request): reset_progress_dict(userId=request.user.id) script_id = request.GET["script_id"] from pymongo import MongoClient # MongoDBUrl = "mongodb+srv://mynextfilm:mnf123@cluster0.ojasb.mongodb.net/myFirstDatabase?retryWrites=true&w=majority" client = MongoClient(MongoDBUrl) db = client.DB ScriptDatabase = "mnfapp_mnfscriptdatabase" script_info = db[ScriptDatabase].find_one({"script_id": script_id}) print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>",script_info) script_file_path = script_info.get("script_file_path") print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>",script_file_path) data_for_blockchain = [] data_for_blockchain.append(script_file_path) # raise ValueError #-----to test for payment refund commentout update_progress(userId=request.user.id, progress=30) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("6.INSIDE pitch_creation function : vector id is -->" + str(script_id)+ "\n") #-----------------modified audit script_id_audit = request.session["script_id_audit"] check_status_and_trigger_vector(script_id_audit,script_id) # audit_vector_integration_pitchdeck(script_id_audit,script_id) print(":>:>:>complete") # audit_vector_integration(script_file_path,script_id,request) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("7.Vectors generated succesfully" + "\n") # try: # print("vector started in pitchcretatio") # # from scriptAudit.views import generate_script_id # # generate_script_id(script_file_path, request) # print("vector:",script_id) # # vector_generation.vector_gen(script_file_path, script_id) # audit_vector_integration(script_file_path,script_id,request) # print("vector:","Vectors generated succesfully") # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","w+") as file01: # file01.write("Vectors generated succesfully") # # audit_vector_integration(script_file_path,script_id,request) # update_progress(userId=request.user.id, progress=50) # except Exception as e: # update_progress(userId=request.user.id, progress=0) # time.sleep(20) # delet_user_progress(userId=request.user.id) # sys.exit(e) # print("vector:","outside vector generation") script_info = db[ScriptDatabase].find_one({"script_id": script_id}) VectorDatabase = "mnfapp_pitchvector" vector_info = db[VectorDatabase].find_one({"script_id": script_id}) # Blockchain data # script_info1 = converted_dict["MNFScriptDatabase1"] # vector_info1 = converted_dict["pitchvector1"] # try: print("vector:","outside vector generation") MNFScriptDatabase1 = eval(request.session["MNFScriptDatabase1"]) pitchvector1 = eval(request.session["pitchvector1"]) if script_info != None: # Code to convert docx to pdf """ str1 = "unoconv -f pdf" str2 = script_info.get("script_file_path") str3 = str1 + " " + str2 print("Filpath:", script_info.get("script_file_path")) os.system(str3) print("File converted") temp = script_info.get("script_file_path").split("/") temp = temp[-1].split(".") # print(rf"{basePath}/MNF/media/PdfFiles/{temp} + '.pdf'") """ document_name = script_info["document_name"][0:-5] script_info[ "script_file_pdf_path" ] = rf"{basePath}/media/PdfFiles/{document_name}.pdf" print("Pitch Creation", script_info) script_info["narration_video_path"] = "" script_info["line_by_line_narration_video_path"] = "" script_info["script_genre"] = "" # MNFScriptDatabase1["script_file_pdf_path"] = rf"{basePath}/media/PdfFiles/{document_name}.pdf" # Blockchain # pdf = PdfFileReader(open(script_info.get("script_file_pdf_path"), "rb")) # number_of_pages = pdf.getNumPages() # print("No. of pages in PDF:", number_of_pages) # script_info["number_of_pages"] = int(number_of_pages) # ///////////// db[ScriptDatabase].save(script_info) else: print(" Entry for script id not found") # restrict = request.GET["restrict_to_five"] # narration_generation.narration_function(script_id, restrict) # narration_generation.narration_function(script_id) # linebyline_narration.line_by_line_narration(script_id) #changed 12th March print( "**************************************************************************************************************" ) print( "******************************_______*************************************************************************" ) # screenplay_main.screenplay_function(script_id) # pitch_function.pitch_function(script_id) print("________start here______") script_title = script_info.get("script_title") print("$$") # manoj service_name_list = [] videopath_for_email=[] if script_info["characterwise_narration"] == "True": """ access selected_characters here from database run characterwise script generation function """ try: print("________characterwise_narration______") selected_character = vector_info["selected_characters"] # selected_character = script_info["selected_characters"] input_dir = request.session.get("script_dir_url") input_filename = request.session["script_name"] selected_character = json.loads( selected_character) # json string to list #-----------------------------------------------------------modified audit print("SELECTED CHARACTER",selected_character) script_id_audit = request.session["script_id_audit"] print("yameen script_id_audit",script_id_audit) # script_audit_obj = NeutralAudit(script_id_audit) # dic_of_chr_path = script_audit_obj.get_character_subset(selected_character) neutral_aud = NeutralAudit(script_id_audit) char_sub = neutral_aud.get_character_subset(selected_character) print("CHARACTER SUBSET",char_sub) # dic_of_chr_path = mnf_ss.get_subset_character_script( # input_dir, input_filename, selected_character # ) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("8." +str(char_sub) + "\n") dic_of_chr_path = char_sub #-------------------------------------------------------------------end logging.debug(f"slected_charcter {selected_character}") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("selected characters list----------" +str(selected_character) + "\n") print("Out of Mohit Function") path_list = [] # character_pagecount=[] for i in selected_character: print("Entering loop of character ,", i) c = MNFScriptDatabase() c.script_id = "scr_" + str(int(time.time())) print("script neha","scr_" + str(int(time.time()))) # logging.debug(f"slected_charcter {f"script neha scr_{str(int(time.time()))}") # c.main_script_id = script_info["main"] print("script_info connecting_id", script_info["connecting_id"]) # c.connecting_id = script_id c.connecting_id = script_info print("Printing Script id of first character", c.script_id) c.script_title = script_title + \ "_" + str(i) # session variable url = dic_of_chr_path[i] pdfname = url.split("/")[-1][0:-5] + ".pdf" c.script_file_path = url str1 = "unoconv -f pdf" # str2 = script_info.get("script_file_path") # str2 = url.replace(" ","_") str2 = url str3 = str1 + " " + '"' + str2 + '"' print("Filpath:", url) os.system(str3) print("File converted") temp = url.split("/") # name.docx temp = temp[-1].split(".") # c.script_file_pdf_path = rf"{basePath}/media/PdfFiles/{temp[0]}"+ ".pdf" c.script_file_pdf_path = rf"{url[:-5]}" + ".pdf" with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("9. script file pdf path"+ str(c.script_file_pdf_path) + "\n") print("printing script path", c.script_file_pdf_path) print("printing url", url) print( "************************", rf"{basePath}/media/PdfFiles/{temp[0]}" + ".pdf", ) # pdf = PdfFileReader(open(rf"{basePath}/media/PdfFiles/{temp[0]}"+ ".pdf", "rb")) pdf = PdfFileReader(open(rf"{c.script_file_pdf_path}", "rb")) # number_of_pages = countPages( # url, pdfname) # get the page count print("1") number_of_pages = pdf.getNumPages() # character_pagecount.append(number_of_pages) print("1") c.numPages = number_of_pages # print("1") # c.script_file_path = url print("1") c.actionline_language = request.session["non_dial_src_lang"] print("1") c.actionline_script_language = request.session["non_dial_src_script"] print("1") c.dialogues_script_language = request.session["dial_src_script"] print("1") c.dialogues_language = request.session["dial_src_lang"] if "author_name" in request.session: c.author_name = request.session["author_name"] print("1") # c.user_id = script_info["user_id_id"] # c.user_id = request.user print("1") c.save() print("Vector Creating for Character") print("script path", c.script_file_path) print("script id", c.script_id) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("9." + str(i) + str(c.script_file_path)+str(c.script_id) + "\n") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("10.generated vectors for" + str(i) + "\n") vector_generation.vector_gen(c.script_file_path, c.script_id) print(f"Vector Created for {script_title}") # c.save() print(i) path = char_function(script_id,i) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("11.path of character " + str(path) + "\n") print("path neehhhhaa",path) linebyline_narration.line_by_line_narration( c.script_id,True, path) # error here with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("12. line by line complete " + "\n") print("Characterwise Video Created") c.line_by_line_narration_video_path = ( rf"{basePath}/media/videos/Narrated_Videos/{c.script_title}.webm" ) # lst.append() path_list.append( rf"{basePath}/media/videos/Narrated_Videos/{c.script_title}.webm" ) print(path_list,"######################## path list ########################") data_for_blockchain.append(rf"{basePath}/media/videos/Narrated_Videos/{c.script_title}.webm") # exit() script_info["selected_characters"] = json.dumps(selected_character) script_info["characterwise_video_path"] = json.dumps(path_list) MNFScriptDatabase1["selected_characters"] = json.dumps(selected_character) MNFScriptDatabase1["characterwise_video_path"] = json.dumps(path_list) # data_for_blockchain.append(json.dumps(path_list)) db[ScriptDatabase].save(script_info) print("Characterwise Narration Video Created") #----------use for email path email_path=script_info["characterwise_video_path"] videopath_for_email.append(email_path) # manoj service_name_list.append("Characterwise Narration") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("11.END of characterwise Narration" +"\n") except Exception as e: update_progress(userId=request.user.id, progress=0) time.sleep(10) delet_user_progress(userId=request.user.id) sys.exit(e) # print("will this work",dic_of_chr_path) if script_info["onepager"] == "True": try: with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("one pager started" +"\n") print("Before pager_function", script_id) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt1","a") as file01: file01.write("one pager started" +str(script_id)+"\n") Pager_function.pager_function(script_id) script_info[ "onepager_pdf_path" ] = rf"{basePath}/media/Onepager/{script_title}.pdf" data_for_blockchain.append( rf"{basePath}/media/Onepager/{script_title}.pdf") # db[ScriptDatabase].save(script_info) print("One Pager generated sucessfully") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("One Pager generated sucessfully" + str(script_info["onepager_pdf_path"]) + "\n") # Blockchain MNFScriptDatabase1["onepager_pdf_path"] = rf"{basePath}/media/Onepager/{script_title}.pdf" with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("After mnfblockchain" + "\n") temp_dir = tempfile.mkdtemp() short_path = os.path.join(temp_dir, "file.pdf") Onepagerfile = rf"{basePath}/media/Onepager/{script_title}.pdf" with open(Onepagerfile, 'rb') as source_file, open(short_path, 'wb') as target_file: target_file.write(source_file.read()) hash = uploadDataToIPFSNode(short_path) os.remove(short_path) os.rmdir(temp_dir) MNFScriptDatabase1["Onepager_Script_fileHash"] = hash with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("After mnfblockchain" +hash+ "\n") # hash = response.json()["hash"] # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: # file01.write("Blockchainfile: " + str(hash) + "\n") # #use for email path email_path=script_info["onepager_pdf_path"] videopath_for_email.append(email_path) # manoj service_name_list.append("One Pager") except Exception as e: update_progress(userId=request.user.id, progress=0) time.sleep(10) delet_user_progress(userId=request.user.id) sys.exit(e) if script_info["screenplay_analysis"] == "True": try: print("Rohit before") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Screenplay started" + "\n") screenplay_main.screenplay_function(script_id) print("Rohit after") script_info[ "screenplay_analysis_video_path" ] = rf"{basePath}/media/Screenplay/{script_title}_screenplay.webm" with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write('path of screenplay'+str(script_info["screenplay_analysis_video_path"])+"\n") data_for_blockchain.append( rf"{basePath}/media/Screenplay/{script_title}_screenplay.webm" ) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write('blockchain'+"\n") db[ScriptDatabase].save(script_info) print("Screenplay generated sucessfully") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write('screenplay generated'+"\n") # blockchain temp_dir = tempfile.mkdtemp() short_path = os.path.join(temp_dir, "file.pdf") MNFScriptDatabase1["screenplay_analysis_video_path"] = rf"{basePath}/media/Screenplay/{script_title}_screenplay.webm" Screenplayfile = rf"{basePath}/media/Screenplay/{script_title}_screenplay.webm" with open(Screenplayfile, 'rb') as source_file, open(short_path, 'wb') as target_file: target_file.write(source_file.read()) hash = uploadDataToIPFSNode(short_path) os.remove(short_path) os.rmdir(temp_dir) print("HASH>>>",hash) MNFScriptDatabase1["Screenplayh_Script_fileHash"] = hash #use for email path email_path= script_info["screenplay_analysis_video_path"] videopath_for_email.append(email_path) # manoj service_name_list.append("Screenplay Analysis") except Exception as e: update_progress(userId=request.user.id, progress=0) time.sleep(10) delet_user_progress(userId=request.user.id) sys.exit(e) if script_info["elevator_pitch"] == "True": try: print("Entering ElevatorPitch: ") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Elevator started" + "\n") pitch_function.pitch_function(script_id) script_info["elevator_pitch_video_path"] = ( rf"{basePath}/media/Pitch/" + str(script_title) + "_pitchdeck.webm" ) #Blockchain temp_dir = tempfile.mkdtemp() short_path = os.path.join(temp_dir, "file.pdf") MNFScriptDatabase1["elevator_pitch_video_path"] = rf"{basePath}/media/Pitch/" +str(script_title) + "_pitchdeck.webm" ElevatorPitchfile = rf"{basePath}/media/Pitch/" +str(script_title) + "_pitchdeck.webm" with open(ElevatorPitchfile, 'rb') as source_file, open(short_path, 'wb') as target_file: target_file.write(source_file.read()) hash = uploadDataToIPFSNode(short_path) os.remove(short_path) os.rmdir(temp_dir) MNFScriptDatabase1["ElevatorPitch_Script_fileHash"] = hash data_for_blockchain.append( rf"{basePath}/media/Pitch/" + str(script_title) + "_pitchdeck.webm" ) print("ElevatorPitch generated sucessfully") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("ElevatorPitch generated sucessfully" + str(script_info["elevator_pitch_video_path"]) + "\n") db[ScriptDatabase].save(script_info) print("Rohit2") #use for email path email_path= script_info["elevator_pitch_video_path"] videopath_for_email.append(email_path) # manoj service_name_list.append("Elevator Pitch") except Exception as e: update_progress(userId=request.user.id, progress=0) time.sleep(10) delet_user_progress(userId=request.user.id) sys.exit(e) if script_info["character_intro"] == "True": try: print("----Entering character introduction-----") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("character introduction started" + "\n") # obj = TestingC.Char_video_class(script_id) # characterdata = obj.char_data_written() # for i in characterdata: # obj.first_intro_page(i) Char_function.char_function(script_id) script_info["character_intro_video_path"] = rf'{basePath}/media/character_Intro/{str(script_title)}.webm' # # # data_for_blockchain.append(rf"{basePath}/media/Pitch/" + str(script_title) + "_pitchdeck.webm") print("character introduction generated sucessfully") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Character introduction generated sucessfully" + str(script_info["character_intro_video_path"]) + "\n") db[ScriptDatabase].save(script_info) print("Rohit2") #Blockchain temp_dir = tempfile.mkdtemp() short_path = os.path.join(temp_dir, "file.pdf") MNFScriptDatabase1["character_intro_video_path"] = rf"{basePath}/media/Screenplay/{script_title}_screenplay.webm" Characterfile = rf'{basePath}/media/character_Intro/{str(script_title)}.webm' with open(Characterfile, 'rb') as source_file, open(short_path, 'wb') as target_file: target_file.write(source_file.read()) hash = uploadDataToIPFSNode(short_path) os.remove(short_path) os.rmdir(temp_dir) MNFScriptDatabase1["Characterfile_Script_fileHash"] = hash #use for email path email_path= script_info["character_intro_video_path"] videopath_for_email.append(email_path) # manoj service_name_list.append("Character Introduction") except Exception as e: update_progress(userId=request.user.id, progress=0) time.sleep(10) delet_user_progress(userId=request.user.id) sys.exit(e) if script_info["linebyline"] == "True": try: print("Rohit3") with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("Line by line started" + "\n") linebyline_narration.line_by_line_narration(script_id) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("line by line complete" +"\n") print("Narration generated sucessfully") script_title = script_info.get("script_title") # script_info[ # 'narration_video_path'] = rf"{basePath}/media/videos/Narrated_Videos/{script_title}.webm" script_info[ "line_by_line_narration_video_path" ] = rf"{basePath}/media/videos/Narrated_Videos/{script_title}.webm" with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("Line by line path" + str(script_info["line_by_line_narration_video_path"])+ "\n") script_info["narration_video_path"] = script_info[ "line_by_line_narration_video_path" ] with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Line by line generated sucessfully-----------------" + str(script_info["narration_video_path"]) + "\n") #Blockchain temp_dir = tempfile.mkdtemp() short_path = os.path.join(temp_dir, "file.pdf") MNFScriptDatabase1["line_by_line_narration_video_path"] = rf"{basePath}/media/Screenplay/{script_title}_screenplay.webm" narrationfile = rf"{basePath}/media/videos/Narrated_Videos/{script_title}.webm" with open(narrationfile, 'rb') as source_file, open(short_path, 'wb') as target_file: target_file.write(source_file.read()) hash = uploadDataToIPFSNode(short_path) os.remove(short_path) os.rmdir(temp_dir) MNFScriptDatabase1["narration_Script_fileHash"] = hash with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("Line by line generated sucessfully" + str(script_info["narration_video_path"]) + "\n") #use for email path email_path= script_info["line_by_line_narration_video_path"] videopath_for_email.append(email_path) # manoj service_name_list.append("Line by line") except Exception as e: update_progress(userId=request.user.id, progress=0) time.sleep(10) delet_user_progress(userId=request.user.id) sys.exit(e) # data_for_blockchain.append(script_info["narration_video_path"]) # Blockchain print("/n/n/n/n/nn/n/ngenarate all servies/n/n/n/n") if UserCredentialsForBlockchain.objects.filter(user=request.user).exists(): blockchain_obj = UserCredentialsForBlockchain.objects.get(user=request.user) MNFDatabase = {} MNFDatabase["MNFScriptDatabase1"] = MNFScriptDatabase1 MNFDatabase["pitchvector1"] = pitchvector1 key1= "MyNextFilm" UserId = blockchain_obj.user_id project = request.session["blockchainscript_id"] Data = str(MNFDatabase) userPrivateKey = blockchain_obj.privateKey userkey =decryptionOfPrivate(userPrivateKey) hash = NarrationData(userkey.decode('utf-8'),UserId, project,Data) print("my_tx_hash",hash) context = { "status": "Success", } user = request.user email = user.email # ------------------------------------------------------blockchain # script_path = str(rf"{basePath}/media/scripts/{script_title}") print("list ", data_for_blockchain) # data = [script_path, data_for_blockchain ] # print("All Files ",data) print("Function 11") update_progress(userId=request.user.id, progress=85) try: files, timestamp = upload_zipfile_to_ipfs( data_for_blockchain, str(script_title), "pitchdeck", email ) script_info["timestamp"] = timestamp print("timestamp of blockchain", files, timestamp) script_info["uploaded_script_encoded"] = files # script_info["translated_script_encoded"] = files[1] db[ScriptDatabase].save(script_info) except Exception as e: update_progress(userId=request.user.id, progress=0) time.sleep(10) delet_user_progress(userId=request.user.id) sys.exit(e) # --------------------------------------------------------------------------- #use for email click here path with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("videopath_for_email." +str(videopath_for_email) + "\n") click_for_email= "" if len(videopath_for_email) == 1: click_for_email = str(videopath_for_email[0]) print(click_for_email) else: click_for_email= ", ".join(videopath_for_email[:-1]) + " and " + videopath_for_email[-1] print(click_for_email) current_site = get_current_site(request) context = { "domain": current_site.domain, "serviceName": "Pitch Creation", "name": email, "amount": request.POST.get("total_amount"), # "click_email":click_for_email, # "timestamp":timestamp, # "key":script_title } # manoj for creating new subject according to services they used subject_accordingto_service_list = "" if len(service_name_list) == 1: subject_accordingto_service_list = str(service_name_list[0]) else: subject_accordingto_service_list = ", ".join(service_name_list[:-1]) + " and " + service_name_list[-1] # manoj new subject line # subject_accordingto_service_list += " narrated successfully" num_pages = request.session["numPages"] if num_pages > 5: # ----------------neha request.session["pages_greater_than_five"] == "true" to_email = [request.user.email] email_code = 'TN1' sendmail(to_email=to_email , email_code=email_code ,key_value={'service_name':subject_accordingto_service_list}) # message = render_to_string("narration/MR31.html", context) # text_content = strip_tags(message) # msg = EmailMultiAlternatives( # subject_accordingto_service_list, # text_content, # settings.EMAIL_HOST_USER, # [email], # ) # msg.attach_alternative(message, "text/html") # msg.send() else: # send mail only for confirmation hjgjh request.session["pages_greater_than_five"] = "false" # --------neha to_email = [request.user.email] email_code = 'TN1' sendmail(to_email=to_email , email_code=email_code ) # message = render_to_string("narration/MR31.html", context) # text_content = strip_tags(message) # msg = EmailMultiAlternatives( # subject_accordingto_service_list, # text_content, # settings.EMAIL_HOST_USER, # [email], # ) # msg.attach_alternative(message, "text/html") # msg.send() del request.session["pages_greater_than_five"] var = Notifications( user_id=request.user, notification=str( "Narration generated successfully for " + script_title), ) var.save() update_progress(userId=request.user.id, progress=100) time.sleep(10) delet_user_progress(userId=request.user.id) return JsonResponse(context) # except Exception as e: print("error is ", e) payment_intent_id = script_info.get("payment_intent_id") print("thisisgonnabeaRefund") if payment_intent_id: if payment_intent_id[0:4] == "pay": client = razorpay.Client(auth=(keyID, keySecret)) payment_id = payment_intent_id paydetail = client.payment.fetch(payment_id) total_amount = request.POST.get("total_amount") - (paydetail["fee"] / 100) try: c = CurrencyRates() rate = c.get_rate("USD", "INR") except Exception as e: print("pich creation", e) rate = 80 payment_amount = int(float(total_amount) * 100 * rate) client.payment.refund( payment_id, { "amount": payment_amount, "speed": "normal", }, ) else: stripe.Refund.create(payment_intent_id) user = request.user email = user.email context = { "serviceName": "Pitch Creation", "name": email, } message = render_to_string("narration/MR28.html", context) text_content = strip_tags(message) msg = EmailMultiAlternatives( "Incovenience is regretted", text_content, settings.EMAIL_HOST_USER, [email], ) msg.attach_alternative(message, "text/html") msg.send() user = request.user email = user.email context = { "serviceName": "Pitch Creation", "name": email, } message = render_to_string("narration/MR23.html", context) text_content = strip_tags(message) # create the email, and attach the HTML version as well. msg = EmailMultiAlternatives( "We are investigating the reason", text_content, settings.EMAIL_HOST_USER, [email], ) msg.attach_alternative(message, "text/html") msg.send() return JsonResponse({}, status=500) def progress_sender(request): # Simulating a long-running task print("Reached Progress_sender") userId = request.user.id progress = progress_dict.get(userId) if userId in progress_dict: if progress is not None: old_progress = old_progress_dict.get(userId) while old_progress == progress: # Add a small delay to reduce CPU usage time.sleep(1) progress = progress_dict.get(userId) print("New Value send --->>", progress) if progress == 0: old_progress_dict[userId] = progress data = {'status': 'error', 'progress': progress} return JsonResponse(data) if progress == 100: old_progress_dict[userId] = progress data = {'status': 'completed', 'progress': progress} return JsonResponse(data) old_progress_dict[userId] = progress data = {'status': 'in_progress', 'progress': progress} return JsonResponse(data) data = {'status': 'no_update'} return JsonResponse(data) # # Get the progress value from the task (replace with your logic) # progress = get_progress() # # Check if the progress has reached 100% or not # if progress >= 100: # # If the progress is complete, return the final result # data = {'status': 'completed', 'progress': 100, 'result': 'Task completed successfully'} # else: # # If the progress is not complete, return the progress value # data = {'status': 'in_progress', 'progress': progress} # return JsonResponse(data) # progress_dict = {} # old_progress_dict = {} # except Exception as e: # print("error is ", e) # payment_intent_id = script_info.get("payment_intent_id") # print("thisisgonnabeaRefund") # if payment_intent_id: # if payment_intent_id[0:4] == "pay": # client = razorpay.Client(auth=(keyID, keySecret)) # payment_id = payment_intent_id # paydetail = client.payment.fetch(payment_id) # total_amount = request.POST.get("total_amount") - (paydetail["fee"] / 100) # try: # c = CurrencyRates() # rate = c.get_rate("USD", "INR") # except Exception as e: # print("pich creation", e) # rate = 80 # payment_amount = int(float(total_amount) * 100 * rate) # client.payment.refund( # payment_id, # { # "amount": payment_amount, # "speed": "normal", # }, # ) # else: # stripe.Refund.create(payment_intent_id) # user = request.user # email = user.email # context = { # "serviceName": "Pitch Creation", # "name": email, # } # message = render_to_string("narration/MR28.html", context) # text_content = strip_tags(message) # msg = EmailMultiAlternatives( # "Incovenience is regretted", # text_content, # settings.EMAIL_HOST_USER, # [email], # ) # msg.attach_alternative(message, "text/html") # msg.send() # user = request.user # email = user.email # context = { # "serviceName": "Pitch Creation", # "name": email, # } # message = render_to_string("narration/MR23.html", context) # text_content = strip_tags(message) # # create the email, and attach the HTML version as well. # msg = EmailMultiAlternatives( # "We are investigating the reason", # text_content, # settings.EMAIL_HOST_USER, # [email], # ) # msg.attach_alternative(message, "text/html") # msg.send() # return JsonResponse({}, status=500) # class PostStreamView(View): # def get(self, request): # obj = ProgressNarration.objects.filter(user_id=request.user.id).last() # if obj: # print("Processing Chal Rahi hai", obj.progress) # if obj.progress == 100: # return JsonResponse({"status": "success", "progress": obj.progress}, status=200) # if obj.progress == 0: # return JsonResponse({"status": "Failed"}, status=500) # else: # return JsonResponse({"status": "pending", "progress": obj.progress}, status=202) # else: # return JsonResponse({"status": "Do nothing"}, status=203) # def my_process(progress): # progress_updated.send(sender=None, progress=progress) # class ProgressConsumer(AsyncWebsocketConsumer): # async def connect(self): # await self.accept() # await self.send(json.dumps({'progress': 0})) # progress_updated.connect(self.progress_updated_handler) # async def disconnect(self, close_code): # progress_updated.disconnect(self.progress_updated_handler) # async def progress_updated_handler(self, event): # progress = event['progress'] # await self.send(json.dumps({'progress': progress})) # class ProgressConsumer(WebsocketConsumer): # def connect(self): # self.room_name = "test" # self.room_group_name = "test group" # async_to_sync(self.channel_layers.group_send)( # self.room_name, self.room_group_name # ) # self.accept() # self.send(text_data = json.dumps({"status":"finally Ran"})) # def disconnect(self, close_code): # pass # def receive(self, text_data): # pass # def update_progress(self, event): # progress = event['progress'] # await self.send(text_data=progress) # def send_progress_to_client(sender, instance, **kwargs): # if instance.user_id.id == kwargs['user_id']: # print("######## Instance Found ###########") # return instance.progress, instance.user_id.id # else: # return None # SSE Yameen Progress Bar # def event_stream(userId=None): # while True: # progress = progress_dict.get(userId) # print("In stream, progress", progress) # if progress is not None: # print("In stream", old_progress_dict.get(userId), progress) # if old_progress_dict.get(userId) != progress: # if progress == 0: # data = {'progress': progress} # yield f"data: {json.dumps(data)}\n\n" # time.sleep(2) # print("data send ->>>>>", data) # delet_user_progress(userId=userId) # break # elif progress == 100: # data = {'progress': progress} # yield f"data: {json.dumps(data)}\n\n" # time.sleep(2) # print("data send ->>>>>", data) # break # else: # data = {'progress': progress} # yield f"data: {json.dumps(data)}\n\n" # time.sleep(2) # print("data send ->>>>>", data) # old_progress_dict[userId] = progress # else: # yield 'event: ping\ndata: {}\n\n' # time.sleep(2) def update_progress(userId, progress): if userId in progress_dict: progress_dict[userId] = progress print(f"############# Progress Updated {progress} ###########") time.sleep(3) def update_old_progress(userId, progress): if userId in old_progress_dict: old_progress_dict[userId] = progress print(f"############# OLD Progress Updated {progress} ###########") time.sleep(3) def reset_progress_dict(userId): if userId in progress_dict and userId in old_progress_dict: del progress_dict[userId] del old_progress_dict[userId] progress_dict[userId] = 20 old_progress_dict[userId] = 0 print("new value intialized", progress_dict[userId], old_progress_dict[userId]) time.sleep(3) else: progress_dict[userId] = 20 old_progress_dict[userId] = 0 print("new value intialized", progress_dict[userId], old_progress_dict[userId]) time.sleep(3) def delet_user_progress(userId): if userId in progress_dict and userId in old_progress_dict: del progress_dict[userId] del old_progress_dict[userId] time.sleep(3) # @csrf_exempt # def progress_sender(request): # user_id = request.user.id # response = StreamingHttpResponse(event_stream( # userId=user_id), content_type='text/event-stream') # response['Cache-Control'] = 'no-cache' # response['Connection'] = 'keep-alive' # return response # @receiver(post_save, sender=ProgressNarration) # def progress_narration_post_save(sender, instance, **kwargs): # print("######################### update ##################################") # print(sender,instance) # print(instance.progress) # print(instance.user_id.id) # progress, userId = send_progress_to_client(sender, instance, user_id=instance.user_id.id) # if progress: # print("@@@@@@@@@@@@@@@@@@@@@@@@ New Progress Updated dict #############################") # print("progress", progress) # progress_dict[userId] = progress # update_model(request=None, progress = progress) # channel_layer = get_channel_layer() # async_to_sync(channel_layer.group_send)( # 'progress_group', {'type': 'update_progress', 'progress': progress}) # def stream(request): # oldProgress = 10 # while True: # obj = ProgressNarration.objects.filter(user_id=request.user.id).last() # if obj: # print("::::::::OBJ:::::::::::") # print(obj.progress) # if oldProgress != obj.progress: # message = {"progress": obj.progress} # yield f"data: {json.dumps(message)}\n\n" # print("@@@@@ Data Send @@@@@", obj.progress) # time.sleep(2) # oldProgress = obj.progress # print("oldProgress",oldProgress) # else: # yield " " * 1024 # time.sleep(1) # del oldProgress # # # @csrf_exempt # # # @require_GET # class PostStreamView(View): # def get(self, request): # response = StreamingHttpResponse(stream(request)) # response['Content-Type'] = 'text/event-stream' # response["Cache-Control"] = "no-cache" # response["Connection"] = "keep-alive" # response['X-Accel-Buffering'] = 'no' # response['Timeout'] = '86400' # return response # global PROGRESS # old_counter = PROGRESS # PROGRESS += 1 # new_counter = PROGRESS # if old_counter != new_counter: # # print("progress", new_counter) # # else: # # # counter has not been updated # # pass # obj = MNFScriptDatabase.objects.filter(user_id=request.user.id, progress__gt=0) # print("::::::::::::Processing Chal Rahi hai########################################################", obj) # # if old_counter != new_counter: # # print("progress", new_counter) # # if obj.progress == 100: # # return JsonResponse({"status": "success"}, status=200) # # elif obj.progress == 0: # # return JsonResponse({"status": "failed"}, status=500) # # else: # # return JsonResponse({"status": "pending", "progress": new_counter}, status=202) # message = {"progress": new_counter} # response.write(f"data: {json.dumps(message)}\n\n") # return JsonResponse({"status": "pending", "progress": new_counter}, status=202) # else: # obj = MNFScriptDatabase.objects.filter(user_id=request.user.id, progress__gt=0).first() # print("::::::::::::Processing Chal Rahi hai########################################################", obj.progress) # return JsonResponse({"status": "pending", "progress": 20}, status=202) # yameen on update progress: # def send_progress_to_client(sender, instance, **kwargs): # print("######## send_progress_to_client ###########") # print(instance.user_id, kwargs['user_id']) # if instance.user_id.id == kwargs['user_id']: # print("######## Instance Found ###########") # message = {"progress": instance.progress} # print("PostStreamView.responses", PostStreamView.responses) # for response in PostStreamView.responses: # print("######## Message send ###########") # print("response", response) # response.queue.put(f"data: {json.dumps(message)}\n\n") # class PostStreamView(View): # responses = [] # def get(self, request): # print("######## Responce Send ###########") # response = StreamingHttpResponse(self.stream(request)) # response['Content-Type'] = 'text/event-stream' # response['Cache-Control'] = 'no-cache' # response['Connection'] = 'keep-alive' # response.queue = Queue() # self.responses.append(response) # print("response", response) # return response # def stream(self, request): # print("######## In Stream ###########") # message = {"progress": 0} # old_data = f"data: {json.dumps(message)}\n\n" # while True: # rlist, _, _ = select.select([self.responses[-1].queue.reader], [], [], 1) # if rlist: # data = self.responses[-1].queue.get() # if data: # old_data = data.encode() # yield data.encode() # else: # pass # @receiver(post_save, sender=ProgressNarration) # def progress_narration_post_save(sender, instance, **kwargs): # print("######################### update ##################################") # print(sender,instance) # print(instance.progress) # print(instance.user_id.id) # send_progress_to_client(sender, instance, user_id=instance.user_id.id) from centralizePayment.views import callback, create_indent def narrationCheckout1(request,script_id): amount_charged = request.session["amount_charged"] total_amount = request.session["total_amount"] discount = request.session["discount"] service_count=request.session["service_use"] context = create_indent(request,"pitchdeck",script_id,service_count,"",total_amount,amount_charged,discount) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("narration checkout--------- -->" + str(context)+ "\n") narration_instance = PitchVector.objects.get(id=script_id) # get object from your service database with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("narration checkout--------- -->" + str(narration_instance)+ "\n") # handle razor pay gateway → if "orderId" in context: narration_instance.order_id = context["orderId"] narration_instance.cp_id = context["central_pay_id"] narration_instance.save() # save central payment details in your database # handle stripe gateway → elif "client_secret" in context: narration_instance.order_id = context["client_secret"] narration_instance.cp_id = context["central_pay_id"] narration_instance.save() # save central payment details in your database # handle corporate profile → elif "corporate" in context: narration_instance.order_id = "corporate profile" narration_instance.cp_id = "corporate profile" narration_instance.save() # save central payment details in your database # # run service in thread → # # thread = Thread(target=run_subtitle, args=(payment_object,)) # # thread.start() return render(request, "template.html", {"message":"bill added to the corporate profile"}) else: # # handle errors → return render(request, "template.html", {"message":"invalid request!"}) # handle success → return render(request, "template.html", context) def post(request): response = request.POST.data # Get payment response # call central payment callback function → data = callback(response, request) # handle success status → if data["payment_status"] == "success": # get object payment_object =PitchVector.objects.get(cp_id=data["central_pay_id"]) payment_object.transaction_id = data["payment_id"] payment_object.isPaid = True payment_object.save() # save payment information # run service in thread → demo # thread = Thread(target=run_subtitle, args=(payment_object,)) # thread.start() return render(request,"template.html",{"status": "Payment Done"}) # handle errors → else: render(request,"template.html",{"error_data": "Payment Failed"}) def narrationCheckout(request): set_payment_token(request) keyID = request.session["keyID"] keySecret = request.session["keySecret"] # num_pages = request.session["numPages"] # print(funcname) narration_instance = PitchVector.objects.get(script_id=request.session["script_id"]) if request.method == "POST": # if num_pages > 5 : total_amount = request.session["amount_charged"] # script_id=request.session["script_id"] # narrationCheckout1(request,script_id) with open(f"{basePath}/MNF/json_keys/conversionRates.json") as c: curr = json.load(c) print(curr["rates"]["INR"]) try: rate = curr["rates"]["INR"] print(rate, " : Latest rates 30sep") # c = CurrencyRates() # rate = c.get_rate("USD", str(currency.upper())) except Exception as e: print("checkout error", e) rate = 80 request.session["pay_with_wallet"] = "no" if request.POST["pay_with_wallet"] == "yes": request.session["pay_with_wallet"] = "yes" balance = float(request.POST["balance"]) payable = float(request.POST["payable"]) wall = Wallet.objects.get(user=request.user) request.session["fbalance"] = wall.balance - (balance * rate) wall.save() request.session["amount_charged"] = payable total_amount = request.session["amount_charged"] amtINR = round((float(total_amount) * rate), 2) print("pitamtch:", total_amount, type(total_amount)) if request.session["indent_context"]: client = razorpay.Client(auth=(keyID, keySecret)) if "orderId" in request.session["indent_context"]: # client = razorpay.Client(auth=(keyID, keySecret)) request.session["payment_order_id"] = request.session["indent_context"]["orderId"] request.session["central_payment_id"] = request.session["indent_context"]["central_pay_id"] centralPayment_instance = CentralPayment.objects.get(id=request.session["indent_context"]["central_pay_id"]) pid = centralPayment_instance.order_id amtINR = centralPayment_instance.amount_charged * rate context = { "pk": keyID, "amtINR": amtINR, "pid": pid, "amount": centralPayment_instance.amount_charged, } return render( request, "Pitchdeck/checkoutN_RazorPay.html", context ) elif "client_secret" in request.session["indent_context"]: request.session["payment_order_id"] = request.session["indent_context"]["client_secret"] # save central payment details in your database request.session["central_payment_id"] = request.session["indent_context"]["central_pay_id"] amtINR = centralPayment_instance.amount_charged * rate context = { "pk": STRIPE_PUB_KEY, "total_amount": centralPayment_instance.amount_charged, "secret_key":request.session["indent_context"]["client_secret"], "amtINR": amtINR, "STRIPE_PUBLISHABLE_KEY": STRIPE_PUB_KEY, } return render(request, "Pitchdeck/checkoutNnew.html", context) elif "corporate" in request.session["indent_context"]: script_id=request.session["script_id"] numPages = request.session["numPages"] actionline_language = request.session["actionline_language"] actionline_script_language = request.session["actionline_script_language"] dialogues_language = request.session["dialogues_language"] dialogues_script_language = request.session["dialogues_script_language"] script_title = request.session["script_title"] script_file_path = request.session["script_file_path"] request.session["payment_order_id"] = "corporate profile" request.session["central_payment_id"] = "corporate profile" return render(request, "Pitchdeck/PitchnarratedVideos.html", context) else: # return render(request, "payments/failed.html") to_email = [request.user.email] email_code = 'TN4' sendmail(to_email=to_email , email_code=email_code ) return render(request, "payments/failed.html") return render(request, "Pitchdeck/Pitchnarrate1.html") @login_required(login_url="/") def narrationcard(request): if request.method == "POST": # print("thisispayment_intent_id::", request.POST["payment_intent_id"]) # payment_intent_id = request.POST["payment_intent_id"] # payment_method_id = request.POST["payment_method_id"] # customer = stripe.Customer.create( # email=request.user.email, # payment_method=payment_method_id, # invoice_settings={"default_payment_method": payment_method_id}, # ) # stripe.PaymentIntent.modify( # payment_intent_id, payment_method=payment_method_id, customer=customer.id # ) # ret = stripe.PaymentIntent.confirm(payment_intent_id) # pi = stripe.PaymentIntent.retrieve(payment_intent_id) # if ret.status == "requires_action": # context={} # context = { # "payment_intent_secret": pi.client_secret, # "id": pi.id, # "pk": STRIPE_PUB_KEY, # } customer = stripe.Customer.create( email=request.user.email, ) payment_intent = stripe.PaymentIntent.create( amount=int(float(total_amount) * 100 * rate), currency="INR", automatic_payment_methods={"enabled": True}, customer=customer.id, ) pid = payment_intent.id request.session["payment_intent_id"] = pid context = { "pid": pid, "amtINR": amtINR, "secret_key": payment_intent.client_secret, "total_amount": total_amount, "STRIPE_PUBLISHABLE_KEY": STRIPE_PUB_KEY, "pk": STRIPE_PUB_KEY, } return render(request, "Pitchdeck/3dsecuredNarration.html", context) # return render(request, "payments/paymentdone.html") else: return render(request, "Pitchdeck/Pitchnarrate1.html") @login_required(login_url="/") def paymentDoneN_RazorPay(request): # keyID = request.session["keyID"] # keySecret = request.session["keySecret"] # razorpay_order_id = request.POST["razorpay_order_id"] # print(razorpay_order_id) if request.method == 'POST': callback_payment = callback(request.POST, request) if callback_payment['payment_status'] == 'success': # print("manoj#45454") # print(request.POST["razorpay_order_id"]) # razorpay_order_id = request.POST["razorpay_order_id"] # razorpay_payment_id = request.POST["razorpay_payment_id"] # razorpay_signature = request.POST["razorpay_signature"] # client = razorpay.Client(auth=(keyID, keySecret)) # params_dict = { # "razorpay_order_id": razorpay_order_id, # "razorpay_payment_id": razorpay_payment_id, # "razorpay_signature": razorpay_signature, # } # try: # client.utility.verify_payment_signature(params_dict) # except: # user = request.user # email = user.email # context = { # "serviceName": "Pitch Creation", # "name": email, # } # message = render_to_string("narration/MR24.html", context) # text_content = strip_tags(message) # # create the email, and attach the HTML version as well. # msg = EmailMultiAlternatives( # "Something really went wrong", # text_content, # settings.EMAIL_HOST_USER, # [email], # ) # msg.attach_alternative(message, "text/html") # msg.send() # to_email = [request.user.email] # email_code = 'TN4' # sendmail(to_email=to_email , email_code=email_code ) # return render(request, "payments/failed.html") with open(f"{basePath}/MNF/json_keys/conversionRates.json") as c: curr = json.load(c) try: rate = curr["rates"]["INR"] # c = CurrencyRates() # rate = c.get_rate("USD", str(currency.upper())) except Exception as e: print("checkout error", e) rate = 80 if request.session["pay_with_wallet"] == "yes": deduction_for_sep_wall(request) wall = Wallet.objects.get(user=request.user) wall.balance = request.session["fbalance"] wall.save() else: pass total_amount = round(float((request.session["total_amount"]) * rate), 2) # paydetail = client.payment.fetch(razorpay_payment_id) # user_id = request.user # payment_id = razorpay_payment_id amount_charged = round(float((request.session["amount_charged"]) * rate), 2) discount = round((total_amount - amount_charged), 2) # gateway_fee = paydetail["fee"] / 100 # to convert from paise to rupees # currency = paydetail["currency"] # pay_method = paydetail["method"] # services_used = "Pitchdeck" # payment_status = "Success" # payment_gateway = "RazorPay" # number_of_pages = request.session["numPages"] # script_in = MNFScriptDatabase.objects.get( # script_id=request.session["script_id"] # ) # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: # file01.write('Detailed complete'+"\n") # PaymentData.objects.create( # user_id=user_id, # payment_id=payment_id, # services_used=services_used, # discount=discount, # number_of_pages=number_of_pages, # total_amount=total_amount, # amount_charged=amount_charged, # gateway_fee=gateway_fee, # script_info=script_in, # currency=currency, # pay_method=pay_method, # payment_status=payment_status, # payment_gateway=payment_gateway, # ) # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: # file01.write('PaymentData created'+"\n") # #------------------------------------neha # # update priviledged user razorpay # if request.session["UpdatePriviledgedUser"]: # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: # file01.write('Reached Condition request.session["UpdatePriviledgedUser"]'+"\n") # print("manoj#re343") # if privilegedUser1.objects.filter(user=request.user).exists(): # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: # file01.write('Privilegeduser hai'+"\n") # obj = privilegedUser1.objects.get(user=request.user) # else: # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: # file01.write('Privilegeduser Nahi hai'+"\n") # obj = privilegedUser1() # obj.user = request.user # lasto = privilegedUser1.objects.last() # obj.id = int(lasto.id) + 1 # obj.memberType = "normal" # obj.is_active = "yes" # obj.months = 1 # obj.chargeId = razorpay_order_id # obj.transactionId = razorpay_payment_id # obj.razorpaySign = razorpay_signature # obj.status = payment_status # obj.amount_captured = total_amount # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: # file01.write('Privilegeduser object '+str(obj)+"\n") # obj.save() # with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: # file01.write('Privilegeduser save hoa'+"\n") # print("manoj*9998ha") # del request.session["UpdatePriviledgedUser"] # manoj s=PitchVector() # s.transaction_id = callback_payment["payment_id"] # save central payment details in your database # s.isPaid = True # save central payment details in your database # s.save() s.payment_order_id = request.session["payment_order_id"] # save central payment details in your database s.central_payment_id = request.session["central_payment_id"] s.save() print("manoj454545454545") print(amount_charged) print(request.user.email) current_site = get_current_site(request) context2 = { "domain": current_site.domain, "serviceName": "Pitch Creation", "name": request.user.email, "amount": amount_charged, "razorpay": True } # message = render_to_string("narration/MR25.html", context2) # text_content = strip_tags(message) # msg = EmailMultiAlternatives( # "Every penny of yours is valuable", # text_content, # settings.EMAIL_HOST_USER, # [request.user.email], # ) # msg.attach_alternative(message, "text/html") # msg.send() to_email = [request.user.email] email_code = 'TN3' sendmail(to_email=to_email , email_code=email_code ) # manoj end context = { "script_id": request.session["script_id"], "script_file_path": request.session["script_file_path"], "restrict_to_five": "no", } return render(request, "Pitchdeck/PitchnarratedVideos.html", context) # except: else: print("manoj1450") print(traceback.format_exc()) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write('Privilegeduser in exeception aya hai'+str(ex)+"\n") # subject = "Something really went wrong" # from_email = settings.EMAIL_HOST_USER # to = request.user.email # context_2 = { # "Name": request.user.email, # "service_name": "Pitch Creation", # } # mnfnsendemail( # to, subject, "payment/templates/payments/MR24.html", context_2, from_email # ) to_email = [request.user.email] email_code = 'TN4' sendmail(to_email=to_email , email_code=email_code ) return render(request, "payments/failed.html") else: return HttpResponse("You don't have an access to use this.") @login_required(login_url="/") def paymentDoneN(request): if request.method == "GET": script_id = request.session["script_id"] num_pages = request.session["numPages"] actionline_language = request.session["actionline_language"] actionline_script_language = request.session["actionline_script_language"] dialogues_language = request.session["dialogues_language"] dialogues_script_language = request.session["dialogues_script_language"] document_name = request.session["document_name"] script_title = request.session["script_title"] total_amount= request.session["total_amount"] amount_charged = request.session["amount_charged"] discount = request.session["discount"] for key, value in request.GET.items(): print(rf'{key}: {value}') response = { "id": request.GET.get("payment_intent"), "client_secret": request.GET.get("payment_intent_client_secret"), "status": request.GET.get("redirect_status"), } callback_content = callback(response, request) if callback_content['payment_status'] == "success": if request.session["pay_with_wallet"] == "yes": deduction_for_sep_wall(request) walls = Wallet.objects.get(user=request.user) walls.balance = request.session["fbalance"] walls.save() else: pass s = MNFScriptDatabase() p=PitchVector() s.user_id = request.user s.script_id = script_id s.script_title = script_title # s.script_file_path = script_file_path p.payment_order_id = request.session["payment_order_id"] # save central payment details in your database p.central_payment_id = request.session["central_payment_id"] # s.payment_intent_id = payment_intent_id s.save() context = { "script_id": script_id, "script_title": script_title, "num_pages":num_pages, "actionline_language":actionline_language, "actionline_script_language":actionline_script_language, "dialogues_language":dialogues_language, "dialogues_script_language":dialogues_script_language, "total_amount": total_amount, "amount_charged":amount_charged, "discount":discount, } to_email = [request.user.email] email_code = 'TN3' sendmail(to_email=to_email , email_code=email_code ) # message = render_to_string("narration/MR25.html", context2) # text_content = strip_tags(message) # msg = EmailMultiAlternatives( # "Every penny of yours is valuable", # text_content, # settings.EMAIL_HOST_USER, # [request.user.email], # ) # msg.attach_alternative(message, "text/html") # msg.send() # manoj end return render(request, "Pitchdeck/PitchnarratedVideos.html", context) else: # subject = "Something really went wrong" # from_email = settings.EMAIL_HOST_USER # to = request.user.email # context_2 = { # "Name": request.user.email, # "service_name": "Pitch Creation", # } # mnfnsendemail( # to, # subject, # "payment/templates/payments/MR24.html", # context_2, # from_email, # ) to_email = [request.user.email] email_code = 'TN4' context_2 = { "Name": to_email, "service_name": "Pitch Creation", } sendmail(to_email=to_email , email_code=email_code ) return render(request, "payments/failed.html") @login_required(login_url="/") def my_narrations(request): # obj = MNFScriptDatabase.objects.filter(user_id=request.user).order_by("-date_at").exclude(connecting_id="") if UserCredentialsForBlockchain.objects.filter(user=request.user).exists(): blockchain_obj = UserCredentialsForBlockchain.objects.get(user=request.user) videos_path = [] pq= 0 projectIds = getUserprojectIds(blockchain_obj.user_id) for i in range(len(projectIds) - 1, -1, -1): print(projectIds[i]) key1= "MyNextFilm" privatekey = blockchain_obj.privateKey user_id =blockchain_obj.user_id Project= projectIds[i] private_Key = decryptionOfPrivate(privatekey) status,getData = getNarrationData(private_Key.decode('utf-8'),user_id,Project) if status == True: data1 = getData[1] converted_dict = eval(data1) if converted_dict.get('MNFScriptDatabase1', {}).get('one_pager') == "True": hash = converted_dict["MNFScriptDatabase1"]["Onepager_Script_fileHash"] output_file_path = converted_dict["MNFScriptDatabase1"]["onepager_pdf_path"] # Save the video to a local file with a progress bar download_file_System(hash,output_file_path) if converted_dict.get('MNFScriptDatabase1', {}).get('elevator_pitch') == "True": hash = converted_dict["MNFScriptDatabase1"]["ElevatorPitch_Script_fileHash"] output_file_path = converted_dict["MNFScriptDatabase1"]["elevator_pitch_video_path"] download_file_System(hash,output_file_path) if converted_dict.get('MNFScriptDatabase1', {}).get('linebyline') == "True": hash = converted_dict["MNFScriptDatabase1"]["narration_Script_fileHash"] output_file_path = converted_dict["MNFScriptDatabase1"]["line_by_line_narration_video_path"] download_file_System(hash,output_file_path) if converted_dict.get('MNFScriptDatabase1', {}).get('character_intro') == "True": hash = converted_dict["MNFScriptDatabase1"]["Characterfile_Script_fileHash"] output_file_path = converted_dict["MNFScriptDatabase1"]["character_intro_video_path"] download_file_System(hash,output_file_path) # Save the video to a local file with a progress bar if converted_dict.get('MNFScriptDatabase1', {}).get('screenplay_analysis') == "True": hash = converted_dict["MNFScriptDatabase1"]["Screenplayh_Script_fileHash"] output_file_path = converted_dict["MNFScriptDatabase1"]["screenplay_analysis_video_path"] # Save the video to a local file with a progress bar download_file_System(hash,output_file_path) # if converted_dict.get('MNFScriptDatabase1', {}).get('characterwise_narration') == "True": # hash = converted_dict["MNFScriptDatabase1"]["Onepager_Script_fileHash"] # output_file_path = converted_dict["MNFScriptDatabase1"]["onepager_pdf_path"] # download_file_System(hash,output_file_path) print(converted_dict["MNFScriptDatabase1"]) videos_path.append(converted_dict["MNFScriptDatabase1"]) converted_dict = converted_dict["MNFScriptDatabase1"] pq += 1 else: pass with open("/home/user/mnf/project/MNF/Pitchdeck/error_check1.txt","a") as file01: file01.write("Blockchainfile: " + str(videos_path) + "\n") return render( request, "Pitchdeck/bundle_videos.html", { "videos_path": videos_path, "pq": pq } ) else: obj = MNFScriptDatabase.objects.filter( user_id=request.user).order_by("-date_at") videos_path = obj print("videos_path-??", videos_path) pq = 0 for i in obj: if i.elevator_pitch_video_path or i.onepager_pdf_path or i.screenplay_analysis_video_path or i.character_intro_video_path or i.line_by_line_narration_video_path or i.selected_characters or i.characterwise_video_path or i.characterwise_narration: pq += 1 return render( request, "Pitchdeck/bundle_videos.html", { "videos_path": videos_path, "pq": pq} ) # many to many field or foreign key (characterwise_intro) # pravesh--> @login_required(login_url="/") def view_demo_narrations(request, lang): selected_option = lang if selected_option is not None: if selected_option in ["en", "hi", "mr", "fr"]: context = { "data": demo_files[selected_option], "demolist": list(demo_files[selected_option]) } return render(request, "Pitchdeck/viewDemoSampleScript.html", context) context = { "data": demo_files["en"], "demolist": list(demo_files["en"]) } t = loader.get_template('Pitchdeck/viewDemoSampleScript.html') rendered_html = t.render({"context": context}, request) # Extract HTML string using StringIO html_string = StringIO() html_string.write(rendered_html) html_string.seek(0) # with open('/home/user/mnf/project/MNF/Pitchdeck/yameen_html.html', 'w') as file: # file.write(html_string.read()) # Process HTML string using BeautifulSoup soup = BeautifulSoup(html_string, 'html.parser') # text_elements = [element for element in soup.find_all(text=is_user_visible)] # for i, text in enumerate(text_elements): # print("text", text) # trans_text = translate_comparison(text,"en", "it") # text_elements[i].replace_with(trans_text) modified_html = soup.prettify() return HttpResponse(modified_html, content_type='text/html') # return render(request, 'Pitchdeck/viewDemoSampleScript.html', context) # def narration(request): # sample=MNFScriptDatabase.objects.all() # title_list = [] # path_list = [] # for i in sample: # title_list.append(i.script_title) # path_list.append(str(i.script_file_path.split('scripts/')[1])) # return render(request, 'narration/narration.html',) def delete_script(request, id): MNFScriptDatabase.objects.get(id=id).delete() return HttpResponseRedirect("/narration/narrations") def demo(request): return render(request, "narration/demo.html", {}) def Onepagerdemo(request): return render(request, "Pitchdeck/Onepagerdemo.html", {}) def elevatorpitchdemo(request): return render(request, "Pitchdeck/elevatorpitchdemo.html", {}) def screenplaydemo(request): return render(request, "Pitchdeck/screenplaydemo.html", {}) def linebylinedemo(request): return render(request, "Pitchdeck/linebylinedemo.html", {}) def Characterwisedemo(request): return render(request, "Pitchdeck/Characterwisedemo.html", {}) def characterintrodemo(request): return render(request, "Pitchdeck/characterintrodemo.html", {}) def narratescriptdemo(request): return render(request, "Pitchdeck/narratescriptdemo.html", {}) def narrationroomdemo(request): return render(request, "Pitchdeck/narrationroomdemo.html", {}) def char_function(script_id,character): obj = Char_audio_class.char_audio(script_id, flag=True) audio_data = obj.char_audioTTS() obj_i =TestingC.Char_video_class(script_id) characterdata = obj_i.char_data_written() obj_i.new_logo() for i in characterdata: obj_i.first_intro_page(i) objAV = audio_video.audio_video(audio_data,script_id,characterdata,True) objAV.make_character_introduction(flag=True) path = objAV.make_dialogue_clip(character) return path def uploadData(request): if request.method == "POST": # if UserCredentialsForBlockchain.objects.filter(user=request.user).exists(): # blockchain_obj = UserCredentialsForBlockchain.objects.get(user=request.user) # print("blockchain_obj.privateKe",blockchain_obj.privateKey) # url = "http://127.0.0.1:8005/Write/onlyOwner" # uploadFiles = "http://127.0.0.1:5000/upload" # data ={ # "file": request.FILES['uploadfile'] # } # # request.FILES.get # response =requests.post(uploadFiles,files=data) # hash = response.json()["hash"] # Module= "narration" # servicesName = "PitchdeckCreation" # print(hash) # data1 ={ # "user_id":blockchain_obj.user_id, # "Module": Module, # "Services": servicesName, # "Data": request.POST.get('textdata') , # "File":[hash], # "userPrivateKey":blockchain_obj.privateKey # } # response =requests.post(url,json=data1) # # video_url = decryptionOfUrl(hash) # # response = requests.get(video_url, stream=True) MongoDBUrl = "mongodb+srv://mynextfilm:mnf123@cluster0.ojasb.mongodb.net/myFirstDatabase?retryWrites=true&w=majority" client = MongoClient(MongoDBUrl) db = client.DB users = db["auth_user"].find() for user in users: if "id" in user: print(user["id"]) if UserCredentialsForBlockchain.objects.filter(user_id=user["id"]).exists(): print("user is alrady exists") else: accountDetail = walletCreation() binaryToHex = accountDetail[1] blockchain_obj = UserCredentialsForBlockchain() blockchain_obj.user_id = user["id"] blockchain_obj.privateKey = binaryToHex blockchain_obj.publicKey = accountDetail[0] blockchain_obj.save() return render(request,"Pitchdeck/getPostdata.html") return render(request,"Pitchdeck/getPostdata.html") def getData(request): if UserCredentialsForBlockchain.objects.filter(user=request.user).exists(): blockchain_obj = UserCredentialsForBlockchain.objects.get(user=request.user) print("blockchain_obj.privateKe",blockchain_obj.privateKey) Module= "narration" servicesName = "PitchdeckCreation" data ={ "private_key": blockchain_obj.privateKey, "user_id": blockchain_obj.user_id, "Module": Module, "Services": servicesName, "Project": 0, } response =requests.get(GET_OWNER,params=data) getData = response.json() with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("form data>>>>>>>>>>2: " + str(getData) + "\n") # data = getData["getData"] data1 = getData.get("getData")[1] hash = getData.get("getData")[2][0] _url = decryptionOfUrl(hash) with open("/home/user/mnf/project/MNF/Pitchdeck/error_check.txt","a") as file01: file01.write("form data>>>>>>>>>>1: " + str(data1 ) + "\n") response11 = requests.get(_url, stream=True) # Check if the request was successful if response11.status_code == 200: # Get the total size of the video in bytes total_size = int(response11.headers.get('content-length', 0)) # Replace 'video.mp4' with the desired file path and name output_file_path = '/home/user/mnf/project/MNF/media/Blockchaainscripts/storage.pdf' # Save the video to a local file with a progress bar with open(output_file_path, 'wb') as video_file, tqdm( desc=output_file_path, total=total_size, unit='B', unit_scale=True, unit_divisor=1024, ) as progress_bar: for data in response11.iter_content(chunk_size=1024): video_file.write(data) progress_bar.update(len(data)) print("Video saved successfully.") else: print("Failed to download the video. Status code:", response11.status_code) url ="http://115.245.192.138/media/Blockchaainscripts/storage.docx" return render(request,"Pitchdeck/getPostdata.html", {"url": url, "data" :data1}) # from tqdm import tqdm # def test(request): # data = Pitch_creation() # result = [] # progress = 0 # total = len(data) # for item in tqdm(data, total=total): # result.append(process_item(item)) # progress = int(100 * len(result) / total) # tqdm.update(progress) # return render(request, "Pitchdeck/testfile.html",{'result': result, 'progress': progress}) # def get_samescript_data(user, script_name): # mnf_script = MNFScriptDatabase.objects.filter(user_id=user, script_name=script_name).first() # if mnf_script.exists(): # for i in mnf: # if i.elevator_pitch_video_path or i.onepager_pdf_path or i.screenplay_analysis_video_path or i.character_intro_video_path or i.line_by_line_narration_video_path or i.selected_characters or i.characterwise_video_path or i.characterwise_narration: # pitchvector_data = PitchVector.objects.filter(user_id=user, id=mnf_script.id).first() # return pitchvector_data # return None