From cc56adf83e3393be1a881f5cc24f94940fc049b9 Mon Sep 17 00:00:00 2001 From: josse <112946011+josod827@users.noreply.github.com> Date: Fri, 19 Sep 2025 10:42:34 +0200 Subject: [PATCH] Add josse to CONTRIBUTORS --- CONTRIBUTORS | 21 +++++++++++---------- qt/aqt/mediasrv.py | 13 +++++++++---- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 7064c6885..2358f9dee 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -26,10 +26,10 @@ GitHub's online interface. For users who previously confirmed the license of their contributions on the support site, it would be great if you could add your name below as well. -******************** +--- AMBOSS MD Inc. -Aristotelis P. +Aristotelis P. Erez Volk zjosua Yngve Hoiseth @@ -160,7 +160,7 @@ Marko Sisovic Viktor Ricci Harvey Randall Pedro Lameiras -Kai Knoblich +Kai Knoblich Lucas Scharenbroch Antonio Cavallo Han Yeong-woo @@ -189,7 +189,7 @@ Christian Donat Asuka Minato Dillon Baldwin Voczi -Ben Nguyen <105088397+bpnguyen107@users.noreply.github.com> +Ben Nguyen <105088397+bpnguyen107@users.noreply.github.com> Themis Demetriades Luke Bartholomew Gregory Abrasaldo @@ -243,8 +243,9 @@ Lee Doughty <32392044+leedoughty@users.noreply.github.com> memchr Max Romanowski Aldlss +josse <112946011+josod827@users.noreply.github.com> -******************** +--- The text of the 3 clause BSD license follows: @@ -254,15 +255,15 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. + list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors -may be used to endorse or promote products derived from this software without -specific prior written permission. + may be used to endorse or promote products derived from this software without + specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE diff --git a/qt/aqt/mediasrv.py b/qt/aqt/mediasrv.py index 0729152e0..fde850bb4 100644 --- a/qt/aqt/mediasrv.py +++ b/qt/aqt/mediasrv.py @@ -30,16 +30,16 @@ import aqt.operations from anki import hooks from anki.collection import OpChanges, OpChangesOnly, Progress, SearchNode from anki.decks import UpdateDeckConfigs +from anki.errors import BackendError from anki.scheduler.v3 import SchedulingStatesWithContext, SetSchedulingStatesRequest from anki.utils import dev_mode -from anki.errors import BackendError from aqt.changenotetype import ChangeNotetypeDialog from aqt.deckoptions import DeckOptionsDialog from aqt.operations import on_op_finished from aqt.operations.deck import update_deck_configs as update_deck_configs_op from aqt.progress import ProgressUpdate from aqt.qt import * -from aqt.utils import aqt_data_path, show_warning, tr, showWarning +from aqt.utils import aqt_data_path, show_warning, tr # https://forums.ankiweb.net/t/anki-crash-when-using-a-specific-deck/22266 waitress.wasyncore._DISCONNECTED = waitress.wasyncore._DISCONNECTED.union({EPROTOTYPE}) # type: ignore @@ -703,9 +703,14 @@ def _extract_collection_post_request(path: str) -> DynamicRequest | NotFound: else: response = _text_response(HTTPStatus.NO_CONTENT, "") except BackendError as e: + # special case empty file error from csv import if "empty" in str(e).lower(): - def warn(): - showWarning("The file you selected is empty and cannot be imported.") + + def warn() -> None: + show_warning( + "The file you selected is empty and cannot be imported." + ) + aqt.mw.taskman.run_on_main(warn) return _text_response(HTTPStatus.NO_CONTENT, "") else: