Example #1
0
def image_list_json(request):
    #TODO duplication,I have to DRY below code
    blob_info_query = blobstore.BlobInfo.all().order('-creation')
    blob_info_results = blob_info_query.fetch(10)
    for r in blob_info_results:
        bsi_entity = BlobStoreImage.get_by_key_name(r.md5_hash)
        if bsi_entity is None:
            bsi_entity = BlobStoreImage(key_name=r.md5_hash,file_name=r.filename,blob_key=r.key())
            bsi_entity.put()
    query = BlobStoreImage.all().order('-update')
    paginator = Paginator(query,10)
    try:
        page = int(request.args.get('page','1'))
    except ValueError:
        page = 1
    try:
        results = paginator.page(page)
    except (EmptyPage,InvalidPage):
        results = paginator.page(paginator.num_pages)
    return_list = []
    for r in results.object_list:
        if r.image_path is None or r.image_path == '':
            r.image_path = get_serving_url(r.blob_key.key())
            r.put()
        return_list.append({'key':str(r.key()),
            'id':r.key().name(),
            'title':r.title,
            'file_name':r.file_name,
            'note':r.note,
            'image_path':RE_REMOVE_HTTP.sub('',r.image_path),
            'update':str(r.update)[:16]})
    return Response(json.dumps({'images':return_list,
        'current_page':results.number,
        'total_pages':results.paginator.num_pages}, ensure_ascii=False))
Example #2
0
 def post(self):
     query = blobstore.BlobInfo.all().order('-creation')
     results = query.fetch(1000)
     for r in results:
         bsi_entity = BlobStoreImage.get_by_key_name(r.md5_hash)
         if bsi_entity is None:
             bsi_entity = BlobStoreImage(key_name=r.md5_hash,file_name=r.filename,blob_key=r.key())
             bsi_entity.put()
     headers = {} 
     return werkzeug.Response('success', headers=headers, status=200)
Example #3
0
def construct_image_json_from_content(body):
    re_result = re.compile(ur'image_id:[a-z0-9]+').findall(body)
    image_list = []
    for r in re_result:
        image_id = re.sub(ur'image_id:','',r)
        tmp_image_entity = BlobStoreImage.get_by_key_name(image_id)
        image_list.append({'id':tmp_image_entity.key().name(),
            'title':tmp_image_entity.title,
            'image_path':re.sub('^http:','',get_serving_url(tmp_image_entity.blob_key.key()))})
    json_dic ={'images':image_list}
    return json.dumps(json_dic, ensure_ascii=False)
Example #4
0
def image_delete(request,key):
    bsi_entity = BlobStoreImage.get(key)
    bsi_entity.blob_key.delete()
    bsi_entity.delete()
    return Response('success')