mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
Partially revert "Fix issue 1362 and add a default favicon.ico (#1369)"
Kept the favicon, but have reverted the rest, as it unfortunately did
not seem to prevent the issue from occurring.
Original discussion: https://github.com/ankitects/anki/pull/1369
This reverts commit 6d0f7e7f05
.
This commit is contained in:
parent
db5117ce1a
commit
52f17c12e0
2 changed files with 1 additions and 57 deletions
|
@ -1698,7 +1698,6 @@ title="{}" {}>{}</button>""".format(
|
||||||
def setupMediaServer(self) -> None:
|
def setupMediaServer(self) -> None:
|
||||||
self.mediaServer = aqt.mediasrv.MediaServer(self)
|
self.mediaServer = aqt.mediasrv.MediaServer(self)
|
||||||
self.mediaServer.start()
|
self.mediaServer.start()
|
||||||
self.mediaServer.await_ready()
|
|
||||||
|
|
||||||
def baseHTML(self) -> str:
|
def baseHTML(self) -> str:
|
||||||
return f'<base href="{self.serverURL()}">'
|
return f'<base href="{self.serverURL()}">'
|
||||||
|
|
|
@ -3,20 +3,16 @@
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import datetime
|
|
||||||
import logging
|
import logging
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import socket
|
|
||||||
import sys
|
import sys
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
from contextlib import contextmanager
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from http import HTTPStatus, client
|
from http import HTTPStatus
|
||||||
from typing import Any, Generator
|
|
||||||
|
|
||||||
import flask
|
import flask
|
||||||
import flask_cors # type: ignore
|
import flask_cors # type: ignore
|
||||||
|
@ -36,18 +32,6 @@ from aqt.deckoptions import DeckOptionsDialog
|
||||||
from aqt.operations.deck import update_deck_configs
|
from aqt.operations.deck import update_deck_configs
|
||||||
from aqt.qt import *
|
from aqt.qt import *
|
||||||
|
|
||||||
|
|
||||||
@contextmanager
|
|
||||||
def http_connection(
|
|
||||||
*args: Any, **kwds: Any
|
|
||||||
) -> Generator[client.HTTPConnection, None, None]:
|
|
||||||
resource = client.HTTPConnection(*args, **kwds)
|
|
||||||
try:
|
|
||||||
yield resource
|
|
||||||
finally:
|
|
||||||
resource.close()
|
|
||||||
|
|
||||||
|
|
||||||
app = flask.Flask(__name__, root_path="/fake")
|
app = flask.Flask(__name__, root_path="/fake")
|
||||||
flask_cors.CORS(app)
|
flask_cors.CORS(app)
|
||||||
|
|
||||||
|
@ -137,45 +121,6 @@ class MediaServer(threading.Thread):
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def getHost(self) -> str:
|
|
||||||
self._ready.wait()
|
|
||||||
return str(self.server.effective_host) # type: ignore
|
|
||||||
|
|
||||||
def await_ready(self) -> None:
|
|
||||||
"""Block until webserver can respond to requests.
|
|
||||||
Potentially solves a race condition at startup where some resources
|
|
||||||
fail to load.
|
|
||||||
https://github.com/ankitects/anki/pull/1369
|
|
||||||
"""
|
|
||||||
self._check_server(self.getHost(), self.getPort(), "/favicon.ico")
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def _check_server(
|
|
||||||
cls,
|
|
||||||
host: str,
|
|
||||||
port: int,
|
|
||||||
path_info: str = "/",
|
|
||||||
timeout: int = 1,
|
|
||||||
retries: int = 30,
|
|
||||||
) -> int:
|
|
||||||
"""Perform a request until the server reply"""
|
|
||||||
if retries < 0:
|
|
||||||
return 0
|
|
||||||
# https://github.com/Pylons/webtest/blob/4b8a3ebf984185ff4fefb31b4d0cf82682e1fcf7/webtest/http.py#L123-L132
|
|
||||||
for index in range(retries):
|
|
||||||
if dev_mode or index > 0:
|
|
||||||
print(
|
|
||||||
f"{datetime.datetime.now()} awaiting media server on {host}:{port}..."
|
|
||||||
)
|
|
||||||
try:
|
|
||||||
with http_connection(host, port, timeout=timeout) as conn:
|
|
||||||
conn.request("GET", path_info)
|
|
||||||
res = conn.getresponse()
|
|
||||||
return res.status
|
|
||||||
except (socket.error, client.HTTPException):
|
|
||||||
time.sleep(0.3)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
@app.route("/favicon.ico")
|
@app.route("/favicon.ico")
|
||||||
def favicon() -> Response:
|
def favicon() -> Response:
|
||||||
|
|
Loading…
Reference in a new issue