def euclides_test(): print("algoritme d'euclides") print("--------------------") print( "Entra si vols que s'autogenerin els numeros o si prefereixes entrar-los tu." ) print("- 0 -> Generats amb un nombre aleatori de 1 a " + str(digits) + " digits") print("- 1 -> A manija") option = getNumber("Escull una opcio : ") a = 0 b = 0 if (option == 0): a = generateRandomValue(random.randint(1, digits)) b = generateRandomValue(random.randint(1, digits)) else: a = getNumber("enter the first number: ") b = getNumber("enter the second number: ") print("Els nombres que s'utilitzen son : ") print("") print(a) print("") print(b) print("") print("Calculem el MCD ...") print("") # Considerem a com a divident i b com a divisor while (a % b != 0): tmp = b b = a % b a = tmp print("El maxim comu divisor es el " + str(b))
def bezoud_test(): print("algoritme d'euclides") print("--------------------") print( "Entra si vols que s'autogenerin els numeros o si prefereixes entrar-los tu." ) print("- 0 -> Generats amb un nombre aleatori de 1 a " + str(digits) + " digits") print("- 1 -> A manija") option = getNumber("Escull una opcio : ") a = 0 b = 0 if (option == 0): a = generateRandomValue(random.randint(1, digits)) b = generateRandomValue(random.randint(1, digits)) else: print("The first number must be grather than the second!") a = getNumber("enter the first number: ") b = getNumber("enter the second number: ") ina = a inb = b print("Els nombres que s'utilitzen son : ") print(ina) print(inb) print("") print("Calculem el MCD i la identitat de Bezoud...") print("") # Considerem a com a divident i b com a divisor qant = 0 pant = 1 qact = 1 pact = 0 iteration = 0 while (a % b != 0): quo = a // b qtmp = quo * qact + qant ptmp = quo * pact + pant qant = qact pant = pact qact = qtmp pact = ptmp tmp = b b = a % b a = tmp iteration += 1 if (iteration % 2 == 0): pact *= -1 else: qact *= -1 print("MCD : " + str(b)) print("Q_i : " + str(qact)) print("P_i : " + str(pact)) print("Moreover, ... : " + str(b) + " = " + str(qact) + "*" + str(inb) + " + " + str(pact) + "*" + str(ina))
def extcute_body(body): if isinstance(body, dict): if body.get("status") == "RING": # 有电话接入call-in,客户端显示页面 log(body["number"]) log('有电话接入,显示弹窗') ws['tran_id'] = body['vid'] # 将来访者id写入ws字典,供满意度调查按钮使用 seatId = body['pid'] # seatId是分机号 room = getNumber(seatId, Seat, ws) socketio.emit(event='ring', data=body, room=room) elif isinstance(body.get('ws'), dict): log('通话结束传过来的body', body) if body['ws']['status'] == 'Cdr': # 通话结束,发送Cdr话单,包含录音文件的路径 log('通话结束,停止计时') seatId = body['ws']['pid'] room = getNumber(seatId, Seat, ws) uid = get_uid(Seat, int(seatId)) Funcs.sql_addCallRecord(body['cr'], uid) # 添加通话记录 Funcs.sql_addVoiceRecord(body['vr'], uid) # 添加录音记录 socketio.emit(event='off', data=body['ws'], room=room) wget_down(body['ws']['downPath']) # 下载录音 elif body.get("status") == 'ANWSER': # 分机应答,让计时器开始计时 log('通话建立') seatId = body['pid'] room = getNumber(seatId, Seat, ws) socketio.emit(event='anwser', data=body, room=room) elif body.get("status") == 'INCOMING': # 来电转分机请求 vid = body.get("vid") ws['tran_id'] = body['vid'] # 将来访者id写入ws字典,供满意度调查按钮使用 welcome(vid) # if setting_phone['pid']: # 如果设置分机的优先级,使用优先分机 # auto(body['vid'], setting_phone['pid']) # else: # pid = list(Funcs.p['IDLE']) # 如果没有设置分机的优先机,就使用allFunc中的写死的默认分机 # # auto(body['vid'], random.choice(pid)) # 随机分配 # auto(body['vid'], '212') # 指定分机 elif body.get("status") == 'change_status': # 分机状态改变 socketio.emit(event='phone_status', data=body) # 广播给所有客户端,显示分机的状态 elif body.get("status") == 'lose': # 电话漏接情况,发送漏接短信 pid = body['pid'] # 分机号 client_phone = body['number'] seat = Seat.query.filter_by(number=pid).first() user = seat.user user_phone = user.phone log('漏接短信信息', user_phone, client_phone, pid) status = send_message(user_phone, client_phone, pid)
def menu(): no_menu = True while no_menu: print("[1] Login") print("[2] Crear Cuenta") print("[3] Ver hilos") print("[0] Salir") opcion = utils.getNumber(4) if opcion == 1: user = input("Usuario: ") passs = input("Contraseña: ") token = utils.getToken(user, passs) if token != False: print("Bienvenido " + utils.getName(token)) no_menu = False else: print("Usuario/Contraseña Incorrectos") elif opcion == 2: user = input("Usuario: ") passs = input("Contraseña: ") name = input("Nombre: ") utils.Logon(user, passs, name) elif opcion == 3: print("Mostrar hilos") elif opcion == 0: print("Saliendo...") no_menu = False
def checkfilename(request): elapsedtime = time.time() if 'filenames2check' in request.POST and request.POST[ 'filenames2check'] != '': listoffilenames = request.POST['filenames2check'] filenames = listoffilenames.split(' ') objectnumbers = [getNumber(o) for o in filenames] else: objectnumbers = [] listoffilenames = '' dropdowns = getDropdowns() elapsedtime = time.time() - elapsedtime status = 'up' timestamp = time.strftime("%b %d %Y %H:%M:%S", time.localtime()) return render( request, 'uploadmedia.html', { 'filenames2check': listoffilenames, 'objectnumbers': objectnumbers, 'dropdowns': dropdowns, 'overrides': overrides, 'timestamp': timestamp, 'elapsedtime': '%8.2f' % elapsedtime, 'status': status, 'title': TITLE, 'serverinfo': SERVERINFO })
def checkfilename(request): elapsedtime = time.time() if 'filenames2check' in request.POST and request.POST['filenames2check'] != '': listoffilenames = request.POST['filenames2check'] filenames = listoffilenames.split(' ') objectnumbers = [getNumber(o) for o in filenames] else: objectnumbers = [] listoffilenames = '' dropdowns = getDropdowns() elapsedtime = time.time() - elapsedtime status = 'up' timestamp = time.strftime("%b %d %Y %H:%M:%S", time.localtime()) return render(request, 'uploadmedia.html', {'filenames2check': listoffilenames, 'objectnumbers': objectnumbers, 'dropdowns': dropdowns, 'overrides': overrides, 'timestamp': timestamp, 'elapsedtime': '%8.2f' % elapsedtime, 'status': status, 'title': TITLE, 'serverinfo': SERVERINFO})
def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]: text = '' quantidade = utils.getNumber(tracker.latest_message['entities']) sabor = utils.getFlavor(tracker.latest_message['entities']) carrinho = tracker.get_slot('carrinho') if quantidade and sabor: if cardapio.get(sabor): pastel = { 'sabor': sabor, 'quantidade': quantidade, 'valor': cardapio[sabor] } if carrinho: carrinho.append(pastel) else: carrinho = [pastel] text = f"{quantidade} {'pastéis' if quantidade > 1 else 'pastel'} sabor {sabor} adicionado no seu carrinho! O que mais você deseja?" else: text = f"O sabor {sabor} não está no nosso cardápio ainda...Quer pedir outro sabor?" else: text = 'Por favor, informe o sabor e a quantidade.' dispatcher.utter_message(text=text, buttons=[{ "title": "Pedir pastel", "payload": "/cardapio" }, { "title": "Carrinho", "payload": "/carrinho" }, { "title": "Finalizar pedido", "payload": "/finalizar" }, { "title": "Sair", "payload": "/despedida" }]) return [SlotSet("carrinho", carrinho)]
def uploadfiles(request): jobinfo = {} constants = {} images = [] dropdowns = getDropdowns() elapsedtime = time.time() form = forms.Form(request) if request.POST: contributor = request.POST['contributor'] overrideContributor = request.POST['overridecreator'] creatorDisplayname = request.POST['creator'] overrideCreator = request.POST['overridecreator'] rightsholderDisplayname = request.POST['rightsholder'] overrideRightsholder = request.POST['overriderightsholder'] constants = {'creator': creatorDisplayname, 'contributor': contributor, 'rightsholder': rightsholderDisplayname} for lineno,afile in enumerate(request.FILES.getlist('imagefiles')): #print afile try: print "%s %s: %s %s (%s %s)" % ('id', lineno, 'name', afile.name, 'size', afile.size) im = get_exif(afile) objectnumber = getNumber(afile.name) #objectCSID = getCSID(objectnumber) creator, creatorRefname = assignValue(creatorDisplayname,overrideCreator,im,'Artist',dropdowns['creators']) contributor, dummy = assignValue(contributor,overrideContributor,im,'ImageDescription',{}) rightsholder, rightsholderRefname = assignValue(rightsholderDisplayname,overrideRightsholder,im,'RightsHolder',dropdowns['rightsholders']) datetimedigitized, dummy = assignValue('','ifblank',im,'DateTimeDigitized',{}) imageinfo = {'id': lineno, 'name': afile.name, 'size': afile.size, 'objectnumber': objectnumber, #'objectCSID': objectCSID, 'date': datetimedigitized, 'creator': creatorRefname, 'contributor': contributor, 'rightsholder': rightsholderRefname, 'creatorDisplayname': creator, 'rightsholderDisplayname': rightsholder, 'contributorDisplayname': contributor } handle_uploaded_file(afile, imageinfo) images.append(imageinfo) except: #raise images.append({'name': afile.name, 'size': afile.size, 'error': 'problem extracting image metadata, not processed'}) if len(images) > 0: jobnumber = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) jobinfo['jobnumber'] = jobnumber writeCsv(getJobfile(jobnumber)+'.step1.csv', images, ['name', 'size', 'objectnumber', 'date', 'creator', 'contributor', 'rightsholder']) jobinfo['estimatedtime'] = '%8.1f' % (len(images) * 10 / 60.0) if 'createmedia' in request.POST: jobinfo['status'] = 'createmedia' loginfo('start', getJobfile(jobnumber), request) try: retcode = subprocess.call(["/usr/local/share/django/pahma_project/uploadmedia/postblob.sh", getJobfile(jobnumber)]) if retcode < 0: loginfo('process', jobnumber+" Child was terminated by signal %s" % -retcode, request) else: loginfo('process', jobnumber+": Child returned %s" % retcode, request) except OSError as e: loginfo('error', "Execution failed: %s" % e, request) loginfo('finish', getJobfile(jobnumber), request) elif 'uploadmedia' in request.POST: jobinfo['status'] = 'uploadmedia' else: jobinfo['status'] = 'No status possible' status = 'up' timestamp = time.strftime("%b %d %Y %H:%M:%S", time.localtime()) elapsedtime = time.time() - elapsedtime return render(request, 'uploadmedia.html', {'title': TITLE, 'images': images, 'count': len(images), 'constants': constants, 'jobinfo': jobinfo, 'dropdowns': dropdowns, 'overrides': overrides, 'status': status, 'timestamp': timestamp, 'elapsedtime': '%8.2f' % elapsedtime})
def uploadfiles(request): jobinfo = {} constants = {} images = [] dropdowns = getDropdowns() elapsedtime = time.time() form = forms.Form(request) if request.POST: contributor = request.POST['contributor'] overrideContributor = request.POST['overridecreator'] creatorDisplayname = request.POST['creator'] overrideCreator = request.POST['overridecreator'] rightsholderDisplayname = request.POST['rightsholder'] overrideRightsholder = request.POST['overriderightsholder'] constants = { 'creator': creatorDisplayname, 'contributor': contributor, 'rightsholder': rightsholderDisplayname } for lineno, afile in enumerate(request.FILES.getlist('imagefiles')): #print afile try: print "%s %s: %s %s (%s %s)" % ('id', lineno, 'name', afile.name, 'size', afile.size) im = get_exif(afile) objectnumber = getNumber(afile.name) #objectCSID = getCSID(objectnumber) creator, creatorRefname = assignValue(creatorDisplayname, overrideCreator, im, 'Artist', dropdowns['creators']) contributor, dummy = assignValue(contributor, overrideContributor, im, 'ImageDescription', {}) rightsholder, rightsholderRefname = assignValue( rightsholderDisplayname, overrideRightsholder, im, 'RightsHolder', dropdowns['rightsholders']) datetimedigitized, dummy = assignValue('', 'ifblank', im, 'DateTimeDigitized', {}) imageinfo = { 'id': lineno, 'name': afile.name, 'size': afile.size, 'objectnumber': objectnumber, #'objectCSID': objectCSID, 'date': datetimedigitized, 'creator': creatorRefname, 'contributor': contributor, 'rightsholder': rightsholderRefname, 'creatorDisplayname': creator, 'rightsholderDisplayname': rightsholder, 'contributorDisplayname': contributor } handle_uploaded_file(afile, imageinfo) images.append(imageinfo) except: #raise images.append({ 'name': afile.name, 'size': afile.size, 'error': 'problem extracting image metadata, not processed' }) if len(images) > 0: jobnumber = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) jobinfo['jobnumber'] = jobnumber writeCsv( getJobfile(jobnumber) + '.step1.csv', images, [ 'name', 'size', 'objectnumber', 'date', 'creator', 'contributor', 'rightsholder' ]) jobinfo['estimatedtime'] = '%8.1f' % (len(images) * 10 / 60.0) if 'createmedia' in request.POST: jobinfo['status'] = 'createmedia' loginfo('start', getJobfile(jobnumber), request) try: retcode = subprocess.call([ "/usr/local/share/django/pahma_project/uploadmedia/postblob.sh", getJobfile(jobnumber) ]) if retcode < 0: loginfo( 'process', jobnumber + " Child was terminated by signal %s" % -retcode, request) else: loginfo('process', jobnumber + ": Child returned %s" % retcode, request) except OSError as e: loginfo('error', "Execution failed: %s" % e, request) loginfo('finish', getJobfile(jobnumber), request) elif 'uploadmedia' in request.POST: jobinfo['status'] = 'uploadmedia' else: jobinfo['status'] = 'No status possible' status = 'up' timestamp = time.strftime("%b %d %Y %H:%M:%S", time.localtime()) elapsedtime = time.time() - elapsedtime return render( request, 'uploadmedia.html', { 'title': TITLE, 'images': images, 'count': len(images), 'constants': constants, 'jobinfo': jobinfo, 'dropdowns': dropdowns, 'overrides': overrides, 'status': status, 'timestamp': timestamp, 'elapsedtime': '%8.2f' % elapsedtime })
def menu(): primera_vez = True name = "Anonimo" no_menu = True token = False os.system("cls") while no_menu: print(" ______________________ ") print("|| ||") print("|| MENU PRINCIPAL ||") print("|| ||") print("|| [1] Login ||") print("|| [2] Crear Cuenta ||") print("|| [3] Ver hilos ||") print("|| [0] Salir ||") print("|| ||") print("||______________________||") opcion = utils.getNumber(0, 4, "Opción: ") if opcion == 1: os.system("cls") print("{### FORMULARIO LOGEO ###}") user = input("Usuario: ") passs = utils.keyAlmacenada(0, user, "") no_guardado = False if passs == None: no_guardado = True passs = input("Contraseña: ") token = utils.getToken(user, passs) if token != False: if no_guardado: utils.keyAlmacenada(1, user, passs) name = utils.getName(token) no_menu2 = True while no_menu2: if primera_vez: os.system("cls") print("Bienvenido " + name) primera_vez = False maxima = 2 os.system("cls") print(" ______________________ ") print("|| ||") print("|| LOGEADO ||") print("|| ||") print("|| [1] Ver hilos ||") if user != "Anonimo": print("|| [2] Nuevo hilo ||") maxima = 3 if name == "dios": print("|| [3] Borrar hilo ||") maxima = 4 print("|| [0] Salir ||") print("|| ||") print("||______________________||") opcion = utils.getNumber(0, maxima, "Opción: ") if opcion == 1: no_menu21 = True while no_menu21: os.system("cls") print( " ______________________________________________ " ) print("||\t\t\t\t\t\t||") print("||\t\tSELECCIONA EL HILO\t\t||") utils.getHilos() print("||\t\t[100] Volver\t\t\t||") print("||\t\t\t\t\t\t||") print( "||______________________________________________||" ) opcion = utils.getNumber(100, utils.cuenta_hilos, "ID Hilo: ") if opcion >= 101: no_menu4 = True while no_menu4: os.system("cls") print("Mostrando hilo " + str(opcion) + ": " + utils.hilos[opcion - 101]) print( " _______________________________________________________________________________ " ) print("||\t\t\t\t\t\t\t\t\t\t||") print("||\t\t\t\t\tHILOS\t\t\t\t\t||") utils.getComentarios(opcion) if (name == "dios"): print( "||\t\t\t\t[98] Borrar comentario\t\t\t\t||" ) if (name != "Anonimo"): print( "||\t\t\t\t[99] Añadir comentario\t\t\t\t||" ) print("||\t\t\t\t\t\t\t\t\t\t||") print("||\t\t\t\t[100] Volver\t\t\t\t\t||") print("||\t\t\t\t\t\t\t\t\t\t||") print( "||______________________________________________________________________________||" ) opcion2 = utils.getNumber( 98, 101, "Opcion: ") if opcion2 == 100: no_menu4 = False os.system("cls") elif opcion2 == 99: print("{### NUEVO COMENTARIO ###}") texto_comentario = input( "Texto del comentario: ") utils.setComentarioHilo( opcion, texto_comentario, name, token) elif opcion2 == 98: print("{### BORRAR COMENTARIO ###}") Id_comentario = utils.getNumber( 100, utils.cuenta_comentarios, "Id Comentario: ") utils.deleteComentarioHilo( opcion, Id_comentario, token) else: no_menu21 = False os.system("cls") elif opcion == 2: os.system("cls") print("Escribe 'Cancelar' para cancelar la accion.") print("{########~NUEVO HILO~########}") titulo_hilo = input("Nombre del hilo: ") if titulo_hilo != "Cancelar": utils.setHilo(name, titulo_hilo, token) elif opcion == 3: os.system("cls") print( " ______________________________________________") print("||\t\t\t\t\t\t||") print("||\t\tSELECCIONA EL HILO\t\t||") utils.getHilos() print("||\t\t\t\t\t\t||") print("||\t\t[100] Volver\t\t\t||") print("||\t\t\t\t\t\t||") print( "||______________________________________________||" ) id_hilo = utils.getNumber(100, utils.cuenta_hilos, "ID Hilo: ") if id_hilo != 100: utils.deleteHilo(id_hilo, token) else: no_menu2 = False os.system("cls") primera_vez = True name = "Anonimo" token = False else: print("Usuario/Contraseña Incorrectos") elif opcion == 2: no_pass = True os.system("cls") print("{### FORMULARIO REGISTRO ###}") user = input("Usuario: ") while no_pass: passs = input("Contraseña: ") repass = input("Introduzca de nuevo la contraseña: ") if passs == repass: no_pass = False else: print("Las contraseñas no coinciden") name = input("Nombre: ") utils.Logon(user, passs, name) elif opcion == 3: if primera_vez: os.system("cls") print("Has entrado como " + name) primera_vez = False no_menu3 = True while no_menu3: print(" ______________________________________________ ") print("||\t\t\t\t\t\t||") print("||\t\tSELECCIONA EL HILO\t\t||") utils.getHilos() print("||\t\t\t\t\t\t||") print("||\t\t[100] Volver\t\t\t||") print("||______________________________________________||") opcion = utils.getNumber(100, utils.cuenta_hilos, "Opción: ") if opcion != 100: no_menu31 = True while no_menu31: os.system("cls") print("Mostrando hilo " + str(opcion) + ": " + utils.hilos[opcion - 101]) print( " _______________________________________________________________________________ " ) print("||\t\t\t\t\t\t\t\t\t\t||") print("||\t\t\t\t\tHILOS\t\t\t\t\t||") utils.getComentarios(opcion) print("||\t\t\t\t\t\t\t\t\t\t||") print("||\t\t\t\t[100] Volver\t\t\t\t\t||") print("||\t\t\t\t\t\t\t\t\t\t||") print( "||______________________________________________________________________________||" ) opcion = utils.getNumber(100, 101, "Opción: ") if opcion == 100: os.system("cls") no_menu31 = False else: os.system("cls") no_menu3 = False primera_vez = True name = "Anonimo" elif opcion == 0: os.system("cls") print("Saliendo...") no_menu = False
def prepareFiles(request, validateonly, dropdowns): jobinfo = {} images = [] for lineno, afile in enumerate(request.FILES.getlist('imagefiles')): # print afile try: print "%s %s: %s %s (%s %s)" % ('id', lineno, 'name', afile.name, 'size', afile.size) image = get_exif(afile) filename, objectnumber, imagenumber = getNumber(afile.name) # objectCSID = getCSID(objectnumber) im.creator, im.creatorRefname = assignValue(im.creatorDisplayname, im.overrideCreator, image, 'Artist', dropdowns['creators']) im.contributor, dummy = assignValue(im.contributor, im.overrideContributor, image, 'ImageDescription', {}) im.rightsholder, im.rightsholderRefname = assignValue(im.rightsholderDisplayname, im.overrideRightsholder, image, 'RightsHolder', dropdowns['rightsholders']) datetimedigitized, dummy = assignValue('', 'ifblank', image, 'DateTimeDigitized', {}) imageinfo = {'id': lineno, 'name': afile.name, 'size': afile.size, 'objectnumber': objectnumber, 'imagenumber': imagenumber, # 'objectCSID': objectCSID, 'date': datetimedigitized, 'creator': im.creatorRefname, 'contributor': im.contributor, 'rightsholder': im.rightsholderRefname, 'creatorDisplayname': im.creator, 'rightsholderDisplayname': im.rightsholder, 'contributorDisplayname': im.contributor } if not validateonly: handle_uploaded_file(afile) images.append(imageinfo) except: if not validateonly: # we still upload the file, anyway... handle_uploaded_file(afile) images.append({'name': afile.name, 'size': afile.size, 'error': 'problem extracting image metadata, not processed'}) if len(images) > 0: jobnumber = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) jobinfo['jobnumber'] = jobnumber if not validateonly: writeCsv(getJobfile(jobnumber) + '.step1.csv', images, ['name', 'size', 'objectnumber', 'date', 'creator', 'contributor', 'rightsholder', 'imagenumber']) jobinfo['estimatedtime'] = '%8.1f' % (len(images) * 10 / 60.0) if 'createmedia' in request.POST: jobinfo['status'] = 'createmedia' if not validateonly: loginfo('start', getJobfile(jobnumber), request) try: retcode = subprocess.call([path.join(POSTBLOBPATH, 'postblob.sh'), getJobfile(jobnumber)]) if retcode < 0: loginfo('process', jobnumber + " Child was terminated by signal %s" % -retcode, request) else: loginfo('process', jobnumber + ": Child returned %s" % retcode, request) except OSError as e: loginfo('error', "Execution failed: %s" % e, request) loginfo('finish', getJobfile(jobnumber), request) elif 'uploadmedia' in request.POST: jobinfo['status'] = 'uploadmedia' else: jobinfo['status'] = 'No status possible' return jobinfo, images
def prepareFiles(request, validateonly, dropdowns): jobinfo = {} images = [] for lineno, afile in enumerate(request.FILES.getlist('imagefiles')): # print afile try: print "%s %s: %s %s (%s %s)" % ('id', lineno, 'name', afile.name, 'size', afile.size) image = get_exif(afile) filename, objectnumber, imagenumber = getNumber(afile.name) # objectCSID = getCSID(objectnumber) im.creator, im.creatorRefname = assignValue( im.creatorDisplayname, im.overrideCreator, image, 'Artist', dropdowns['creators']) im.contributor, dummy = assignValue(im.contributor, im.overrideContributor, image, 'ImageDescription', {}) im.rightsholder, im.rightsholderRefname = assignValue( im.rightsholderDisplayname, im.overrideRightsholder, image, 'RightsHolder', dropdowns['rightsholders']) datetimedigitized, dummy = assignValue('', 'ifblank', image, 'DateTimeDigitized', {}) imageinfo = { 'id': lineno, 'name': afile.name, 'size': afile.size, 'objectnumber': objectnumber, 'imagenumber': imagenumber, # 'objectCSID': objectCSID, 'date': datetimedigitized, 'creator': im.creatorRefname, 'contributor': im.contributor, 'rightsholder': im.rightsholderRefname, 'creatorDisplayname': im.creator, 'rightsholderDisplayname': im.rightsholder, 'contributorDisplayname': im.contributor } if not validateonly: handle_uploaded_file(afile) images.append(imageinfo) except: if not validateonly: # we still upload the file, anyway... handle_uploaded_file(afile) images.append({ 'name': afile.name, 'size': afile.size, 'error': 'problem extracting image metadata, not processed' }) if len(images) > 0: jobnumber = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) jobinfo['jobnumber'] = jobnumber if not validateonly: writeCsv( getJobfile(jobnumber) + '.step1.csv', images, [ 'name', 'size', 'objectnumber', 'date', 'creator', 'contributor', 'rightsholder', 'imagenumber' ]) jobinfo['estimatedtime'] = '%8.1f' % (len(images) * 10 / 60.0) if 'createmedia' in request.POST: jobinfo['status'] = 'createmedia' if not validateonly: loginfo('start', getJobfile(jobnumber), request) try: retcode = subprocess.call([ path.join(POSTBLOBPATH, 'postblob.sh'), getJobfile(jobnumber) ]) if retcode < 0: loginfo( 'process', jobnumber + " Child was terminated by signal %s" % -retcode, request) else: loginfo('process', jobnumber + ": Child returned %s" % retcode, request) except OSError as e: loginfo('error', "Execution failed: %s" % e, request) loginfo('finish', getJobfile(jobnumber), request) elif 'uploadmedia' in request.POST: jobinfo['status'] = 'uploadmedia' else: jobinfo['status'] = 'No status possible' return jobinfo, images