def add_imageuri(self, uri, image): """ Adds an Imageuri object to a Image Object """ global ns_ma try: imageuri = Imageuri.get(uri=uri) if imageuri.image == image: return False except Imageuri.DoesNotExist: imageuri = Imageuri.create( image=image, uri=uri, ) imageuri.save() try: imagefrag = ImageFragment.get(x=0, y=0, image=image) urimeta = self.add_metadata(imagefrag, ns_ma) self.add_annotation(urimeta, "relation", uri) return True except ImageFragment.DoesNotExist: return False return True
def addimage(): """ if HTTP verb is POST the system checks, if the URI is already in the system if YES, the user is being redirected to the image if NOT, the image size is checked (for development, image width has to be < 680px) if it is allowed, the image is being saved as object, metadata gets extracted and the user is being redirected to the image page ***TODO*** - check if url is for an image! --> Bad Request if not """ if request.method == 'POST' and request.form['imageuri']: try: imageuri = Imageuri.get(uri=request.form['imageuri']) imageob = imageuri.image flash('Dieses Bild ist bereits im System gespeichert. Bitte waehle eine andere URI.', 'error') return redirect(url_for('image_detail', imageid=imageob.id)) except Imageuri.DoesNotExist: imgsize = imgc.get_image_size(request.form['imageuri']) imgc.check_image_size(imgsize) if imgc.check_image_size(imgsize): imageob = imgc.create_new_image(request.form['imageuri'], imgsize) flash('Dein Bild wurde erfolgreich ans System uebertragen. Starte nun mit deinen Annotationen.') return redirect(url_for('image_detail', imageid=imageob.id)) else: flash('Dieses Bild ist zu gross. Bitte waehle ein Bild, dass maximal 680px breit ist!', 'error') return redirect(url_for('addimage')) return render_template('addimage.html')