NNTPGrab Changelog

What's new in NNTPGrab 0.7.1

Nov 14, 2011
  • Added Turkish translation
  • Updated the French translation
  • Various messages coming from the NNTPGrab Core didn't get translated in the Qt frontend. Fixed
  • When an error occurs while a NZB file is imported an incomplete message would get shown in the Qt frontend. Fixed
  • Added support to check the maintenance status of the Online Search service so that user-friendly messages can be shown when the Online Search service is down for maintenance
  • When trying to unpack an password-protected archive let the user know that they have to manually unpack the archive as NNTPGrab doesn't support unpacking password-protected archives yet
  • The NNTPGrab Qt Server could crash when a file changed state. Fixed. Bug #87
  • Clicking on the 'Connect' button in the startup dialog could cause an assertion error when using GTK3. Fixed

New in NNTPGrab 0.7.0 (Sep 19, 2011)

  • PAR2 files will now only be downloaded when really necessary
  • Improved look-and-feel on Windows and Mac OS X due to the use of Qt
  • The integrated search service is back operational again and heavily optimized
  • Downloading using SSL is fast than before
  • Due to various optimalisations the maximum download speed the program can achieve is increased
  • Various manipulations in the download queue are now much faster than before (note: users of an older version of NNTPGrab need to complete their old downloads first before updating to this new version because of an incompatibility between the old and the new file format)
  • Added support for GTK3 (part of GNOME 3)
  • Added support to automatically remove collections from the download queue after a successful download
  • Added an option called 'Send GROUP command before downloading' which can be used for certain buggy usenet servers

