Esempio n. 1
0
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')
Esempio n. 2
0
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,
    })
Esempio n. 3
0
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,
    })
Esempio n. 4
0
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,
    })
Esempio n. 5
0
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,
    })
Esempio n. 6
0
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,
    })
Esempio n. 7
0
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')
Esempio n. 8
0
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,
    })
Esempio n. 9
0
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,
    })
Esempio n. 10
0
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,
    })