* verify input values for scripts
* update and parametrise test_api_queue_change_job_script
* fortify cfg with script validation, fix test
* add typing to is_valid_script function :)
* move list_scripts function to filesystem
* also move windows-specific pathext stuff
* First working version
* Remove pprint
* Black
* Use date type and move to 5 minute polling
* Give hints about intended usage in explain text
* Use scheduled tasks and some smaller changes
* Black
* Remove hidden fields from form
* Cleanup
* This is not the easiest part to get right
* Black hook take 3
* Rework the server check tasks
* Show quota left for server
* Move Server description
Co-authored-by: Safihre <safihre@sabnzbd.org>
Closes#1455
* Save all interface values if useGlobalOptions is true
* Try to fix the tests
* New test test
* Another test test
* Remove default value for interface_settings
* urlgrabber limit filename to avoid tracebacks
* urlgrabber limit filename to avoid tracebacks: black
* urlgrabber limit filename to avoid tracebacks: black
* filename_limit ... 2020-01-15
* filename_limit: into sanitize_filename()
* filename_limit: black and typo and logging
* filename_limit: debug show full filename
* filename_limit: unittests
* sanitize_filename(): take care of feedback: one ASCII method, handly silly extension lengths
* sanitize_filename(): tests/test_filesystem.py ... make black happy
* sanitize_filename(): typo in comment
* sanitize_filename(): test_filesystem.py ... black
* sanitize_filename(): more unittests, and DEF_FILE_MAX (yet without GUI option)
* sanitize_filename(): always use DEF_FILE_MAX
* sanitize_filename(): black
* sanitize_filename(): handle UTF8 correct (>1 byte). DEF_FILE_MAX = 255
* sanitize_filename: measure bytes (not chars), DEF_FILE_MAX = 255 - 6, no test-writing in unittests
* sanitize_filename: constants.py ... black
* sanitize_filename: comment about extension
* DEF_FILE_MAX = 255 - 10 again, to solve adding ".nzb.gz" elsewhere