def register(request): username = request.POST['username'] email = request.POST['email'] password = request.POST['password'] try: User.objects.create_user(username=username, email=email, password=password) except: return apiresponse("Username already exists", code='err_record') return apiresponse()
def login_user(request): username = request.POST['username'] password = request.POST['password'] user = authenticate(username=username, password=password) if user is not None: if user.is_active: login(request, user) return apiresponse() else: return apiresponse(code='inactive_usr') else: return apiresponse(code='invalid_usrpwd')
def upload(request, data=None, phome=None, con_len=None): try: err = {} tmp_fname = get_random_name() if not os.path.exists(config.tmp_dir): os.makedirs(config.tmp_dir) tmp_fpath = os.path.join(config.tmp_dir, tmp_fname) tmp_dirpath = tmp_fpath + '_dir' package_data = StringIO(data) if data \ else StringIO(request.raw_post_data) username = request.user.username package_home = phome or package_data.readline().strip() package_home = '.'.join([username, package_home]).strip('.') content_length = con_len or int(package_data.readline().strip()) store_file(tmp_fpath, package_data, content_length, config.chunk_size) callback_fn = make_parse_fn(request, err) num_package_dirs = add_packages_from_zip(tmp_fpath, tmp_dirpath, package_home, config.repo_dir, callback_fn) except RepositoryException, e: return apiresponse(e.message, 'err')
def image_view(request, generator_id, fname, size=''): image_path = get_thumb_path(generator_id, fname, size) if not os.path.exists(image_path): return apiresponse(code='err_record') data = open(image_path, 'rb').read() resp = HttpResponse(mimetype='image/%s' % image_path.rsplit('.', 1)[-1]) resp['Content-Disposition'] = 'attachment; filename=%s%s' % (size, fname) resp.write(data) return resp
def item_list_view(request, item_type, item_name, item_list_type, ordering='relevance', search_term=None, page_no=1, num=ITEMS_PER_PAGE): type = 'get_%s_list' %item_list_type fn = getattr(query, type) item_name = query.get_user(item_name) if item_type == 'user' else item_name keywords = {str(item_type): item_name} values = fn(ordering, search_term, **keywords) code = 'success' if values else 'err_record' return apiresponse(code=code, data=values)
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
def list_view(request, list_type, ordering='popular', search_term=None, page_no=1, num=ITEMS_PER_PAGE): num = num or ITEMS_PER_PAGE type = 'get_%s_list' %list_type fn = getattr(query, type) ordering = 'views' if ordering == 'popular' else 'views' entries = fn(ordering, search_term) paginator = Paginator(entries, int(num)) try: page = paginator.page(int(page_no)) except (EmptyPage, InvalidPage): page = paginator.page(paginator.num_pages) return apiresponse(data=page.object_list)
def bug_report(request): content = None user = None if request.user.is_authenticated(): user = request.user data = StringIO(request.raw_post_data) type = data.readline().strip() desc = data.readline().strip() file_name = data.readline() if file_name: file_name = file_name.strip() content = ContentFile(data.read()) query.update_bug(user, type, desc, file_name, content) return apiresponse()
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)
def logout_user(request): logout(request) return apiresponse()
def reset_view(request, reset_type=None): query.reset(reset_type) return apiresponse()
def tag_view(request, generator_id): tags = request.POST query.update_tag(tags, request.user, generator_id) return apiresponse()
num_package_dirs = add_packages_from_zip(tmp_fpath, tmp_dirpath, package_home, config.repo_dir, callback_fn) except RepositoryException, e: return apiresponse(e.message, 'err') except: print ''.join(traceback.format_exception(*sys.exc_info()[:3])) finally: if os.path.exists(tmp_fpath): os.remove(tmp_fpath) if os.path.exists(tmp_dirpath): shutil.rmtree(tmp_dirpath) response = apiresponse(err['message'], err['code']) if err else\ apiresponse("%s Packages added" % num_package_dirs) return response 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')