917 lines
35 KiB
Python
Executable File
917 lines
35 KiB
Python
Executable File
from lpp.views import task_assigner
|
|
import re
|
|
from mnfapp.models import MNFScriptDatabase
|
|
from mnfapp.models import SampleScript, PaymentData
|
|
|
|
# from mnfapp.views import PaymentDetails
|
|
from scriptAudit.script_audit_codes.script_audit import do_script_audit
|
|
from payment.models import conversionPayment, privilegedUser1
|
|
from forex_python.converter import CurrencyRates
|
|
from mnfapp.models import *
|
|
from users.models import *
|
|
import stripe
|
|
from django.shortcuts import redirect
|
|
from PyPDF2 import PdfFileReader
|
|
from .forms import CScript
|
|
from .models import UploadScript, StoryConversion
|
|
from MNF.settings import BasePath
|
|
import subprocess
|
|
from django.shortcuts import render
|
|
from django.contrib.auth.decorators import login_required
|
|
from .detection import getInputs
|
|
import random
|
|
from subprocess import Popen
|
|
|
|
# from conversion.translation import final_translation
|
|
from conversion.translation.twostepconversion import translate_function
|
|
from mnfapp.models import MNFScriptDatabase, Notifications
|
|
from page_script.models import MNFScriptDatabase_2, Conversions, Conversion_link
|
|
from django.contrib.auth.decorators import login_required
|
|
from pymongo import MongoClient
|
|
from django.core.mail import EmailMessage
|
|
from django.conf import settings
|
|
from django.http import HttpResponse, JsonResponse, HttpResponseRedirect
|
|
from pathlib import Path
|
|
from django.core.files.storage import FileSystemStorage
|
|
from django.core.mail import EmailMultiAlternatives
|
|
from django.template.loader import render_to_string
|
|
from django.utils.html import strip_tags
|
|
import os
|
|
import datetime
|
|
import razorpay
|
|
from pytz import timezone
|
|
from django.contrib.auth.models import User
|
|
from lpp.models import LPPTASKDatabase
|
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
|
|
|
# Create your views here.
|
|
# Create your views here.
|
|
basePath = BasePath()
|
|
# Create your views here.
|
|
#
|
|
|
|
|
|
# This is your real test secret API key.
|
|
# stripe.api_key = "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"
|
|
# stripe.api_key = "sk_test_51JT8ahSF9vzGWnggJT1M69LDT0Q8tCqvHzuWd9Fih5YO2guIpMpUd58swbDrJYocpQZAn3nY8k3Ymyw8QZ8dLeEF00VxfBmMWI"
|
|
stripe.api_key = settings.STRIPE_SECRET_KEY
|
|
# STRIPE_PUB_KEY ="pk_test_51JT8ahSF9vzGWngg9ik0jueTIilHhCQomixBFOiNzCuo4Wwc5oRm73d05vdcboMgNwhyNcNTa2si8idqbB5msvwe006q3S96tM"
|
|
# STRIPE_PUB_KEY ="pk_live_51JT8ahSF9vzGWngg4N8fwhTPk5jq8fqBFdokqSMe7AVaOvH6BdyTwAfAoY79qkeJTFA0OdT5qkAk2FCNWCu6W9l000STNnHa7H"
|
|
STRIPE_PUB_KEY = settings.STRIPE_PUBLISHABLE_KEY
|
|
keyID = settings.RAZORPAY_KEY_ID
|
|
keySecret = settings.RAZORPAY_KEY_SECRET
|
|
languages = {
|
|
"hi": "Hindi",
|
|
"en": "English",
|
|
"ur": "Urdu",
|
|
"ar": "Arabic",
|
|
"bn": "Bengali",
|
|
"kn": "Kannada",
|
|
"ta": "Tamil",
|
|
"bg": "Bulgarian",
|
|
"bn": "Bengali",
|
|
"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": "Gujarati",
|
|
"or": "Oriya",
|
|
"zh-CN": "Chinese-Simplified",
|
|
"zh-TW": "Chinese-Traditional",
|
|
"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": "Kazakh",
|
|
"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",
|
|
}
|
|
|
|
|
|
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 conversion(request):
|
|
print("************************************777777777777777777777888888888888888888889999999999999999999---------------")
|
|
print("Entered ConversionFunction")
|
|
number = ReferUser.objects.filter(reffered_by=request.user).count()
|
|
# print(funcname)
|
|
M = MNFScriptDatabase()
|
|
|
|
sampleList = SampleScript.objects.all()
|
|
MyURL = ""
|
|
dial_src_script = ""
|
|
dial_src_lang = ""
|
|
non_dial_src_lang = ""
|
|
non_dial_src_script = ""
|
|
script_title = ""
|
|
author_name = ""
|
|
numPages = 0
|
|
option3 = ""
|
|
option4 = ""
|
|
option5 = ""
|
|
option6 = ""
|
|
context = {}
|
|
UScript = CScript()
|
|
id = ""
|
|
x = datetime.datetime.now(timezone("UTC")).astimezone(
|
|
timezone("Asia/Kolkata"))
|
|
# print("MY base path is " ,str(BASE_DIR))
|
|
UploadedScript = UploadScript()
|
|
if request.method == "POST":
|
|
y = Conversion_link()
|
|
|
|
M.script = request.FILES["script"]
|
|
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)
|
|
# 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)
|
|
script_title = M.script.name
|
|
# script_title = script_title[8:]
|
|
if script_title[-3:] == "pdf":
|
|
print(do_script_audit(basePath + MyURL, "1234", "scripts"))
|
|
pdf = PdfFileReader(open(rf"{basePath}/{MyURL}", "rb"))
|
|
numPages = pdf.getNumPages()
|
|
# MyURL = MyURL[:-3]+"docx"
|
|
else:
|
|
numPages = countPages(
|
|
str(BASE_DIR) + "/media/" +
|
|
script_title, script_title[8:-4] + "pdf"
|
|
)
|
|
|
|
MyURL = MyURL.replace(".pdf", ".docx")
|
|
formInput = getInputs(str(BASE_DIR) + MyURL)
|
|
dial_src_script = formInput[2]
|
|
dial_src_lang = formInput[1]
|
|
non_dial_src_lang = formInput[0]
|
|
non_dial_src_script = formInput[3]
|
|
option3 = formInput[4]
|
|
option4 = formInput[5]
|
|
option5 = formInput[6]
|
|
option6 = formInput[7]
|
|
print("The Data of formInput is:", formInput)
|
|
print("done")
|
|
context = {
|
|
"id": M.id,
|
|
"numPages": numPages,
|
|
"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,
|
|
"list": sampleList,
|
|
"option3": option3,
|
|
"option4": option4,
|
|
"option5": option5,
|
|
"option6": option6,
|
|
"number": number,
|
|
}
|
|
|
|
return render(request, "conversion/conversion.html", context)
|
|
return render(request, "conversion/conversion.html", {"list": sampleList, "number": number})
|
|
|
|
|
|
def is_converted(request):
|
|
script_id = request.GET["script_id"]
|
|
obj = MNFScriptDatabase.objects.get(script_id=script_id)
|
|
print("obj.script convetred function", obj.translated_script_path)
|
|
if obj.translated_script_path:
|
|
return JsonResponse({"status": "success"}, status=200)
|
|
else:
|
|
return JsonResponse({"status": "pending"}, status=202)
|
|
|
|
|
|
def make_conversion(request):
|
|
print("********************************444444444444444444555555555555555556666666666666666666666----------------------")
|
|
print("MAke Conversion mein hu")
|
|
# print(funcname)
|
|
script_file_path = request.GET["script_file_path"]
|
|
str1 = str(script_file_path)
|
|
print(str1[41:45])
|
|
if str1[41:45] == "user":
|
|
script_file_path = "/home/" + str(str1[41:])
|
|
|
|
script_id = request.GET["script_id"]
|
|
script_id2 = request.GET["script_id2"]
|
|
dial_conv_script = request.GET["dial_conv_script"]
|
|
dial_src_lang = request.GET["dial_src_lang"]
|
|
print("from_ui_dial_src_lang", dial_src_lang)
|
|
non_dial_src_lang = request.GET["non_dial_src_lang"]
|
|
print("from_ui_non_dial_src_lang", non_dial_src_lang)
|
|
dial_src_script = request.GET["dial_src_script"]
|
|
restrict_to_five = request.GET["restrict_to_five"]
|
|
option3 = request.GET.get("option3")
|
|
option4 = request.GET.get("option4")
|
|
option5 = request.GET.get("option5")
|
|
option6 = request.GET.get("option6")
|
|
# script_name= request.GET['script_title']
|
|
# dual_dial = request.GET['dual_dial_script']
|
|
# dial_dest = request.GET['dial_dest_script']
|
|
print("Inside conversion function of views")
|
|
|
|
#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"
|
|
global client, script_title, db
|
|
client = MongoClient(MongoDBUrl)
|
|
db = client.DB
|
|
# global client,script_title,db
|
|
# script_id = "scr_1612524497" # for testing and then we will pass it through cli
|
|
script_id = script_id
|
|
print("script_id", script_id)
|
|
user_script_data = db["mnfapp_mnfscriptdatabase"].find_one(
|
|
{"script_id": script_id})
|
|
print("user_script_data", user_script_data)
|
|
# filename1 = sys.argv[1]
|
|
|
|
script_title = user_script_data.get("script_title")
|
|
filename1 = script_file_path
|
|
print("Script File name ", filename1)
|
|
# dial_dest_lang = sys.argv[2]
|
|
dial_dest_lang = user_script_data.get("dial_dest_language")
|
|
print("selected_dialouge lanaguage ", dial_dest_lang)
|
|
# dial_dest_script = sys.argv[3]
|
|
dial_dest_script = user_script_data.get("dial_dest_script")
|
|
print("selected_dialouge script name", dial_dest_script)
|
|
# non_dial_dest_lang = sys.argv[4]
|
|
non_dial_dest_lang = user_script_data.get("nondial_dest_language")
|
|
print("selected_actionline language", non_dial_dest_lang)
|
|
# dual_dial_script = sys.argv[5]
|
|
dual_dial_script = user_script_data.get("dual_dial_script") # Yes,No
|
|
print(dual_dial_script)
|
|
print("Translation suru ho rha hai")
|
|
print(
|
|
"Yahan dekho",
|
|
script_file_path,
|
|
script_id,
|
|
dial_conv_script,
|
|
dial_src_lang,
|
|
non_dial_src_lang,
|
|
dial_src_script,
|
|
dial_src_script,
|
|
restrict_to_five,
|
|
)
|
|
print(
|
|
rf'translate_function("{script_file_path}", "{script_id}", "{dial_conv_script}", "{dial_src_lang}","{non_dial_src_lang}", "{dial_src_script}", "{restrict_to_five}", "{option3}", "{option4}", "{option5}", "{option6}")'
|
|
)
|
|
try:
|
|
# final_translation.translate_function(script_file_path, script_id, dial_conv_script, dial_src_lang,
|
|
# non_dial_src_lang, dial_src_script, restrict_to_five, option3, option4, option5, option6)
|
|
# translate_function(script_file_path, script_id, dial_conv_script, dial_src_lang,non_dial_src_lang, dial_src_script, restrict_to_five, option3, option4, option5, option6)
|
|
print("123455667788------------------------------------45644848484344345434843438--------------***************")
|
|
print(script_id)
|
|
filename = translate_function(
|
|
script_file_path,
|
|
script_id,
|
|
dial_src_lang,
|
|
non_dial_src_lang,
|
|
dial_src_script,
|
|
restrict_to_five,
|
|
option3,
|
|
option4,
|
|
option5,
|
|
option6
|
|
)
|
|
|
|
print(
|
|
"111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222244444444444444444444444444444444444444444444444444444411111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111")
|
|
print(script_id2)
|
|
if script_id2 == "":
|
|
print("4545")
|
|
pass
|
|
else:
|
|
print("5454")
|
|
print(MNFScriptDatabase_2.objects.get(script_id=str(script_id2)))
|
|
print(Conversion_link.objects.filter(
|
|
script_idd=MNFScriptDatabase_2.objects.get(script_id=str(script_id2))))
|
|
if Conversion_link.objects.filter(
|
|
script_idd=MNFScriptDatabase_2.objects.get(script_id=str(script_id2))).exists():
|
|
y = Conversion_link.objects.filter(
|
|
script_idd=MNFScriptDatabase_2.objects.get(script_id=str(script_id2)))
|
|
else:
|
|
print("412412")
|
|
y = Conversion_link()
|
|
y.script_idd = MNFScriptDatabase_2.objects.get(
|
|
script_id=str(script_id2))
|
|
y.save()
|
|
print(
|
|
"1111111111111111111111111111111111gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111")
|
|
|
|
z = Conversions()
|
|
print("1")
|
|
z.created_on = datetime.datetime.now()
|
|
print("2")
|
|
z.dial_src_language = dial_src_lang
|
|
print("3")
|
|
z.dial_dest_language = dial_dest_lang
|
|
print("4")
|
|
z.dial_dest_script = dial_dest_script
|
|
print("5")
|
|
z.nondial_dest_language = non_dial_dest_lang
|
|
print("6")
|
|
z.nondial_src_script = non_dial_src_lang
|
|
print("7")
|
|
z.dial_src_script = dial_src_script
|
|
print("8")
|
|
z.dual_dial_script = dual_dial_script
|
|
print("9")
|
|
z.translated_script_path = str(filename)
|
|
print("10")
|
|
z.save()
|
|
print(
|
|
"111111111111111111111111111111111111111dssdsqwertqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq44444444444444444444111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111")
|
|
|
|
y.conversions.add(z)
|
|
|
|
print("see whats in script file path conversion", script_file_path)
|
|
if request.GET.get("to_be_vetted_by_lpp"):
|
|
print(3 * "###############")
|
|
obj = MNFScriptDatabase.objects.get(script_id=script_id)
|
|
X = LPPTASKDatabase()
|
|
X.user_id = obj.user_id
|
|
X.translated_file = obj.translated_script_path
|
|
X.taskname = obj.script_file_path.replace(basePath, "")
|
|
X.firstLanguage = languages[obj.dial_src_language]
|
|
X.secondLanguage = languages[obj.dial_dest_language]
|
|
X.usernote = "Kindly check if the translated file is correct as per the Uploaded Document!"
|
|
X.save()
|
|
task_assigner(int(X.id))
|
|
|
|
print("Script Translated successfully")
|
|
# context = {'status': "Success"}
|
|
user = request.user
|
|
subject = "Conversion Generated Successfully " + "."
|
|
from_email = settings.EMAIL_HOST_USER
|
|
to = request.user.email
|
|
print("user is", user)
|
|
print("from email", from_email)
|
|
print("to email", to)
|
|
print("script_name", script_title)
|
|
print("dialogue destination language", languages.get(dial_dest_lang))
|
|
print("non dialogue destination language",
|
|
languages.get(non_dial_dest_lang))
|
|
print("non dialogue source script", languages.get(non_dial_src_lang))
|
|
response = redirect("narration").url
|
|
|
|
path = request.build_absolute_uri(response)
|
|
context = {
|
|
"Name": user,
|
|
"script_id": script_id,
|
|
"script_name": script_title,
|
|
"dual_dial": dual_dial_script,
|
|
"dial_src_lang": dial_src_script,
|
|
"dial_dest_lang": languages.get(dial_dest_lang),
|
|
"non_dial_dest_lang": languages.get(non_dial_dest_lang),
|
|
"non_dial_src_lang": languages.get(non_dial_src_lang),
|
|
"dial_dest_script": dial_dest_script,
|
|
"status": "Success",
|
|
"path": path,
|
|
}
|
|
html_content = render_to_string(
|
|
"conversion/email.html", context
|
|
) # render with dynamic value
|
|
print(html_content, "this is a html content ****************** ")
|
|
# Strip the html tag. So people can see the pure text at least.
|
|
text_content = strip_tags(html_content)
|
|
# create the email, and attach the HTML version as well.
|
|
print("email process started")
|
|
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
|
|
msg.attach_alternative(html_content, "text/html")
|
|
msg.send()
|
|
print("after mail has been sent my context is", context)
|
|
|
|
return JsonResponse(context, status=200)
|
|
except:
|
|
print(
|
|
"Script translation failed due to some internal error. If you have made any payment for conversion that will be refunded"
|
|
)
|
|
payment_intent_id = user_script_data.get("payment_intent_id")
|
|
print(
|
|
"translated script file path in except",
|
|
user_script_data.get("translated_script_path"),
|
|
)
|
|
obj = MNFScriptDatabase.objects.get(script_id=script_id)
|
|
print("obj.script convetred function", obj.translated_script_path)
|
|
|
|
# if obj.translated_script_path:
|
|
# print("Script Translated successfully")
|
|
# context = {'status': "Success"}
|
|
# user = request.user
|
|
# # email = user.email
|
|
# # message = "Hi " + str(user) + ",\nThe conversion for your script "+script_title + \
|
|
# # " is ready. You will find it in the My Conversions section of the MyNextFilm website. For any queries, feel free to reach us at support@mynextfilm.com.\nHappy Filming!\nMy Next Film"
|
|
# # email_message = EmailMessage(
|
|
# # "Conversion generated successfully", message, settings.EMAIL_HOST_USER, [email])
|
|
# # email_message.send()
|
|
# # var = Notifications(user_id=request.user, notification=str(
|
|
# # "Conversion generated successfully for "+script_title))
|
|
# # var.save()
|
|
|
|
# subject= "Conversion Generated Successfully "+ "."
|
|
# from_email = settings.EMAIL_HOST_USER
|
|
# to = user.email
|
|
# context = {
|
|
|
|
# 'Name': user,
|
|
# 'script_name':script_title,
|
|
# 'dual_dial':dual_dial_script,
|
|
# 'dial_dest':dial_dest_script,
|
|
# 'status': "Success",
|
|
|
|
# }
|
|
# html_content = render_to_string('conversion/email.html', context) # render with dynamic value
|
|
# # Strip the html tag. So people can see the pure text at least.
|
|
# text_content = strip_tags(html_content)
|
|
# # create the email, and attach the HTML version as well.
|
|
# print('email process started')
|
|
# msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
|
|
# msg.attach_alternative(html_content, "text/html")
|
|
# msg.send()
|
|
|
|
# return JsonResponse(context, status=200)
|
|
|
|
if payment_intent_id:
|
|
if payment_intent_id[0:4] == "pay":
|
|
client = razorpay.Client(auth=(keyID, keySecret))
|
|
payment_id = payment_intent_id
|
|
total_amount = request.POST.get("total_amount")
|
|
c = CurrencyRates()
|
|
rate = c.get_rate("USD", "INR")
|
|
payment_amount = int(float(total_amount) * 100 * rate)
|
|
resp = client.payment.refund(payment_id, payment_amount)
|
|
else:
|
|
stripe.Refund.create(payment_intent_id)
|
|
|
|
return JsonResponse({}, status=505)
|
|
|
|
|
|
@login_required
|
|
def view_conversion(request):
|
|
number = ReferUser.objects.filter(reffered_by=request.user).count()
|
|
obj = MNFScriptDatabase.objects.filter(
|
|
user_id=request.user).order_by("-date_at")
|
|
|
|
script_path = []
|
|
pq = 0
|
|
for i in obj:
|
|
if i.translated_script_path != "":
|
|
script_path.append(i.translated_script_path)
|
|
pq += 1
|
|
|
|
print(script_path)
|
|
lenV = len(script_path)
|
|
print(len(script_path))
|
|
return render(
|
|
request, "conversion/stored_conversions.html", {
|
|
"script_path": obj, "pq": pq, "number": number}
|
|
)
|
|
|
|
|
|
def delete_script(request, id):
|
|
MNFScriptDatabase.objects.get(id=id).delete()
|
|
return HttpResponseRedirect("/conversion/view_conversion")
|
|
|
|
|
|
def demo(request):
|
|
number = ReferUser.objects.filter(reffered_by=request.user).count()
|
|
return render(request, "conversion/demo.html", {"number": number})
|
|
|
|
|
|
def announce(request):
|
|
message = ""
|
|
user = User.objects.all()
|
|
cUser = request.user
|
|
if cUser.is_superuser == True:
|
|
if request.method == "POST":
|
|
notification = request.POST.get("message")
|
|
for i in user:
|
|
var = Notifications(user_id=i, notification=notification)
|
|
var.save()
|
|
messgae = "notification sent successfull."
|
|
return render(request, "conversion/announce.html", {"message": message})
|
|
else:
|
|
return render(request, "conversion/announce.html", {})
|
|
else:
|
|
message = " you need to be superuser"
|
|
return render(request, "conversion/announce.html", {"message": message})
|
|
|
|
|
|
def sampleConversion():
|
|
dict = {"id": 1, "title": "Deepika"}
|
|
|
|
|
|
def conversionCheckout(request):
|
|
# print(funcname)
|
|
if request.method == "POST":
|
|
if request.POST.get("want_to_be_vetted"):
|
|
total_amount = request.session["lppamount"]
|
|
else:
|
|
total_amount = request.session["amount"]
|
|
request.session["want_to_be_vetted"] = request.POST.get(
|
|
"want_to_be_vetted")
|
|
request.session["interested_to_be_lpp"] = request.POST.get(
|
|
"interested_to_be_lpp"
|
|
)
|
|
if request.POST.get("country") == "IN":
|
|
c = CurrencyRates()
|
|
rate = c.get_rate("USD", "INR")
|
|
amtINR = round(float(float(total_amount) * rate), 2)
|
|
client = razorpay.Client(auth=(keyID, keySecret))
|
|
payment_intent = client.order.create(
|
|
{
|
|
"amount": int(float(total_amount) * 100 * rate),
|
|
"currency": "INR",
|
|
"payment": {
|
|
"capture": "automatic",
|
|
"capture_options": {"refund_speed": "normal"},
|
|
},
|
|
}
|
|
)
|
|
pid = payment_intent["id"]
|
|
context = {
|
|
"pk": keyID,
|
|
"amtINR": amtINR,
|
|
"pid": pid,
|
|
"amount": total_amount,
|
|
}
|
|
return render(request, "conversion/checkoutC_RazorPay.html", context)
|
|
|
|
else:
|
|
c = CurrencyRates()
|
|
rate = c.get_rate("USD", "INR")
|
|
amtINR = round(float(float(total_amount) * rate), 2)
|
|
payment_intent = stripe.PaymentIntent.create(
|
|
amount=int(float(total_amount) * 100 * rate),
|
|
currency="INR",
|
|
payment_method_types=["card"],
|
|
)
|
|
request.session["payment_intent_id"] = payment_intent.id
|
|
context = {
|
|
"pk": STRIPE_PUB_KEY,
|
|
"total_amount": total_amount,
|
|
"amtINR": amtINR,
|
|
}
|
|
return render(request, "conversion/checkoutC.html", context)
|
|
return render(request, "conversion/conversion.html")
|
|
|
|
|
|
@login_required
|
|
def conversioncard(request):
|
|
if request.method == "POST":
|
|
payment_method_id = request.POST["payment_method_id"]
|
|
payment_intent_id = request.session["payment_intent_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 = {
|
|
"pk": STRIPE_PUB_KEY,
|
|
"payment_intent_secret": pi.client_secret,
|
|
}
|
|
return render(request, "conversion/3dsecuredConversion.html", context)
|
|
return render(request, "payments/paymentdone.html")
|
|
|
|
|
|
def paymentDoneC(request):
|
|
|
|
if request.method == "POST":
|
|
|
|
script_id = request.session["script_id"]
|
|
script_title = request.session["script_title"]
|
|
script_file_path = request.session["script_file_path"]
|
|
dial_conv_script = request.session["dial_conv_script"]
|
|
nondial_dest_language = request.session["nondial_dest_language"]
|
|
dial_dest_language = request.session["dial_dest_language"]
|
|
dial_dest_script = request.session["dial_dest_script"]
|
|
dial_src_lang = request.session["dial_src_lang"]
|
|
non_dial_src_lang = request.session["non_dial_src_lang"]
|
|
dial_src_script = request.session["dial_src_script"]
|
|
non_dial_src_script = request.session["non_dial_src_script"]
|
|
dual_dial_script = request.session["dual_dial_script"]
|
|
if request.session.get("want_to_be_vetted"):
|
|
total_amount = request.session["lppamount"]
|
|
else:
|
|
total_amount = request.session["amount"]
|
|
to_be_vetted_by_lpp = request.session.get("want_to_be_vetted")
|
|
option3 = request.session["option3"]
|
|
option4 = request.session["option4"]
|
|
option5 = request.session["option5"]
|
|
option6 = request.session["option6"]
|
|
payment_intent_id = request.session["payment_intent_id"]
|
|
pi = stripe.PaymentIntent.retrieve(payment_intent_id)
|
|
|
|
if pi.status == "succeeded":
|
|
c = conversionPayment()
|
|
s = MNFScriptDatabase()
|
|
s.user_id = request.user
|
|
s.script_id = script_id
|
|
s.script_title = script_title
|
|
s.author_name = request.user.first_name
|
|
s.dial_dest_language = dial_dest_language
|
|
s.dial_dest_script = dial_dest_script
|
|
s.nondial_dest_language = nondial_dest_language
|
|
s.dual_dial_script = dual_dial_script
|
|
s.script_file_path = script_file_path
|
|
s.payment_intent_id = payment_intent_id
|
|
s.nondial_src_script = non_dial_src_script
|
|
s.dial_src_script = dial_src_script
|
|
s.dial_src_language = dial_src_lang
|
|
s.nondial_src_language = non_dial_src_lang
|
|
s.save()
|
|
|
|
# -----------Adding Details to payment Details--------------------------
|
|
|
|
user_id = request.user
|
|
payment_id = payment_intent_id
|
|
# services_used =
|
|
script_info = script_id
|
|
total_amount = total_amount
|
|
# discount =
|
|
# amount_charged =
|
|
# gateway_fee =
|
|
# currency =
|
|
# pay_method =
|
|
# payment_status =
|
|
# payment_gateway =
|
|
PaymentData.objects.create(
|
|
user_id=user_id,
|
|
payment_id=payment_id,
|
|
script_info=script_info,
|
|
total_amount=total_amount,
|
|
)
|
|
|
|
# c.pid = privilegedUser1.objects.get(user= request.user)
|
|
# c.script_title = script_title
|
|
# c.script_id = script_id
|
|
# c.to_be_vetted_by_lpp = to_be_vetted_by_lpp
|
|
# c.payment_intent_id = payment_intent_id
|
|
# c.total_amount = str(total_amount)
|
|
# c.script_file_path = script_file_path
|
|
# c.has_paid = 'yes'
|
|
# c.save()
|
|
context = {
|
|
"script_id": script_id,
|
|
"script_title": script_title,
|
|
"script_file_path": script_file_path,
|
|
"dial_conv_script": dial_conv_script,
|
|
"nondial_dest_language": nondial_dest_language,
|
|
"dial_dest_language": dial_dest_language,
|
|
"dial_dest_script": dial_dest_script,
|
|
"dial_src_lang": dial_src_lang,
|
|
"non_dial_src_lang": non_dial_src_lang,
|
|
"dial_src_script": dial_src_script,
|
|
"dual_dial_script": dual_dial_script,
|
|
"total_amount": total_amount,
|
|
"to_be_vetted_by_lpp": to_be_vetted_by_lpp,
|
|
"restrict_to_five": "no",
|
|
"option3": option3,
|
|
"option4": option4,
|
|
"option5": option5,
|
|
"option6": option6,
|
|
}
|
|
return render(request, "conversion/my_conversions.html", context)
|
|
else:
|
|
return render(request, "payments/failed.html")
|
|
|
|
|
|
def paymentDoneC_RazorPay(request):
|
|
if request.method == "POST":
|
|
script_id = request.session["script_id"]
|
|
script_title = request.session["script_title"]
|
|
script_file_path = request.session["script_file_path"]
|
|
dial_conv_script = request.session["dial_conv_script"]
|
|
nondial_dest_language = request.session["nondial_dest_language"]
|
|
dial_dest_language = request.session["dial_dest_language"]
|
|
dial_dest_script = request.session["dial_dest_script"]
|
|
dial_src_lang = request.session["dial_src_lang"]
|
|
non_dial_src_lang = request.session["non_dial_src_lang"]
|
|
dial_src_script = request.session["dial_src_script"]
|
|
dual_dial_script = request.session["dual_dial_script"]
|
|
non_dial_src_script = request.session["non_dial_src_script"]
|
|
if request.session.get("want_to_be_vetted"):
|
|
total_amount = request.session["lppamount"]
|
|
else:
|
|
total_amount = request.session["amount"]
|
|
to_be_vetted_by_lpp = request.session.get("want_to_be_vetted")
|
|
option3 = request.session["option3"]
|
|
option4 = request.session["option4"]
|
|
option5 = request.session["option5"]
|
|
option6 = request.session["option6"]
|
|
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:
|
|
return render(request, "payments/failed.html")
|
|
c = conversionPayment()
|
|
s = MNFScriptDatabase()
|
|
s.user_id = request.user
|
|
s.script_id = script_id
|
|
s.script_title = script_title
|
|
s.author_name = request.user.first_name
|
|
s.dial_dest_language = dial_dest_language
|
|
s.dial_dest_script = dial_dest_script
|
|
s.nondial_dest_language = nondial_dest_language
|
|
s.dual_dial_script = dual_dial_script
|
|
s.script_file_path = script_file_path
|
|
s.payment_intent_id = razorpay_payment_id
|
|
s.nondial_src_script = non_dial_src_script
|
|
s.dial_src_script = dial_src_script
|
|
s.dial_src_language = dial_src_lang
|
|
s.nondial_src_language = non_dial_src_lang
|
|
s.save()
|
|
# c.pid = privilegedUser1.objects.get(user= request.user)
|
|
# c.script_title = script_title
|
|
# c.script_id = script_id
|
|
# c.to_be_vetted_by_lpp = to_be_vetted_by_lpp
|
|
# c.payment_intent_id = razorpay_payment_id
|
|
# c.total_amount = str(total_amount)
|
|
# c.script_file_path = script_file_path
|
|
# c.has_paid = 'yes'
|
|
# c.save()
|
|
context = {
|
|
"script_id": script_id,
|
|
"script_title": script_title,
|
|
"script_file_path": script_file_path,
|
|
"dial_conv_script": dial_conv_script,
|
|
"nondial_dest_language": nondial_dest_language,
|
|
"dial_dest_language": dial_dest_language,
|
|
"dial_dest_script": dial_dest_script,
|
|
"dial_src_lang": dial_src_lang,
|
|
"non_dial_src_lang": non_dial_src_lang,
|
|
"dial_src_script": dial_src_script,
|
|
"dual_dial_script": dual_dial_script,
|
|
"total_amount": total_amount,
|
|
"to_be_vetted_by_lpp": to_be_vetted_by_lpp,
|
|
"restrict_to_five": "no",
|
|
"option3": option3,
|
|
"option4": option4,
|
|
"option5": option5,
|
|
"option6": option6,
|
|
}
|
|
return render(request, "conversion/my_conversions.html", context)
|
|
else:
|
|
return render(request, "payments/failed.html")
|
|
|
|
|
|
def convert_story(request):
|
|
if request.method == "POST":
|
|
from mnfapp.views import languages as lang
|
|
y = StoryConversion()
|
|
y.user_id = request.user
|
|
y.upload_story = request.FILES["story"]
|
|
|
|
y.target_language = lang[request.POST.get('target_lang')]
|
|
y.source_language = lang[request.POST.get('src_lang')]
|
|
y.save()
|
|
|
|
context = {}
|
|
return render(request, "conversion/convertStory.html", context)
|
|
|
|
|
|
def view_converted_stories(request):
|
|
number = ReferUser.objects.filter(reffered_by=request.user).count()
|
|
obj = StoryConversion.objects.filter(
|
|
user_id=request.user).order_by("-date_at")
|
|
|
|
script_path = []
|
|
pq = 0
|
|
for i in obj:
|
|
if i.translated_story_docx != "":
|
|
script_path.append(i.translated_story_docx)
|
|
pq += 1
|
|
|
|
return render(request, "conversion/viewStory.html", {"script_path": obj, "pq": pq, "number": number})
|