from django.apps import AppConfig
from django.http import HttpResponse
from django.shortcuts import render
from django.shortcuts import redirect
#from jinja2 import Environment, FileSystemLoader
from django.core.files import File
from kubernetes import client, config
from celery import shared_task
import time
import random
import mimetypes
import ruamel.yaml
import yaml
import urllib.request
def hello(request):
return HttpResponse('
Hello stash!
')
def form(request):
return render(request, 'stash_form.html',{})
def fapello(request):
return render(request, 'fapello_form.html',{})
def fapello_form(request):
stash_folder = "/tmp/stash"
name = request.GET.get('name')
url = request.GET.get('url')
url_suffix = request.GET.get('url_suffix')
maximum_increment = int(request.GET.get('maximum_increment'))
minimum_increment = request.GET.get('minimum_increment')
increment_and_download.delay(minimum_increment=minimum_increment,maximum_increment=maximum_increment,url=url,url_suffix=url_suffix,stash_folder=stash_folder,name=name)
#return HttpResponse(minimum_increment, content_type="text/plain")
# if minimum_increment == None:
# minimum_increment = 1
#
# text_generated = ""
#
# for increment in range(minimum_increment,maximum_increment):
# if len(str(increment)) == 3:
# increment_generated ='0' + str(increment)
# elif len(str(increment)) == 2:
# increment_generated ='00' + str(increment)
# elif len(str(increment)) == 1:
# increment_generated ='000' + str(increment)
#
#
# urllib.request.urlretrieve(url+increment_generated+url_suffix, stash_folder+"/"+increment_generated+url_suffix)
# text_generated = "\n downloading for "+name+" "+url+increment_generated+url_suffix
text_generated = "successfully sent to celery"
return HttpResponse(text_generated, content_type="text/plain")
@shared_task()
def increment_and_download(minimum_increment,maximum_increment,url,url_suffix,stash_folder,name):
if minimum_increment == None:
minimum_increment = 1
text_generated = ""
for increment in range(minimum_increment,maximum_increment):
if len(str(increment)) == 3:
increment_generated ='0' + str(increment)
elif len(str(increment)) == 2:
increment_generated ='00' + str(increment)
elif len(str(increment)) == 1:
increment_generated ='000' + str(increment)
urllib.request.urlretrieve(url+increment_generated+url_suffix, stash_folder+"/"+increment_generated+url_suffix,proxyDict)
text_generated = "\n downloading for "+name+" "+url+increment_generated+url_suffix
return text_generated
def handle_survey_form(request):
config.load_kube_config(config_file='/kubeconfig/config')
v1 = client.BatchV1Api()
name = request.GET.get('name')
url = request.GET.get('url')
external_galleries = str(request.GET.get('external_galleries'))
stash_folder = "/stash"
if external_galleries:
print("external_galleries is not null")
performer_external_galleries = stash_folder+"/"+name+"_external_galleries.txt"
with open(performer_external_galleries, "a") as f:
f.write(external_galleries)
skip_searching_gallery = True
else:
print("external_galleries is null")
skip_searching_gallery = False
with open('django_code/stash_management/templates/template.stash-pornpics-dowloader.job.yml', 'r') as file:
#get the manifest in a variable template_manifest from the manifest file
template_manifest = yaml.safe_load(file)
#edit the container name
template_manifest['metadata']['name'] ="stash-pornpics-dowloader-"+name
template_manifest['spec']['template']['spec']['containers'][0]['name'] ="stash-pornpics-dowloader-"+name
#edit the command based on the input
command=['bash', '/config/download.sh', '--http_proxy', 'http://gluetun-svc.gluetun.svc:8888', '--BASE_URL', url, '--pornstars', name]
template_manifest['spec']['template']['spec']['containers'][0]['command']=command
#execute based on the value
api_response = v1.create_namespaced_job(body=template_manifest,namespace='stash')
return HttpResponse(api_response)