New in NNTPGrab 0.7 Beta 3 (Jul 20, 2011)

  • General changes:
  • Implemented a new option: Automatically remove collections from the download queue once the download has completed. Feature #37
  • Implemented a new option: Send GROUP command before downloading. Some buggy usenet servers seem to require such a feature (such as Ziggo)
  • Updated the Online Search code to be much more efficient then before. From now on information about files which are in a collection will only be retrieved on demand
  • Improved the testsuite by porting all testcases to the GTester framework and adding various new testcases
  • Various bugfixes and optimalisations in the download queue logic
  • Always print debugging messages when we're using Win32/Win64 or Mac OS X. On all other platforms, check whether the environment variable NNTPGRAB_DEBUG is set before enabling debugging messages in the console
  • Don't try to import old .nzb files on Mac OS X when a new .nzb file is detected in the auto import folder
  • Changes in the NNTPGrab Core:
  • Downloading using SSL wasn't working anymore when using GNUTLS 2.8.0 or higher due to API changes. Bug #64
  • Added a small optimalization to the nntpconnection_read_msg function by dropping some duplicate code
  • The download queue could get stuck in the suspended state when all login attempts failed. Fixed
  • As of GLib 2.27.1, the behaviour of g_get_user_data_dir() was changed to return a different value. Provide an upgrade path for Win32/Win64 users so that their configuration won't get lost due to this change. Bug #66
  • When making changes to the download queue, write back those changes to a tempory file first before replacing the original file. This prevents the possibility of the download queue becoming corrupt when the disk is full
  • Added support for multiple connection backends
  • Added a new connection backend called 'gio' which is based on GLib-GIO and can optionally use glib-networking for SSL/TLS support
  • Optimzed the retrieval of tasks from the download queue by caching the last known task per server. This eliminates the need to navigate through the entire download queue for every time that a new task is requested by the download thread
  • Changes in the Glue layer:
  • Processing signals while being connected to a NNTPGrab Server was broken as of GLib 2.27.4. Fixed
  • Changes in the Online Search:
  • Fixed an issue in the Online Search where files with a size between 2GB and 4GB weren't displayed correctly
  • Changes in the Qt frontend:
  • When moving files/collections in the download queue to the top or up which are already at the top a 'beginMoveRows failed' message could get shown. Fixed. The same also applies to files/collections which are already at the bottom
  • Allow the Qt frontend to build when Qt 4.5.0 or older is installed
  • Added support for 'shadow builds' in the Qt frontend
  • Use a bundled copy of the QtLockedFile and QtSingleApplication classes which will be used by the Qt frontend when no system-wide installed version can be found
  • Prevent the user being spammed with 'buffer too small' messages. Patch by swsnyder
  • Improved selecting files to be used during a NZB import. Bug #62. Patch by slayeriq
  • Save and restory geometry of the program window. Feature #65. Patch by tg1311
  • Show the correct timestamp for collections in the download queue
  • Convert all strings coming from the NNTPGrab Core to the QString native character encoding (which isn't UTF-8 on Windows). This fixes an issue where names of collections and files could get malformed if they contain non-UTF8 characters. Bug #72
  • Fixed a possible assertion error on Win32/Win64. Bug #75
  • The configuration settings of the Qt frontend were saved in the wrong location on Win32/Win64. Fixed
  • Fixed an issue where the window could disappear on Win32/Win64 when the tray icon is disabled
  • Changes in the GTK frontend:
  • Added support for GTK 3.x
  • Showing the debug window in standalone mode was broken. Fixed
  • If auto-import gets triggered when the GTK frontend is running, a harmless error could get shown indicating that the import failed (even though it succeeded). Fixed
  • Changes in the JSON-RPC plugin:
  • When importing files with special characters, some invalid JSON-RPC messages could get sent to external frontends. Fixed
  • Add a Content-Length header to HTTP requests. Patch by chrashoverraid. Bug #74
  • When connecting to a NNTPGrab Server using the 32bit Windows frontend, the server could crash. Fixed. Bug #70
  • Don't crash when in invalid jsonrpc request is being parsed. Bug #79

New in NNTPGrab 0.7 Beta 2 (Dec 21, 2010)

  • General changes:
  • Made the Qt frontend the default frontend for Win32, Win64 and OSX environments
  • Added a new ./configure option: --disable-par2cmdline-check
  • Only show the filename without the complete path in the GUI while repairing and unpacking files
  • Added support for GNUTLS instead of OpenSSL
  • Made the various libraries compatible with recent versions of gobject-introspection
  • Added support to shut down the system when using KDE
  • Reduced some overhead between the glue layer and the frontends
  • Allow frontends to indicate whether they want to receive log messages or not (disabled by default). This reduces the load in regular environments
  • Changes in the NNTPGrab Core:
  • When the user changes the 'Temp directory' in the configuration all downloads didn't get decoded properly until the program was restarted. Fixed
  • On some environments the program could give an 'Unable to resolve dependency' error on startup of the program. Fixed. Bug #49
  • A harmless error message could get shown on startup on Win32/Win64 due to an older version of the example plugin being bundled in the NNTPGrab 0.6.90 setup. Fixed
  • Automatic shutdown didn't work when the download queue contained 'Skipped' tasks. Fixed
  • Refuse to accept configuration changes when the download folder, temp folder or automatic import folder refer to invalid paths
  • A regression got introduced in NNTPGrab 0.6.2 which caused configuration changes in the port number of usenet servers to be ignored on Win32/Win64. Fixed
  • Fixed an compile error which could occur when using the ./configure argument --disable-ssl
  • Single file archives didn't get deleted automatically after an unpack. Fixed
  • Added the characters '' to the list of forbidden characters in collection names
  • A regression was introduced in NNTPGrab 0.6.90 which causes the PAR2 repair to fail when using par2cmdline (instead of par2_tbb). Fixed. Bug #52
  • Optimized the measuring of the download speed by using atomic operations instead of mutex operations
  • Fixed a race condition in the core library which could cause some warnings
  • Fixed an issue which could cause the initialisation of the NNTPGrab Core to succeed even if there was an error
  • Fixed a possible schedular deadlock which could be triggered when an error during the decoding has occured
  • Don't emit a log message whenever a throttle action occurs
  • Changes in the JSON-RPC plugin:
  • Implemented importing NZB files using a HTTP POST request in the embedded webserver. Feature #10
  • Added a new JSON-RPC function called 'schedular_foreach_task' which is much more scalable than the original 'schedular_get_all_tasks' function. Fixes #53
  • From now on an error message will be returned when a JSON-RPC method is called which doesn't exist
  • Marking files optional/non-optional using the JSON-RPC interface was broken. Fixed
  • Increased the recv buffer for requests in the JSON-RPC plugin from 64K to 512K. Should reduce the chance that clients get disconnected with a 'Too long request received' error
  • Changes in the Qt frontend:
  • Added support to connect to a NNTPGrab Server
  • Implemented the traffic monitor in the Qt frontend
  • Made the "Don't show this dialog again" checkbox in the connect screen operational
  • Added support for the Online Search
  • Implemented the Automatic PAR2 and Unpack tab
  • Implemented everything in the Configuration tab
  • Completed the implementation of the 'Manage Plugins' window
  • Automatically load all 'auto-load' plugins on startup
  • Added the --debug command line parameter
  • Implemented the tray icon
  • Implemented automatic import
  • Give the window a nice icon
  • Hide the configuration parts for the JSON-RPC and Logger plugins when they aren't loaded
  • Automatically save the download queue after a successfull NZB import
  • Renamed the toolbar button 'Enable automatic shutdown' to 'Automatic shutdown' to save some space
  • Implemented the 'Automatic Shutdown' feature
  • Automatically close the debug window (if it's visible) when the main window is closed
  • Implemented showing/hiding columns in the download queue
  • Implemented the 'hide inactive connections' configuration option
  • Only allow the Qt frontend to be running once at the same time
  • If another instance of the Qt frontend is detected, automatically give it focus
  • Implemented opening NZB files from the command line
  • Enabled showing the estimated time remaining and time to finish for all individual files in the download queue
  • Show the download queue using a QTreeView instead of a QTreeWidget for bettter performance
  • Fixed a bug where the calculation of the estimated time required didn't work correctly when having multiple collections
  • A crash could occur in the Qt frontend when disabling one of the configured servers while a download is still active. Fixed
  • Sanitize the collection name before importing files
  • When marking a file which is currently being downloaded as 'skipped', the file size remaining wouldn't get reset. Fixed
  • The 'Enable intelligent PAR2 downloader' configuration option was broken. Fixed
  • Changes in the GTK frontend:
  • Re-added support to kill the NNTPGrab Server from a connected frontend
  • Added support for libnotify 0.7
  • Hide the configuration parts for the JSON-RPC and Logger plugins when they aren't loaded
  • Fixed a deadlock which occured in the GTK GUI when the NNTPGrab Server disappears or when a protocol error occured
  • When marking a file which is currently being downloaded as 'skipped', the file size remaining wouldn't get reset. Fixed
  • When the connection to a NNTPGrab Server is lost, the program would disappear immediately. Changed this behaviour by showing an error dialog and waiting for the user to close it before closing the entire program
  • Fixed some Gtk-Critical warnings in the GTK GUI which could occur on configuration changes
  • Notifications were broken. Fixed
  • Fixed a possible segfault while starting the GTK frontend
  • When the configuration option 'hide inactive connections' is set in the GTK GUI then some invalid data could get shown in the connections overview (like messages belonging to another connection). Fixed

New in NNTPGrab 0.7 Beta 1 (Aug 23, 2010)

  • Added a new feature: Only download PAR2 files when needed. People upgrading from older versions of NNTPGrab may need to enable this feature in the configuration first. Feature #1
  • Files can be marked optional/non-optional in the GUI by right-clicking on them and selecting the appropriate option
  • Improved the performance of download queue manipulations by replacing the SQLite-based download queue with a custom file format. Download queues created with older versions of NNTPGrab won't get converted so make sure to complete your download queue before upgrading to this version. Feature #3
  • Added a preview of a new NNTPGrab frontend written in Qt. This will replace the original GTK frontend on Win32/Win64 and Mac OS X environments as it provides a more native look and feel for those platforms. Thanks go out to chrashoverraid and tg1311 for helping out with this frontend! Feature #2
  • The integrated search engine is operational again
  • Added 'Select all' / 'Select none' buttons to the integrated search engine
  • Show all possible connections in the connections overview instead of only the active ones (a configuration option has been added to restore the old behaviour)
  • Dropped the GtkHTML dependency by rewriting the update check in the GTK GUI. Feature #19
  • Added support for GTK 3 (and prefer it over GTK 2 when both are available)
  • Added GObject-Introspection support which makes it easier to control NNTPGrab using different programming languages (like Javascript and Python). See http://live.gnome.org/GObjectIntrospection for more details
  • Improved developer documentation by using gtk-doc. This can be found at http://www.nntpgrab.nl/embedded/nntpgrab/docs/index.html
  • Dropped (optional) libgnome dependency
  • Improved the handling of startup failures
  • Added two new environment variables which can be used to influence some default settings: NNTPGRAB_CONFIG_DIR and NNTPGRAB_DEFAULT_DL_DIR. These environment variables are needed for environments like the Fonera. Feature #4
  • Allow features to be disable in the ./configure script. Feature #30
  • Fixed a compile error when using ./configure --disable-ssl
  • Dropped the libxml2 dependency from the NNTPGrab Core to avoid bloat for embedded environments. Feature #30
  • Before decoding files, make sure that the filename is in the UTF-8 charset. If this isn't the case try to convert the filename from Windows-1252 to UTF-8 first. Fixes #34
  • Ensure that the output of par2cmdline is UTF-8 before processing it. Should fix 'unknown state for PAR2 message' notification which could occur on files which are in the Windows-1252 character encoding
  • Read data from SSL connections in 16KB blocks. Should stabilize the connection a bit
  • In some situations connections could hang at 99%. Fixed
  • When disk space is low, the message 'nntpconnection.c:995 Unable to write article data to file: Success' could get shown. Fixed
  • Fixed various memory leaks in the NNTPGrab Core which occured while importing files
  • Fixed a possible race condition when using libproxy for the first time
  • Added a workaround for a Win32-specific bug in par2cmdline which could cause the PAR2 repair progress bar to keep moving infinitely
  • When par2cmdline exited unexpectedly, the progressbar in the GUI could keep going on. Fixed
  • Don't automatically remove the PAR2 files when par2cmdline was aborted unexpectedly
  • The program could crash on Linux environments when the user closes the program while a PAR2 repair is still active. Fixed
  • The unrar program could hang infinitely when an error occured while unpacking. Fixed
  • Only show messages in the terminal when the command line argument --debug is used or the environment variable NNTPGRAB_DEBUG is set

New in NNTPGrab 0.6.2 (Jun 7, 2010)

  • Added support for Windows x64
  • When connecting to servers, keep the results of all DNS lookups in a cache so reconnecting can be done faster. This should also lower the possibility of the error message 'No hostname could be found for servername x' from occuring
  • Automatically retry connecting to usenet servers when a connection error has occured. This should fix a bug where the download queue could hang when the network connection is unstable
  • Very small files could get stuck in the download queue. Fixed
  • In a rare situation, the program could deadlock while trying to remove a file from the download queue. Fixed
  • Really disable activating the automatic import on Mac OS X
  • Fixed a crash which could occur on shutdown on Win32/Win64 environments
  • When a network disconnect is discovered by the NetworkManager plugin, the download queue would always get stopped, even when the download queue was inactive. Improved the handling of this situation
  • Don't wait for active decode actions to be completed before applying configuration changes. This fixes a temporary hang or a deadlock which could occur when changing something in the configuration while a file is being decoded
  • The download queue could get in an undefined state when applying multiple configuration changes very quick after each other. Fixed
  • When using collection names > 128 characters some error messages could pop up while adding files or performing a PAR2 repair or an unpack. Fixed

New in NNTPGrab 0.6.1 (Mar 29, 2010)

  • This is a bugfix release of the 0.6 branch. Various fixes for bugs in the schedular have been applied in this release. In the last weeks, several Mac OS X users have reported a bug where the program could crash on startup. Some changes have been applied which should fix these crash, so the program should work just fine now on Mac OS X environments.

New in NNTPGrab 0.6.0 (Mar 8, 2010)

  • Performance improvements:
  • A large part of the program has been rewritten. This has caused an performance improvement compared to the 0.6 branch. Due to this, the program got more reliable. Actions like pausing the download queue can now happen instantly and configuration changes can be applied more quickly. The decoder has also been completely rewritten so decoding files should be more quickly than with previous versions.
  • Automatic removal of downloaded files:
  • From now on it's possible to let the program automatically remove downloaded files after a successfull PAR2 recovery and unpack. This feature needs to be manually activated in the configuration. This has been done to prevent people from wondering where their downloaded files went.
  • Bandwidth limiting:
  • Another new feature in the program is the possibility to apply bandwidth limiting. Users can indicate in the configuration how many bandwidth the program is allowed to use. This can become handy for users which have to share their internet connection of who want to keep bandwidth available for other internet activities.
  • Support for plugins:
  • To allow new features to be added to the program more easily a plugin-architecture has been developed. This makes it more easy for other developers to add new features to the programma.
  • One of these new plugins is the antisleep plugin which has been created by chrashoverraid. This is a Windows-specific plugin which prevents the computer from hibernating while downloads are running.
  • Another plugin is the logger. The goal of this plugin is to collect logging information while the program is running. When users have problems with the program, this logging information can aid the developers in solving these problems.
  • For Linux environments a plugin has been created called NetworkManager. As the name implies, this plugin allows NetworkManager in the program. When a network connection gets disconnected, then this plugin causes the download queue to pause automatically. The download queue will automatically be resumed when the network connection get restored.
  • JSON-RPC support and the integrated webinterface:
  • The final plugin which is introduced in this version is the JSON-RPC plugin. This allows the program to be controlled using a JSON-RPC interface. The NNTPGrab Server also uses JSON-RPC for all communication.
  • Thanks to this plugin an embedded interface could also be introduced. This webinterface has been developed by Flex1986 and can be reached on the address http://localhost:5423 (where localhost the IP address or the hostname is of the host where the interface is running and where 5423 the port is which is indicated in the NNTPGrab configuration). If you're asked for an username and password while connecting to this webinterface, use admin/admin. This webinterface is still is development, so several features are still missing. The plan is that all features will be implemented in the next major release of NNTPGrab. Assistance with the development of this webinterface is very welcome.

New in NNTPGrab 0.6 Beta 1 (Dec 29, 2009)

  • Right now several plugins are already available. The yEnc decoder, PAR2 repair and automatic unpack functionality have been moved to individual plugins. Next to this, plugins have been added to collect debug logging and to automatically pause/resume the download queue when the network connection has been disconnected/resumed (Linux only for now).
  • Next to this a plugin has been added which allows the program to be controlled using JSON-RPC. This happens through an embedded webserver. Right now work is still going on to get a complete webinterface implemented so it's something to look forward to.
  • Next to the support for plugins several internal changes have been done in order to make the program more efficient and stable.
  • Downloading files from usenet servers is now done by 1 central thread (this used to be 1 thread per connection). Because of this change, download can be stopped instantly when the button 'Pause the schedular' is pressed. Changes in the configuration are now also applied instantly. In previous versions, the program could hang for a few seconds before configuration changes were applied. Another optimalisation has been done in the yEnc decoder. This has been fully rewritten so it can decode files much faster than before.
  • From now on it's also possible to download files from usenet servers using a proxy server and last but not least: Starting with NNTPGrab 0.6 Beta 1, it's also possible to apply bandwidth limiting.