-
Notifications
You must be signed in to change notification settings - Fork 36
/
release_notes.txt
552 lines (328 loc) · 20.6 KB
/
release_notes.txt
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
__________ __
____ ____\______ \____ _______/ |_
/ \ / ___\| ___/ _ \/ ___/\ __\
| | \/ /_/ > | ( <_> )___ \ | |
|___| /\___ /|____| \____/____ > |__|
\//_____/ \/
TODO: --nfo option (cf github issue #10 and NewsUp dev)
TODO: include ParPar instead of par2cmdline?
TODO: auto RAR size and par2 parameters depending on the inputs size?
####################################################
### Release: ngPost v4.16 ###
### date: 2021/11/29 ###
####################################################
- Fix nzb check
- Issue #119: use QCoreApplication::arguments() instead of argv[] to have the proper encoding
- Issue #120: building cmd only Linux version
####################################################
### Release: ngPost v4.15 ###
### date: 2021/09/21 ###
####################################################
- new MONITOR_SEC_DELAY_SCAN keyword (Issue #117)
- Req #102: introduce new config PACK instead of AUTO_COMPRESS so the parameters can be chosen
i.e: even with PACK defined in conf, it's possible to not use it in CMD if --pack is not present
This also allow to do post with only par2 generation (no compression)
- adding BTC donation button in the GUI
- new LOG_IN_FILE keyword in config to save logs in GUI mode (to debug crashes)
- Switch to GPL v3 licence "to avoid proprietary copies"
without contacting me...
Even if I suppose they won't give a fuck!...
- Use more random seed for std::srand (potential unrealistic security hole raised...)
- Add a pure CMD compilation mode (for Linux servers)
to build it: comment line 4 in ngPost.pro (CONFIG += use_hmi)
- GROUP_POLICY::EACH_FILE only with Article's obfuscation
- make it Qt6 compliant...
####################################################
### Release: ngPost v4.14 ###
### date: 2020/11/11 ###
####################################################
- Adding PROXY_SOCKS5 support
- Close the NntpConnection when nothing more to post
- Issue #87: NZB_POST_CMD breaks with cURL "=" character
- Issue #88: Error: disconnected connection at end of posts
- add quotes around the name of the file in the header of the Articles
(following discussion with nzbindex, nyuu is doing it already)
- Fix the stat line with the good number of connections used for the post
- Fix GUI crash on job completion...
####################################################
### Release: ngPost v4.13 ###
### date: 2020/10/18 ###
####################################################
- no more giving up on Articles when their connection is down
instead we put them back on the Stack so other connections could post them
- new --check option in CMD to test nzb files (using the NNTP Stat command)
in conf, there is the new "nzbCheck" keyword for the servers,
only those with it set up to true will be used for nzb checks (download)
this allow to add non-blocks accounts for the checks with enabled to false
- Issue #82: handle deletion of the _packingJob
- Issue #81 : ngPost uses TMP_RAM even when folder is too big
- Add log when using TMP_RAM and fix the reading of its RATIO
####################################################
### Release: ngPost v4.12 ###
### date: 2020/10/12 ###
####################################################
- include parpar build in Linux and Windows releases
- Add proper placeholders to NZB_POST_CMD: __nzbPath__, __nzbName__, __rarName__,...
- allow to define several NZB_POST_CMD (QStringList rather than QString)
- Request #79: introduce TMP_RAM with TMP_RAM_RATIO that we'd first use as temporary folder
for posts that would fit on the disk. Typically for a tmpfs partition.
The goal is to use RAM I/O instead of SSD and thus preserve the disks ;)
- Request #78: post under different groups by introducing GROUP_POLICY in config
- Request #77: MONITOR_NZB_FOLDERS = true - also for --auto flag
- Issue #76, use a QTabWidget style for macOS issue
- Adding log to warn about AUTO_COMPRESS
- Issue #73: close the app instead of hanging if nothing to do (cmd)
- recursive rar of a folder when -i AND --compress (cmd)
- Issue #72, support old Qt versions. (tested with v5.5.1)
- Add attribution to David for his yEnc code from NewsUP
- Issue #69 RAR_EXTRA forgotten when PostingJob was introduced...
####################################################
### Release: ngPost v4.11 ###
### date: 2020/08/07 ###
####################################################
- Adding Dutch translation
- PR #66: Make history file separator configurable
- Req #67: display immediate speed (macro __COMPUTE_IMMEDIATE_SPEED__)
- Issue #64: remove pause duration from the avg speed
- Req #61: Allow several servers as command line parameters
- Issue #63: introduce ERR_CODE when issue parsing arguments from command line
- Issue #62: wrong file extension for POST_HISTORY
####################################################
### Release: ngPost v4.9 ###
### date: 2020/07/02 ###
####################################################
- Issue #56, fix PREPARE_PACKING to only start one packing at a time!
- update code to remove deprecated methods of Qt v5.15.0 to be ready for the v6
- upgrade Linux, MacOS and Windows releases to Qt v5.15.0
####################################################
### Release: ngPost v4.8 ###
### date: 2020/06/21 vive la Musique! ###
####################################################
- new config PREPARE_PACKING to parallelize the current upload with the packing of the next one!
- new config NZB_POST_CMD to be able to launch an external CMD with the nzb path
- support Usenet providers that overwrite the Message-IDs of the Articles
- Chinese translation \o/
- few GitHub issues
####################################################
### Release: ngPost v4.7 ###
### date: 2020/04/21 ###
####################################################
- Auto Resume of the Posts when the Network is down
ngPost will keep trying until it's back
cf configs: RESUME_WAIT and NO_RESUME_AUTO
- Add a Timeout on the NntpConnections (default 30 sec, min 5 sec)
it will disconnect and reconnect if we don't receive anything from the server
- Add a Pause / Resume button in the HMI (before the progress bar)
- Refactoring: introduce CmdOrGuiApp for reuse in other apps
####################################################
### Release: ngPost v4.6 ###
### date: 2020/04/14 ###
####################################################
- Memory usage drastic improvement by using C style char *
instead of std::string for the Article subject and body (Issue #33)
- Fix bug with Auto Compress (if not ticked)
- Portuguese translation
- new config RAR_NO_ROOT_FOLDER: Remove root (parent) folder when compressing Folders using RAR
It was always ON by default before. Now it's OFF by default.
It will also only apply if we're posting ONLY ONE folder.
####################################################
### Release: ngPost v4.5 ###
### date: 2020/04/02 ###
####################################################
- remove binaries from git repository. => repo is now 60MB (due to win libs) against 1.9GB before...
binaries will now be uploaded as Release files on GitHub. No need to have them in the repo!!!
- Fix connection retry and potential hang when we get disconnected several times and can't post an Article
- Fix 7z usage (RPI don't have rar)
- new config GEN_FROM: generate new random poster for each post (--auto or --monitor)
- new config NZB_RM_ACCENTS: remove accents and special characters from the nzb file names (by default OFF)
- new config AUTO_CLOSE_TABS: close tabs automatically when a post is finished successfully
- new config AUTO_COMPRESS (or --auto_compress): compress inputs with random name and password and generate par2 (equivalent of --compress --gen_name --gen_pass --gen_par2). In the GUI, all Quick Posts will have the checkboxes ticked.
- new config RAR_PASS: possibility to use always the same password
- possibility to disable some servers ('enabled' keyword in config file for the server sections)
- drag and drop for the Auto Posting Tab and also Right Click (cf the tooltip)
- two levels for the debug info:
1 (--debug) just a few extra logs
2 (--fulldebug) real debug info for me)
####################################################
### Release: ngPost v4.4 ###
### date: 2020/02/18 ###
####################################################
- fix bug on monitoring
- add README_FR.md and ngPost_fr.conf
####################################################
### Release: ngPost v4.3 ###
### date: 2020/02/17 ###
####################################################
- release for old linux 64bit kernels (GLIBC 2.19, Qt v5.8.0, built on Debian 8)
- multi-language support with currently French, German and Spanish
- new config : KEEP_RAR to not delete rar and par2
- new configs: MONITOR_EXT, MONITOR_IGNORE_DIR to filter files on the monitoring mode
- don't overwrite nzb file for monitoring (or --auto in CMD)
- file obfuscation (only from the GUI)
- FTP upload of the nzb and/or HTTP API (cf NZB_UPLOAD_URL)
- auto shutdown (cf SHUTDOWN_CMD), could be use to execute whatever script ;)
- issue #19: Padding of subject in nzb file
####################################################
### Release: ngPost v4.2 ###
### date: 2020/02/02 ###
####################################################
- Monitoring for the HMI \o/ (only one folder although you could use several in CMD)
- correct crash when stopping CMD during rar or par2
- add nzbPath to the HMI. (also inputDir)
- new config MONITOR_NZB_FOLDERS (request/issue #15)
- fix Article retry when error on connection (the current one was previously skipped)
- limit characters allowed in nzb name
- fix rar command on windows for shared folder
####################################################
### Release: ngPost v4.1 ###
### date: 2020/01/28 ###
####################################################
- new architecture design to support properly multi-threading:
introducing the Poster class that holds 2 threads, one for an ArticleBuilder and the other one for Posters (NntpConnections)
This way we ensure that there is the same number of Producer threads than Posters ones (consummers)
The PostingJob::_secureDiskAccess mutex is also taken less time as it is only protecting the reading and not creating the yEnc body anymore
It seems to be stable. To be tested on 10Gbps connection to see if there is a bandwidth improvement and if it's not crashing anymore
- add Folder Monitoring (--monitor) and auto delete the posted files and folders (--rm_posted)
- add RAR_MAX config and "limit rar option" in th GUI
- Use Auto Post parameters when creating the Quick Posts (par2 redundancy, rar size...)
- fix GUI wrong state and crash if Posting failed due to no SSL support or no connection
- fix compilation for Qt < 5.9 (QWidget::setWindowFlag)
- add macro __FORMAT_ARTICLE_BODY_IN_PRODUCER__ for future multi-threaded tests with awsms
- update file separator of the post history file to be a semicolon rather than a coma.
- add latest files first option for GUI Auto Posting scan.
####################################################
### Release: ngPost v3.2 ###
### date: 2020/01/23 ###
####################################################
- Fix bug of wrong password in nzb file when using Auto Posting generation...
- display post size in GB as nowadays people post HD or 4K videos...
####################################################
### Release: ngPost v3.1 ###
### date: 2020/01/22 ###
####################################################
- implement PostingJob to get the posting out of NgPost and thus be able to handle several
- PostingJob queue implemented for both HMI and CMD
- QProcess are now handled asynchronously => no HMI freeze and possible to kill the external processes (rar or par2)
- fix Issue #9: use only one Mutex and make sure we wait the expected Articles are prepared before the Connections start posting
- introduce new config POST_HISTORY where all successful post will add a line with the date, nzb name, rar name and password (cvs format)
- add --auto to the command line
- AutoPostWidget to automate Quick Post creation and start them
####################################################
### Release: ngPost v2.3 ###
### date: 2020/01/19 ###
####################################################
Prepare the HMI to be able to create several Posting Jobs
The implementation will be done if I get some donations for it.
####################################################
### Release: ngPost v2.2 ###
### date: 2020/01/17 ###
####################################################
- release for Raspberry PI (Raspbian armhf)
- support 7-zip compression
- fix / hack to use parpar (as external command)
- add keyword RAR_EXTRA in config file
- ask to overwrite existing nzb file
- refactor NgPost::compressFiles
####################################################
### Release: ngPost v2.1 ###
### date: 2020/01/15 ###
####################################################
- make the architecture thread safe to prevent duplicate articles and potential segfault
- fix completion check of the posting of all Articles of a NntpFile (and log duplicate Article even if there shouldn't be any)
- fix wong published date of the posted files in the nzb
- fix empty groups in nzb file
- use random poster (From) for each article when doing Article's obfuscation
- implement the possibility to compress and generate par2 from the selected files before posting
- rar has been chosen for the compression to allow the automatic decompression with all major readers
- allow rar and par2 name obfuscation
- incorporate par2 to the release
- allow the possibility to choose the par2 cmd and its args (for exemple to use Multipar on Windows)
- add select folder button
- special ListWidget for the list of files with ngPost signature and icons
- add the Save configuration feature
- add Donation button linked to Paypal
- add About button
####################################################
### Release: ngPost v1.7 ###
### date: 2020/01/03 ###
####################################################
- no more slot NgPost::onArticlePosted, instead use inline function (no more segfault)
- introduce debug in cmd (-d or --debug)
- update --disp_progress files to log when finish posting (start is logged in debug mode too)
####################################################
### Release: ngPost v1.6 ###
### date: 2019/12/31 ###
####################################################
- fix segfault within NgPost::onArticlePosted
- introduce option --disp_progress (NONE, BAR, FILES) to avoid displaying progress bar on command line
- generate the poster for the whole post instead of for each Article (so we can find the post in indexers)
- remove file obfuscation (that wasn't implemented) and only let the article one (CAREFUL with it!!!)
####################################################
### Release: ngPost v1.5 ###
### date: 2019/12/22 ###
####################################################
- add -f/-from command line option that was missing
- fix -z/-msg_id option
####################################################
### Release: ngPost v1.4 ###
### date: 2019/12/20 ###
####################################################
- check for updates (parse last version available on GitHUB)
- add debug informations (in case of error posting Articles, telling when we retry posting)
- blank the nzb name when we remove all files in the HMI to do a new post
####################################################
### Release: ngPost v1.3 ###
### date: 2019/12/05 ###
####################################################
- add robustness on posting articles by retrying a number of times if Failure
- new option -r or -retry for that purpose (default value 5)
- allow to stop an ongoing post from the HMI
- add some tooltips for the options (HMI)
- fix potential crash (double deletion of NgPost::_file)
####################################################
### Release: ngPost v1.2 ###
### date: 2019/11/16 ###
####################################################
- switch Linux release to Qt 12.6 LTS (only 64bit available)
- add Windows 32 bit release (Qt 12.5 LTS)
- fix potential crash (always emit a signal for logging as the writting must be done in the HMI thread)
- msg-id format update (more compact without curly brackets)
- default port to 563 if SSL option is checked (especially for command line with server details)
- HMI: fix automatic nzb filename when adding the first file
- HMI: add a button to generate a random nzb password (you should then use it for your encryption password!)
- HMI: add a button to generate a random poster email for the whole post
- update postFiles.sh to manage several files and relative paths
####################################################
### Release: ngPost v1.1 ###
### date: 2019/09/17 ###
####################################################
- Adding minimalist HMI
=> code modification to be able to handle multiple posts one after each other (instead of closing the app)
- build setup file for windows (using Inno Setup)
####################################################
### Release: ngPost v1.0 ###
### date: 2019/08/24 ###
####################################################
First release of the implementation
cf README:
command line usenet poster for binaries developped in C++/QT
it is designed to be as fast as possible and offer all the main features to post data easily and safely.
Here are the main features and advantages of ngPost:
it can use several servers (using config file) with each several connections (supporting ssl)
it is spreading those connection on several threads. By default the number of cores of the station but you can set the number if you fancy.
it is using asynchronous sockets in the upload threads
it is preparing the Articles on the main Thread (yEnc encoding) so the upload threads are always ready to write when they can. (each connections has 2 Articles ready in advance)
it is limiting the disk access to the minimum by opening the files to post only once in the main Thread and processing them sequentially one by one (no need to open several files at the same time)
it can do full obfuscation of the Article Header (subject and msg-id)
it is generating a random uploader for each Article Header (from) but can use a fixed one if desired
it is of course generating the nzb file
it can support multiple files and multiple folders
there is an handler on interruption which means that if you stop it, you'll close properly and generate the nzb for what has been posted
in case of interruption, it will list the files that havn't been uploaded so you can repost only those ones and then manually concatenate the nzb files
you can add meta in the header of the nzb (typically for a password)
...
What it does not:
compress or generate the par2 for a single files (use a script to do it ;))
retry posting articles (not really needed as the msg-id of the articles are generated using UUID (followed by @ that you can configure (by default @ngPost))
retry to connect when a connection is lost as they are all created with the KeepAliveOption set. If we loose all the connections, ngPost close properly and write the nzb file
RQ: you don't need to obfuscate the file names as they will only be used in the nzb file as the obfuscation is done for each Article with a UUID as subject and msg-id.