This commit is contained in:
josod827 2025-09-24 13:45:10 +02:00 committed by GitHub
commit e93b66c990
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 10 deletions

View file

@ -26,10 +26,10 @@ GitHub's online interface.
For users who previously confirmed the license of their contributions on the 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. support site, it would be great if you could add your name below as well.
******************** ---
AMBOSS MD Inc. <https://www.amboss.com/> AMBOSS MD Inc. <https://www.amboss.com/>
Aristotelis P. <https://glutanimate.com/contact> Aristotelis P. <https://glutanimate.com/contact>
Erez Volk <erez.volk@gmail.com> Erez Volk <erez.volk@gmail.com>
zjosua <zjosua@hotmail.com> zjosua <zjosua@hotmail.com>
Yngve Hoiseth <yngve@hoiseth.net> Yngve Hoiseth <yngve@hoiseth.net>
@ -160,7 +160,7 @@ Marko Sisovic <msisovic13@gmail.com>
Viktor Ricci <ricci@primateer.de> Viktor Ricci <ricci@primateer.de>
Harvey Randall <harveyrandall2001@gmail.com> Harvey Randall <harveyrandall2001@gmail.com>
Pedro Lameiras <pedrolameiras@tecnico.ulisboa.pt> Pedro Lameiras <pedrolameiras@tecnico.ulisboa.pt>
Kai Knoblich <kai@FreeBSD.org> Kai Knoblich <kai@FreeBSD.org>
Lucas Scharenbroch <lucasscharenbroch@gmail.com> Lucas Scharenbroch <lucasscharenbroch@gmail.com>
Antonio Cavallo <a.cavallo@cavallinux.eu> Antonio Cavallo <a.cavallo@cavallinux.eu>
Han Yeong-woo <han@yeongwoo.dev> Han Yeong-woo <han@yeongwoo.dev>
@ -189,7 +189,7 @@ Christian Donat <https://github.com/cdonat2>
Asuka Minato <https://asukaminato.eu.org> Asuka Minato <https://asukaminato.eu.org>
Dillon Baldwin <https://github.com/DillBal> Dillon Baldwin <https://github.com/DillBal>
Voczi <https://github.com/voczi> Voczi <https://github.com/voczi>
Ben Nguyen <105088397+bpnguyen107@users.noreply.github.com> Ben Nguyen <105088397+bpnguyen107@users.noreply.github.com>
Themis Demetriades <themis100@outlook.com> Themis Demetriades <themis100@outlook.com>
Luke Bartholomew <lukesbart@icloud.com> Luke Bartholomew <lukesbart@icloud.com>
Gregory Abrasaldo <degeemon@gmail.com> Gregory Abrasaldo <degeemon@gmail.com>
@ -243,8 +243,9 @@ Lee Doughty <32392044+leedoughty@users.noreply.github.com>
memchr <memchr@proton.me> memchr <memchr@proton.me>
Max Romanowski <maxr777@proton.me> Max Romanowski <maxr777@proton.me>
Aldlss <ayaldlss@gmail.com> Aldlss <ayaldlss@gmail.com>
josse <112946011+josod827@users.noreply.github.com>
******************** ---
The text of the 3 clause BSD license follows: 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: modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this 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, 2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution. and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors 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 may be used to endorse or promote products derived from this software without
specific prior written permission. specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

View file

@ -30,6 +30,7 @@ import aqt.operations
from anki import hooks from anki import hooks
from anki.collection import OpChanges, OpChangesOnly, Progress, SearchNode from anki.collection import OpChanges, OpChangesOnly, Progress, SearchNode
from anki.decks import UpdateDeckConfigs from anki.decks import UpdateDeckConfigs
from anki.errors import BackendError
from anki.scheduler.v3 import SchedulingStatesWithContext, SetSchedulingStatesRequest from anki.scheduler.v3 import SchedulingStatesWithContext, SetSchedulingStatesRequest
from anki.utils import dev_mode from anki.utils import dev_mode
from aqt.changenotetype import ChangeNotetypeDialog from aqt.changenotetype import ChangeNotetypeDialog
@ -730,6 +731,19 @@ def _extract_collection_post_request(path: str) -> DynamicRequest | NotFound:
response.headers["Content-Type"] = "application/binary" response.headers["Content-Type"] = "application/binary"
else: else:
response = _text_response(HTTPStatus.NO_CONTENT, "") 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() -> 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:
response = _text_response(HTTPStatus.INTERNAL_SERVER_ERROR, str(e))
except Exception as exc: except Exception as exc:
print(traceback.format_exc()) print(traceback.format_exc())
response = _text_response(HTTPStatus.INTERNAL_SERVER_ERROR, str(exc)) response = _text_response(HTTPStatus.INTERNAL_SERVER_ERROR, str(exc))