forked from nzbget/nzbget
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
2842 lines (2800 loc) · 166 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-20.0:
- please see repository change log at
https://github.com/nzbget/nzbget/commits/develop
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;
- improved continuos integration with Travis CI:
- added gcc 4.8 to test matrix;
- installing unrar into test system to allow unit tests requiring unrar;
- 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);
- improved connection handling when fetching nzb-files and rss feeds; do not
print warning "Content-Length is not submitted by server..." anymore;
- download speed in context menu of menubar icon is now shown in MB/s instead
of KB/s (for speeds from 1 MB/s) (Mac OS X only);
- configuration file nzbget.conf is now also searched in the app-directory on
all platforms (for easier installation);
- removed shell script "nzbgetd" which were used to control nzbget as a
service; modern systems manage services in a diffreent way and do not
require that old script anymore;
- disabled changing of compiler options during configuring in debug mode
(--enable-debug); it conflicted with cross-compiling and did not allow to
pass extra options via CXXFLAGS; required debug options must be passed via
CXXFLAGS now (for example for gcc: CXXFLAGS=-g ./configure --enable-debug);
- disabled unnecessary assert-statements in par2-module when building in
release mode;
- fixed: parsing of RPC-parameters passed via URL were sometimes incorrect;
- fixed: lowercase hex digits were not correctly parsed in URLs passed to
RPC-API method "append";
- fixed: in JSON-RPC the request-id was not transfered back in the response as
required by JSON-RPC specification;
- fixed: par-check in full verification mode (not in quick mode) could not
detect damaged files if they were completely empty (0 bytes), which is
possible when option "DirectWrite" was not active and all articles of the
file were missing;
- fixed possible crash when using remote command "-B dump" to print debug
info;
- fixed: remote command "-L HA" (which prints the history including hidden
records) could crash;
- suppress printing of memory leaks reports when the program terminates
because of wrong command line switches (Windows debug mode only);
- fixed: command "nzbget -L H" may crash if the history contained URL-items
with certain status;
- fixed: action "Split" may not work for bad nzb-files with missing segments;
new Field "Progress" returned by RPC-method "listfiles" shows the download
progress of the file taking missing articles into account;
- if the lock-file cannot be created or the lock could not be acquired an
error message is printed to the log-file;
- fixed: update log shown during automatic update via web-interface may show
duplicate messages or messages may clear out;
- fixed: web-interface may fail to load on Firefox mobile;
- fixed: command "make install" installed README from par2-subdirectory
instead of main README.
nzbget-14.2:
- fixed: the program could crash during download when article cache was active
(more likely on very high download speeds);
- fixed: unlike to all other scripts the update-script should not be
automatically terminated when the program quits;
- fixed: XML-RPC method "history" returned invalid xml when used with
parameter "hidden=true" (JSON-RPC was fine).
nzbget-14.1:
- fixed: program could crash during unpack (Posix) or unpack failure was
reported (Windows);
- fixed: quick par-check could hang on certain nzb-files containing multiple
par-sets (occured only in 64 bit mode);
- fixed: menubar icon was not visible on Mac OS X in dark mode; system sleep
on idle state is now prevented during download and post-processing
(Mac OS X only);
- fixed: unrar may sometimes fail with message "no files to extract" (certain
Linux systems);
- fixed false memory leak warning when compiled in debug mode (Windows only);
- fixed: Mac OS X app didn't work on OS X 10.7 Lion.
nzbget-14.0:
- added article cache:
- new option "ArticleCache" defines memory limit to use for cache;
- when cache is active the articles are written into cache first and
then all flushed to disk into the destination file;
- article cache reduces disk IO and may reduce file fragmentation
improving post-processing speed (unpack);
- it works with both writing modes (direct write on and off);
- when option "DirectWrite" is disabled the cache should be big enough
(for best performance) to accommodate all articles of one file
(sometimes up to 500 MB) in order to avoid writing articles into
temporary files, otherwise temporary files are used for articles which
do not fit into cache;
- when used in combination with DirectWrite there is no such limitation
and even a small cache (100 MB or even less) can be used effectively;
when the cache becomes full it is flushed automatically (directly into
destination file) providing room for new articles;
- new row in the "statistics and status dialog" in web-interface
indicates the amount of memory used for cache;
- new fields "ArticleCacheLo", "ArticleCacheHi" and "ArticleCacheMB"
returned by RPC-method "status";
- renamed option "WriteBufferSize" into "WriteBuffer":
- changed the dimension - now option is set in kilobytes instead of bytes;
- old name and value are automatically converted;
- if the size of article is below the value defined by the option, the
buffer is allocated with the articles size (to not waste memory);
- therefore the special value "-1" is not required anymore; during
conversion "-1" is replaced with "1024" (1 megabyte) but it can be of
course manually changed to any other value later;
- integrated par2-module (libpar2) into NZBGet’s source code tree:
- the par2-module is now built automatically during building of NZBGet;
- this eliminates dependency from external libpar2 and libsigc++;
- making it much easier for users to compile NZBGet without patching
libpar2;
- added quick file verification during par-check/repair:
- if par-repair is required for download the files downloaded without
errors are verified quickly by comparing their checksums against the
checksums stored in the par2-file;
- this makes the verification of undamaged files almost instant;
- damaged (partially downloaded) files are also verified quickly by
comparing block's checksums against the checksums stored in the
par2-file; when necessary the small amounts of data is read from files
to calculate block's checksums;
- this makes the verification of damaged files very fast;
- new option "ParQuick" (active by default);
- when quick par verification is active the repaired files are not
verified to save time; the only reason for incorrect files after
repair can be hardware errors (memory, disk) but this is not something
NZBGet should care about;
- if unpack fails (excluding invalid password errors) and quick
par-check does not find any errors or quick par-check was already
performed the full par-check is performed; this helps in certain rare
situations caused by abnormal program termination;
- added multithreading par-repair:
- doesn't depend on other libraries and works everywhere, on all
platforms and all CPUs (with multiple cores), no special compiling
steps are required;
- new option "ParThreads" to set the number of threads for repairing;
- the number of repair threads is automatically reduced to the amount of
bad blocks if there are too few of them; if there is only one bad
block the multithreading par-repair is switched off to avoid overhead
of thread synchronisation (which does not make sense for one working
thread);
- new option "ParBuffer" to define the memory limit to use during
par-repair;
- added support for detection of bad downloads (fakes, etc.):
- queue-scripts are now called after every downloaded file included in
nzb;
- new events "FILE_DOWNLOADED" and "NZB_DOWNLOADED" of parameter
"NZBNA_EVENT"; new env. var "NZBNA_DIRECTORY" passed to queue scripts;
- queue-scripts have a chance to detect bad downloads when the download
is in progress and cancel bad downloads by printing a special command;
downloads marked as bad become status "FAILURE/BAD" and are processed
by the program as failures (triggering duplicate handling); scripts
executed thereafter see the new status and can react accordingly
(inform an indexer or a third-party automation tool);
- when a script marks nzb as bad the nzb is deleted from queue, no
further internal post-processing (par, unrar, etc.) is made for the
nzb but all post-processing scripts are executed; if option
"DeleteCleanupDisk" is active the already downloaded files are deleted;
- new status "BAD" for field "DeleteStatus" of nzb-item in RPC-method
"history";
- queue-scripts can set post-processing parameters by printing special
command, just like post-processing-scripts can do that; this
simplifies transferring (of small amount) of information between
queue-scripts and post-processing-scripts;
- scripts supporting two modes (post-processing-mode and queue-mode) are
now executed if selected in post-processing parameters: either in
options "PostScript" and "CategoryX.PostScript" or manually on page
"Postprocess" of download details dialog in web-interface; it is not
necessary to select dual-mode scripts in option "QueueScript"; that
provides more flexibility: the scripts can be selected per-category or
activated/deactivated for each nzb individually;
- added option "EventInterval" allowing to reduce the number of calls of
queue-scripts, which can be useful on slow systems;
- queue scripts can define what events they are interested in; this
avoids unnecessary calling of the scripts which do not process certain
events;
- the list of scripts (pp-scripts, queue-scripts, etc.) is now read once on
program start instead of reading everytime a script is executed:
- that eliminates the unnecessary disk access;
- the settings page of web-interface loads available scripts every time
the page is shown;
- this allows to configure newly added scripts without restarting the
program first (just like it was before); a restart is still required
to apply the settings (just like it was before);
- RPC-method "configtemplates" has new parameter "loadFromDisk";
- options "ParIgnoreExt" and "ExtCleanupDisk" are now respected by par-check
(in addition to being respected by par-rename): if all damaged or missing
files are covered by these options then no par-repair is performed and the
download assumed successful;
- added new search field "dupestatus" for use in rss filters:
- the search is performed through download queue and history testing
items with the same dupekey or title as current rss item;
- the field contains comma-separated list of following possible statuses
(if duplicates were found): QUEUED, DOWNLOADING, SUCCESS, WARNING,
FAILURE or an empty string if there were no matching items found;
- added log file rotation:
- options "CreateLog" and "ResetLog" replaced with new option "WriteLog
(none, append, reset, rotate)";
- new option "RotateLog" defines rotation period;
- improved joining of splitted files:
- instead of performing par-repair the files are now joined by unpacker,
which is much faster;
- the files splitted before creating of par-sets are now joined as well
(they were not joined in v13 because par-repair has nothing to repair
in this case);
- the unpacker can detect missing fragments and requests par-check if
necessary;
- added per-nzb time and size statistics:
- total time, download, verify, repair and unpack times, downloaded size
and average speed, shown in history details dialog via click on the
row with total size in statistics block;
- RPC-methods "listgroups" and "history" return new fields:
"DownloadedSizeLo", "DownloadedSizeHi", "DownloadedSizeMB",
"DownloadTimeSec", "PostTotalTimeSec", "ParTimeSec", "RepairTimeSec",
"UnpackTimeSec";
- pp-script "EMail.py" now supports mail server relays (thanks to l2g for the
patch);
- when compiled in debug mode new field "process id" is printed to the file
log for each row (it is easier to identify processes than threads);
- if an nzb has only few failed articles it may have completion shown as 100%;
now it is shown as 99.9% to indicate that not everything was successfully
downloaded;
- updated configure-script to not require gcrypt for newer GnuTLS versions
(when gcrypt is not needed);
- for downloads delayed due to propagation delay (option "PropagationDelay")
a new badge "propagation" is now shown near download name;
- added new option "UrlTimeout" to set timeout for URL fetching and RSS feed
fetching; renamed option "ConnectionTimeout" to "ArticleTimeout";
- improved pp-script EMail.py: now it can send time statistics (thanks to JVM
for the patch);
- improvement in duplicate check:
- if a new download with empty dupekey and empty dupescore is marked as
"dupe" and the another download with the same name have non empty
dupekey or dupescore these properties are copied from that download;
- this is useful because the new download is most likely another upload
of the same file and it should have the same duplicate properties for
best duplicate handling results;
- when connecting in remote mode using command line parameter "--connect/-C"
the option "ControlIP" is now interpreted as "127.0.0.1" if it is set to
"0.0.0.0" (instead of failing with an error message);
- when option "ContinuePartial" is active the current state is saved not more
often than once per second instead of after every downloaded article; this
significantly reduce the amount of disk writings on high download speeds;
- added commands "PausePostProcess" and "UnpausePostProcess" to scheduler;
- unpack is now automatically immediately aborted if unrar reports CRC errors;
- unpack is now immediately aborted if unrar reports wrong password (works for
rar5 as well as for older formats); the unpack error status "PASSWORD" is
now set for older formats too (not only rar5);
- improved cleanup:
- disk cleanup is now not performed if unrar failed even if par-check
was successful;
- queue cleanup (for remaining par2-files) is now made more smarter: the
files are kept (parked) if they can be used by command "post-process
again" and are removed otherwise;
- improved scan-scripts: if the category of nzb-file is changed by the
scan-script the assigned post-processing scripts are now automatically reset
according to the new category;
- added missing new line character at the end of the help screen printed by
"nzbget -h";
- better error reporting if a temp file could not be found;
- added news server name to message "Cancelling hanging download ..." to help
identifying problematic servers;
- added column "age" to history tab in web-interface;
- debug builds for Windows now print call stack on crash to the log-file,
which is very useful for debugging;
- additional parameters (env. vars) are now passed to scan scripts:
NZBNP_DUPEKEY, NZBNP_DUPESCORE, NZBNP_DUPEMODE; scan-scripts can now set
dupekey, dupemode and dupescore by printing new special commands;
- fixed potential crash which could happen in debug mode during program
restart;
- fixed: program could crash during restart if an extension script was
running; now all active scripts are terminated during restart;
- fixed: RPC-method "editqueue" with action "HistoryReturn" caused a crash if
the history item did not have any remaining (parked) files;
- fixed: RPC-method "saveconfig" did not work via XML-RPC (but worked via
JSON-RPC);
- fixed: a superfluous comma at the end of option "TaskX.Time" was interpreted
as an error or may cause a crash;
- fixed: relative destination paths (options "DestDir" and
"CategoryX.DestDir") caused failures during unrar;
- fixed: splitted .cbr-files were not properly joined;
- fixed: inner files (files listed in nzb) bigger than 2GB could not be
downloaded;
- fixed: cleanup may leave some files undeleted (Mac OS X only);
- fixed: compiler error if configured using parameter "--disable-gzip";
- fixed: one log-message was printed only to global log but not to nzb-item
pp-log;
- fixed: par-check could fail on valid files (bug introduced in libpar2 0.3);
- fixed: scheduler tasks were not checked after wake up if the sleep time was
longer than 90 minutes;
- fixed: the "pause extra pars"-state was missing in the pause/resume-loop of
curses interface, key "P";
- fixed: web interface showed an error box when trying to submit files with
extensions other than .nzb, although these files could be processed by a
scan-script; now the error is not shown if any scan-script is set in options;
nzbget-13.0:
- reworked download queue:
- new dialog to build filters in web-interface with instant preview;
- queue now holds nzb-jobs instead of individual files (contained
within nzbs);
- this drastically improves performance when managing queue
containing big nzb-files on operations such as pause/unpause/move items;
- tested with queue of 30 nzb-files each 40-100GB size (total queue
size 1.5TB) - queue managing is fast even on slow device;
- limitation: individual files (contained within nzbs) now cannot
be moved beyond nzb borders (in older version it was possible to
move individual files freely and mix files from different nzbs,