Skip to content

Commit 3afc1eb

Browse files
committed
v4.8
1 parent dbf1a7b commit 3afc1eb

20 files changed

+2272
-2012
lines changed

README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<img align="left" width="80" height="80" src="https://raw.githubusercontent.com/mbruel/ngPost/master/src/resources/icons/ngPost.png" alt="ngPost">
22

3-
# ngPost v4.7
3+
# ngPost v4.8
44

55
[Pour la version Française cliquez ici ;)](https://github.com/mbruel/ngPost/blob/master/README_FR.md)<br/>
66
<br/>
@@ -11,16 +11,18 @@
1111
it is designed to be **as fast as possible** and offer ALL the main features **to post data easily and safely**.</br>
1212
it can **compress** (using your external rar binary) and **generate the par2** before posting!<br/>
1313
it has a **posting queue** to allow you to prepare several posts (especially using the GUI using Tabs).<br/>
14+
it **packs the next Post while uploading the current one** (compression + par2 generation) <br/>
1415
it can **automate posts** by **scanning folder(s)** and posting each file/folder individually after having them compressed (with a potential random archive name and password) and generated the par2!<br/>
1516
it can **monitor folder(s) to post each new file/folder** individually after having them compressed.<br/>
1617
it can **auto delete files/folders once posted** (only for monitoring with the HMI and with both --auto and --monitor in cmd)<br/>
18+
it can **execute a COMMAND or script after each Post** (cf NZB_POST_CMD in the configuration file)<br/>
1719
it can **switch off the computer** when all the posts are finished<br/>
18-
it is **translated in French, German and Spanish**.
20+
it is **translated in Chinese, English, French, German, Portuguese and Spanish**.
1921

2022

2123
![ngPost_v4.3](https://raw.githubusercontent.com/mbruel/ngPost/master/pics/ngPost_v4.3.png)
2224

23-
[Releases are availables](https://github.com/mbruel/ngPost/releases/tag/v4.7) for: Linux 64bit, Windows (both 32bit and 64bit), MacOS and Raspbian (RPI 4). Soon for Android then iOS...
25+
[Releases are availables](https://github.com/mbruel/ngPost/releases/tag/v4.8) for: Linux 64bit, Windows (both 32bit and 64bit), MacOS and Raspbian (RPI 4). Soon for Android then iOS...
2426

2527
Here are the main features and advantages of ngPost:
2628
- **full obfuscation of the Article Header** : the Subject will be a UUID (as the msg-id) and a random Poster will be used. **Be Careful**, using this, you won't be able to find your post on Usenet (or any Indexers) if you lose the NZB file. But using this method is **completely safe**, **no need to obfuscate your files or even tp use a password**.
@@ -148,17 +150,17 @@ The following ones are for experimented posters:
148150

149151
### Linux 64bit portable release (compiled with Qt v5.12.6)
150152
if you don't want to build it and install the dependencies, you can also the portable release that includes everything.<br/>
151-
- download [ngPost_v4.7-x86_64.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-x86_64.AppImage)
152-
- chmod 755 ngPost_v4.7-x86_64.AppImage
153+
- download [ngPost_v4.8-x86_64.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-x86_64.AppImage)
154+
- chmod 755 ngPost_v4.8-x86_64.AppImage
153155
- launch it using the same syntax than describe in the section above
154156
- if you wish to keep the configuration file, edit the file **~/.ngPost** using [this model](https://raw.githubusercontent.com/mbruel/ngPost/master/ngPost.conf) (don't put the .conf extension)
155157

156-
PS: for older system with GLIBC < 2.24, here is a version compiled on Debian8 with GLIBC 2.19 and Qt v5.8.0: [ngPost_v4.7-x86_64_debian8.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-x86_64_debian8.AppImage)
158+
PS: for older system with GLIBC < 2.24, here is a version compiled on Debian8 with GLIBC 2.19 and Qt v5.8.0: [ngPost_v4.8-x86_64_debian8.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-x86_64_debian8.AppImage)
157159

158160

159161
### Raspbian release (armhf for Raspberry PI)
160-
- download [ngPost_v4.7-armhf.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-armhf.AppImage)
161-
- chmod 755 ngPost_v4.7-armhf.AppImage
162+
- download [ngPost_v4.8-armhf.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-armhf.AppImage)
163+
- chmod 755 ngPost_v4.8-armhf.AppImage
162164
- launch it using the same syntax than describe in the section above
163165
- if you wish to keep the configuration file, edit the file **~/.ngPost** using [this model](https://raw.githubusercontent.com/mbruel/ngPost/master/ngPost.conf) (don't put the .conf extension)
164166

@@ -180,7 +182,7 @@ RAR_EXTRA = -mx0 -mhe=on
180182

181183

182184
### Windows installer
183-
- just use the packager [ngPost_v4.7_x64_setup.exe](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7_x64_setup.exe) or [ngPost_v4.7_x86_setup.exe](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7_x86_setup.exe) for the 32bit version
185+
- just use the packager [ngPost_v4.8_x64_setup.exe](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8_x64_setup.exe) or [ngPost_v4.8_x86_setup.exe](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8_x86_setup.exe) for the 32bit version
184186
- edit **ngPost.conf** (in the installation folder) to add your server settings (you can put several).
185187
- launch **ngPost.exe** (GUI version)
186188
- or you can use it with the command line: **ngPost.exe** -i "your file or directory"
@@ -194,7 +196,7 @@ By default:
194196

195197

196198
### MacOS release built on High Sierra (v10.13)
197-
- download [ngPost_v4.7.dmg](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7.dmg)
199+
- download [ngPost_v4.8.dmg](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8.dmg)
198200
- launch it using the same syntax than describe in the section above
199201
- if you wish to keep the configuration file, edit the file **~/.ngPost** using [this model](https://raw.githubusercontent.com/mbruel/ngPost/master/ngPost.conf) (don't put the .conf extension)
200202

@@ -238,7 +240,7 @@ Here is my email: Matthieu.Bruel@gmail.com
238240

239241

240242
### Supported Languages
241-
For now, ngPost is translated in German, French, Portuguese and Spanish.<br/>
243+
For now, ngPost is translated in Chinese, English, French, German, Portuguese and Spanish.<br/>
242244
If you'd like to translate ngPost in your language, it's easy to do (there is a nice GUI for that: QtLinguist), please get in touch with me (Matthieu.Bruel@gmail.com)
243245

244246

@@ -250,6 +252,7 @@ If you'd like to translate ngPost in your language, it's easy to do (there is a
250252
- noobcoder1983 for the German translation
251253
- tiriclote for the Spanish translation
252254
- hunesco for the Portuguese translation
255+
- Peng for the Chinese translation
253256
- all ngPost users ;)
254257

255258

README_FR.md

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<img align="left" width="80" height="80" src="https://raw.githubusercontent.com/mbruel/ngPost/master/src/resources/icons/ngPost.png" alt="ngPost">
22

3-
# ngPost v4.7
3+
# ngPost v4.8
44

55
ngPost est un posteur pour Usenet en ligne de commande ou via une interface graphique développé en C++11/Qt5.<br/>
66
Il a été conçu pour être le plus rapide possible et offrir toutes les fonctionnalités utiles pour poster facilement et en toute sécurité.<br/>
@@ -9,17 +9,19 @@ Voici la liste des principales fonctionnalités et atouts de ngPost:
99
- **compression** (utilisant rar en tant qu'application externe) et **génération des par2** avant de poster!
1010
- **scan de dossier(s)** afin de poster chaque fichier/dossier individuellement après les avoir compressés
1111
- **surveillance de dossier(s)** afin de poster chaque nouveau fichier/dossier individuellement après les avoir compressés
12+
- **parallélisation de l'upload avec le packing du Post suivant**
1213
- **suppression automatique** des fichiers/dossiers une fois postés (uniquement avec --auto et --monitor)
1314
- génération du **fichier nzb** et écriture d'un **fichier csv d'historique des posts**
1415
- **mode invisible**: obfuscation complète des Articles : impossible de (re)trouver un post sans avoir le fichier nzb
16+
- **exécution d'une commande ou un script une fois les nzb générés**
1517
- possibilité **d'éteindre l'ordinateur** lorsque tous les posts sont finis
16-
- multi-langues (Français, Anglais, Allemand et Espagnol)
18+
- multi-langues (Français, Anglais, Allemand, Espagnol, Portugais, Chinois)
1719
- ...
1820

1921
![ngPost_v4.3](https://raw.githubusercontent.com/mbruel/ngPost/master/pics/ngPost_v4.3.png)
2022

2123

22-
[Les versions pour chacun des OS sont disponibles ici](https://github.com/mbruel/ngPost/releases/tag/v4.7), pour: Linux 64bit, Windows (32bit et 64bit), MacOS et Raspbian (RPI 4). Bientôt pour Android et iOS...
24+
[Les versions pour chacun des OS sont disponibles ici](https://github.com/mbruel/ngPost/releases/tag/v4.8), pour: Linux 64bit, Windows (32bit et 64bit), MacOS et Raspbian (RPI 4). Bientôt pour Android et iOS...
2325

2426

2527
### Fichier de configuration
@@ -187,17 +189,17 @@ Une alternative pour compiler est [d'installer QT](https://www.qt.io/download) e
187189

188190

189191
### version Linux portable: AppImage compilée avec Qt v5.12.6, GLIBC 2.24
190-
- téléchargez [ngPost_v4.7-x86_64.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-x86_64.AppImage)
191-
- chmod 755 ngPost_v4.7-x86_64.AppImage
192+
- téléchargez [ngPost_v4.8-x86_64.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-x86_64.AppImage)
193+
- chmod 755 ngPost_v4.8-x86_64.AppImage
192194
- si vous le lancez sans paramètres, l'interface graphique s'ouvrira, sinon c'est en mode ligne de commande. (cf ngPost --help -l fr)
193195
- pour le fichier de configuration, éditez le fichier **~/.ngPost** et copiez [ce modèle](https://raw.githubusercontent.com/mbruel/ngPost/master/ngPost_fr.conf) (ne pas mettre l'extension .conf!)
194196

195-
PS: pour des systèmes plus vieux GLIBC < 2.24, voici une version compilée sous Debian8 avec GLIBC 2.19 et Qt v5.8.0: [ngPost_v4.7-x86_64_debian8.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-x86_64_debian8.AppImage)
197+
PS: pour des systèmes plus vieux GLIBC < 2.24, voici une version compilée sous Debian8 avec GLIBC 2.19 et Qt v5.8.0: [ngPost_v4.8-x86_64_debian8.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-x86_64_debian8.AppImage)
196198

197199

198200
### version Raspbian portable (armhf pour Raspberry PI)
199-
- téléchargez [ngPost_v4.7-armhf.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-armhf.AppImage)
200-
- chmod 755 ngPost_v4.7-armhf.AppImage
201+
- téléchargez [ngPost_v4.8-armhf.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-armhf.AppImage)
202+
- chmod 755 ngPost_v4.8-armhf.AppImage
201203
- si vous le lancez sans paramètres, l'interface graphique s'ouvrira, sinon c'est en mode ligne de commande. (cf ngPost --help -l fr)
202204
- pour le fichier de configuration, éditez le fichier **~/.ngPost** et copiez [ce modèle](https://raw.githubusercontent.com/mbruel/ngPost/master/ngPost_fr.conf) (ne pas mettre l'extension .conf!)
203205

@@ -218,15 +220,15 @@ RAR_EXTRA = -mx0 -mhe=on
218220
</pre>
219221

220222
### Windows installer
221-
- Utilisez l'installeur [ngPost_v4.7_x64_setup.exe](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7_x64_setup.exe) ou [ngPost_v4.7_x86_setup.exe](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7_x86_setup.exe) pour la version 32bit
223+
- Utilisez l'installeur [ngPost_v4.8_x64_setup.exe](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8_x64_setup.exe) ou [ngPost_v4.8_x86_setup.exe](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8_x86_setup.exe) pour la version 32bit
222224
- lancez l'application **ngPost.exe**, l'interface graphique s'ouvrira. Changez tous vos paramètres dont la langue puis cliquez sur **sauver**
223225
- vous pouvez bien sûr ensuite l'utiliser en ligne de commande. cf ngPost --help
224226

225227
**Know Issue with non SSL support:** you may need to install [msvc2015 redistribuables](https://www.microsoft.com/en-us/download/details.aspx?id=48145) as libssl depends on its APIs<br/>
226228

227229

228230
### MacOS release built on High Sierra (v10.13)
229-
- téléchargez [ngPost_v4.7.dmg](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7.dmg)
231+
- téléchargez [ngPost_v4.8.dmg](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8.dmg)
230232
- si vous le lancez sans paramètres, l'interface graphique s'ouvrira, sinon c'est en mode ligne de commande. (cf ngPost --help -l fr)
231233
- pour le fichier de configuration, éditez le fichier **~/.ngPost** et copiez [ce modèle](https://raw.githubusercontent.com/mbruel/ngPost/master/ngPost_fr.conf) (ne pas mettre l'extension .conf!)
232234

@@ -262,16 +264,17 @@ Voici une liste des posteurs alternatif sur le [github de Nyuu](https://github.c
262264

263265

264266
### Questions / Issues / Requests
265-
- if you've any troubles to build or run ngPost, feel free to drop me an email
266-
- if you've some comments on the code, any questions on the implementation or any proposal for improvements, I'll be happy to discuss it with you so idem, feel free to drop me an email
267-
- if you'd like some other features, same same (but different), drop me an email ;)
268-
269-
Here is my email: Matthieu.Bruel@gmail.com
267+
n'hésitez pas à m'envoyer un mail
268+
- si vous avez un problème pour compiler ou lancer ngPost
269+
- si vous avez des commentaires sur le code, des questions sur l'implémentation ou des propositions d'amélioration.
270+
- si vous avez des idées pour de nouvelles fonctionalités.
271+
<br/>
272+
Voici mon email: Matthieu.Bruel@gmail.com
270273

271274

272275
### Supported Languages
273-
For now, ngPost is translated in German, French, Portuguese and Spanish.<br/>
274-
If you'd like to translate ngPost in your language, it's easy to do (there is a nice GUI for that: QtLinguist), please get in touch with me (Matthieu.Bruel@gmail.com)
276+
Pour l'instant ngPost est traduit en Anglais, Allemand, Chinois, Espagnol, Français et Portugais.<br/>
277+
Si vous shouhaitez le traduire dans une autre langue, c'est très simple (Qt fourni un GUI pour cela: QtLinguist), contactez moi pour plus d'information (Matthieu.Bruel@gmail.com)
275278

276279

277280
### Thanks
@@ -282,12 +285,14 @@ If you'd like to translate ngPost in your language, it's easy to do (there is a
282285
- noobcoder1983 for the German translation
283286
- tiriclote for the Spanish translation
284287
- hunesco for the Portuguese translation
288+
- Peng for the Chinese translation
285289
- all ngPost users ;)
286290

287291

288292
### Donations
289-
I'm Freelance nowadays, working on several personal projects, so if you use the app and would like to contribute to the effort, feel free to donate what you can.<br/>
293+
Je suis Freelance (auto-entrepreneur) depuis fin 2019, travaillant sur plusieurs projets perso. Si vous utilisez ngPost et que vous souhaitez contribuer à l'effort et sa future évolution, merci de penser à faire une petite donation.<br/>
290294
<br/>
291295
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=W2C236U6JNTUA&item_name=ngPost&currency_code=EUR"><img align="left" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" alt="ex0days"></a>
292-
or in Bitcoin at this address: **3BGbnvnnBCCqrGuq1ytRqUMciAyMXjXAv6**
296+
ou en Bitcoin à cette adresse: **3BGbnvnnBCCqrGuq1ytRqUMciAyMXjXAv6**
293297
<img align="right" align="bottom" width="120" height="120" src="https://raw.githubusercontent.com/mbruel/ngPost/master/pics/btc_qr.gif" alt="ngPost_QR">
298+

ngPost.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
#
44

5-
## Lang for the app. Currently supported: EN, FR, ES, DE
5+
## Lang for the app. Currently supported: EN, FR, ES, DE, PT, ZH
66
lang = EN
77

88
## destination folder for all your nzb

release_notes.txt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,30 @@
88

99

1010

11-
TODO: implement NZB_POST_CMD to be able to launch an external CMD with the nzb path
12-
1311
TODO: --nfo option (cf github issue #10 and NewsUp dev)
1412

1513
TODO: include ParPar instead of par2cmdline?
1614

1715
TODO: auto RAR size and par2 parameters depending on the inputs size?
1816

1917

18+
####################################################
19+
### Release: ngPost v4.8 ###
20+
### date: 2020/06/?? ###
21+
####################################################
22+
23+
- new config PREPARE_PACKING to parallelize the current upload with the packing of the next one!
24+
25+
- new config NZB_POST_CMD to be able to launch an external CMD with the nzb path
26+
27+
- support Usenet providers that overwrite the Message-IDs of the Articles
28+
29+
- Chinese translation \o/
30+
31+
- few GitHub issues
32+
33+
34+
2035
####################################################
2136
### Release: ngPost v4.7 ###
2237
### date: 2020/04/21 ###

src/NgPost.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@ void NgPost::_prepareNextPacking()
722722
{
723723
_packingJob = _pendingJobs.first();
724724
if (_packingJob->hasCompressed())
725-
emit _packingJob->startPosting();
725+
emit _packingJob->startPosting(false);
726726
}
727727
}
728728

@@ -787,7 +787,7 @@ void NgPost::onPostingJobFinished()
787787
_error("next active job different to the packing one..."); // should never happen...
788788
}
789789
else
790-
emit _activeJob->startPosting();
790+
emit _activeJob->startPosting(true);
791791
}
792792
else if (_doShutdownWhenDone && !_shutdownCmd.isEmpty())
793793
{
@@ -1046,9 +1046,9 @@ bool NgPost::parseCommandLine(int argc, char *argv[])
10461046

10471047
if (parser.isSet(sOptionNames[Opt::AUTO_DIR]))
10481048
{
1049-
if (!parser.isSet(sOptionNames[Opt::COMPRESS]))
1049+
if (!_autoCompress && !parser.isSet(sOptionNames[Opt::COMPRESS]))
10501050
{
1051-
_error("Error syntax: --auto only works with --compress");
1051+
_error("Error syntax: --auto only works with --compress or AUTO_COMPRESS in config");
10521052
return false;
10531053
}
10541054
for (const QString &filePath : parser.values(sOptionNames[Opt::AUTO_DIR]))
@@ -1941,7 +1941,7 @@ bool NgPost::startPostingJob(PostingJob *job)
19411941
else
19421942
{
19431943
_activeJob = job;
1944-
emit job->startPosting();
1944+
emit job->startPosting(true);
19451945
return true;
19461946
}
19471947
}

src/PostingJob.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ PostingJob::PostingJob(NgPost *ngPost,
8686
_secureDiskAccess(), _posters(),
8787
_overwriteNzb(overwriteNzb),
8888
_grpList(grpList), _groups(groups), _from(from),
89-
_use7z(false), _isPaused(false), _resumeTimer()
89+
_use7z(false), _isPaused(false), _resumeTimer(), _isActiveJob(false)
9090
{
9191
#ifdef __DEBUG__
9292
qDebug() << "[PostingJob] >>>> Construct " << this;
@@ -172,8 +172,10 @@ void PostingJob::onResumeTriggered()
172172
}
173173
}
174174

175-
void PostingJob::onStartPosting()
175+
void PostingJob::onStartPosting(bool isActiveJob)
176176
{
177+
_isActiveJob = isActiveJob;
178+
177179
if (_postWidget)
178180
_log(tr("<h3>Start Post #%1: %2</h3>").arg(_postWidget->jobNumber()).arg(_nzbName));
179181
else
@@ -1092,18 +1094,16 @@ void PostingJob::onExtProcReadyReadStandardOutput()
10921094
{
10931095
if (_ngPost->debugMode())
10941096
_log(_extProc->readAllStandardOutput(), false);
1095-
else
1097+
else if (_isActiveJob)
10961098
{
10971099
if (!_limitProcDisplay || ++_nbProcDisp%42 == 0)
10981100
_log("*", false);
10991101
}
1100-
// qApp->processEvents();
11011102
}
11021103

11031104
void PostingJob::onExtProcReadyReadStandardError()
11041105
{
11051106
_error(_extProc->readAllStandardError());
1106-
// qApp->processEvents();
11071107
}
11081108

11091109

src/PostingJob.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ class PostingJob : public QObject
144144

145145
QTimer _resumeTimer;
146146

147+
bool _isActiveJob;
148+
147149

148150
public:
149151
PostingJob(NgPost *ngPost,
@@ -210,7 +212,7 @@ class PostingJob : public QObject
210212

211213

212214
signals:
213-
void startPosting(); //!< connected to onStartPosting (to be able to run on a different Thread)
215+
void startPosting(bool isActiveJob); //!< connected to onStartPosting (to be able to run on a different Thread)
214216
void stopPosting();
215217

216218
void postingStarted(); //!< emitted at the end of onStartPosting
@@ -229,7 +231,7 @@ public slots:
229231
void onStopPosting(); //!< for HMI
230232

231233
private slots:
232-
void onStartPosting();
234+
void onStartPosting(bool isActiveJob);
233235
void onDisconnectedConnection(NntpConnection *con);
234236

235237
void onNntpFileStartPosting();

0 commit comments

Comments
 (0)