__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# -*- test-case-name: twisted.web.test.test_pages -*-
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.
"""
Utility implementations of L{IResource}.
"""
__all__ = (
"errorPage",
"notFound",
"forbidden",
)
from typing import cast
from twisted.web import http
from twisted.web.iweb import IRenderable, IRequest
from twisted.web.resource import IResource, Resource
from twisted.web.template import renderElement, tags
class _ErrorPage(Resource):
"""
L{_ErrorPage} is a resource that responds to all requests with a particular
(parameterized) HTTP status code and an HTML body containing some
descriptive text. This is useful for rendering simple error pages.
@see: L{twisted.web.pages.errorPage}
@ivar _code: An integer HTTP status code which will be used for the
response.
@ivar _brief: A short string which will be included in the response body as
the page title.
@ivar _detail: A longer string which will be included in the response body.
"""
def __init__(self, code: int, brief: str, detail: str) -> None:
super().__init__()
self._code: int = code
self._brief: str = brief
self._detail: str = detail
def render(self, request: IRequest) -> object:
"""
Respond to all requests with the given HTTP status code and an HTML
document containing the explanatory strings.
"""
request.setResponseCode(self._code)
request.setHeader(b"content-type", b"text/html; charset=utf-8")
return renderElement(
request,
# cast because the type annotations here seem off; Tag isn't an
# IRenderable but also probably should be? See
# https://github.com/twisted/twisted/issues/4982
cast(
IRenderable,
tags.html(
tags.head(tags.title(f"{self._code} - {self._brief}")),
tags.body(tags.h1(self._brief), tags.p(self._detail)),
),
),
)
def getChild(self, path: bytes, request: IRequest) -> Resource:
"""
Handle all requests for which L{_ErrorPage} lacks a child by returning
this error page.
@param path: A path segment.
@param request: HTTP request
"""
return self
def errorPage(code: int, brief: str, detail: str) -> _ErrorPage:
"""
Build a resource that responds to all requests with a particular HTTP
status code and an HTML body containing some descriptive text. This is
useful for rendering simple error pages.
The resource dynamically handles all paths below it. Use
L{IResource.putChild()} to override a specific path.
@param code: An integer HTTP status code which will be used for the
response.
@param brief: A short string which will be included in the response
body as the page title.
@param detail: A longer string which will be included in the
response body.
@returns: An L{IResource}
"""
return _ErrorPage(code, brief, detail)
def notFound(
brief: str = "No Such Resource",
message: str = "Sorry. No luck finding that resource.",
) -> IResource:
"""
Generate an L{IResource} with a 404 Not Found status code.
@see: L{twisted.web.pages.errorPage}
@param brief: A short string displayed as the page title.
@param brief: A longer string displayed in the page body.
@returns: An L{IResource}
"""
return _ErrorPage(http.NOT_FOUND, brief, message)
def forbidden(
brief: str = "Forbidden Resource", message: str = "Sorry, resource is forbidden."
) -> IResource:
"""
Generate an L{IResource} with a 403 Forbidden status code.
@see: L{twisted.web.pages.errorPage}
@param brief: A short string displayed as the page title.
@param brief: A longer string displayed in the page body.
@returns: An L{IResource}
"""
return _ErrorPage(http.FORBIDDEN, brief, message)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| _auth | Folder | 0755 |
|
|
| newsfragments | Folder | 0755 |
|
|
| test | Folder | 0755 |
|
|
| __init__.py | File | 384 B | 0644 |
|
| _element.py | File | 5.89 KB | 0644 |
|
| _flatten.py | File | 17.72 KB | 0644 |
|
| _http2.py | File | 47.48 KB | 0644 |
|
| _newclient.py | File | 62.33 KB | 0644 |
|
| _responses.py | File | 2.93 KB | 0644 |
|
| _stan.py | File | 10.69 KB | 0644 |
|
| _template_util.py | File | 30.77 KB | 0644 |
|
| client.py | File | 57.52 KB | 0644 |
|
| demo.py | File | 516 B | 0644 |
|
| distrib.py | File | 11.8 KB | 0644 |
|
| domhelpers.py | File | 8.88 KB | 0644 |
|
| error.py | File | 13.33 KB | 0644 |
|
| guard.py | File | 587 B | 0644 |
|
| html.py | File | 1.51 KB | 0644 |
|
| http.py | File | 110.22 KB | 0644 |
|
| http_headers.py | File | 8.86 KB | 0644 |
|
| iweb.py | File | 27.07 KB | 0644 |
|
| microdom.py | File | 36.41 KB | 0644 |
|
| pages.py | File | 3.94 KB | 0644 |
|
| proxy.py | File | 9.64 KB | 0644 |
|
| resource.py | File | 15.04 KB | 0644 |
|
| rewrite.py | File | 1.82 KB | 0644 |
|
| script.py | File | 5.64 KB | 0644 |
|
| server.py | File | 28.97 KB | 0644 |
|
| soap.py | File | 5.08 KB | 0644 |
|
| static.py | File | 36.61 KB | 0644 |
|
| sux.py | File | 20.39 KB | 0644 |
|
| tap.py | File | 10.02 KB | 0644 |
|
| template.py | File | 1.27 KB | 0644 |
|
| twcgi.py | File | 11.71 KB | 0644 |
|
| util.py | File | 749 B | 0644 |
|
| vhost.py | File | 4.32 KB | 0644 |
|
| wsgi.py | File | 21.45 KB | 0644 |
|
| xmlrpc.py | File | 20.65 KB | 0644 |
|