예제 #1
0
def gen_view(request, item_name=None):
    gen_info = query.get_generator_info(item_name)

    gen = query.get_generator(item_name)
    if gen:
        views = gen.views+1 if gen.views else 1
        gen_info['views'] = views
        gen.views = views
        gen.save()

    gen_info['fimages'] = get_fimages(gen_info, '180x120')

    package_info = query.get_package_info(gen_info['package_id'])

    for gen in package_info['gens']:
        gen['fimages'] = get_fimages(gen, '30x30')

    user=query.get_user(package_info['username'])
    user_top = query.get_generators_list('popular', user=user, limit=5)
    for gen in user_top:
        gen['fimages'] = get_fimages(gen, '30x30')

    return render_response(request, 'ui/generator.html', {
        'gen': gen_info,
        'package': package_info,
        'user_top': user_top
        })
예제 #2
0
def item_view(request, item_type, item_name, ordering='relevance',
              search_term=None, page_no=1, num=ITEMS_PER_PAGE):

    type = 'get_%s_info' %item_type
    fn = getattr(query, type)
    values = fn(item_name)

    if item_type == 'generator':
        gen = query.get_generator(item_name)
        if gen:
            views = gen.views+1 if gen.views else 1
            values['views'] = views
            gen.views = views
            gen.save()
    
    code = 'success' if values else 'err_record'

    return apiresponse(code=code, data=values)
예제 #3
0
def get_image_path(generator_id, fname, size=None):
    gen = query.get_generator(generator_id)
    pack_path = get_package_path(gen)

    pack_id = gen.package.pack_id
    gen_id = gen.gen_id.split(pack_id, 1)[-1].lstrip('.')

    image_path = os.path.sep.join([pack_path, 'screenshots', gen_id, fname])

    if size:
        id = '+'.join([generator_id, fname, size])
        fsize = [int(s) for s in size.split('x', 1)]
        thumb_path = compute_cache_path(config.cache_dir, id)
        if not os.path.exists(thumb_path):
            im = Image.open(image_path)
            im.thumbnail(fsize, Image.ANTIALIAS)
            im.save(thumb_path, "JPEG")
        image_path = thumb_path

    return image_path
예제 #4
0
def download(request, _id):
    gen = query.get_generator(_id)
    if not gen:
        return apiresponse(code='err_record')

    pack_path = get_package_path(gen)
    zip_file = '.'.join([pack_path, 'zip'])

    if not os.path.exists(zip_file):
        return apiresponse(code='err_record')

    data = open(zip_file, 'rb').read()

    resp = HttpResponse(mimetype='application/zip')
    resp['Content-Disposition'] = 'attachment; filename=%s.zip' % _id
    resp.write(data)

    pack = gen.package
    num_downloaded = pack.num_downloaded+1 if pack.num_downloaded else 1
    pack.num_downloaded = num_downloaded
    pack.save()

    return resp