Compare commits

...

33 Commits
4.3.0 ... 4.3.2

Author SHA1 Message Date
Safihre
8a42abd1e7 Set version to 4.3.2 2024-05-29 16:38:23 +02:00
Safihre
41e5dfdf18 Merge branch '4.3.x' 2024-05-29 16:28:43 +02:00
Safihre
3ce5679298 Update text files for 4.3.2RC2 2024-05-23 10:23:41 +02:00
jcfp
47e1d40943 set basic systemd hardening options (#2865) 2024-05-22 13:52:23 +02:00
Safihre
1687130107 Ignore shutdown exception in cheroot
Closes #2857
2024-05-22 10:20:09 +02:00
SABnzbd Automation
8e59146d60 Update translatable texts
[skip ci]
2024-05-20 00:41:49 +00:00
renovate[bot]
4b37d2772f Update all dependencies 2024-05-20 00:41:01 +00:00
thezoggy
ea9d690a90 Switch discord link to vanity link. Add binhex as docker maintainer entry (#2861) 2024-05-17 07:16:25 +02:00
Safihre
3a2e967a03 Add 4.3.2 to appdata 2024-05-16 21:45:00 +02:00
SABnzbd Automation
a2eb0cc2c3 Update translatable texts
[skip ci]
2024-05-16 19:44:14 +00:00
Safihre
8b9341023a Update text files for 4.3.2RC1 2024-05-16 21:39:42 +02:00
Safihre
54314c0198 Only remove Windows shortcuts on uninstall
Closes #2850
2024-05-16 21:32:53 +02:00
Safihre
b0e4c4c5bf Pin paho-mqtt to 1.6.1
Closes #2855
2024-05-16 15:28:05 +02:00
Safihre
989e215acc Update sabctools to 8.2.0 2024-05-16 15:00:26 +02:00
thezoggy
ba88bb15a9 Update unrar 7.01 and 7zip to 24.05 (#2860)
* Update unrar to 7.01

* Upgrade 7zip to 24.05
2024-05-16 09:10:14 +02:00
SABnzbd Automation
0cac0d942c Update translatable texts
[skip ci]
2024-05-15 11:04:15 +00:00
Chris Caron
b24a9ee781 Added tests cases to wrap calls to the Apprise integration (#2856)
* Added tests cases to wrap calls to the Apprise integration

* workaround to default config getting lost from test_misc.py

* 100% test coverage in send_apprise()
2024-05-15 13:03:26 +02:00
SABnzbd Automation
25ae29235f Update translatable texts
[skip ci]
2024-05-13 01:51:57 +00:00
renovate[bot]
a8d4de2d3d Update all dependencies 2024-05-13 01:51:12 +00:00
SABnzbd Automation
ccb3e0522c Update translatable texts
[skip ci]
2024-05-09 20:56:42 +00:00
Safihre
a9f1838b52 Update History Retention wording 2024-05-09 22:55:27 +02:00
SABnzbd Automation
d744c293fb Update translatable texts
[skip ci]
2024-05-09 20:49:42 +00:00
Safihre
94848979ad Add disable_archive for users that want to always skip it
Relates to #2848
2024-05-09 22:47:31 +02:00
SABnzbd Automation
2732326b3d Update translatable texts
[skip ci]
2024-05-06 00:22:01 +00:00
renovate[bot]
ea8328c199 Update all dependencies 2024-05-06 00:21:22 +00:00
Safihre
41de13388c Merge branch '4.3.x' 2024-05-04 09:48:35 +02:00
Safihre
f1e42707a0 Update appdata for 4.3.1 2024-05-03 17:00:20 +02:00
Safihre
1f16f13169 Set version to 4.3.1 2024-05-03 15:30:36 +02:00
Safihre
ef23d40972 Merge branch '4.3.x' 2024-05-03 15:30:17 +02:00
SABnzbd Automation
c1bdc3abff Update translatable texts
[skip ci]
2024-05-03 13:29:51 +00:00
Safihre
5cbb569b38 Update text files for 4.3.1 2024-05-03 15:28:03 +02:00
Safihre
d4a3f0ea79 Correct missing winrt and apprise imports on macOS/Windows builds 2024-05-03 14:04:00 +02:00
SABnzbd Automation
b31fe2cf49 Update translatable texts
[skip ci]
2024-05-01 19:43:17 +00:00
85 changed files with 509 additions and 140 deletions

View File

@@ -21,6 +21,7 @@ body:
options:
- linuxserver
- hotio
- binhex
- Other
- type: textarea
attributes:

View File

@@ -4,7 +4,7 @@ contact_links:
url: https://forums.sabnzbd.org/
about: Support questions can be asked on our forums, Reddit or Discord server.
- name: Discord
url: https://discord.gg/KQzDe7fvNU
url: https://discord.sabnzbd.org
about: Support questions can be asked on our forums, Reddit or Discord server.
- name: Reddit - r/sabnzbd
url: https://www.reddit.com/r/sabnzbd

View File

@@ -20,6 +20,7 @@
"jaraco.context",
"jaraco.collections",
"sabctools",
"paho-mqtt",
"werkzeug",
"pyinstaller"
],

View File

@@ -101,7 +101,7 @@ jobs:
run: |
python3 --version
pip3 install --upgrade pip wheel
pip3 install --upgrade -r requirements.txt --no-binary cffi,CT3,PyYAML --no-dependencies
pip3 install --upgrade -r requirements.txt --no-binary cffi,CT3,PyYAML,charset_normalizer --no-dependencies
PYINSTALLER_COMPILE_BOOTLOADER=1 pip3 install --upgrade -r builder/requirements.txt --no-binary pyinstaller --no-dependencies
- name: Import macOS codesign certificates
# Taken from https://github.com/Apple-Actions/import-codesign-certs/pull/27 (comments)

View File

@@ -2,7 +2,7 @@ SABnzbd - The automated Usenet download tool
============================================
[![License](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
[![Join our Discord](https://img.shields.io/discord/976737547558461480?color=7289DA&label=Discord&logo=Discord&logoColor=white)](https://discord.gg/KQzDe7fvNU)
[![Join our Discord](https://img.shields.io/discord/976737547558461480?color=7289DA&label=Discord&logo=Discord&logoColor=white)](https://discord.sabnzbd.org)
SABnzbd is an Open Source Binary Newsreader written in Python.

View File

@@ -1,6 +1,17 @@
Release Notes - SABnzbd 4.3.0
Release Notes - SABnzbd 4.3.2
=========================================================
This is the second bug fix release of SABnzbd 4.3.0.
## Bug fixes and changes since 4.3.1
* Added Special option `disable_archive` for jobs to always be permanently deleted.
* Specific AppRise notifications could fail to send.
* Update of the article decoder core (`rapidyenc`).
* Windows: After some time the interface would no longer load.
* Windows: Custom shortcuts would be removed by the installer.
* Windows/macOS: Updated Unrar to 7.01 and 7zip to 24.05.
## Key changes since 4.2.0
* **Archive:**

View File

@@ -47,6 +47,7 @@ try:
import feedparser
import configobj
import cherrypy
import cheroot.errors
import portend
import cryptography
import chardet
@@ -1094,8 +1095,7 @@ def main():
sys.exit(1)
if clean_up:
xlist = globber_full(logdir)
for x in xlist:
for x in globber_full(logdir):
if RSS_FILE_NAME not in x:
try:
os.remove(x)
@@ -1347,6 +1347,13 @@ def main():
}
)
# Catch shutdown errors that can break cherrypy/cheroot
# See https://github.com/cherrypy/cheroot/issues/710
try:
cheroot.errors.acceptable_sock_shutdown_exceptions += (OSError,)
except AttributeError:
pass
# Do we want CherryPy Logging? Cannot be done via the config
cherrypy.log.screen = False
cherrypy.log.access_log.propagate = False

View File

@@ -15,6 +15,7 @@ extra_pyinstaller_files = []
# Add hidden imports
extra_hiddenimports = ["Cheetah.DummyTransaction", "cheroot.ssl.builtin", "certifi"]
extra_hiddenimports.extend(collect_submodules("apprise"))
extra_hiddenimports.extend(collect_submodules("babelfish.converters"))
extra_hiddenimports.extend(collect_submodules("guessit.data"))
@@ -40,7 +41,7 @@ else:
)
# Windows
extra_hiddenimports.append("win32timezone")
extra_hiddenimports.extend(["win32timezone", "winrt.windows.foundation.collections"])
EXTRA_FOLDERS += ["win/multipar/", "win/par2/", "win/unrar/", "win/7zip/"]
EXTRA_FILES += ["portable.cmd"]
@@ -91,12 +92,14 @@ for folder_item in EXTRA_FOLDERS:
# Add babelfish data files
extra_pyinstaller_files.extend(collect_data_files("babelfish"))
extra_pyinstaller_files.extend(collect_data_files("guessit"))
extra_pyinstaller_files.extend(collect_data_files("apprise"))
pyi_analysis = Analysis(
["SABnzbd.py"],
datas=extra_pyinstaller_files,
hiddenimports=extra_hiddenimports,
excludes=["ujson", "FixTk", "tcl", "tk", "_tkinter", "tkinter", "Tkinter", "pydoc", "pydoc_data.topics"],
module_collection_mode={"apprise.plugins": "py"},
)
pyz = PYZ(pyi_analysis.pure, pyi_analysis.zipped_data)

View File

@@ -2,7 +2,7 @@
# Note that not all sub-dependencies are listed, but only ones we know could cause trouble
pyinstaller==5.13.2
packaging==24.0
pyinstaller-hooks-contrib==2024.5
pyinstaller-hooks-contrib==2024.6
altgraph==0.17.4
wrapt==1.16.0
setuptools==69.5.1
@@ -10,10 +10,10 @@ setuptools==69.5.1
# Required on 32bit Windows, exclude it based on Python-version
importlib_metadata==7.1.0; python_version < '3.10'
importlib_resources==6.4.0; python_version < '3.10'
zipp==3.18.1; python_version < '3.10'
zipp==3.18.2; python_version < '3.10'
# orjson does not support 32bit Windows, also exclude based on Python-version
orjson==3.10.1; python_version > '3.8'
orjson==3.10.3; python_version > '3.8'
# For the Windows build
pefile==2023.2.7; sys_platform == 'win32'

View File

@@ -40,8 +40,11 @@ Unicode true
; Remove the whole dir
; Users should not be putting stuff here!
RMDir /r "${idir}"
!macroend
; Remove any shortuts, starting with current user ones (from old installs)
!define RemovePrevShortcuts "!insertmacro RemovePrevShortcuts"
!macro RemovePrevShortcuts
; Remove shortcuts, starting with current user ones (from old installs)
SetShellVarContext current
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
Delete "$SMPROGRAMS\$MUI_TEMP\SABnzbd.lnk"
@@ -314,13 +317,13 @@ Function .onInit
endCheckStartup:
SetShellVarContext current
IfFileExists "$DESKTOP\SABnzbd.lnk" endCheckDesktopCurrent 0
SectionSetFlags ${desktop} 0 ; SAB is installed but desktop-icon not, so uncheck it
endCheckDesktopCurrent:
SetShellVarContext all
IfFileExists "$DESKTOP\SABnzbd.lnk" endCheckDesktop 0
SectionSetFlags ${desktop} 0 ; SAB is installed but desktop-icon not, so uncheck it
; If not present for current user, first check all user folder
SetShellVarContext all
IfFileExists "$DESKTOP\SABnzbd.lnk" endCheckDesktop 0
SectionSetFlags ${desktop} 0 ; SAB is installed but desktop-icon not, so uncheck it
endCheckDesktop:
SetShellVarContext all
Push $1
ReadRegStr $1 HKCR ".nzb" "" ; read current file association
@@ -374,6 +377,7 @@ Section "un.$(MsgDelProgram)" Uninstall
DeleteRegKey HKEY_CURRENT_USER "Software\SABnzbd"
${RemovePrev} "$INSTDIR"
${RemovePrevShortcuts}
; Remove firewall entries
liteFirewallW::RemoveRule "$INSTDIR\SABnzbd.exe" "SABnzbd"

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -30,6 +30,8 @@
<url type="faq">https://sabnzbd.org/wiki/faq</url>
<url type="contact">https://sabnzbd.org/live-chat.html</url>
<releases>
<release version="4.3.2" date="2024-05-30" type="stable"/>
<release version="4.3.1" date="2024-05-03" type="stable"/>
<release version="4.3.0" date="2024-05-01" type="stable"/>
<release version="4.2.2" date="2024-02-01" type="stable"/>
<release version="4.2.1" date="2024-01-05" type="stable"/>

View File

@@ -22,6 +22,11 @@ ExecStart=/opt/sabnzbd/SABnzbd.py --disable-file-log --logging 1 --browser 0
User=%I
Type=simple
Restart=on-failure
ProtectSystem=full
DeviceAllow=/dev/null rw
DeviceAllow=/dev/urandom r
DevicePolicy=strict
NoNewPrivileges=yes
[Install]
WantedBy=multi-user.target

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC2\n"
"Project-Id-Version: SABnzbd-4.3.2RC1\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: team@sabnzbd.org\n"
"Language-Team: SABnzbd <team@sabnzbd.org>\n"

View File

@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
"MIME-Version: 1.0\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: ION, 2020\n"
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"

View File

@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
"MIME-Version: 1.0\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"

View File

@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC2\n"
"Project-Id-Version: SABnzbd-4.3.2RC1\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: team@sabnzbd.org\n"
"Language-Team: SABnzbd <team@sabnzbd.org>\n"
@@ -1082,6 +1082,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2697,7 +2702,7 @@ msgid "Move jobs to the archive if the history exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid "Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2705,7 +2710,7 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid "Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"
@@ -1154,6 +1154,11 @@ msgstr "Nepodařilo se odeslat macOS oznámení"
msgid "Failed to send Prowl message"
msgstr "Nepodařilo se odeslat Prowl zprávu"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2809,7 +2814,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2817,7 +2823,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"
@@ -1161,6 +1161,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr "Kunne ikke sende Prowl besked"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2859,7 +2864,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2867,7 +2873,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -13,12 +13,13 @@
# kameb, 2023
# HandyDandy04, 2024
# Safihre <safihre@sabnzbd.org>, 2024
# Gjelbrim Haskaj, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2024\n"
"Last-Translator: Gjelbrim Haskaj, 2024\n"
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -206,6 +207,9 @@ msgid ""
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
" a usenet server."
msgstr ""
"Verbindung zu %s auf Port %s konnte nicht hergestellt werden. Es scheint, "
"als sei %s ein Webserver (Port 80), vielleicht ein Indexer, aber kein "
"Usenet-Server. Trage einen Usenet-Server ein."
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
@@ -1152,7 +1156,7 @@ msgstr "Wiki"
#: sabnzbd/newswrapper.py
msgid "Failed to connect: %s %s@%s:%s (%s)"
msgstr ""
msgstr "Verbindung fehlgeschlagen: %s %s@%s:%s(%s)"
#. Notification
#: sabnzbd/notifier.py
@@ -1224,6 +1228,11 @@ msgstr "Senden von macOS Benachrichtigung fehlgeschlagen"
msgid "Failed to send Prowl message"
msgstr "Prowl-Nachricht konnte nicht versendet werden"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2964,7 +2973,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2972,7 +2982,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -8,7 +8,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"
@@ -1201,6 +1201,11 @@ msgstr "Fallo al enviar la notificación macOS"
msgid "Failed to send Prowl message"
msgstr "No se pudo enviar el mensaje de Prowl"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2926,7 +2931,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2934,7 +2940,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"
@@ -1153,6 +1153,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr "Prowl viestin lähetys epäonnistui"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2857,7 +2862,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2865,7 +2871,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.2RC1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Fred L <88com88@gmail.com>, 2024\n"
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"
@@ -1220,6 +1220,11 @@ msgstr "Échec de l'envoi de la notification macOS"
msgid "Failed to send Prowl message"
msgstr "Échec d'envoi du message Prowl"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr "Échec d'envoi du message Apprise - aucune URLs définies"
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2958,9 +2963,11 @@ msgstr ""
"tâches spécifié"
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
"Supprimer les tâches si l'historique dépasse le nombre de tâches spécifié"
"Supprimer les tâches si l'historique et les archives dépassent le nombre de "
"tâches spécifié"
#: sabnzbd/skintext.py
msgid "Move jobs to the archive after specified number of days"
@@ -2968,8 +2975,11 @@ msgstr ""
"Déplacer les tâches vers les archives après le nombre de jours spécifié"
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgstr "Supprimer les tâches après le nombre de jours spécifié"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
"Supprimer les tâches de l'historique et des archives après le nombre de "
"jours spécifié"
#: sabnzbd/skintext.py
msgid "Move all completed jobs to archive"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: ION, 2024\n"
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"
@@ -186,6 +186,8 @@ msgid ""
"server (port 80), possibly an indexer, not a usenet server. You have to fill"
" a usenet server."
msgstr ""
"לא היה ניתן להתחבר אל %s על פתחה %s. נראה כי %s פועל כשרת רשת (פתחה 80), "
"כנראה מדדן, לא שרת Usenet. אתה חייב למלא שרת Usenet."
#: sabnzbd/api.py, sabnzbd/interface.py
msgid "Server address \"%s:%s\" is not valid."
@@ -512,7 +514,7 @@ msgstr "שגיאה גורלית במורידן"
#. Warning message
#: sabnzbd/downloader.py
msgid "%s@%s: Received unknown status code %s for article %s"
msgstr ""
msgstr "%s@%s: קוד בלתי ידוע של מעמד התקבל %s עבור מאמר %s"
#: sabnzbd/downloader.py
msgid "Too many connections to server %s [%s]"
@@ -1088,7 +1090,7 @@ msgstr "וויקי"
#: sabnzbd/newswrapper.py
msgid "Failed to connect: %s %s@%s:%s (%s)"
msgstr ""
msgstr "כישלון בהתחברות: %s %s@%s:%s (%s)"
#. Notification
#: sabnzbd/notifier.py
@@ -1160,6 +1162,11 @@ msgstr "כישלון בשליחת התראת macOS"
msgid "Failed to send Prowl message"
msgstr "כישלון בשליחת הודעת Prowl"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2345,7 +2352,7 @@ msgstr "למחוק את כל הפריטים מהתור?"
#. Delete confirmation popup
#: sabnzbd/skintext.py
msgid "Are you sure you want to remove these jobs?"
msgstr ""
msgstr "האם אתה בטוח שאתה רוצה להסיר עבודות אלו?"
#. Queue page button
#: sabnzbd/skintext.py
@@ -2370,7 +2377,7 @@ msgstr "הסר NZB ומחק קבצים"
#. Checkbox if job should be added to Archive
#: sabnzbd/skintext.py
msgid "Permanently delete (skip archive)"
msgstr ""
msgstr "מחק לצמיתות (דלג על ארכיון)"
#. Caption for missing articles in Queue
#: sabnzbd/skintext.py
@@ -2393,7 +2400,7 @@ msgstr "אפס מכסה כעת"
#: sabnzbd/skintext.py
msgid "Archive"
msgstr ""
msgstr "ארכיון"
#. Button/link hiding History job details
#: sabnzbd/skintext.py
@@ -2418,7 +2425,7 @@ msgstr "הראה הכל"
#. Button showing all archived jobs
#: sabnzbd/skintext.py
msgid "Show Archive"
msgstr ""
msgstr "הראה ארכיון"
#. History table header - Size of the download quota
#: sabnzbd/skintext.py
@@ -2866,27 +2873,29 @@ msgstr "שמור את כל העבודות"
#: sabnzbd/skintext.py
msgid ""
"Move jobs to the archive if the history exceeds specified number of jobs"
msgstr ""
msgstr "העבר עבודות אל הארכיון אם ההיסטוריה חורגת ממספר מצוין של ימים"
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
msgid "Move jobs to the archive after specified number of days"
msgstr ""
msgstr "העבר עבודות אל הארכיון לאחר מספר מצוין של ימים"
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Move all completed jobs to archive"
msgstr ""
msgstr "העבר את כל העבודות השלמות אל הארכיון"
#: sabnzbd/skintext.py
msgid "Delete all completed jobs"
msgstr ""
msgstr "מחק את כל העבודות השלמות"
#: sabnzbd/skintext.py
msgid "Jobs"

View File

@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
"MIME-Version: 1.0\n"
@@ -1124,6 +1124,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2779,7 +2784,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2787,7 +2793,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"
@@ -1151,6 +1151,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr "Klarte ikke å sende Prowl melding"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2849,7 +2854,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2857,7 +2863,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -8,7 +8,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2024\n"
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"
@@ -1210,6 +1210,11 @@ msgstr "Kon macOS notificatie niet verzenden"
msgid "Failed to send Prowl message"
msgstr "Verzenden van Prowl-bericht mislukt"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2937,10 +2942,9 @@ msgstr ""
"opgegeven aantal voltooide downloads overschrijdt."
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
"Verwijder voltooide downloads als de geschiedenis het opgegeven aantal "
"voltooide downloads overschrijdt."
#: sabnzbd/skintext.py
msgid "Move jobs to the archive after specified number of days"
@@ -2948,8 +2952,9 @@ msgstr ""
"Verplaats voltooide downloads naar het archief na het opgegeven aantal dagen"
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgstr "Verwijder voltooide downloads na het opgegeven aantal dagen"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Move all completed jobs to archive"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"
@@ -1156,6 +1156,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr "Błąd wysyłania wiadomości Prowl"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2860,7 +2865,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2868,7 +2874,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"
@@ -1165,6 +1165,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr "Falha ao enviar mensagem Prowl"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2870,7 +2875,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2878,7 +2884,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"
@@ -1181,6 +1181,11 @@ msgstr "Eșuare la trimiterea notificării macOS"
msgid "Failed to send Prowl message"
msgstr "Nu am putu trimite mesajul Prowl"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2889,7 +2894,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2897,7 +2903,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"
@@ -1151,6 +1151,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2849,7 +2854,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2857,7 +2863,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"
@@ -1146,6 +1146,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr "Неуспешно слање Prowl поруке"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2840,7 +2845,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2848,7 +2854,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2023\n"
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"
@@ -1150,6 +1150,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr "Misslyckades att skicka Prowlmeddelande"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2849,7 +2854,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2857,7 +2863,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:49+0000\n"
"Last-Translator: Kangwei Li <lkw20010211@gmail.com>, 2023\n"
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"
@@ -1139,6 +1139,11 @@ msgstr ""
msgid "Failed to send Prowl message"
msgstr "无法发送 Prowl 消息"
#. Warning message
#: sabnzbd/notifier.py
msgid "Failed to send Apprise message - no URLs defined"
msgstr ""
#. Warning message
#: sabnzbd/notifier.py
msgid "One or more Apprise URLs could not be loaded."
@@ -2822,7 +2827,8 @@ msgid ""
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs if the history exceeds specified number of jobs"
msgid ""
"Delete jobs if the history and archive exceeds specified number of jobs"
msgstr ""
#: sabnzbd/skintext.py
@@ -2830,7 +2836,8 @@ msgid "Move jobs to the archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py
msgid "Delete jobs after specified number of days"
msgid ""
"Delete jobs from the history and archive after specified number of days"
msgstr ""
#: sabnzbd/skintext.py

View File

@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC2\n"
"Project-Id-Version: SABnzbd-4.3.2RC1\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: team@sabnzbd.org\n"
"Language-Team: SABnzbd <team@sabnzbd.org>\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Pavel C <quoing_transifex@mess.cz>, 2022\n"
"Language-Team: Czech (https://app.transifex.com/sabnzbd/teams/111101/cs/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Danish (https://app.transifex.com/sabnzbd/teams/111101/da/)\n"

View File

@@ -9,7 +9,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Lorenz B, 2024\n"
"Language-Team: German (https://app.transifex.com/sabnzbd/teams/111101/de/)\n"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Ester Molla Aragones <moarages@gmail.com>, 2020\n"
"Language-Team: Spanish (https://app.transifex.com/sabnzbd/teams/111101/es/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Finnish (https://app.transifex.com/sabnzbd/teams/111101/fi/)\n"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Fred L <88com88@gmail.com>, 2024\n"
"Language-Team: French (https://app.transifex.com/sabnzbd/teams/111101/fr/)\n"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: ION, 2024\n"
"Language-Team: Hebrew (https://app.transifex.com/sabnzbd/teams/111101/he/)\n"

View File

@@ -3,7 +3,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0Beta1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Language-Team: Italian (https://app.transifex.com/sabnzbd/teams/111101/it/)\n"
"MIME-Version: 1.0\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Norwegian Bokmål (https://app.transifex.com/sabnzbd/teams/111101/nb/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2024\n"
"Language-Team: Dutch (https://app.transifex.com/sabnzbd/teams/111101/nl/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Polish (https://app.transifex.com/sabnzbd/teams/111101/pl/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/sabnzbd/teams/111101/pt_BR/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Romanian (https://app.transifex.com/sabnzbd/teams/111101/ro/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Russian (https://app.transifex.com/sabnzbd/teams/111101/ru/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Serbian (https://app.transifex.com/sabnzbd/teams/111101/sr/)\n"

View File

@@ -7,7 +7,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Petter Ramme, 2024\n"
"Language-Team: Swedish (https://app.transifex.com/sabnzbd/teams/111101/sv/)\n"

View File

@@ -6,7 +6,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: SABnzbd-4.3.0RC1\n"
"Project-Id-Version: SABnzbd-4.3.1\n"
"PO-Revision-Date: 2020-06-27 15:56+0000\n"
"Last-Translator: Safihre <safihre@sabnzbd.org>, 2020\n"
"Language-Team: Chinese (China) (https://app.transifex.com/sabnzbd/teams/111101/zh_CN/)\n"

View File

@@ -1,7 +1,7 @@
# Main requirements
# Note that not all sub-dependencies are listed, but only ones we know could cause trouble
apprise==1.7.6
sabctools==8.1.0
apprise==1.8.0
sabctools==8.2.0
CT3==3.3.3.post1
cffi==1.16.0
pycparser==2.22
@@ -24,22 +24,22 @@ sgmllib3k==1.0.0
portend==3.2.0
chardet==5.2.0
PySocks==1.7.1
puremagic==1.22
puremagic==1.23
guessit==3.8.0
babelfish==0.6.0
babelfish==0.6.1
rebulk==3.2.0
# Recent cryptography versions require Rust. If you run into issues compiling this
# SABnzbd will also work with older pre-Rust versions such as cryptography==3.3.2
cryptography==42.0.5
cryptography==42.0.7
# We recommend using "orjson" as it is 2x as fast as "ujson". However, it requires
# Rust so SABnzbd works just as well with "ujson" or the Python built in "json" module
ujson==5.9.0
ujson==5.10.0
# Windows system integration
pywin32==306; sys_platform == 'win32'
windows-toasts==1.1.0; sys_platform == 'win32' and python_version > '3.8'
windows-toasts==1.1.1; sys_platform == 'win32' and python_version > '3.8'
winrt-runtime==2.0.1; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.Data.Xml.Dom==2.0.1; sys_platform == 'win32' and python_version > '3.8'
winrt-Windows.Foundation==2.0.1; sys_platform == 'win32' and python_version > '3.8'
@@ -58,7 +58,7 @@ requests==2.31.0
requests-oauthlib==2.0.0
PyYAML==6.0.1
markdown==3.6
paho-mqtt==2.0.0
paho-mqtt==1.6.1 # Pinned, newer versions don't work with AppRise yet
# Requests Requirements
charset_normalizer==3.3.2
@@ -67,7 +67,7 @@ urllib3==2.2.1
certifi==2024.2.2
oauthlib==3.2.2
PyJWT==2.8.0
blinker==1.8.1
blinker==1.8.2
# Optional support for *nix tray icon.
# Note that pygobject depends on pycairo, which requires pkg-config and cairo headers.

View File

@@ -494,7 +494,7 @@ def _api_history(name: str, kwargs: Dict[str, Union[str, List[str]]]) -> bytes:
if name == "delete":
# Only skip archive if specifically requested
if kwargs.get("archive") == "0":
if kwargs.get("archive") == "0" or cfg.disable_archive():
archive = False
special = value.lower()

View File

@@ -456,6 +456,7 @@ wait_for_dfolder = OptionBool("misc", "wait_for_dfolder", False)
rss_filenames = OptionBool("misc", "rss_filenames", False)
api_logging = OptionBool("misc", "api_logging", True)
html_login = OptionBool("misc", "html_login", True)
disable_archive = OptionBool("misc", "disable_archive", False)
warn_dupl_jobs = OptionBool("misc", "warn_dupl_jobs", False)
keep_awake = OptionBool("misc", "keep_awake", True)

View File

@@ -49,7 +49,7 @@ RENAMES_FILE = "__renames__"
ATTRIB_FILE = "SABnzbd_attrib"
REPAIR_REQUEST = "repair-all.sab"
SABCTOOLS_VERSION_REQUIRED = "8.1.0"
SABCTOOLS_VERSION_REQUIRED = "8.2.0"
DB_HISTORY_VERSION = 1
DB_HISTORY_NAME = "history%s.db" % DB_HISTORY_VERSION

View File

@@ -857,6 +857,7 @@ SPECIAL_BOOL_LIST = (
"empty_postproc",
"new_nzb_on_failure",
"html_login",
"disable_archive",
"wait_for_dfolder",
"enable_broadcast",
"warn_dupl_jobs",

View File

@@ -328,8 +328,6 @@ def send_apprise(title, msg, notification_type, force=False, test=None):
app_id="SABnzbd",
app_desc="SABnzbd Notification",
app_url="https://sabnzbd.org/",
image_path_mask=os.path.join(sabnzbd.DIR_PROG, "icons", "apprise", "apprise-{TYPE}.png"),
image_url_mask="https://sabnzbd.org/images/icons/apprise/{TYPE}.png",
image_url_logo="https://sabnzbd.org/images/icons/apple-touch-icon-180x180-precomposed.png",
)
@@ -340,6 +338,10 @@ def send_apprise(title, msg, notification_type, force=False, test=None):
# Get a list of tags that are set to use the common list
if target := get_targets(notification_type, "apprise"):
if target is True:
if not urls:
# Nothing to notify
logging.warning(T("Failed to send Apprise message - no URLs defined"))
return ""
# Use default list
apobj.add(urls)
elif not apobj.add(target):

View File

@@ -317,9 +317,9 @@ SKIN_TEXT = {
"opt-history_retention": TT("History Retention"),
"history_retention-all": TT("Keep all jobs"),
"history_retention-number-archive": TT("Move jobs to the archive if the history exceeds specified number of jobs"),
"history_retention-number-delete": TT("Delete jobs if the history exceeds specified number of jobs"),
"history_retention-number-delete": TT("Delete jobs if the history and archive exceeds specified number of jobs"),
"history_retention-days-archive": TT("Move jobs to the archive after specified number of days"),
"history_retention-days-delete": TT("Delete jobs after specified number of days"),
"history_retention-days-delete": TT("Delete jobs from the history and archive after specified number of days"),
"history_retention-archive": TT("Move all completed jobs to archive"),
"history_retention-none": TT("Delete all completed jobs"),
"history_retention-limit": TT("Jobs"),

View File

@@ -6,5 +6,5 @@
# You MUST use double quotes (so " and not ')
# Do not forget to update the appdata file for every major release!
__version__ = "4.3.0"
__baseline__ = "65d748fc9f0b303d5d54f8d1ea880c7fbde3660c"
__version__ = "4.3.2"
__baseline__ = "41e5dfdf18165d1d0f9f1c0b7eff6e3ceb5d8a36"

200
tests/test_notifier.py Normal file
View File

@@ -0,0 +1,200 @@
#!/usr/bin/python3 -OO
# Copyright 2007-2024 by The SABnzbd-Team (sabnzbd.org)
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
"""
tests.test_notifier - Testing notification functionality
"""
import re
from sabnzbd.notifier import send_notification, send_apprise, NOTIFICATION_TYPES
from unittest import mock, TestCase
import sabnzbd.cfg as cfg
from sabnzbd.config import Option
from importlib import reload
class TestNotifier(TestCase):
@classmethod
def setUpClass(self):
# hack since test_misc uses @set_config decorator eliminating all of the default configuration
# We wnat to test with the default configuration in place; This safely resets all fields and
# replaces them correctly in memory
reload(cfg)
# capture state of config so we can reverse it
self._saved_cfg = {}
for attr in dir(cfg):
if isinstance(getattr(cfg, attr), Option):
# Backup configuration as it was before entering this test object
self._saved_cfg[attr] = getattr(cfg, attr).get()
# Set our value to be a default
getattr(cfg, attr).set(getattr(cfg, attr).default)
@classmethod
def setUp(self):
# Enforce our default values associated with the class
for attr in dir(cfg):
if isinstance(getattr(cfg, attr), Option):
getattr(cfg, attr).set(getattr(cfg, attr).default)
@classmethod
def tearDownClass(self):
# rollback our assignments to be as they were
for k, v in self._saved_cfg.items():
getattr(cfg, k).set(v)
@mock.patch("sabnzbd.DIR_PROG")
@mock.patch("apprise.Apprise.notify")
@mock.patch("apprise.Apprise.add")
def test_send_apprise_notification(self, mock_add, mock_notify, mock_sabdir):
"""
Test send_apprise() outside of threading call to verify it handles requests properly
"""
#
# Mocks below pertain to testing
#
# Asset just needs to be anything at all
mock_sabdir.return_value = "/tmp"
cfg.apprise_enable.set(True)
urls = ", ".join(
[
"json://localhost",
"xml://localhost",
"pbul://credentials",
]
)
cfg.apprise_urls.set(urls)
mock_notify.return_value = True
# Startup is disabled by default
assert send_apprise("title", "body", "startup") == ""
assert mock_notify.call_count == 0
mock_notify.reset_mock()
mock_add.reset_mock()
cfg.apprise_target_startup_enable.set(True)
assert send_apprise("title", "body", "startup") == ""
assert mock_notify.call_count == 1
mock_add.assert_called_once_with(urls)
mock_notify.reset_mock()
mock_add.reset_mock()
for attr in dir(cfg):
# Enable all of our apprise attributes
if isinstance(getattr(cfg, attr), Option) and re.match("^apprise_target_.+_enable$", attr):
getattr(cfg, attr).set(True)
for t in NOTIFICATION_TYPES.keys():
mock_notify.reset_mock()
mock_add.reset_mock()
assert send_apprise("title", "body", t) == ""
assert mock_notify.call_count == 1
assert mock_add.call_count == 1
mock_add.assert_called_once_with(urls)
# Garbage in, get's garbage out
mock_notify.reset_mock()
mock_add.reset_mock()
assert send_apprise("title", "body", "garbage_type") == ""
# Nothing sent
assert mock_notify.call_count == 0
assert mock_add.call_count == 0
# No URLs defined
cfg.apprise_urls.set("")
mock_notify.reset_mock()
mock_add.reset_mock()
assert send_apprise("title", "body", "other") == ""
assert mock_notify.call_count == 0
assert mock_add.call_count == 0
# Special Targets
mock_notify.reset_mock()
mock_add.reset_mock()
cfg.apprise_target_other.set("xml://custom/other")
assert send_apprise("title", "body", "other") == ""
assert mock_notify.call_count == 1
assert mock_add.call_count == 1
# Target value over-rides; this tests that a user can provide
# over-rides to the Apprise URLs
mock_add.assert_called_once_with("xml://custom/other")
# Over-ride is still set even if general URLS are provided
cfg.apprise_urls.set(urls)
mock_notify.reset_mock()
mock_add.reset_mock()
assert send_apprise("title", "body", "other") == ""
assert mock_notify.call_count == 1
assert mock_add.call_count == 1
# Target value over-rides; this tests that a user can provide
# over-rides to the Apprise URLs
mock_add.assert_called_once_with("xml://custom/other")
# Test case where notify() fails
mock_notify.return_value = False
mock_notify.reset_mock()
mock_add.reset_mock()
# A non-string is returned
assert send_apprise("title", "body", "other") != ""
assert mock_notify.call_count == 1
assert mock_add.call_count == 1
# Test other exception handlings
mock_notify.return_value = None
mock_notify.side_effect = AttributeError
mock_notify.reset_mock()
mock_add.reset_mock()
# A non-string is returned
assert send_apprise("title", "body", "other") != ""
assert mock_notify.call_count == 1
assert mock_add.call_count == 1
# Test Mode
# Return the status to being a proper return value
mock_notify.return_value = True
mock_notify.side_effect = None
mock_notify.reset_mock()
mock_add.reset_mock()
# Download is enabled by default; set Test flag
assert send_apprise("title", "body", "download", test={"apprise_urls": urls}) == ""
assert mock_notify.call_count == 1
assert mock_add.call_count == 1
mock_add.assert_called_once_with(urls)
@mock.patch("threading.Thread.start")
def test_send_notification_as_apprise(self, mock_thread):
"""
Test send_apprise() inside it's threaded check environment
"""
# Set up our config the way we want it
cfg.apprise_enable.set(True)
cfg.apprise_urls.set("okay://")
# startup is disabled by default
assert not cfg.apprise_target_startup_enable.get()
send_notification("title", "body", "startup")
assert mock_thread.call_count == 0
mock_thread.reset_mock()
cfg.apprise_target_startup_enable.set(True)
assert cfg.apprise_target_startup_enable.get()
send_notification("title", "body", "startup")
assert mock_thread.call_count == 1
mock_thread.reset_mock()

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.