-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
3136 lines (3089 loc) · 182 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
nzbget-23.0
- Features:
- Extension Manager
[#76](https://github.com/nzbgetcom/nzbget/commit/7348b19cf8a81739922303e3f9047d06e59670d0);
* The new nzbget extension system, which makes it easy to download/update/delete
extensions with backward compatibility with the old system;
* extensions
[master list](https://github.com/nzbgetcom/nzbget-extensions/);
* changed:
- RPC request "configtemplates" - no longer returns script templates, but only the config template;
* added:
- new RPC requests:
- "loadextensions" -
loads all extensions from {ScriptDIR} and returns an array of structures in JSON/XML formats;
- "updateextension" -
downloads by url and name and installs the extension. Returns 'true' or error response in JSON/XML formats;
- "deleteextension" -
deletes extension by name. Returns 'true' or error response in JSON/XML formats;
- "downloadextension" -
downloads by url and installs the extension. Returns 'true' or error response in JSON/XML formats;
- "testextension" -
tries to find the right executor program for the extension, e.g. Python.
Returns 'true' or error response in JSON/XML formats;
- "EXTENSION MANAGER" section in webui to download/delete/update extensions;
- Boost.Json library to work with JSON;
- more unit tests;
* refactored:
- replaced raw pointers with smart pointers and const refs where possible for memory safty reasons;
* removed:
- testdata_FILES from Makefile.am;
- EMail and Logger scripts;
- Docker support
[#55](https://github.com/nzbgetcom/nzbget/commit/1913e331bb87cdd592048b37fd57507f82a17144);
- Synology support (spk)
[#72](https://github.com/nzbgetcom/nzbget/commit/3f8fd6d433b38ed9f18ab7ffe25fd7a4a0c5c246);
- QNAP support
[#158](https://github.com/nzbgetcom/nzbget/commit/9676c77dc8f9e9498a99a6e774e7bf23ca4be537);
- aarch64 mipseb mipsel ppc6xx ppc500 architectures to linux build
[#61](https://github.com/nzbgetcom/nzbget/commit/959985473cdfcf51d88e6a49770650b4edced043)
[#146](https://github.com/nzbgetcom/nzbget/commit/fcc104dc294a905155f65e93483de4a1f40d843e);
- article read chunk size
[#52](https://github.com/nzbgetcom/nzbget/commit/1aa42f2df9a9148d3a79e17694381de873557fce);
* Added ArticleReadChunkSize config option which allows to adjust
the buffer size for customization on different platforms, which can lead to increased performance;
- increased the number of default connections to 8
[#54](https://github.com/nzbgetcom/nzbget/commit/55eca4ce57cc119b51acc2e6915f6c0547dd8123);
- automatic search for a suitable interpreter on POSIX
[#74](https://github.com/nzbgetcom/nzbget/commit/ec0756d5f63137d879f56a6bc60cab6b81238eaf);
- certificate verification levels
[#150](https://github.com/nzbgetcom/nzbget/commit/5956a17e2618480dbbc423e6a515313165f817db);
* levels:
- None: NO certificate signing check, NO certificate hostname check;
- Minimal: certificate signing check, NO certificate hostname check;
- Strict: certificate signing check, certificate hostname check;
* tested on a mock nzbget NNTP nserv server with self-signed certificate and got expected results:
- "Strict" -> test failed;
- "Minimal" -> test failed;
- "None" -> test passed";
- Bug fixies:
- possible memory corruption
[#148](https://github.com/nzbgetcom/nzbget/commit/16ab25d5780c8100309c44eb60d505afe5c528db);
- For developers:
- fixed unit tests (Windows only for now) and started migration to CMake
[#64](https://github.com/nzbgetcom/nzbget/commit/73e8c00d29f21a44de8fd3d979e4f74628d99e1e);
* We are going to completely migrate to CMake as a more universal one for cross-platform development and drop autotools and MSBuild;
- using libxml2 on Windows and vcpkg package manager to install dependencies
[#70](https://github.com/nzbgetcom/nzbget/commit/f8cb2bda415fb6167e8aa7e9d596bb583dc0b1c1);
* libxml2 library is now used on Windows to work with xml in the same way we already do on Linux and macOS;
* removed platform-dependent code for working with xml on Windows;
nzbget-22.0
- Add NZBGet version to Windows registry during installation so version displays in programm list.
https://github.com/nzbgetcom/nzbget/pull/14
- Enabled FIPS servers using OpenSSL 3.
https://github.com/nzbgetcom/nzbget/pull/3
- Change progress bar width to calculated instead of fixed.
https://github.com/nzbgetcom/nzbget/pull/17
- Fix Download time with empty minutes and seconds in email sended via EMail.py
https://github.com/nzbgetcom/nzbget/pull/16
- UI and web links fixes, temporary disable testing/develop update channels
https://github.com/nzbgetcom/nzbget/pull/19
- Fixed negative values for ThreadCount in json-rpc
https://github.com/nzbget/nzbget/issues/696
https://github.com/nzbgetcom/nzbget/pull/10
- Fix python 3.x script execution windows support
https://github.com/nzbgetcom/nzbget/pull/8
- regex library moved directly to project for windows build
- removed one certificate from cacert.pem that caused error message
- build scripts files updated
nzbget-21.2-testing:
- please see repository change log at
https://github.com/nzbget/nzbget/commits/develop
nzbget-21.1:
- fixed crash on systems with 64-bit time;
- corrected icon in Windows "uninstall program" list;
- allow special characters in URL for username and password;
- improved reporting for binding errors on Windows;
- fixed unicode space characters in javascript files, which could cause issues
with nginx proxy;
- fixed negative values for "FileSizeLo" in json-rpc;
- corrected url detection in rpc-method "append";
- added support for new error messages in unrar 5.80;
- now always using snapshots when reading directory contents:
- in previous versions snapshots were used on macOS only;
- now they are used on all OSes;
- this solves issue with leftovers during directory cleanup, which could
happen on certain OSes when working with network drives;
- fixed file allocating on file systems where sparse files are not supported:
- the issue could happen when InterDir was located on a network drive;
- fixed crash caused by malformed nzb files;
- fixed GROUP command in nserv;
- updated url of the global certificate storage file in the build scripts;
- fixed: file selector in WebKit based browsers doesn't allow to choose the
same file again;
- removed outdated links from web interface;
- fixed PC sleep mode not working (Windows only);
- set "SameSite" attribute for cookies;
- corrected typo in about dialog of web interface;
- updated license text: changed address of Free Software Foundation and minor
formatting changes.
nzbget-21.0:
- reworked duplicate handling to support URLs, especially when using RSS
feeds:
- queue items added via URLs (to be fetched by nzbget) are no longer
immediately fetched;
- instead url-items are handled by duplicate check similar to nzb-items
and may be placed into history as duplicate backups;
- if an url-item needs to be downloaded as backup for a failed other item
the nzb-file is fetched via provided URL;
- this greatly reduces the number of nzbs fetched from indexers when using
RSS feeds and duplicate handling;
- improved support for Android devices:
- now providing a separate installer package for Android;
- the package contains binaries built using Android NDK;
- this improves compatibility with Android, in particular with Android 8,
where general Linux installer version of NZBGet didn't work anymore due
to security changes in Android;
- android installer app is updated to use the new android installer package
instead of general Linux package;
- thoroughly optimised the program to reduce power consumption in idle state:
- number of CPU wake ups in idle state has been reduced from hundreds times
per second to about only one per second;
- optimisations for large queues with thousands of items:
- speed up saving of queue state and reduced number of queue state savings;
- improved queue state format to reduce amount of state data saved during
downloading;
- in tests download speed for very large queue (16000 items) has been
increased from 45 MB/s to 300 MB/s (comparing to 400 MB/s with small
queue);
- added native support for aarch64 architecture (ARM 64 Bit CPU) in Linux and
Android installers;
- force par-check for nzbs without archives;
- added functional tests for unpack CRC error;
- click on nzbget logo in web-interface now switches to downloads tab instead
of showing "About dialog" which has been moved into settings;
- improved handling of files splitted via par2;
- added python 3 compatibility to EMail.py script;
- added python 3 compatibility to Logger.py script;
- proper UTF-8 encoding of email content in EMail.py script;
- improved error reporting for queue disk state corruption;
- updated unrar to 5.7 and 7-zip to 19.0;
- Windows installer now includes unrar in 32 bit and 64 bit variants;
- allowing wildcards in option AuthorizedIP;
- removed suggestion of RC4 cipher;
- better description of option UMask;
- integrated LGTM code analyser tool into project;
- fixed: failed downloads not having any par2- or archive- files were moved to
DestDir instead of remaining in InterDir;
- fixed crash when using FIPS version of OpenSSL;
- fixed compatibility issue with OpenSSL compiled without compression support;
- fixed deprecated OpenSSL calls;
- fixed potential crash in built-in web-server;
- fixed: statistics for session download time and speed may be way off on high
load;
- fixed many compilation warnings in GCC;
- fixed: macOS menubar widget could not connect if password contained special
characters;
- fixed: remote clients not displaying current download speed;
- fixed: remote server could crash when feed with invalid api request;
- fixed trimming of relative paths in config.
nzbget-20.0:
- massive performance optimisations in downloader:
- improved yEnc decoder;
- improved CRC32 calculation;
- processing data in one pass;
- SIMD implementation of decoder and CRC functions on x86 and ARM CPUs;
SIMD code relies on node-yencode library by Anime Tosho
(https://github.com/animetosho/node-yencode);
- overall performance improvement up to +500% on x86 and +250% on ARM
(better speed or less CPU usage);
- using glibc instead of uClibc in universal installer builds for Linux:
- this significantly improves performance;
- compatibility with Android and other systems is hopefully also improved;
- in universal installer glibc is used on x86 and ARM;
- uClibc is still used on MIPS and PPC;
- performance optimisations in web-interface:
- reduced number of requests when loading webui by combining all
javascript-files into one and all css-files into one;
- reduced load time by calling multiple API-methods simultaneously;
- extensive use of browser caching for static files significantly
reduces the amount of data transferred on webui initialisation;
- extensive use of browser caching for API requests reduces the amount
of data transferred during webui status updates, especially when
nzbget is in idle state and there are no changes in download queue or
history;
- avoid work in browser on status updates if there are no changes in
download queue or history;
- support for keep alive connections significantly reduces overhead for
establishing connections on webui status updates, especially when
connecting to nzbget via TLS/SSL (avoiding TLS handshakes);
- a number of performance optimisations for large download queue with
thousands of items:
- much faster loading of queue from disk greatly improves program start
up time;
- improved queue management for faster download speed;
- now offering 64 bit binaries for Windows:
- installer includes 32 and 64 bit nzbget binaries;
- when updating from older versions the 64 bit binary is installed
automatically, although into the old location to keep all your
shortcuts intact;
- using word "windows" instead of "win32" in the setup file name;
- automatic update check:
- new option "UpdateCheck" to check for stable or testing versions (or
disable);
- when a new version is found a notification is shown;
- the update check is enabled by default for stable versions;
- significantly improved logging performance, especially in debug builds;
- par-check prints par2 creator application to help identify creator app
issues;
- added support for Unix domain sockets (POSIX only);
- better error handling when fetching rss feeds;
- updated POSIX build files to newer autotools version:
- compatibility with newer autotools;
- compatibility with newer platforms such as aarch64;
- better username/password validation when testing connection on settings
page;
- improved rar-renamer to better handle certain cases;
- new option "SkipWrite" for easier speed tests;
- support for redirect codes 303, 307 and 308 in web-client for fetching of
rss feeds and nzb-files;
- installer for FreeBSD is now built using Clang instead of GCC; this fixes
incompatibility with FreeBSD 11;
- universal Linux installer can now be used on FreeBSD (via Linux
compatibility mode);
- updated unrar to v5.50;
- more robust news server connection test;
- enhancements in NServ:
- memory cache to reduce disk load during speed tests - new command line
switch "-m";
- speed control - new command line switches "-w" and "-r";
- show IP address of incoming connection;
- changed default location of log-file;
- better handling of broken connections;
- removed obsolete or less useful options "SaveQueue", "ReloadQueue",
"TerminateTimeout", "AccurateRate", "BrokenLog";
- renamed option "LogBufferSize" to "LogBuffer";
- passwords of failed login attempts are no longer printed to log to improve
security;
- cookies in web interface are now saved with "httpOnly" attribute to improve
security;
- titles and duplicate keys in duplicate check are now case insensitive;
- added LibreSSL support;
- web interface now has a better icon for favorites or home screen of mobile
devices;
- improved duplicate detection for obfuscated downloads having files with
same subjects;
- direct rename and direct unpack are now active by default on new
installations, except for slow Linux systems;
- added advice for letsencrypt in option descriptions;
- fixed incorrect renaming in rar-renamer which could cause some downloads to
fail;
- fixed race condition in queue script coordinator which could cause crashes;
- fixed: post-processing parameters were sometimes case sensitive causing
issues;
- fixed DNS resolving issues on Android;
- fixed: backup servers not used on certain article decoding errors;
- fixed: when direct rename was active certain downloads with damaged
par2-files become paused at near completion and required manual resuming;
- fixed: crash when flushing article cache after direct rename;
- fixed: deleting active par-job may crash the program;
- fixed: functional tests may fail on Windows due to locked files;
- fixed: unpack using password file doesn't work on Windows;
- fixed: compiler error when building using GnuTLS;
- fixed: Linux installer failure on android emulator;
- fixed: options formatted as password fields when they shouldn't;
- fixed: slightly off article statistics after direct rename;
- fixed: NServ terminated if client interrupted connection;
- fixed: example pp-scripts may not work properly if nzbget password or
username contained special characters;
- fix in functional tests to not rely on sizes of externally generated files;
- fixed: option AuthorizedIP did not work with IPv6 addresses;
- fixed crash on certain malformed articles;
- fixed crash which could happen on Windows when reloading or terminating the
program;
- fixed logging of IPv6 addresses.
nzbget-19.1:
- proper handling of changing category (and destination path) during direct
unpack; direct unpack now gracefully aborts with cleanup; the files will
be unpacked during post-processing stage;
- fixed: password protected downloads of certain kind may sometimes end up
with no files if direct unpack was active;
- fixed: rar-renamer mistakenly renamed some encrypted rar3 files causing
unnecessary repair;
- fixed: rar-renamer could not process some encrypted rar3-archives.
nzbget-19.0:
- unpack during downloading:
- downloaded files can now be unpacked as soon as every archive part is
downloaded;
- new option "DirectUnpack" to activate direct unpacking;
- direct unpack works even with obfuscated downloads; option
"DirectRename" (see below) must be active for that;
- option "ReorderFiles" (see below) should be also active for optimal
file download order;
- direct unpack works for rar-archives; 7-zip archives and simply
splitted files are processed by default unpack module;
- direct unpack obviously works only for healthy download; if download
is damaged the direct unpack cancels and the download is unpacked
during post-processing stage after files are repaired;
- direct unpack reduces the time needed to complete download and
post-processing;
- it also allows to start watching of video files during download
(requires compatible video player software);
- renaming of obfuscated file names during downloading:
- correct file names for obfuscated downloads are now determined during
download stage (instead of post-processing stage);
- downloaded files are saved into disk directly with correct names;
- direct renaming uses par2-files to restore correct file names;
- new option "DirectRename" to activate direct renaming;
- new queue-event NZB_NAMED, sent after the inner files are renamed;
- automatic reordering of files:
- inner files within nzb reordered to ensure download of files in
archive parts order;
- the files are reordered when nzb is added to queue;
- if direct renaming is active (option "DirectRename") the files are
reordered again after the correct names becomes known;
- new option "ReorderFiles";
- new command "GroupSortFiles" in api-method "editqueue";
- new subcommand "SF" of remote command "-E/--edit";
- new option "FileNaming" to control how to name obfuscated files (before they
get renamed by par-rename, rar-rename or direct-rename);
- TLS certificate verification:
- when connecting to a news server (for downloading) or a web server
(for fetching of rss feeds and nzb-files) the authenticity of the
server is validated using server security certificate. If the check
fails that means the connection cannot be trusted and must be closed
with an error message explaining the security issue;
- new options "CertCheck" and "CertStore";
- official NZBGet packages come with activated certificate check;
- when updating from an older NZBGet version the option CertCheck will
be automatically activated when the settings is saved (switch to
Settings page in web-interface and click "Save all changed");
- authentication via form in web-interface as alternative to HTTP
authentication:
- that must help with password tools having issues with HTTP
authentication dialog;
- new option "FormAuth";
- drop-downs (context menus) for priority, category and status columns:
- quicker changing of priority and category;
- easier access to actions via drop-down (context menu) in status
column;
- extensions scripts can now be executed from settings page:
- script authors define custom buttons;
- when clicked the script is executed in a special mode and obtain extra
parameters;
- example script "Email.py" extended with button "Send test e-mail";
- on Windows NZBGet can now associate itself with nzb-files:
- use option in Windows installer to register NZBGet for nzb-files;
- unrar shipped within Linux package is now compiled with "fallocate" option
to improve compatibility with media players when watching videos during
downloading and unpacking;
- support for HTTP-header "X-Forwarded-For" in IP-logging;
- improvements in RSS feed view in phone mode;
- set name, password and dupe info when adding via URL by click on a button
near URL field in web-interface;
- backup-badge for items in history similar to downloads tab;
- show backup icon in history in phone theme;
- added support for ECC certificates in built-in web-server;
- save changes before performing actions in history dialog;
- proper exit code on client command success or failure.
- added host name to all error messages regarding connection issues;
- new button "Volume Statistics" in section "News Servers" of settings page;
shows the same volume data as in global statistics dialog;
- new option "ServerX.Notes" for user comments on news servers;
- new parameters for api-method "servervolumes" as a performance optimization
measure to reduce amount of transferred data;
- new option to force connection to news servers via ipv4 or ipv6;
- removed unnecessary requests to news servers;
- updated unrar to v5.40;
- clear script execution log before executing script;
- added support for crash dumps on Windows:
- renamed option "DumpCore" to "CrashDump";
- new option "CrashTrace" to make it possible to disable default
printing off call stack in order to produce more relevant crash dumps;
- fixed: startup scheduler tasks can be executed again;
- fixed: "fatal" messages when compiling from sources.
- fixed: per-nzb download statistics could be wrong if the program was
reloaded during downloading.
- fixed crash which may happen between post-processing steps;
- fixed: asterix (*) was sometimes passed as parameter to extension scripts
(Windows only);
- fixed potential crash during update via web-interface.
nzbget-18.1:
- fixed: crash during download caused by a race condition;
- fixed: sleep mode did not work on Windows;
- fixed: queue was not saved after deleting of queued post-jobs;
- fixed: possible crash at the end of post-processing;
- fixed: "undefined" in reorder extension scripts.
nzbget-18.0:
- automatic deobfuscation of rar-archives without par-files:
- obfuscated downloads not having par-files can now be successfully
unpacked;
- also helps with downloads where rar-files were obfuscated before
creating par-files;
- new options "RarRename" and "UnpackIgnoreExt";
- multi post-processing:
- in addition to classic post-processing strategy where items are
processed one after another it is now possible to post-process
multiple items at the same time;
- new option "PostStrategy" to choose from four: sequential, balanced,
aggressive, rocket;
- in "balanced" strategy downloads needing repair do not block other
items which are processed sequentially but simultaneously with
repairing item;
- in "aggressive" mode up to three items are post-processed at the same
time and in "rocket" mode up to six items (including up to two repair
tasks);
- unified extension scripts settings:
- options "PostScript", "QueueScript", "ScanScript" and "FeedScript"
were replaced with one option "Extensions";
- users don't need to know the technical details os extension scripts as
all scripts are now can be selected at one place;
- easier activation of complex extension scripts which previously needed
to be selected in multiple options for their proper work;
- reordering download queue with drag and drop in web-interface:
- new actions "GroupMoveBefore" and "GroupMoveAfter" in API-method
"editqueue";
- priorities are now displayed as a column instead of badge; that makes it
possible to manually sort on priority;
- removed vertical lines in tables; looks better in combination with new
priority column;
- keyboard shortcuts in web-interface;
- improved UI to prevent accidental deletion of many items:
- visual indication of records selected on other pages;
- extra warning when deleting many records from history;
- additional options in "custom pause dialog";
- better handing of damaged par2-files in par-renamer:
- if par-renamer can't load a (damaged) par2-file then another par2-file
is downloaded and par-renamer tries again;
- reverted non-strict par2-filename matching to handle article subjects
with non-parseable filenames;
- better handling of obfuscated par-files;
- splitted option "Retries" into "ArticleRetries" and "UrlRetries"; option
"RetryInterval" into "ArticleInterval" and "UrlInterval";
- scheduler tasks can be started at program launch:
- use asterisk as TaskX.Time;
- graceful termination of scheduler scripts:
- scripts receive signal SIGINT (CTRL+BREAK on Windows) before
termination;
- added support for nZEDb attributes in rss feeds;
- better cleanup handling: if parameter "unpack" is disabled for an nzb-file
the cleanup isn't performed for it;
- fields containing passwords are now displayed as protected fields;
- showing password-badge for nzbs with passwords;
- allow control of what tab is shown when opening web-interface:
add "#downloads", "#history", "#messages" or "#settings" to the URL,
for example "http://localhost:6789/#history" or
"http://localhost:6789/index.html#history";
- functional testing to ensure program quality:
- implemented built-in simple nntp server to be used for functional
testing;
- created a number of tests;
- new features come with additional tests;
- improved API-method "append" in combination with duplicate check; method
returns nzb-id also for items added straight to history;
- removed parameter "offset" from api-method "editqueue":
- when needed the "offset" is now passed within parameter "Args" as
string;
- old method signature is supported for compatibility;
- improved error reporting on feed parse errors;
- highlighting selected rows with alternative colors;
- improved selecting of par2-file for repair;
- splitted config section "Download Queue" and moved many options into new
section "Connection";
- disabled SSLv3 in built-in web-server;
- multiple recipients in the example pp-script "EMail.py";
- added compatibility with openssl 1.1.0;
- fixed TLS handshake error when using GnuTLS;
- fixed: sorting of selected items may give wrong results;
- fixed: search box filter in feed view were not reset.
nzbget-17.1:
- adjustments and fixes for "Retry failed articles" function, better handling
of certain corner cases;
- partial compatibility with gcc 4.8;
- removed unnecessary debug logging to javascript console;
- improved error reporting on certain file operations;
- corrected option description;
- corrected text in history delete confirmation dialog;
- fixed performance issue on certain Windows systems;
- fixed: root drive paths on Windows could not be used (for example
"NzbDir=N:\");
- fixed hanging after marking as BAD from queue script;
- fixed: old nzbget.exe was deleted even when installing into a new directory
(Windows only);
- fixed: compilation error if configured with unit tests but without par-module;
- fixed crash on malformed articles;
- fixed javascript error on Chrome for Linux;
- fixed compilation error if configured without TLS.
nzbget-17.0:
- reworked the full source code base to utilize modern C++ features:
- with the main motivation to make the code nicer and more fun to work
with;
- to compile NZBGet from source a compiler supporting C++14 is required;
- most users don't have to compile on their own and can use official
installers offered on download page;
- for a detailed list of internal changes see Milestone "Modern C++" on
GitHub;
- now offering an official installer for FreeBSD:
- automatic installation;
- built-in update via web-interface;
- currently supporting only x86_64 CPU architecture;
- full support for Unicode and extra long file paths (more than 260 characters)
on Windows including:
- downloading;
- par-verification and -repair;
- par-renaming (deobfuscation);
- unpacking;
- post-processing;
- added download volume quota management:
- new options "MonthlyQuota", "QuotaStartDay", "DailyQuota";
- downloading is suspended when the quota is reached and automatically
resumed when the next billing period starts (month or day);
- new fields in RPC-method "status": MonthSizeLo, MonthSizeHi,
MonthSizeMB, DaySizeLo, DaySizeHi, DaySizeMB, QuotaReached.
MonthSizes are related to current billing month taking option
"QuotaStartDay" into account;
- download volume for "this month" shown in web-interface in statistics
dialog shows data for current billing month (taking option
"QuotaStartDay" into account);
- remaining time is shown in orange when the quota is reached;
- dialog "statistics and status" may show extra row "Download quota:
reached";
- new function "Retry failed articles" in history:
- failed downloads can be now tried again but in contrast to command
"Download again" only failed articles are downloaded whereas
successfully downloaded pieces are reused;
- new command "HistoryRetryFailed" of RPC-method "editqueue";
- new subcommand "F" of command line switch "-E/--edit" for history;
- reworked options to delete already downloaded files when deleting downloads
from queue:
- removed option "DeleteCleanupDisk";
- in the "Delete downloads confirmation dialog" allowing user to decide
if the already downloaded files must be deleted or not;
- option "HealthCheck" extended with new possible value "Park"; Health
check now offers:
- "Delete" - to move download into history and delete already
downloaded files;
- "Park" - to move download into history and keep already downloaded
files;
- remote command "GroupDelete" now always delete already downloaded files;
- new remote command "GroupParkDelete" keeps already downloaded files;
- new subcommand "DP" of console command "--edit/-E" to delete download
from queue and keep already downloaded files;
- new queue script event "NZB_MARKED"; new env var "NZBNA_MARKSTATUS" is
passed to queue scripts:
- new option "ShellOverride" allows to configure path to python, bash, etc.;
useful on systems with non-standard paths; eliminating the need to change
shebang for every script; also makes it possible to put scripts on non-exec
file systems;
- reduced disk fragmentation in direct write mode on Windows; this improves
unpack speed;
- news servers can now be configured as optional; marking server as optional
tells NZBGet to ignore this server if a connection to this server cannot be
established;
- added support for tvdbid and tvmazeid in rss feeds;
- added button to save nzb-log into a file directly from web-ui;
- queue-scripts can now change destination after download is completed and
before unpack;
- queue-scripts save messages into nzb-log;
- showing number of selected items in confirmation box when deleting or
performing other actions on multiple items in web-interface;
- built-in web-server can now use certificate chain files through option
"SecureCert", when compiled using OpenSSL;
- added support for SNI in TLS/SSL;
- better error reporting when using GnuTLS;
- allowing character "=" in dupe-badges;
- par-check doesn't ignore files from option "ExtCleanupDisk" anymore; only
files listed in option "ParIgnoreExt" are ignored;
- low-level messages from par2-module are now added to log (as DETAIL);
- option "ScriptDir" now accepts multiple directories;
- path to original queued nzb-file is now passed to scripts;
- hidden files and directories are now ignored by the scanner of incoming nzb
directory;
- separated disk state files for queue and history for better performance;
- improved replacing of invalid characters in file names in certain cases;
- automatically removing orphaned diskstate files from QueueDir;
- added support for file names with reserved words on Windows;
- added several settings to change behavior of web-interface, new section
"WEB-INTERFACE" on settings page;
- showing various status info in browser window title:
- number of downloads, current speed, remaining time, pause state;
- new option "WindowTitle";
- improved tray icon (Windows) to look better on a dark background;
- feed scripts must now return exit codes; this is to prevent queueing of
all files from the feed if the feed script crashes;
- improved error reporting on DNS lookup errors;
- fixed: splitted files were not always joined;
- fixed: wrong encoding in file names of downloaded files;
- fixed: queue-scripts not called for failed URLs if the scripts were set in
category’s option "PostScript";
- fixed: crash when executing command "--printconfig";
- fixed: error messages when trying to delete intermediate directory on Windows;
- fixed: web-ui didn't load in Chrome on iOS;
- improved POSIX configure script - now using pkg-config for all required
libraries;
- improved Windows installer - scripts are now installed into a subdirectory
of default "MainDir" (C:\ProgramData\NZBGet\scripts) instead of program's
directory;
- updated and corrected option descriptions.
nzbget-16.4:
- fixed resource (socket) leak which may cause "too many open files"
errors with a possible crash.
nzbget-16.3:
- fixed: certain downloads may fail due to a bug in the workaround
implemented in v16.2.
nzbget-16.2:
- implemented workaround to deal with malformed news server responses,
which may still contain useful data.
nzbget-16.1:
- fixed issues with reverse proxies;
- fixed unpack failure on older AMD CPUs, when installed via
universal Linux installer;
- fixed: when the program was started from setup the default directories
were created with wrong permission (Windows only).
nzbget-16.0:
- moved project hosting to GitHub:
- moved source code repository from subversion to git;
- updated POSIX makefile to generate revision number for testing
releases;
- updated Linux installer build script to work with git;
- adjusted function "check for updates" in web-interface;
- update-scripts for Linux installer and Windows setup fetch new
versions from GitHub releases area;
- cleaned up project root directory, removed many unneeded files which
were required by GNU build tools;
- added verification for setup authenticity during update on Linux and Windows;
- improvements in Linux installer:
- improved compatibility with android;
- added support for paths with spaces in parameter "--destdir";
- auto-selecting "armhf"-architecture on ARM 64 bit systems (aarch64);
- ignored nzbs are now added to history and processed by queue scripts:
- when an nzb-file isn’t added to queue, for some reason, the file is now
also added to history (in addition to messages printed to log);
- on one hand that makes it easier to see errors (as history items instead
of error log messages), on the other hand that provides more info for
extension scripts and third-party programs;
- for malformed nzb-files which cannot be parsed the status in history is
"DELETE: SCAN";
- for duplicate files with exactly same content status "DELETE: COPY";
- for duplicate files having history items with status "GOOD" and for
duplicate files having hidden history items with status "SUCCESS" which
do not have any visible duplicates - status "DELETE: GOOD";
- new values for field "DeleteStatus" of API-Method "history": "GOOD",
"COPY", "SCAN";
- new values for field "Status" of API-Method "history": "FAILURE/SCAN",
"DELETED/COPY", "DELETED/GOOD" (they will also be passed to pp-scripts
as NZBPP_STATUS);
- new queue-script event "NZB_DELETED";
- new queue event "URL_COMPLETED", with possible details: "FAILURE",
"SCAN_SKIPPED", "SCAN_FAILURE";
- improved quick filter (the search box at the top of the page):
- now supporting OR, AND, NOT, parenthesis;
- can search in specific fields;
- can search in API-fields which are not shown in the table;
- filters can be saved and loaded using new drop down menu;
- new advanced duplicate par-check mode:
- can be activated via option "ParScan=Dupe";
- the new mode is based on the fact that the same releases are posted to
Usenet multiple times;
- when an item requires repair but doesn't have enough par-blocks the
par-checker can reuse parts downloaded in other duplicates of the same
title;
- that makes it sometimes possible to repair downloads which would fail
if tried to repair individually;
- the downloads must be identifiable as duplicates (same nzb name or same
duplicate key);
- when par-checker needs more par-blocks it goes through the history and
scans the download directories of duplicates until it finds missing
blocks; it's smart enough to abort the scanning if the files come from
different releases (based on video file size);
- adjusted option "HealthCheck"; when set to "Delete" and duplicate
par-scan is active, the download is aborted only if the completion is
below 10%; that's to avoid deletion of damaged downloads which can be
potentially repaired using new par-check mode;
- downloads which were repaired using the new mode or which have donated
their blocks to repair other downloads are distinguishable in the
history details dialog with new status "EXPAR: RECIPIENT" or "EXPAR:
DONOR"; a tooltip on the status shows amount of par-blocks
received/donated;
- new field "ExParStatus" returned by API-method "history";
- to quickly find related history items use quick filter
"-exparstatus:none" in history list;
- when adding nzb-files via web-interface it's now possible to change name and
other properties:
- nzb-files in the upload-list are now clickable;
- the click opens properties dialog where the name, password, duplicate
key and duplicate score can be changed;
- queue script activity is now indicated in web-interface:
- items in download list may have new statuses "QS-QUEUED" (gray) or
"QUEUE-SCRIPT" (green);
- new values for field "Status" in API-method "listgroups": "QS_QUEUED",
"QS_EXECUTING";
- the number of active (and queued) scripts are shown in the status dialog
in web-interface; this new row is hidden if no scripts are queued;
- active queue scripts account for activity indicator in web-interface
(rotating button);
- new field "QueueScriptCount" in API-method "status" indicates number of
queue-scripts queued for execution including the currently running;
- added scripting support to RSS Feeds:
- new option "FeedScript" to set global rss feed scripts;
- new option "FeedX.FeedScript" to define per rss feed scripts;
- new option "FeedX.Backlog" to control the RSS feed behavior when fetched for
the first time or after changing of URL or filter;
- implemented cleanup for field "description" in RSS feeds to remove HTML
formatting;
- new option "FlushQueue" ("yes" by default) to force disk cache flush when
saving queue;
- quick toggle of speed limit; "Command/Control + click-on-speed-icon" toggles
between "all servers active and speed-limit=none" and "servers and speed
limit as in the config file";
- new option "RequiredDir" to wait for external drives mount on boot;
- hidden webui option "rowSelect" now works for feed view too;
- improved error message for password protected archives;
- increased limit for log-entries in history dialog from 1000 to 10000;
- completion tab of download details dialog (and history details dialog)
shows per server article completion in percents; now there are also
tooltips to show article counts;
- do not reporting bad blocks for missing files (which are already reported as
missing);
- new setting to set tray icon behavior on Windows;
- improvements in built-in web-server to fix communication errors which may
occur on certain systems, in particular on OS X Safari:
- implemented graceful disconnect strategy in web-server;
- added authorization via X-Auth-Token to overcome Safari’s bug, where
it may stop sending HTTP Basic Auth header when executing ajax
requests;
- pp-script EMail.py now supports new TLS/SSL mode "Force". When active the
secure communication with SMTP server is built using secure socket on
connection level instead of plain connection and following switch into
secure mode using SMTP-command "STARTLS". This new mode is in particular
required when using GMail on port 465;
- speed improvement in built-in web-server on Windows when serving API
requests (web-interface) for very large queue or history (with thousands
items);
- better performance when deleting many items from queue at once (hundreds or
thousands);
- improved performance in web-interface when working with very large queue or
history (thousands of items);
- integrated unit testing framework, created few first unit tests:
- new configure parameter "--enable-tests" to build the program with
tests;
- use "nzbget --tests" to execute all tests or "nzbget --tests -h" for
more options;
- fixes in Linux installer:
- fixed: installer may show wrong IP-address in the quick help message
printed after installation (thanks to @sanderjo);
- fixed: installation failed on certain WD NAS models due to Busybox
limitations;
- fixed: not working endianness detection on mipseb architecture;
- fixed: unrar too slow on x86_64 architecture;
- fixed: reporting of bad blocks for empty files could print garbage file
names;
- fixed: par-check did not work on UNC paths (Windows only);
- fixed: config error messages were not printed to log or screen but only to
stdout, where users typically don’t see them;
- fixed: incorrect reading of UrlStatus from disk state;
- fixed: total articles wasn't reset when downloading again;
- fixed: crash on reload if a queue-script is running;
- fixed: mark as bad may return items to queue if used on multiple items
simultaneously;
- fixed: updating may fail if NZBGet was not installed on the system
drive (Windows only);
- fixed: the program may hang during multithreading par-repair, only certain
Linux system affected;
- fixed: active URL download could not be deleted;
- fixed: par-verification of repaired files were sometimes not skipped in
quick verification mode (option "ParQuick=yes");
- fixed: when parsing nzb-files filenames may be incorrectly detected causing
certain downloads to fail;
- fixed: nzb-files containing very large individual files (many GB) may cause
program to crash or print error "Could not create file ...".
nzbget-15.0:
- improved application for Windows:
- added tray icon (near clock);
- left click on icon pauses/resumes download;
- right click opens menu with important functions;
- console window can be shown/hidden via preferences (is hidden by
default);
- new preference to automatically start the program after login;
- new preference to show browser on start;
- new preference to hide tray icon;
- menu commands to show important folders in windows explorer
(destination, etc.);
- on first start the config file is now placed into subdirectory
"NZBGet" inside standard AppData-directory;
- default destination and other directories are now placed in the
AppData\NZBGet-directory instead of programs directory; this allows
to install the program into "program files"-directory since the
program does not write into the programs directory anymore;
- the program exe has an icon now;
- if the exe is started from windows explorer the program starts in
application mode; if the exe is called from command prompt the program
works in console mode;
- added built-in update feature to windows package; accessible via
web-interface -> settings -> system -> check for updates;
- created installer for windows:
- the program is installed into "program files" by default;
- the working directory with all subdirectories is now placed into
"AppData" directory;
- the batch files nzbget-start.bat and nzbget-recovery-mode.bat are not
needed and not installed anymore;
- created installer for Linux:
- included are precompiled binaries for the most common CPU architectures:
x86, ARM, MIPS and PowerPC;
- installer automatically detects CPU architecture of the system and
installs an appropriate executable;
- configuration file is automatically preconfigured for immediate use;
- installation on supported platforms has become as simple as:
download, run installer, start installed nzbget;
- installer supports automatic updates via web-interface -> settings
-> system - check for updates;
- added support for password list file:
- new option "UnpackPassFile" to set the location of the file;
- during unpack the passwords are tried from the file until unpack
succeeds or all passwords were tried;
- implemented different strategies for rar4 and rar5-archives taking
into account the features of formats;
- for rar5-archives a wrong password is reported by unrar unambiguously
and the program can immediately try other passwords from the password
list;
- for rar4-archives and for 7z-archives it is not possible to
differentiate between damaged archive and wrong password; for those
archives if the first unpack attempt (without password) fails the
program executes par-check (preferably quick par-check if enabled via
option "ParQuick) before trying the passwords from the list;
- another optimization is that the password list is tried only when the
first unpack attempt (without password) reports a password error or
decryption errors; this saves unnecessary unpack attempts for damaged
unencrypted archives;
- options "UnrarCmd" and "SevenZipCmd" can include extra switches to pass to
unrar/7-zip:
- this allows for easy passing of additional parameters without creating
of proxy shell scripts;
- improved news server connections handling:
- if a download of an article fails due to connection error the news
server becomes temporary disabled (blocked) for several seconds
(defined by option "RetryInterval");
- the download is then retried on another news server (of the same
level) if available;
- if no other news servers (of the same level) exist the program will
retry the same news server after its block interval expires;
- this increases failure tolerance when multiple news servers are used;
- added on-demand queue sorting:
- one click on column title in web interface sorts the selected or all
items;
- if the items were already sorted in that order they are sorted
backwards; in other words the second click sorts in descending order;
- when sorting selected items they are also grouped together in a case
there were holes between selected items;
- RPC-method "editqueue" has new command "GroupSort", parameter "Text"
must be one of: "name", "priority", "category", "size", "left"; add
character "+" or "-" to explicitly define ascending or descending
order (for example "name-"); if none of these characters
is used the auto-mode is active: the items are sorted in ascending
order first, if nothing changed - they are sorted again in descending
order;
- added restricted user and add-user:
- restricted user has access to most program functions but cannot see
security related options (including usernames and passwords) and
cannot save configuration;
- restricted user can be used with other programs and web-sites;
- add-user can only add new downloads via RPC-API and can be used with
other programs or web-sites;
- added per-nzb logging:
- each nzb now has its own individual log;
- messages printed during download or post-processing are saved;
- the messages can be retrieved later at any time;
- new button "Log" in the history details dialog;
- button "Log" in the download details dialog is now active during
download too (not only during post-processing);
- the log contains all nzb-related messages except detail-messages and
errors printed during retrieving of articles (they would produce way
too many messages and are not that useful anyway);
- new option "NzbLog" to deactivate per-nzb logging if necessary;
- per-nzb logs are saved in the queue-directory (option "QueueDir");
- new RPC-method "loadlog" returns the previously saved messages for a
given nzb-file;
- new field "MessageCount" is returned by RPC-methods "listgroups" and
"history" and indicates if there are any messages saved for the item;
- parameter "NumberOfLogEntries" of RPC-method "listgroups" and the
field "Log" returned by the method are now deprecated, use method
"loadlog" instead;
- field "PostInfoText" returned by RPC-method "listgroups" is now
automatically filled with the latest message printed by a pp-script
eliminating the need to access deprecated field "Log"';
- actions for history items can now be performed for multiple (selected) records:
- post-process again, download again, mark as good, mark as bad;
- extended RPC-API method "editqueue": for history-records of type
"URL" the action "HistoryRedownload" can now be used as synonym to
"HistoryReturn" (makes it easier to redownload multiple items of
different types (URL and NZB) with one API call).
- options "ParIgnoreExt" and "ExtCleanupDisk" can now contain wildcard
characters * and ?;
- added new option "ServerX.Retention" to define server retention time (days);
files older than configured server retention time are not even tried on this
server;
- added support for negative numeric values in rss filter (useful for fields
"dupescore" and "priority");
- added subcommand "HA" to remote command "--list/-L" to list the whole
history including hidden records;
- added optional parameters to remote command "--append/-A" allowing to pass
duplicate key, duplicate mode and duplicate score; removed parameters "F"
and "U" of command "--append/-A", which were used to set mode (file or URL),
which is now detected automatically; the parameters are still supported for
compatibility;
- name and category of history items can now be changed in web-interface;
RPC-API method "editqueue" extended with new actions "HistorySetName" and
"HistorySetCategory";
- improved timeout handling during establishing of connections;
- updated pp-script "EMail.py":
- using the new nzb-log feature;
- new option "SendMail" allows to choose if the e-mail should be send
always or on failure only;
- updated pp-script "Logger.py" to use the new nzb-log feature;
- improved cleanup (option ExtCleanupDisk):
- if download was successful with health 100% the cleanup is now
performed even if par-check and unpack were not made; previously a
successful par-check or unpack were required for cleanup;
- now the files are deleted in subdirectories too (recursively);
- added a small button near feed name in the feed menu on downloads-page; a
click on the button fetches the feed, whereas a click on the feed title
shows feed's content (as before);
- improved detection of malformed nzb-files: nzbs which are valid
xml-documents but without nzb content are now rejected with an appropriate
error message;
- new action "Mark as success" on history page and in history details dialog:
- items marked as success are considered successfully downloaded and
processed, which is important for duplicate check;
- use this command if the download was repaired outside of NZBGet;
- new action "HistoryMarkSuccess" in RPC-method "editqueue";
- new subcommand "S" of command "-E H" (command line interface);
- new status "SUCCESS/MARK" can be returned by RPC-method "history";
- improved support for update-scripts:
- all command line parameters used to launch nzbget are passed to the
script in env vars NZBUP_CMDLINEX, where X is a parameter number
starting with 0;
- if the path to update-script defined in package-info.json does not
start with slash the path is considered being relative to application
directory;
- new env var NZBUP_RUNMODE (DAEMON, SERVER) is passed to the script;
- fixed: env var NZBUP_PROCESSID had wrong value (ID of the parent
process instead of the nzbget process);
- added button "Test Connection" to make a news server connection test from
web-interface;
- renamed option "CreateBrokenLog" to "BrokenLog"; the old option name is
recognized and automatically converted when the configuration is saved in
web-interface;
- improved the quality of speed throttling when a speed limit is active;
- added hidden webui setting "rowSelect" to select records by clicking on any
part of the row, not just on the check mark; to activate it change the
setting "rowSelect" in webui/index.js;
- when moving files to final destination the hidden files (with names starting
with dot) are considered unimportant and no errors are printed if they
cannot be moved; such files (.AppleDouble, .DS_Store, etc.) are usually
used by services to hold metadata and can be safely ignored;
- option sets (such as news-servers, categories, etc.) can now be reordered
using news buttons "move up" and "move down";
- updated info in about dialogs (Windows and Mac OS X);
- updated description of few options;
- changed defaults for few logging options;
- improved timeout handling when connecting to news servers which have
multiple addresses;
- improved error handling when communicating with secure servers (do not
trying to send quit-command if connection could not be established or was
interrupted; this avoids unnecessary timeout);