mirror of
https://github.com/ankitects/anki.git
synced 2026-01-09 03:53:55 -05:00
Revert "different port localhost solution"
This reverts commit 0bf871cadd.
This commit is contained in:
parent
0bf871cadd
commit
cbecf66160
3 changed files with 3 additions and 45 deletions
|
|
@ -56,7 +56,6 @@ waitress.wasyncore._DISCONNECTED = waitress.wasyncore._DISCONNECTED.union({EPROT
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
app = flask.Flask(__name__, root_path="/fake")
|
app = flask.Flask(__name__, root_path="/fake")
|
||||||
card_data_app = flask.Flask(__name__, root_path="/fake")
|
|
||||||
flask_cors.CORS(app, resources={r"/*": {"origins": "127.0.0.1"}})
|
flask_cors.CORS(app, resources={r"/*": {"origins": "127.0.0.1"}})
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -116,35 +115,20 @@ class MediaServer(threading.Thread):
|
||||||
try:
|
try:
|
||||||
desired_host = os.getenv("ANKI_API_HOST", "127.0.0.1")
|
desired_host = os.getenv("ANKI_API_HOST", "127.0.0.1")
|
||||||
desired_port = int(os.getenv("ANKI_API_PORT") or 0)
|
desired_port = int(os.getenv("ANKI_API_PORT") or 0)
|
||||||
desired_card_data_port = int(os.getenv("ANKI_CARD_DATA_PORT") or 0)
|
|
||||||
self.server = create_server(
|
self.server = create_server(
|
||||||
app,
|
app,
|
||||||
host=desired_host,
|
host=desired_host,
|
||||||
port=desired_port,
|
port=desired_port,
|
||||||
clear_untrusted_proxy_headers=True,
|
clear_untrusted_proxy_headers=True,
|
||||||
)
|
)
|
||||||
self.card_data_server = create_server(
|
|
||||||
card_data_app,
|
|
||||||
host=desired_host,
|
|
||||||
port=desired_card_data_port,
|
|
||||||
clear_untrusted_proxy_headers=True,
|
|
||||||
)
|
|
||||||
logger.info(
|
logger.info(
|
||||||
"Serving on http://%s:%s",
|
"Serving on http://%s:%s",
|
||||||
self.server.effective_host, # type: ignore[union-attr]
|
self.server.effective_host, # type: ignore[union-attr]
|
||||||
self.server.effective_port, # type: ignore[union-attr]
|
self.server.effective_port, # type: ignore[union-attr]
|
||||||
)
|
)
|
||||||
logger.info(
|
|
||||||
"Serving iframes on http://%s:%s",
|
|
||||||
self.card_data_server.effective_host, # type: ignore[union-attr]
|
|
||||||
self.card_data_server.effective_port, # type: ignore[union-attr]
|
|
||||||
)
|
|
||||||
|
|
||||||
self._ready.set()
|
self._ready.set()
|
||||||
card_data_thread = threading.Thread(target=self.card_data_server.run)
|
|
||||||
card_data_thread.start()
|
|
||||||
self.server.run()
|
self.server.run()
|
||||||
card_data_thread.join()
|
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
if not self.is_shutdown:
|
if not self.is_shutdown:
|
||||||
|
|
@ -195,19 +179,6 @@ def favicon() -> Response:
|
||||||
return _handle_builtin_file_request(request)
|
return _handle_builtin_file_request(request)
|
||||||
|
|
||||||
|
|
||||||
@card_data_app.route("/reviewer-inner.<ext>")
|
|
||||||
def card_data(ext):
|
|
||||||
if ext not in ("html", "js", "css"):
|
|
||||||
abort(404)
|
|
||||||
response = _handle_builtin_file_request(
|
|
||||||
BundledFileRequest(path=os.path.join("pages", f"reviewer-inner.{ext}"))
|
|
||||||
)
|
|
||||||
print(response.headers)
|
|
||||||
response.headers["Content-Security-Policy"] = ""
|
|
||||||
print(response.headers)
|
|
||||||
return response
|
|
||||||
|
|
||||||
|
|
||||||
def _mime_for_path(path: str) -> str:
|
def _mime_for_path(path: str) -> str:
|
||||||
"Mime type for provided path/filename."
|
"Mime type for provided path/filename."
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1297,8 +1297,7 @@ class SvelteReviewer(Reviewer):
|
||||||
# hide the bottom bar
|
# hide the bottom bar
|
||||||
self.bottom.web.setHtml("<style>body {margin:0;} html {height:0;}</style>")
|
self.bottom.web.setHtml("<style>body {margin:0;} html {height:0;}</style>")
|
||||||
# main window
|
# main window
|
||||||
inner_port = self.mw.mediaServer.card_data_server.effective_port
|
self.web.load_sveltekit_page("reviewer")
|
||||||
self.web.load_sveltekit_page(f"reviewer?p={inner_port}")
|
|
||||||
# block default drag & drop behavior while allowing drop events to be received by JS handlers
|
# block default drag & drop behavior while allowing drop events to be received by JS handlers
|
||||||
self.web.allow_drops = True
|
self.web.allow_drops = True
|
||||||
self.web.eval("_blockDefaultDragDropBehavior();")
|
self.web.eval("_blockDefaultDragDropBehavior();")
|
||||||
|
|
|
||||||
|
|
@ -12,27 +12,15 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
state.registerIFrame(iframe);
|
state.registerIFrame(iframe);
|
||||||
state.registerShortcuts();
|
state.registerShortcuts();
|
||||||
}
|
}
|
||||||
|
|
||||||
const innerPort = new URLSearchParams(window.location.search).get("p");
|
|
||||||
|
|
||||||
$: hostname = innerPort
|
|
||||||
? `${window.location.protocol}//${window.location.hostname}:${innerPort}/reviewer-inner.html`
|
|
||||||
: "/_anki/pages/reviewer-inner.html"; // fallback
|
|
||||||
|
|
||||||
$: sandboxAllowList =
|
|
||||||
"allow-scripts" +
|
|
||||||
(new URL(hostname).origin != window.location.origin
|
|
||||||
? " allow-same-origin"
|
|
||||||
: "");
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id="qa">
|
<div id="qa">
|
||||||
<iframe
|
<iframe
|
||||||
src={hostname + (isNightMode() ? "?nightMode" : "")}
|
src={"/_anki/pages/reviewer-inner.html" + (isNightMode() ? "?nightMode" : "")}
|
||||||
bind:this={iframe}
|
bind:this={iframe}
|
||||||
title="card"
|
title="card"
|
||||||
frameborder="0"
|
frameborder="0"
|
||||||
sandbox={sandboxAllowList}
|
sandbox="allow-scripts"
|
||||||
></iframe>
|
></iframe>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue