Skip to content

Commit

Permalink
v4.8
Browse files Browse the repository at this point in the history
  • Loading branch information
mbruel committed Jun 21, 2020
1 parent dbf1a7b commit 3afc1eb
Show file tree
Hide file tree
Showing 20 changed files with 2,272 additions and 2,012 deletions.
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<img align="left" width="80" height="80" src="https://raw.githubusercontent.com/mbruel/ngPost/master/src/resources/icons/ngPost.png" alt="ngPost">

# ngPost v4.7
# ngPost v4.8

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


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

[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...
[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...

Here are the main features and advantages of ngPost:
- **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**.
Expand Down Expand Up @@ -148,17 +150,17 @@ The following ones are for experimented posters:

### Linux 64bit portable release (compiled with Qt v5.12.6)
if you don't want to build it and install the dependencies, you can also the portable release that includes everything.<br/>
- download [ngPost_v4.7-x86_64.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-x86_64.AppImage)
- chmod 755 ngPost_v4.7-x86_64.AppImage
- download [ngPost_v4.8-x86_64.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-x86_64.AppImage)
- chmod 755 ngPost_v4.8-x86_64.AppImage
- launch it using the same syntax than describe in the section above
- 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)

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)
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)


### Raspbian release (armhf for Raspberry PI)
- download [ngPost_v4.7-armhf.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-armhf.AppImage)
- chmod 755 ngPost_v4.7-armhf.AppImage
- download [ngPost_v4.8-armhf.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-armhf.AppImage)
- chmod 755 ngPost_v4.8-armhf.AppImage
- launch it using the same syntax than describe in the section above
- 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)

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


### Windows installer
- 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
- 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
- edit **ngPost.conf** (in the installation folder) to add your server settings (you can put several).
- launch **ngPost.exe** (GUI version)
- or you can use it with the command line: **ngPost.exe** -i "your file or directory"
Expand All @@ -194,7 +196,7 @@ By default:


### MacOS release built on High Sierra (v10.13)
- download [ngPost_v4.7.dmg](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7.dmg)
- download [ngPost_v4.8.dmg](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8.dmg)
- launch it using the same syntax than describe in the section above
- 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)

Expand Down Expand Up @@ -238,7 +240,7 @@ Here is my email: [email protected]


### Supported Languages
For now, ngPost is translated in German, French, Portuguese and Spanish.<br/>
For now, ngPost is translated in Chinese, English, French, German, Portuguese and Spanish.<br/>
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 ([email protected])


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


Expand Down
43 changes: 24 additions & 19 deletions README_FR.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<img align="left" width="80" height="80" src="https://raw.githubusercontent.com/mbruel/ngPost/master/src/resources/icons/ngPost.png" alt="ngPost">

# ngPost v4.7
# ngPost v4.8

ngPost est un posteur pour Usenet en ligne de commande ou via une interface graphique développé en C++11/Qt5.<br/>
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/>
Expand All @@ -9,17 +9,19 @@ Voici la liste des principales fonctionnalités et atouts de ngPost:
- **compression** (utilisant rar en tant qu'application externe) et **génération des par2** avant de poster!
- **scan de dossier(s)** afin de poster chaque fichier/dossier individuellement après les avoir compressés
- **surveillance de dossier(s)** afin de poster chaque nouveau fichier/dossier individuellement après les avoir compressés
- **parallélisation de l'upload avec le packing du Post suivant**
- **suppression automatique** des fichiers/dossiers une fois postés (uniquement avec --auto et --monitor)
- génération du **fichier nzb** et écriture d'un **fichier csv d'historique des posts**
- **mode invisible**: obfuscation complète des Articles : impossible de (re)trouver un post sans avoir le fichier nzb
- **exécution d'une commande ou un script une fois les nzb générés**
- possibilité **d'éteindre l'ordinateur** lorsque tous les posts sont finis
- multi-langues (Français, Anglais, Allemand et Espagnol)
- multi-langues (Français, Anglais, Allemand, Espagnol, Portugais, Chinois)
- ...

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


[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...
[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...


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


### version Linux portable: AppImage compilée avec Qt v5.12.6, GLIBC 2.24
- téléchargez [ngPost_v4.7-x86_64.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-x86_64.AppImage)
- chmod 755 ngPost_v4.7-x86_64.AppImage
- téléchargez [ngPost_v4.8-x86_64.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-x86_64.AppImage)
- chmod 755 ngPost_v4.8-x86_64.AppImage
- 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)
- 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!)

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)
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)


### version Raspbian portable (armhf pour Raspberry PI)
- téléchargez [ngPost_v4.7-armhf.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7-armhf.AppImage)
- chmod 755 ngPost_v4.7-armhf.AppImage
- téléchargez [ngPost_v4.8-armhf.AppImage](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8-armhf.AppImage)
- chmod 755 ngPost_v4.8-armhf.AppImage
- 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)
- 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!)

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

### Windows installer
- 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
- 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
- lancez l'application **ngPost.exe**, l'interface graphique s'ouvrira. Changez tous vos paramètres dont la langue puis cliquez sur **sauver**
- vous pouvez bien sûr ensuite l'utiliser en ligne de commande. cf ngPost --help

**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/>


### MacOS release built on High Sierra (v10.13)
- téléchargez [ngPost_v4.7.dmg](https://github.com/mbruel/ngPost/releases/download/v4.7/ngPost_v4.7.dmg)
- téléchargez [ngPost_v4.8.dmg](https://github.com/mbruel/ngPost/releases/download/v4.8/ngPost_v4.8.dmg)
- 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)
- 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!)

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


### Questions / Issues / Requests
- if you've any troubles to build or run ngPost, feel free to drop me an email
- 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
- if you'd like some other features, same same (but different), drop me an email ;)

Here is my email: [email protected]
n'hésitez pas à m'envoyer un mail
- si vous avez un problème pour compiler ou lancer ngPost
- si vous avez des commentaires sur le code, des questions sur l'implémentation ou des propositions d'amélioration.
- si vous avez des idées pour de nouvelles fonctionalités.
<br/>
Voici mon email: [email protected]


### Supported Languages
For now, ngPost is translated in German, French, Portuguese and Spanish.<br/>
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 ([email protected])
Pour l'instant ngPost est traduit en Anglais, Allemand, Chinois, Espagnol, Français et Portugais.<br/>
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 ([email protected])


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


### Donations
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/>
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/>
<br/>
<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>
or in Bitcoin at this address: **3BGbnvnnBCCqrGuq1ytRqUMciAyMXjXAv6**
ou en Bitcoin à cette adresse: **3BGbnvnnBCCqrGuq1ytRqUMciAyMXjXAv6**
<img align="right" align="bottom" width="120" height="120" src="https://raw.githubusercontent.com/mbruel/ngPost/master/pics/btc_qr.gif" alt="ngPost_QR">

2 changes: 1 addition & 1 deletion ngPost.conf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
#

## Lang for the app. Currently supported: EN, FR, ES, DE
## Lang for the app. Currently supported: EN, FR, ES, DE, PT, ZH
lang = EN

## destination folder for all your nzb
Expand Down
19 changes: 17 additions & 2 deletions release_notes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,30 @@



TODO: implement NZB_POST_CMD to be able to launch an external CMD with the nzb path

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.8 ###
### date: 2020/06/?? ###
####################################################

- 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 ###
Expand Down
10 changes: 5 additions & 5 deletions src/NgPost.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -722,7 +722,7 @@ void NgPost::_prepareNextPacking()
{
_packingJob = _pendingJobs.first();
if (_packingJob->hasCompressed())
emit _packingJob->startPosting();
emit _packingJob->startPosting(false);
}
}

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

if (parser.isSet(sOptionNames[Opt::AUTO_DIR]))
{
if (!parser.isSet(sOptionNames[Opt::COMPRESS]))
if (!_autoCompress && !parser.isSet(sOptionNames[Opt::COMPRESS]))
{
_error("Error syntax: --auto only works with --compress");
_error("Error syntax: --auto only works with --compress or AUTO_COMPRESS in config");
return false;
}
for (const QString &filePath : parser.values(sOptionNames[Opt::AUTO_DIR]))
Expand Down Expand Up @@ -1941,7 +1941,7 @@ bool NgPost::startPostingJob(PostingJob *job)
else
{
_activeJob = job;
emit job->startPosting();
emit job->startPosting(true);
return true;
}
}
Expand Down
10 changes: 5 additions & 5 deletions src/PostingJob.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ PostingJob::PostingJob(NgPost *ngPost,
_secureDiskAccess(), _posters(),
_overwriteNzb(overwriteNzb),
_grpList(grpList), _groups(groups), _from(from),
_use7z(false), _isPaused(false), _resumeTimer()
_use7z(false), _isPaused(false), _resumeTimer(), _isActiveJob(false)
{
#ifdef __DEBUG__
qDebug() << "[PostingJob] >>>> Construct " << this;
Expand Down Expand Up @@ -172,8 +172,10 @@ void PostingJob::onResumeTriggered()
}
}

void PostingJob::onStartPosting()
void PostingJob::onStartPosting(bool isActiveJob)
{
_isActiveJob = isActiveJob;

if (_postWidget)
_log(tr("<h3>Start Post #%1: %2</h3>").arg(_postWidget->jobNumber()).arg(_nzbName));
else
Expand Down Expand Up @@ -1092,18 +1094,16 @@ void PostingJob::onExtProcReadyReadStandardOutput()
{
if (_ngPost->debugMode())
_log(_extProc->readAllStandardOutput(), false);
else
else if (_isActiveJob)
{
if (!_limitProcDisplay || ++_nbProcDisp%42 == 0)
_log("*", false);
}
// qApp->processEvents();
}

void PostingJob::onExtProcReadyReadStandardError()
{
_error(_extProc->readAllStandardError());
// qApp->processEvents();
}


Expand Down
6 changes: 4 additions & 2 deletions src/PostingJob.h
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,8 @@ class PostingJob : public QObject

QTimer _resumeTimer;

bool _isActiveJob;


public:
PostingJob(NgPost *ngPost,
Expand Down Expand Up @@ -210,7 +212,7 @@ class PostingJob : public QObject


signals:
void startPosting(); //!< connected to onStartPosting (to be able to run on a different Thread)
void startPosting(bool isActiveJob); //!< connected to onStartPosting (to be able to run on a different Thread)
void stopPosting();

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

private slots:
void onStartPosting();
void onStartPosting(bool isActiveJob);
void onDisconnectedConnection(NntpConnection *con);

void onNntpFileStartPosting();
Expand Down
Loading

0 comments on commit 3afc1eb

Please sign in to comment.