def generate_cookie(ids): def full_url(gigapan): return 'http://%s:5873%s' % (settings.GIGAPAN_SERVER, gigapan) gigapans = ["/gigapan/%d" % int(gigapan_id) for gigapan_id in ids] proxies = settings.GIGAPAN_PROXIES if len(proxies) > len(gigapans): mapping = {} # gigapan -> [proxy] gigapan_index = 0 for proxy in proxies: mapping.setdefault(gigapans[gigapan_index], []).append(proxy) gigapan_index = (gigapan_index + 1) % len(gigapans) cookies = [] for gigapan in gigapans: if len(mapping[gigapan]) > 1: cookies.append(generate_cookie_django([gigapan], servers=[settings.GIGAPAN_SERVER], proxies=mapping[gigapan])) else: cookies.append(generate_cookie_django([full_url(gigapan)], mapping[gigapan])) cookie = ''.join(cookies) else: mapping = {} # proxy -> [gigapan] proxy_index = 0 for gigapan in gigapans: mapping.setdefault(proxies[proxy_index], []).append(full_url(gigapan)) proxy_index = (proxy_index + 1) % len(proxies) cookie = ''.join([generate_cookie_django(mapping[proxy], [proxy]) for proxy in proxies]) return HttpResponse(cookie, mimetype='application/x-diamond-scope')
def index(request): if request.method == 'POST': form = MirageForm(request.POST) if form.is_valid(): paths = form.cleaned_data.get('paths', '').split('\n') paths = [ path.strip() for path in paths ] # trim whitespace paths = [ path for path in paths if path ] # skip empty q = QueryDict('').copy() q.setlist('path', paths) query = q.urlencode() if query: query = "?" + query servers = form.cleaned_data['servers'] cookie = [] n = len(servers) for i in range(n): scope = [ "%s/mirage/%dof%d%s" % \ (settings.MIRAGE_DATARETRIEVER, i+1, n, query) ] cookie.append(generate_cookie_django(scope, (servers[i],), blaster=getattr(settings, 'MIRAGE_BLASTER', None))) return HttpResponse(''.join(cookie), mimetype='application/x-diamond-scope') else: form = MirageForm() return render_response(request, 'scopeserver/simple_form.html', { 'form': form, })
def index(request): if request.method == 'POST': form = CollectionForm(request.POST, user=request.user) if form.is_valid(): cookie = [] for collection in form.cleaned_data['collections']: scope = ["/collection/%s" % collection.gid.replace(':', '')] servers = set() for server in collection.servers.all(): servers.add(server.host) cookie.extend( generate_cookie_django(scope, servers, blaster=getattr( settings, 'GATEKEEPER_BLASTER', None))) return HttpResponse(cookie, content_type='application/x-diamond-scope') else: form = CollectionForm(user=request.user) return render(request, 'scopeserver/gatekeeper.html', { 'form': form, })
def index(request): if request.method == 'POST': form = MetadataCollectionForm(request.POST, user=request.user) if form.is_valid(): append = '' keywords = form.cleaned_data['keywords'].strip() if keywords: append += '/keywords/%s' % keywords divisor = form.cleaned_data['divisor'] expression = form.cleaned_data['expression'] if divisor and expression: try: expr1 = "=%d" % int(expression) except ValueError: expr1 = expression append += '/modulo/%d/%s' % (divisor, expr1) cookie = [] for collection in form.cleaned_data['collections']: scope = [urllib.quote(("/yfcc100m_mysql/scope/%s" % collection.dataset) + append)] servers = set() for server in collection.servers.all(): servers.add(server.host) cookie.extend(generate_cookie_django( scope, servers, blaster=getattr(settings, 'GATEKEEPER_BLASTER', None))) return HttpResponse(cookie, content_type='application/x-diamond-scope') else: form = MetadataCollectionForm(user=request.user) return render(request, 'scopeserver/metadata.html', { 'form': form, })
def index(request): if request.method == 'POST': form = MirageForm(request.POST) if form.is_valid(): paths = form.cleaned_data.get('paths', '').split('\n') paths = [path.strip() for path in paths] # trim whitespace paths = [path for path in paths if path] # skip empty q = QueryDict('').copy() q.setlist('path', paths) query = q.urlencode() if query: query = "?" + query servers = form.cleaned_data['servers'] cookie = [] n = len(servers) for i in range(n): scope = [ "%s/mirage/%dof%d%s" % \ (settings.MIRAGE_DATARETRIEVER, i+1, n, query) ] cookie.append( generate_cookie_django(scope, (servers[i], ), blaster=getattr( settings, 'MIRAGE_BLASTER', None))) return HttpResponse(''.join(cookie), mimetype='application/x-diamond-scope') else: form = MirageForm() return render_response(request, 'scopeserver/simple_form.html', { 'form': form, })
def index(request): if request.method == 'POST': form = FlickrForm(request.POST) if form.is_valid(): tags = form.cleaned_data.get('tags', '').split('\n') tags = [ tag.strip() for tag in tags ] # trim whitespace tags = [ tag for tag in tags if tag ] # skip empty tag_mode = form.cleaned_data['tag_mode'] and 'all' or 'any' text = form.cleaned_data.get('text', '') q = QueryDict('').copy() if tags: q['tags'] = ','.join(tags) q['tag_mode'] = tag_mode if text: q['text'] = text query = q.urlencode() scope = [ "/flickr/?%s" % query ] proxies = (form.cleaned_data['proxied'] and settings.FLICKR_PROXIES or None) cookie = generate_cookie_django(scope, settings.FLICKR_SERVERS, proxies) return HttpResponse(cookie, mimetype='application/x-diamond-scope') else: form = FlickrForm() return render_response(request, 'scopeserver/simple_form.html', { 'form': form, })
def generate_cookie(ids): def full_url(gigapan): return 'http://%s:5873%s' % (settings.GIGAPAN_SERVER, gigapan) gigapans = ["/gigapan/%d" % int(gigapan_id) for gigapan_id in ids] proxies = settings.GIGAPAN_PROXIES blaster = getattr(settings, 'GIGAPAN_BLASTER', None) if len(proxies) > len(gigapans): mapping = {} # gigapan -> [proxy] gigapan_index = 0 for proxy in proxies: mapping.setdefault(gigapans[gigapan_index], []).append(proxy) gigapan_index = (gigapan_index + 1) % len(gigapans) cookies = [] for gigapan in gigapans: if len(mapping[gigapan]) > 1: cookies.append( generate_cookie_django([gigapan], servers=[settings.GIGAPAN_SERVER], proxies=mapping[gigapan], blaster=blaster)) else: cookies.append( generate_cookie_django([full_url(gigapan)], mapping[gigapan], blaster=blaster)) cookie = ''.join(cookies) else: mapping = {} # proxy -> [gigapan] proxy_index = 0 for gigapan in gigapans: mapping.setdefault(proxies[proxy_index], []).append(full_url(gigapan)) proxy_index = (proxy_index + 1) % len(proxies) cookie = ''.join([ generate_cookie_django(mapping[proxy], [proxy], blaster=blaster) for proxy in proxies ]) return HttpResponse(cookie, content_type='application/x-diamond-scope')
def index(request): if request.method == 'POST': form = MetadataCollectionForm(request.POST, user=request.user) if form.is_valid(): append = '' keywords = form.cleaned_data['keywords'].strip() if keywords: append += '/keywords/%s' % keywords divisor = form.cleaned_data['divisor'] expression = form.cleaned_data['expression'] if divisor and expression: try: expr1 = "=%d" % int(expression) except ValueError: expr1 = expression append += '/modulo/%d/%s' % (divisor, expr1) cookie = [] for collection in form.cleaned_data['collections']: scope = [ urllib.quote(("/yfcc100m_mysql/scope/%s" % collection.dataset) + append) ] servers = set() for server in collection.servers.all(): servers.add(server.host) cookie.extend( generate_cookie_django(scope, servers, blaster=getattr( settings, 'GATEKEEPER_BLASTER', None))) return HttpResponse(cookie, content_type='application/x-diamond-scope') else: form = MetadataCollectionForm(user=request.user) return render(request, 'scopeserver/metadata.html', { 'form': form, })
def index(request): if request.method == 'POST': form = CollectionForm(request.POST, user=request.user) if form.is_valid(): cookie = [] for collection in form.cleaned_data['collections']: scope = [ "/collection/%s" % collection.gid.replace(':','') ] servers = set() for server in collection.servers.all(): servers.add(server.host) cookie.extend(generate_cookie_django(scope, servers)) return HttpResponse(cookie, mimetype='application/x-diamond-scope') else: form = CollectionForm(user=request.user) return render_response(request, 'scopeserver/gatekeeper.html', { 'form': form, })
def index(request): if request.method == 'POST': form = FlickrForm(request.POST) if form.is_valid(): tags = form.cleaned_data.get('tags', '').split('\n') tags = [tag.strip() for tag in tags] # trim whitespace tags = [tag for tag in tags if tag] # skip empty tag_mode = form.cleaned_data['tag_mode'] and 'all' or 'any' text = form.cleaned_data.get('text', '') q = QueryDict('').copy() if tags: q['tags'] = ','.join(tags) q['tag_mode'] = tag_mode if text: q['text'] = text query = q.urlencode() scope = ["/flickr/?%s" % query] proxies = (form.cleaned_data['proxied'] and settings.FLICKR_PROXIES or None) cookie = generate_cookie_django(scope, settings.FLICKR_SERVERS, proxies, blaster=getattr( settings, 'FLICKR_BLASTER', None)) return HttpResponse(cookie, mimetype='application/x-diamond-scope') else: form = FlickrForm() return render_response(request, 'scopeserver/simple_form.html', { 'form': form, })