Beispiel #1
0
def upload_image(db):
    '''Updates and/or creates a image object into the database.'''
    if auth(request):
        filedata = request.files.file.file.read()
        md5sum = md5hash(filedata)
        try:
            image = db.query(Image).filter_by(md5sum=md5sum).one()
            image.timestamp = int(time.time())
            image.count += 1
            db.merge(image)
        except:
            image = Image(int(time.time()), request.forms.get('filetype'),
                          filedata)
            db.add(image)
Beispiel #2
0
def upload_image(db):
    '''Updates and/or creates a image object into the database.'''
    if auth(request):
        filedata = request.files.file.file.read()
        md5sum = md5hash(filedata)
        try:
            image = db.query(Image).filter_by(md5sum=md5sum).one()
            image.timestamp = int(time.time())
            image.count += 1
            db.merge(image)
        except:
            image = Image(int(time.time()), 
                          request.forms.get('filetype'),
                          filedata
            )
            db.add(image)
Beispiel #3
0
    def image(self, filename):
        '''
        Image API Call.  Uploads the image into the database.

        :param fobj: File-like object with the image contents
        :param filename: Filename or extension of the file. 

        :type fobj: fileobject
        :type filename: str 

        :return: None
        '''
        if os.path.exists(filename):
            if self.host in ['localhost', '127.0.0.1']:
                with open(filename, 'rb') as imagefile:
                    data = imagefile.read()
                md5 = md5hash(data)
                s = self.Session()
                if s.query(Image).filter_by(md5sum=md5).count() > 0:
                    image = s.query(Image).filter_by(md5sum=md5).one()
                    image.timestamp = int(time.time())
                    image.count += 1
                    s.merge(image)
                    log.debug('DATABASE: Updated Image %s' % image.md5sum)
                else:
                    ftype = filename.split('.')[-1]
                    image = Image(int(time.time()), ftype, data, md5)
                    s.add(image)
                    log.debug('DATABASE: Added Image %s' % image.md5sum)
                s.commit()
                s.close()
            else:
                try:
                    self.call('/post/image', {'filetype': filename.split('.')[-1]},
                                             {'file': open(filename, 'rb')})
                except:
                    log.error('API: Upload Failed. %s=%skb' % (filename, 
                                                os.path.getsize(filename) / 1024))
        else:
            log.error('API: %s doesnt exist' % filename)
Beispiel #4
0
    def image(self, filename):
        '''
        Image API Call.  Uploads the image into the database.

        :param fobj: File-like object with the image contents
        :param filename: Filename or extension of the file. 

        :type fobj: fileobject
        :type filename: str 

        :return: None
        '''
        if os.path.exists(filename):
            if self.host in ['localhost', '127.0.0.1']:
                with open(filename, 'rb') as imagefile:
                    data = imagefile.read()
                md5 = md5hash(data)
                s = self.Session()
                if s.query(Image).filter_by(md5sum=md5).count() > 0:
                    image = s.query(Image).filter_by(md5sum=md5).one()
                    image.timestamp = int(time.time())
                    image.count += 1
                    s.merge(image)
                    log.debug('DATABASE: Updated Image %s' % image.md5sum)
                else:
                    ftype = filename.split('.')[-1]
                    image = Image(int(time.time()), ftype, data, md5)
                    s.add(image)
                    log.debug('DATABASE: Added Image %s' % image.md5sum)
                s.commit()
                s.close()
            else:
                try:
                    self.call('/post/image', {'filetype': filename.split('.')[-1]},
                                             {'file': open(filename, 'rb')})
                except:
                    log.error('API: Upload Failed. %s=%skb' % (filename, 
                                                os.path.getsize(filename) / 1024))
        else:
            log.error('API: %s doesnt exist' % filename)