def maps_author(request, author, page=1): mapObject = Maps.objects.filter(author=author.replace("%20", " ")) mapObject, filter_prepare, selected_filter = misc.map_filter(request, mapObject) perPage = 20 slice_start = perPage*int(page)-perPage slice_end = perPage*int(page) amount = len(mapObject) rowsRange = int(math.ceil(amount/float(perPage))) # amount of rows mapObject = mapObject[slice_start:slice_end] if len(mapObject) == 0 and int(page) != 1: if request.META['QUERY_STRING']: return HttpResponseRedirect("/maps/author/%s/?%s" % (author, request.META['QUERY_STRING'])) return HttpResponseRedirect("/maps/author/%s/" % author) comments = misc.count_comments_for_many(mapObject, 'maps') template = loader.get_template('index.html') template_args = { 'content': 'maps_author.html', 'request': request, 'title': ' - Maps From ' + author, 'maps': mapObject, 'page': int(page), 'range': [i+1 for i in range(rowsRange)], 'amount': amount, 'author': author, 'comments': comments, 'filter_prepare': filter_prepare, 'selected_filter': selected_filter, } return StreamingHttpResponse(template.render(template_args, request))
def maps_zip(request): mapObject = Maps.objects.filter() mapObject, filter_prepare, selected_filter = misc.map_filter(request, mapObject) s = BytesIO() zf = zipfile.ZipFile(s, "w", zipfile.ZIP_DEFLATED) zip_filename = "resource_center_maps.zip" for item in mapObject: oramap = "" item_path = os.getcwd() + '/openra/data/maps/' + str(item.id) + '/' try: mapDir = os.listdir(item_path) except: continue for filename in mapDir: if filename.endswith(".oramap"): oramap = filename break if not oramap: continue zip_path = "maps/%s/%s.oramap" % (item.game_mod, item.id) zf.write(os.path.join(item_path, oramap), zip_path, zipfile.ZIP_DEFLATED) zf.close() response = HttpResponse(s.getvalue(), content_type='application/x-zip-compressed') response['Content-Disposition'] = 'attachment; filename = %s' % zip_filename response['Content-Length'] = s.tell() return response
def maps(request, page=1): mapObject = Maps.objects.filter() mapObject, filter_prepare, selected_filter = misc.map_filter( request, mapObject) perPage = 20 slice_start = perPage * int(page) - perPage slice_end = perPage * int(page) amount = len(mapObject) rowsRange = int(math.ceil(amount / float(perPage))) # amount of rows mapObject = mapObject[slice_start:slice_end] amount_this_page = len(mapObject) if amount_this_page == 0 and int(page) != 1: if request.META['QUERY_STRING']: return HttpResponseRedirect("/maps/?" + request.META['QUERY_STRING']) return HttpResponseRedirect("/maps/") comments = misc.count_comments_for_many(mapObject, 'maps') template = loader.get_template('index.html') template_args = { 'content': 'maps.html', 'request': request, 'title': ' - Maps', 'maps': mapObject, 'page': int(page), 'range': [i + 1 for i in range(rowsRange)], 'amount': amount, 'comments': comments, 'filter_prepare': filter_prepare, 'selected_filter': selected_filter, } if settings.SITE_MAINTENANCE: template_args['content'] = 'service/maintenance.html' template_args['maintenance_over'] = settings.SITE_MAINTENANCE_OVER return StreamingHttpResponse(template.render(template_args, request))
def maps_uploader(request, arg, page=1): mapObject = Maps.objects.filter(user__id=arg) if not mapObject: HttpResponseRedirect('/maps/') mapObject, filter_prepare, selected_filter = misc.map_filter( request, mapObject) perPage = 20 slice_start = perPage * int(page) - perPage slice_end = perPage * int(page) amount = len(mapObject) rowsRange = int(math.ceil(amount / float(perPage))) # amount of rows mapObject = mapObject[slice_start:slice_end] if len(mapObject) == 0 and int(page) != 1: if request.META['QUERY_STRING']: return HttpResponseRedirect("/maps/uploader/%s/?%s" % (arg, request.META['QUERY_STRING'])) return HttpResponseRedirect("/maps/uploader/%s/" % arg) comments = misc.count_comments_for_many(mapObject, 'maps') template = loader.get_template('index.html') template_args = { 'content': 'maps_uploader.html', 'request': request, 'title': ' - Maps uploaded by ' + mapObject[0].user.username, 'maps': mapObject, 'page': int(page), 'range': [i + 1 for i in range(rowsRange)], 'amount': amount, 'uploader': mapObject[0].user.username, 'arg': arg, 'comments': comments, 'filter_prepare': filter_prepare, 'selected_filter': selected_filter, } return StreamingHttpResponse(template.render(template_args, request))
def maps(request, page=1): mapObject = Maps.objects.filter() mapObject, filter_prepare, selected_filter = misc.map_filter(request, mapObject) perPage = 20 slice_start = perPage*int(page)-perPage slice_end = perPage*int(page) amount = len(mapObject) rowsRange = int(math.ceil(amount/float(perPage))) # amount of rows mapObject = mapObject[slice_start:slice_end] amount_this_page = len(mapObject) if amount_this_page == 0 and int(page) != 1: if request.META['QUERY_STRING']: return HttpResponseRedirect("/maps/?" + request.META['QUERY_STRING']) return HttpResponseRedirect("/maps/") comments = misc.count_comments_for_many(mapObject, 'maps') template = loader.get_template('index.html') template_args = { 'content': 'maps.html', 'request': request, 'title': ' - Maps', 'maps': mapObject, 'page': int(page), 'range': [i+1 for i in range(rowsRange)], 'amount': amount, 'comments': comments, 'filter_prepare': filter_prepare, 'selected_filter': selected_filter, } if settings.SITE_MAINTENANCE: template_args['content'] = 'service/maintenance.html' template_args['maintenance_over'] = settings.SITE_MAINTENANCE_OVER return StreamingHttpResponse(template.render(template_args, request))
def maps_uploader(request, arg, page=1): mapObject = Maps.objects.filter(user__id=arg) if not mapObject: HttpResponseRedirect('/maps/') mapObject, filter_prepare, selected_filter = misc.map_filter(request, mapObject) perPage = 20 slice_start = perPage*int(page)-perPage slice_end = perPage*int(page) amount = len(mapObject) rowsRange = int(math.ceil(amount/float(perPage))) # amount of rows mapObject = mapObject[slice_start:slice_end] if len(mapObject) == 0 and int(page) != 1: if request.META['QUERY_STRING']: return HttpResponseRedirect("/maps/uploader/%s/?%s" % (arg, request.META['QUERY_STRING'])) return HttpResponseRedirect("/maps/uploader/%s/" % arg) comments = misc.count_comments_for_many(mapObject, 'maps') template = loader.get_template('index.html') template_args = { 'content': 'maps_uploader.html', 'request': request, 'title': ' - Maps uploaded by ' + mapObject[0].user.username, 'maps': mapObject, 'page': int(page), 'range': [i+1 for i in range(rowsRange)], 'amount': amount, 'uploader': mapObject[0].user.username, 'arg': arg, 'comments': comments, 'filter_prepare': filter_prepare, 'selected_filter': selected_filter, } return StreamingHttpResponse(template.render(template_args, request))
def maps_zip(request): mapObject = Maps.objects.filter() mapObject, filter_prepare, selected_filter = misc.map_filter( request, mapObject) s = BytesIO() zf = zipfile.ZipFile(s, "w", zipfile.ZIP_DEFLATED) zip_filename = "resource_center_maps.zip" for item in mapObject: oramap = "" item_path = os.path.join(settings.BASE_DIR, 'openra', 'data', 'maps', str(item.id)) try: mapDir = os.listdir(item_path) except: continue for filename in mapDir: if filename.endswith(".oramap"): oramap = filename break if not oramap: continue zip_path = os.path.join('maps', item.game_mod, '%d.oramap' % item.id) zf.write(os.path.join(item_path, oramap), zip_path, zipfile.ZIP_DEFLATED) zf.close() response = HttpResponse(s.getvalue(), content_type='application/x-zip-compressed') response[ 'Content-Disposition'] = 'attachment; filename = %s' % zip_filename response['Content-Length'] = s.tell() return response
def maps_author(request, author, page=1): mapObject = Maps.objects.filter(author=author.replace("%20", " ")) mapObject, filter_prepare, selected_filter = misc.map_filter( request, mapObject) perPage = 20 slice_start = perPage * int(page) - perPage slice_end = perPage * int(page) amount = len(mapObject) rowsRange = int(math.ceil(amount / float(perPage))) # amount of rows mapObject = mapObject[slice_start:slice_end] if len(mapObject) == 0 and int(page) != 1: if request.META['QUERY_STRING']: return HttpResponseRedirect("/maps/author/%s/?%s" % (author, request.META['QUERY_STRING'])) return HttpResponseRedirect("/maps/author/%s/" % author) comments = misc.count_comments_for_many(mapObject, 'maps') template = loader.get_template('index.html') template_args = { 'content': 'maps_author.html', 'request': request, 'title': ' - Maps From ' + author, 'maps': mapObject, 'page': int(page), 'range': [i + 1 for i in range(rowsRange)], 'amount': amount, 'author': author, 'comments': comments, 'filter_prepare': filter_prepare, 'selected_filter': selected_filter, } return StreamingHttpResponse(template.render(template_args, request))