Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.shortcuts import render,redirect,render_to_response
- import zipfile
- from .forms import UserRegisterForm
- from django.contrib import messages
- import urllib
- from django.template import RequestContext
- from django.db import connection
- from .models import Subscription
- from django.contrib.auth import authenticate,login
- from django.contrib.auth.decorators import login_required
- from django.views import generic
- from django.views.generic import View
- from .forms import UserForm
- from django.http import HttpResponse
- from django.conf import settings
- from django.core.files.storage import FileSystemStorage
- import moviepy.editor as mp
- from shutil import make_archive
- import sys
- import timeit
- import cv2
- import argparse
- import os
- import authorize
- import functools
- from functools import cmp_to_key
- from PIL import Image
- import urllib.request
- import sys
- import copy
- def resize(i,usernamec):
- path2 = settings.MEDIA_ROOT + "/"+usernamec+"/image/"
- dirs2 = os.listdir(path2)
- for item in dirs2:
- if os.path.isfile(path2 + item):
- im = Image.open(path2 + item)
- f, e = os.path.splitext(path2 + item)
- imResize = im.resize((1080, 720), Image.ANTIALIAS)
- imResize.save(path2 + str(i) + '.png', 'PNG', quality=90)
- i = i + 1
- #os.remove(path2 + item)
- # Function to check if string can be cast to int
- def isnum(num):
- try:
- int(num)
- return True
- except:
- return False
- # Numerically sorts filenames
- def image_sort(x, y):
- x = int(x.split(".")[0])
- y = int(y.split(".")[0])
- return x - y
- def make_video(text, ado, usernamec):
- fp = settings.MEDIA_ROOT + "/"+usernamec+""
- path = settings.MEDIA_ROOT + "/"+usernamec+"/image/"
- dirs = os.listdir(path)
- print(text)
- path = settings.MEDIA_ROOT + "/"+usernamec+"/image/"
- resize(1,usernamec)
- # Construct the argument parser and parse the arguments
- # arg_parser = argparse.ArgumentParser()
- # arg_parser.add_argument("-e", "--extension", required=False, default='png',
- # help="Extension name. default is 'png'.")
- # arg_parser.add_argument("-o", "--output", required=False, default=settings.MEDIA_ROOT+"/image/", help="Output video file.")
- # arg_parser.add_argument("-d", "--directory", required=False, default=settings.MEDIA_ROOT+"/video/output.mp4", help="Specify image directory.")
- # arg_parser.add_argument("-fps", "--framerate", required=False, default='10', help="Set the video framerate.")
- # arg_parser.add_argument("-s", "--sort", required=False, default='numeric',
- # help="Determines the type of file-order sort that will be used.")
- # arg_parser.add_argument("-t", "--time", required=False, default='10',
- # help="Sets the framerate so that the video length matches the time in seconds.")
- # arg_parser.add_argument("-v", "--visual", required=False, default='false',
- # help="If 'true' then will display preview window.")
- # args = vars(arg_parser.parse_args())
- # Arguments
- dir_path = settings.MEDIA_ROOT+"/"+usernamec+"/image/"
- ext = 'png'
- output = settings.MEDIA_ROOT+"/"+usernamec+"/video/output.mp4"
- framerate = '10'
- sort_type = 'numeric'
- time = 30
- visual = 'false'
- # Flips 'visual' to a bool
- visual = visual == "true"
- # Sets the framerate to argument, or defaults to 10
- if not isnum(framerate):
- framerate = 10
- else:
- framerate = int(framerate)
- # Get the files from directory
- images2 = []
- images3 = []
- images3.append(settings.MEDIA_ROOT+"/"+usernamec+"/image/1.png")
- fg=0
- for f in os.listdir(dir_path):
- if fg > 0 :
- if f.endswith(ext):
- images2.append(dir_path+f)
- fg = fg + 1
- # Sort the files found in the directory
- b = text.split(".")
- # print(b[0])
- h=0
- k=0
- for z in range(int(len(b))):
- b[z]=b[z].replace('\r', '')
- b[z]=b[z].replace('\n', '')
- # int('avik ' + b[v])
- if b[z]!='':
- output = settings.MEDIA_ROOT+"/"+usernamec+"/video/" + str(b[z]) + ".mp4"
- images = []
- for c in range(20):
- images.append(images2[k])
- for d in range(10):
- images.append(images3[0])
- print('images ' +str(len(images))+"----------"+str(len(images3)))
- # Determine the width and height from the first image
- #print(len(images))
- framerate = int(len(images) / int(time))
- print("Adjusting framerate to " + str(framerate))
- image_path = images[0]
- frame = cv2.imread(image_path)
- if visual:
- cv2.imshow('video',frame)
- regular_size = os.path.getsize(image_path)
- height, width, channels = frame.shape
- # Define the codec and create VideoWriter object
- fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Be sure to use lower case
- out = cv2.VideoWriter(output, fourcc, framerate, (width, height))
- for n, image in enumerate(images):
- image_path = image
- image_size = os.path.getsize(image_path)
- if image_size < 1:
- print("Cancelled: " + image)
- continue
- frame = cv2.imread(image_path)
- out.write(frame) # Write out frame to video
- if visual:
- cv2.imshow('video', frame)
- if (cv2.waitKey(1) & 0xFF) == ord('q'): # Hit `q` to exit
- break
- if n%100 == 0:
- print("Frame " + str(n))
- out.release()
- cv2.destroyAllWindows()
- print("The output video is {}".format(output))
- k=k+1
- if len(b) < len(images2):
- if k == int(len(b)):
- k =0
- else:
- if k == int(len(images2)):
- k = 0
- path = settings.MEDIA_ROOT+"/"+usernamec+"/video/"
- dirs = os.listdir( path )
- audio = mp.AudioFileClip(settings.MEDIA_ROOT+"/"+usernamec+"/mp3/"+ado)
- audio2 = audio.subclip(1, 20)
- for item in dirs:
- video1 = mp.VideoFileClip(path+item)
- final = video1.set_audio(audio2)
- final.write_videofile(settings.MEDIA_ROOT+"/allvideo/"+usernamec+"/video/"+item)
- video1.reader.close()
- del video1.reader
- final.reader.close()
- del final.reader
- final.audio.reader.close_proc()
- del final.audio
- os.remove(settings.MEDIA_ROOT + "/"+usernamec+"/mp3/);
- path9 = settings.MEDIA_ROOT + "/" + usernamec + "/image/"
- dirs9 = os.listdir(path9)
- for item in dirs9:
- os.remove(path9 + item);
- dirs9.clear()
- # path10 = settings.MEDIA_ROOT + "/"+usernamec+"/mp3/"
- # dirs10 = os.listdir(path10)
- # for item in dirs10:
- # os.remove(path10 + item);
- # dirs10.clear()
- path11 = settings.MEDIA_ROOT + "/"+usernamec+"/video/"
- dirs11 = os.listdir(path11)
- for item in dirs11:
- os.remove(path11 + item);
- dirs11.clear()
- if os.path.exists(settings.MEDIA_ROOT+"/allvideo/"+usernamec+".zip"):
- os.remove(settings.MEDIA_ROOT+"/allvideo/"+usernamec+".zip")
- fantasy_zip = zipfile.ZipFile(settings.MEDIA_ROOT+"/allvideo/"+usernamec+".zip", 'w')
- for folder, subfolders, files in os.walk(settings.MEDIA_ROOT+"/allvideo/"):
- for file in files:
- if file.endswith('.mp4'):
- fantasy_zip.write(os.path.join(folder, file),
- os.path.relpath(os.path.join(folder, file), settings.MEDIA_ROOT+"/allvideo/"+usernamec),
- compress_type=zipfile.ZIP_DEFLATED)
- fantasy_zip.close()
- path14 = settings.MEDIA_ROOT + "/allvideo/" + usernamec + "/video/"
- dirs14 = os.listdir(path14)
- for item in dirs14:
- os.remove(path14 + item);
- dirs14.clear()
- path14 = settings.MEDIA_ROOT + "/allvideo/" + usernamec + "/"
- dirs14 = os.listdir(path14)
- for item in dirs14:
- os.rmdir(path14 + item);
- dirs14.clear()
- posts=[
- {
- 'author':'tarek',
- 'date':'12-21-12'
- },
- {
- 'author': 'tarek2',
- 'date': '12-21-122'
- },
- {
- 'author': 'tarek3',
- 'date': '132-21-12'
- }
- ]
- def home(request):
- context={
- 'posts': posts,
- 'title': 'home'
- }
- return render(request, 'polls/home.html', context);
- @login_required(redirect_field_name='admin/login')
- def about(request):
- # redirect()
- # fantasy_zip = zipfile.ZipFile(settings.MEDIA_ROOT+"/allvideo/tarektarek79.zip", 'w')
- #
- # for folder, subfolders, files in os.walk(settings.MEDIA_ROOT+"/allvideo/"):
- #
- # for file in files:
- # if file.endswith('.mp4'):
- # fantasy_zip.write(os.path.join(folder, file),
- # os.path.relpath(os.path.join(folder, file), settings.MEDIA_ROOT+"/allvideo/tarektarek79"),
- # compress_type=zipfile.ZIP_DEFLATED)
- #fantasy_zip.close()
- # subinfo9 = Subscription.objects.get(user_id=request.user.id)
- # subinfo9.sub_value = 3
- # subinfo9.save()
- #Subscription.objects.all().delete()
- #
- # path9 = settings.MEDIA_ROOT + "/user/image/"
- # path10 = settings.MEDIA_ROOT + "/user/mp3/"
- # path11 = settings.MEDIA_ROOT + "/user/video/"
- # if not os.path.exists(path9) and os.path.exists(path10) and os.path.exists(path11):
- # os.makedirs(path9)
- # os.makedirs(path10)
- # os.makedirs(path11)
- #
- # path9 = settings.MEDIA_ROOT+"/user/image/"
- # dirs9 = os.listdir(path9)
- # for item in dirs9:
- # os.remove(path9 + item);
- # path10 = settings.MEDIA_ROOT + "/user/mp3/"
- # dirs10 = os.listdir(path10)
- # for item in dirs10:
- # os.remove(path10 + item);
- # path11 = settings.MEDIA_ROOT + "/user/video/"
- # dirs11 = os.listdir(path11)
- # for item in dirs11:
- # os.remove(path11 + item);
- # path11 = settings.MEDIA_ROOT + "/user/"
- # dirs11 = os.listdir(path11)
- # for item in dirs11:
- # os.rmdir(path11 + item);
- #os.rmdir(settings.MEDIA_ROOT + "/user/video");
- #os.chmod(path11, 077)
- #shutil.rmtree(path11)
- t= Subscription.objects.filter(user_id=request.user.id)
- return render(request, 'polls/about.html', context={'listr':t})
- @login_required(redirect_field_name='admin/login')
- def faq(request):
- redirect('upload')
- return render(request, 'polls/faq.html')
- @login_required(redirect_field_name='admin/login')
- def news(request):
- return render(request, 'polls/news.html')
- @login_required(redirect_field_name='next', login_url='login')
- def simple_upload(request):
- pak = Subscription.objects.get(user_id=request.user.id)
- sub_value= pak.sub_value
- if sub_value>0:
- if request.method == 'POST' and request.FILES.getlist('myfile') and 'btn1' in request.POST:
- txt = request.POST['test']
- b = txt.split(".")
- a = 0
- for z in range(int(len(b))):
- b[z] = b[z].replace('\r', '')
- b[z] = b[z].replace('\n', '')
- a = a + 1
- print(a)
- # sys.exit()
- ado = request.FILES['audio']
- ad = FileSystemStorage(location='media/'+request.user.username+'/mp3')
- adoname = ad.save(ado.name, ado)
- i = 1
- for afile in request.FILES.getlist('myfile'):
- fs = FileSystemStorage(location='media/'+request.user.username+'/image')
- afile.name = str(i) + ".png"
- filename = fs.save(afile.name, afile)
- uploaded_file_url = afile.name
- i = i + 1
- if sub_value>a:
- path11 = settings.MEDIA_ROOT + "/" + request.user.username + "/video/"
- path12 = settings.MEDIA_ROOT + "/allvideo/" + request.user.username + "/video/"
- usernamec= request.user.username
- if not os.path.exists(path11) and not os.path.exists(path12):
- os.makedirs(path11)
- os.makedirs(path12)
- make_video(txt, adoname, usernamec)
- subinfo2 = Subscription.objects.get(user_id=request.user.id)
- sub_id = subinfo2.sub_id
- subinfo2.sub_value = subinfo2.sub_value - a
- subinfo2.save()
- msg2 = 'Completed'
- else:
- msg2="You don't have enough credit"
- #redirect('upload')
- msg20=""
- return render(request, 'polls/success.html', {
- 'msg2': msg2
- })
- else:
- msg1 = 'You have no subscription or quota exceed'
- return render(request, 'polls/success.html', {
- 'msg1': msg1,
- })
- if request.method == 'POST' and 'btn2' in request.POST:
- card = request.POST['card']
- authorize.Configuration.configure(
- authorize.Environment.TEST,
- '57vWge84HrX',
- '9ZTy3Rq3m4438L88',
- )
- result = authorize.Recurring.create({
- 'amount': int(request.session['name']),
- 'interval_length': 1,
- 'interval_unit': 'months',
- 'credit_card': {
- 'card_number': card,
- 'expiration_date': request.POST['mm']+"-"+request.POST['yy'],
- 'card_code': request.POST['card_code'],
- },
- 'customer': {
- 'merchant_id': '657657',
- 'email': 'jjkjk@kjkl.com',
- 'description': 'UserName: '+request.user.username,
- },
- })
- print(result.subscription_id)
- if result.subscription_id:
- subinfo2 = Subscription.objects.get(user_id=request.user.id)
- subinfo2.sub_id = result.subscription_id
- subinfo2.pack_id = request.session['name']
- if subinfo2.pack_id == 9:
- subinfo2.sub_value = 10
- elif subinfo2.pack_id == 99:
- subinfo2.sub_value = 100
- else:
- subinfo2.sub_value = 999999999
- subinfo2.save()
- msg='SUCCESS! GO AHEAD AND START'
- return render(request, 'polls/success.html', {
- 'msg': msg,
- })
- else:
- msg = 'FAILED! WRONG CARD INFO'
- return render(request, 'polls/success.html', {
- 'msg': msg,
- })
- subinfo = Subscription.objects.filter(user_id=request.user.id)
- authorize.Configuration.configure(
- authorize.Environment.TEST,
- '57vWge84HrX',
- '9ZTy3Rq3m4438L88',
- )
- return render(request, 'polls/success.html',context={'subinfo':subinfo})
- class UserFormView(View):
- form_class = UserForm
- template_name = 'polls/registration.html'
- def get(self, request):
- form = self.form_class(None)
- return render(request, self.template_name, {'form': form})
- def post(self, request):
- form = self.form_class(request.POST)
- if form.is_valid():
- user = form.save(commit=False)
- username = form.cleaned_data['username']
- password = form.cleaned_data['password1']
- user.set_password(password)
- user.save()
- user = authenticate(username=username, password=password)
- if user is not None:
- if user.is_active:
- login(request, user)
- sub = Subscription()
- sub.sub_value = 3
- sub.pack_id = 0
- sub.sub_id = 0
- sub.user_id = request.user.id
- sub.save()
- return redirect('upload')
- return render(request, self.template_name, {'form': form})
- def simple_upload2(request):
- if request.method == 'POST' and request.FILES.getlist('myfile1'):
- # txt = request.POST['test']
- #ado = request.FILES['audio']
- #ad = FileSystemStorage(location='media/user/mp3')
- #adoname = ad.save(ado.name, ado)
- i=1
- print(request.FILES.getlist('myfile1'))
- for afile in request.FILES.getlist('myfile1'):
- print(afile)
- fs = FileSystemStorage(location='media/test/image')
- afile.name = str(i) + ".png"
- filename = fs.save(afile.name, afile)
- uploaded_file_url = afile.name
- i = i+1
- return HttpResponse('done')
- def hello(request):
- i= request.POST.get('i')
- l=9
- request.session['name'] = i
- return HttpResponse(i)
- @login_required(redirect_field_name='next', login_url='admin/login')
- def testajax(request):
- username = request.user.name
- return render(request, 'polls/about.html',context={'variable': username})
- def register(request):
- if request.method == 'POST':
- form = UserRegisterForm(request.POST)
- if form.is_valid():
- user = form.save()
- username = form.cleaned_data['username']
- password = form.cleaned_data['password1']
- user.set_password(password)
- user.save()
- user = authenticate(username=username, password=password)
- if user is not None:
- if user.is_active:
- login(request, user)
- sub = Subscription()
- sub.sub_value = 3
- sub.pack_id = 0
- sub.sub_id = 0
- sub.user_id = request.user.id
- sub.save()
- return redirect('upload')
- else:
- form = UserRegisterForm()
- return render(request, 'polls/register.html', {'form': form})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement