def handle_camo_url(request: HttpRequest, digest: str, received_url: str) -> HttpResponse: original_url = bytes.fromhex(received_url).decode() if is_camo_url_valid(digest, original_url): return redirect(generate_thumbnail_url(original_url, is_camo_url=True)) else: return HttpResponseForbidden("<p>Not a valid URL.</p>")
def handle_camo_url(request: HttpRequest, digest: str, received_url: str) -> HttpResponse: if not settings.THUMBOR_SERVES_CAMO: return HttpResponseNotFound() original_url = bytes.fromhex(received_url).decode() if is_camo_url_valid(digest, original_url): return redirect(generate_thumbnail_url(original_url, is_camo_url=True)) else: return HttpResponseForbidden(_("<p>Not a valid URL.</p>"))
def backend_serve_thumbnail( request: HttpRequest, user_profile: UserProfile, url: str = REQ(), size_requested: str = REQ("size"), ) -> HttpResponse: if not validate_thumbnail_request(user_profile, url): return HttpResponseForbidden( _("<p>You are not authorized to view this file.</p>")) thumbnail_url = generate_thumbnail_url(url) return redirect(thumbnail_url)
def handle_camo_url(request: HttpRequest, digest: str, received_url: str) -> HttpResponse: if not settings.THUMBOR_SERVES_CAMO: return HttpResponseNotFound() hex_encoded_url = received_url.encode('utf-8') hex_decoded_url = codecs.decode(hex_encoded_url, 'hex') original_url = hex_decoded_url.decode('utf-8') # type: ignore # https://github.com/python/typeshed/issues/300 if is_camo_url_valid(digest, original_url): return redirect(generate_thumbnail_url(original_url, is_camo_url=True)) else: return HttpResponseForbidden(_("<p>Not a valid URL.</p>"))
def handle_camo_url(request: HttpRequest, digest: str, received_url: str) -> HttpResponse: if not settings.THUMBOR_SERVES_CAMO: return HttpResponseNotFound() hex_encoded_url = received_url.encode('utf-8') hex_decoded_url = binascii.a2b_hex(hex_encoded_url) original_url = hex_decoded_url.decode('utf-8') if is_camo_url_valid(digest, original_url): return redirect(generate_thumbnail_url(original_url, is_camo_url=True)) else: return HttpResponseForbidden(_("<p>Not a valid URL.</p>"))
def handle_camo_url(request: HttpRequest, digest: str, received_url: str) -> HttpResponse: if not settings.THUMBOR_SERVES_CAMO: return HttpResponseNotFound() hex_encoded_url = received_url.encode('utf-8') hex_decoded_url = codecs.decode(hex_encoded_url, 'hex') original_url = hex_decoded_url.decode( 'utf-8' ) # type: ignore # https://github.com/python/typeshed/issues/300 if is_camo_url_valid(digest, original_url): return redirect(generate_thumbnail_url(original_url, is_camo_url=True)) else: return HttpResponseForbidden(_("<p>Not a valid URL.</p>"))
def backend_serve_thumbnail(request: HttpRequest, user_profile: UserProfile, url: str=REQ(), size_requested: str=REQ("size")) -> HttpResponse: if not validate_thumbnail_request(user_profile, url): return HttpResponseForbidden(_("<p>You are not authorized to view this file.</p>")) size = None if size_requested == 'thumbnail': size = '0x100' elif size_requested == 'full': size = '0x0' if size is None: return HttpResponseForbidden(_("<p>Invalid size.</p>")) thumbnail_url = generate_thumbnail_url(url, size) return redirect(thumbnail_url)
def backend_serve_thumbnail( request: HttpRequest, maybe_user_profile: Union[UserProfile, AnonymousUser], url: str = REQ(), size_requested: str = REQ("size"), ) -> HttpResponse: if not maybe_user_profile.is_authenticated: realm = get_valid_realm_from_request(request) else: assert isinstance(maybe_user_profile, UserProfile) realm = maybe_user_profile.realm if not validate_thumbnail_request(realm, maybe_user_profile, url): return HttpResponseForbidden( _("<p>You are not authorized to view this file.</p>")) thumbnail_url = generate_thumbnail_url(url) return redirect(thumbnail_url)