import http.server import os import sys import time from typing import Tuple, AnyStr, NoReturn from urllib.parse import parse_qs, urlsplit import importlib.resources from random import randint import requests from gitflic import __version__ _debug = False server: http.server.HTTPServer redirect_link: str _GitflicAuth: object class GitflicOAuthServer(http.server.BaseHTTPRequestHandler): server_version = f"GitflicOAuthServer/{__version__}" default_request_version = "HTTP/1.0" @staticmethod def get_html() -> str: """ Get HTML page from module """ with importlib.resources.open_text("gitflic._oauth_server", "page.html") as f: html = f.read() return html def send_html_row(self, what: AnyStr, description: AnyStr, data: str) -> NoReturn: """ Add row at page using Bootstrap CSS """ html = f"""
{data}
Error!
{reason}
""" self.send(error_html) def send_headers(self, code: int) -> None: self.send_response(code) self.send_header("Content-type", "text/html; charset=UTF-8") self.end_headers() def send(self, html: str) -> NoReturn: """ wfile.write handler """ self.wfile.write(bytes(html, "UTF-8")) # noinspection PyPep8Naming def do_GET(self) -> NoReturn: """ GET request handler """ is_error = False url = urlsplit(self.path) params = parse_qs(url.query) code = state = None if url.path != "/": # Allow only root path ;) self.send_headers(404) self.send(f'''Server close automatically.
You can close this page