Development history
NewsPro v2.7+
This release features the (automatic/manual) downloading and saving attachments capability.
Since dumping all attachments to one directory would be not a wise approach -
the program remembers directories for every manual selection; as to automatic
capabilities - there is a possibility to assign a directory to every filter
on per newsgroup basis or to use default newsgroup directory. The program maintains
persistance between sessions for tasks scheduled for saving, if the save tasks option
in the properties (the general pane) is checked.
The automatic mode is tuned in the properties, the watch/auto pane. The save radio
buttons in 'common settings' and for newsgroups in question should be checked, as well as
directories should be associated with newsgroup filters. That allows to disable the
feature at all or for some newsgroups without affecting the filter list settings.
Notice that program checks for completed attachments every 5 minutes. To force
the procedure or to control other aspects of the process look at the tasks menu.
The program is conservative to every abnormal condition while saving - it leaves
messages in the newsgroups in the case of any problem such as duplicate names etc.
Text of deleted messages is logged in SavedAttachments.txt in the NewsPro directory
if the corresponding option in properties -> general is checked. The 'delete bodies when
deleting headers' and 'enable delete on save attachments' options are taken into account
during automatic saving; 'ask for delete on save attachments' is ignored.
Getting new headers when a view with a large number of partial messages is open is
several times faster and smoother, especially when partial messages with large number of
parts are present.
There was fixed a problem with dynamic non-displaying partial messages introduced some
time ago.
Autosave feature now creates/deletes the save progress dialog every
time when its visibility is enabled/disabled. Just hiding it wasn't enough
since the focus switched to the invisible window, now it is just non-existent.
The posting pane in the properties features two edit boxes "header"
and "footer" for wrapping the message text.
The keep-alive feature: connections are reused for
different tasks, that especially useful when servers limit the number of connections
'per group'. The program just saves connections in the connection pool for subsequent
reuse. Still it will do nothing to prevent their timeout initiated by servers to be
nice toward other users (usually 10-15 minutes).
Running multiple instances (one per database). The feature works only for
registered users (not intentionally). To make use of the feature run the program
with a profile name, (the default profile name is "NewsPro"), e.g.
C:\Program Files\NewsPro NewsPro_Profile_2
For modem users in countries with variable rates - now tasks are suspended
exactly with the end of an interval of activity - the program disconnects
immediately.
The option to add headers like "X-No-Archive: Yes" or whatever is needed
(properties -> post pane).
Rot13 transformation for article views (context menu) as well as for the post dialog (button).
NewsPro v2.51+
The pause button and the option to set bandwidths - separatedly for scheduler active
intervals and the rest (properties, tasks&scheduler panes; 0 = empty = no limit).
Automation capabilities refined, especially for modem users (auto hang-up is only an
option now); for LAN users - scheduler is able not to suspend tasks and just to switch bandwidths.
There is an option to switch off the scheduler on start (tasks menu).
Dial-Up revised - there is an option to set the number of redials with different intervals
which is reset on the beginning of every scheduler active interval. Asynchronous behaviour.
An option not to connect on start (dial-up menu). After disconnecting during scheduler active
interval - the automatic connection (when auto dial enabled) will be performed only with the
next active interval to prevent immediate redial (but user may use the menu dial option to
resume connection immediately). To stop the sequence of dials - just use dial-up menu ->
hang-up at any moment including pauses between dials.
The program can automatically check for updates (just by reading
http://newspro.hypermart.net/version.htm
- an option in properties, general) - right after the first body has been succesfully read in a session.
If socks firewall is enabled - the connection will be made through it.
The server aliases dialog allows to delete servers right away.
Faster scrolling of newsgroup views with large number of partials - the compromise is in showing
only approximate number of lines in the lines column (properties -> general, default behaviour).
For firewall users the socks option is set for each server separatedly (i.e. whether a server
uses socks) so local servers can be accessed directly.
An option to define types of attachments which will display a warning message box before launching them
(the article pane in properties).
Dialog box before windows shutdown while newspro is running.
v2.52:
Better error log tracking has been introduced - an option to upload stack trace,
OS&Dll versions after exception (nothing else, just an extract from ErrorLog.txt and
only after a crash) or submit anonymous bug report with OS&Dll versions (properties).
The option can be disabled for registered users (properties->general->upload stack trace),
although it is not recommended.
The source code of non-nntp connections (checking for updates and bug/crash reports) is freely available
on request with additional non-formal description for those who cannot read the code.
v2.53:
Saving selected attachments is about 1.4 faster. Better look for filter editor.
Message text is written into the log for saved attachments.
v2.54:
In v2.53 displaying jpeg images was accidentally disabled, as well as a bug introduced - former
reported by users (thanks), latter reported automatically and all promptly fixed within 24 hours since
the release.
v2.55:
An option to save failed articles among saved article tasks (properties->general).
Sometimes task list wasn't saved on exit, it was fixed. It was also found that the
compiler removes some essential for diagnostics code during optimizations. Although it doesn't
influence the program functionality from the user point of view - it may hide problems
that can be otherwise easily revealed - it was also corrected.
v2.552:
Database files are flushed on NewsPro exit - not just relying on Windows -
to enforce database intergrity. Mistakenly the version in the dialog box is
shown as v2.6, otherwise all is in order.
NewsPro v2.5
- Schedule, watch and automation capabilities (see corresponding selection topic).
- The download article priorities concept has been refined (see the same).
- Folders have properties along with newsgroups (now properties->newsgroup/folders).
- New "Persist" sort-by option has been added which remembers the last sorting order (default now).
- You can change settings for selected newsgroups/folders/servers by selecting several entries (the same principle for different panes),
entering desired values and pressing the 'set' button.
- 'Retry unsuccessful articles' every user-defined number of minutes (properties->general). if you want
to use this feature on partial messages - uncheck the 'autocancel on errors' entry in the partial menu,
otherwise on error with getting one part remaining parts will just be cancelled and not retried.
- Server list is exported/imported with passwords (clear text :) ).
- 'Copy subject' and 'Copy author' entires in newsgroup context menu (e.g. for transferring to filters through clipboard).
- Numbers of max. tasks and retries for a new server moved to the server pane in properties (more appropriate).
- Saving dialog now displays the directory where saving is done and has unique number.
- Solution to full disk problem - now a limit is set in properties->general (low space). Tasks
are suspended when space is below that value and resumed after disk space has been freed.
- There is an option to set the number of retrials for redial in the case of unsuccessful dial-up
connection (see dial-up -> connection properties).
- There is a possibility to write info about saved attachments in log file that resides
in the newspro directory (SavedAttachments.txt). The format is human/machine readable. Look at properties->general->log saved
attachments to activate.
NewsPro v2.4+
v2.4:
Straightforward installation; install.txt removed from the package.
v2.41:
Several tips added in relevant dialog boxes, partly handling the full disk
condition.
Far faster marking for download in the case of partial messages in replies.
In article views all relevant options from newsgroup views with the same shortcuts
were added when missing. Fixed non-deleting bodies for partial messages from article
views and jumping focus when deleting bodies with no servers from article panes in split
windows.
Fixed inability to mark for download selected partials in replies.
The next/prev thread shortcuts added (Ctrl+F5/F6).
Approach to selecting has been changed. Shift+Click now never clears previously selected.
Ctrl+Click selects an item without affecting other selected as it was, but now from this
point Shift+Click or Shift+Arrow Up/Down will select items around that clicked item
retaining previously selected, so it is possible to have several selected stretches at the
same time. Just clicking an item will clear all selected items.
In the light of the changes I had to reorganize shortcuts, especially the functional
keys. Current layout: F1 - Help, F2 - Article properties, F3/F4 - find next/previous;
F5/F6 - next/previous header; F7/F8 - next/previous body; F9 - Deja; F11 - batch/user mode;
F12 - automark for download. Also instead of switching mark read/unread there are now
two separate shortcuts for the focused item Ctrl+M - mark read and Ctrl+U - mark unread
since in article views the change is not visible.
v2.43:
Partial messages now are saved asynchronously like other messages - no waiting.
There is an option to automatically delete headers after successful saving attachments
and an option to ask before deleting them (only once per one batch) - see properties
-> general - 'enable delete on save attachments' and 'ask for delete on save attachments'.
Both options are enabled by default. Several streams can be saved simultaneously.
Fixed a recently introduced bug that led to an exception while subscribing
to selected groups from the newsgroup list window.
v2.44:
Light refinements of v2.43. Removed rare small delay in appearing of the 'save selected'
progress bar dialog (detected only while trying to save attachments to very slow network drive).
Selected items are now cleared upon launching a saving operation on them. For selected
items currently in the process of downloading headers are never deleted after saving their
attachments.
NewsPro v2.3+
Fast synchronizing with newsservers (rescanning headers) has been added. The
feature is especially useful for getting multipart messages. Invoking the
feature ensures that the database reflects the current situation on newsservers.
If a newsserver deleted or added headers in the middle of the list - that
will be reflected in the database. The rescan headers button is located to
the right of the get new headers button. One relevant item has been added to
the properties (general pane): 'Get new headers after rescan'. By
default it is checked, i.e. after synchronizing new headers will be downloaded.
New colors has been added to the task manager bars for the get new headers
pane because now program doesn't just download new headers, but also
searches, rescans, etc.
For searches - blue means progress through newsgroups, green - searching in
a newsgroup and purple - downloading search results from the previous 'green'
part.
For rescanning (synchronizing) - green means scanning through a newsgroup,
purple - getting headers that were added out of order and blue is downloading
new headers as usual.
v2.3+:
Enhanced restoring procedure with restoring deleted/read also from the interrupted
session.
The task manager window has now scrollable controls for current tasks
so that long subjects are fully readable.
An option to define what header fields in what order to show or to hide
in article views and whether to scroll the article to the body on its opening.
The option is located in the properties - the 'Articles' pane.
Eliminating the necessity to put the leading and trailing asterisks for
wildmat expressions for all occurences including search on servers with retaining
all possible options.
v2.39: (standard customization)
An option (the edit menu) to automark for download (e.g. just on clicking an item
or scrolling newsgroup views). The 'clear selected' entry in the context menu to handle
selected without the necessity to disable the automark option.
An option to open newsgroups with the split window (the window menu); storing the
split window ratio between sessions.
Split windows: moving only among article bodies in newsgroup views with F11/F12;
Alt-Up, Alt-Down etc. now work in a symmetric way in the newsgroup and article panes
with preserving the focus . F4/F5 are used now for scrolling the newsgroup pane with
retaining the focus.
NewsPro v2.2
Wildmats with boolean expressions have been added for search in newsgroup
views and filters - the code works as fast as direct searches and is very terse.
Wildmats
are like wildcards, I just fixed the case sensitivity of
the original source code and added boolean expressions with wildmats as
operands: '^' - NOT, '&' - AND, '|' - OR from the highest to lowest
precedence plus nested parentheses. Also see the
filters and filter editor topic for examples.
The search on newsservers option makes use of the XPAT command that
given an (original) wildmat pattern searches a header (subject/author/...)
for the pattern. The command works on one newsgroup, but NewsPro makes it
possible to enter a list of newsgroups as well as allows case-insensitive
searches. To enter a list of newsgroups easily the 'copy selected' and
'copy all' entries have been added in the newsgroup list to copy newsgroups
into clipboard fast.
The trick is to create a newsgroup with the '#' as the first symbol
in the name, like '#search'; when the get new header button is pressed,
a dialog will appear. After entering newsgroup names, the pattern,
choosing a field and pressing OK a search will be performed. Read also the
help file or
the search on servers topic
for more details. Creating as many 'search groups' as necessary
is possible, each with its own search criteria; all is asynchronous as
always. Search parameters are saved between sessions.
NewsPro v2.1
The newsgroup view context menu has been rearranged, so most frequently
needed items make up the main menu.
Priorities of marked for downloading articles can be now changed dynamically
by marking again already marked articles, after desirable downloading
priority has been set.
Articles are marked for downloading and cancelled faster.
Fixes: fixed ignoring selected from the filter dialog messages
for newsgroup with threads; eliminated out of memory dialog that was
occationally appearing while opening virtual groups; correct deleting
bodies while deleting headers in threads; other miniscular fixes.
The system (Windows) support is considered less credible, so more
checks were placed to ensure that critical system services are working
properly.
Some default settings were changed according to needs of most users.
If the program has been already installed from a previous version you
may wish to change them manually:
Menus:
Tasks -> Minimize overall downloading time: unchecked (downloads articles
and parts of partial messages in order).
Threads -> Enable threads for a new window: checked
Partial -> Partial messages in replies for a new window: checked
Properties:
General pane -> Reset groups on server errors: unchecked
General pane -> Always optimize database: unchecked (lengthy)
NewsPro v2.0-v2.07
Improved task manager window.
Series of heavy tests was performed to enhance reliability.
Number of retries can be set for each server separatedly; when the number
for a server is set to zero - the server is effectively disabled. The feature
can be used for dealing with servers that are temporarily out of service or
overloaded and need more retries (e.g. to deal effectively with the "400 Too
many connections" error).
Article tasks are cancelled immediately, so after accidental cancelling
there is no necessity to wait for the thread of execution to exit.
The split/unsplit button is checked when the newsgroup window is splitted;
when the article pane is too small and almost invisible - articles will be
opened when focus is changed in the newsgroup pane - e.g. for partial messages
that takes some time.
SOCKS5 support has been added. It allows to work through SOCKS5 firewalls.
Many users dislike the 'workspace' style, so folders have been added to
the newsgroups and servers window to make possible to ignore this style
completely. Also folders can be hidden/shown on window per window basis -
see the context menu for the newsgroups entry and the show folders entry
in the properties for initial setting.
Partial messages are downloaded in order with the purpose to receive a
complete article (track, song, movie ...) as soon as possible.
The "Delete bodies of partials with missing parts" entry in the
partial menu. Partial with missing parts may be not shown for newsgroup
views with partial support. Using the option will delete bodies of such
partial messages, without necessity to manually remove them in a newsgroup
view with partial support disabled.
New features in v1.79x
9 priority levels can be set for downloading article bodies. Articles
marked for downloading when a higher priority level is set will be preferred
during scheduling. See description in the selected topics above.
To the 'no more default newsserver' - 'no more newsgroups' should be
added. Not only newsgroups can be subdivided into folders (and folders of
folders...), but folders are operated upon as a usual newsgroup as well
as any subset of newsgroups can be opened as one virtual newsgroup.
Newsgroups are organized in folders. To create a folder - use the 'new
subfolder' entry in the 'Newsgroups' or folders context menus. To move
newsgroups to folders - select newsgroup(s) in question and press the right
mouse button on 'Newsgroups' or a target folder name in the workspace.
Press 'move to folder'. Deleting folders doesn't delete newsgroups in them.
Folders behave alsmost as usual newsgroups - getting new headers, cancelling
getting new headers, resetting, posting etc. The idea of a virtual group was
proposed to me by two users independently, I just developed it further.
You can edit filters in the filter editor. Imagine a newsgroup. 'Select'
means select records, satisfying the criteria. 'Extract' means select and
extract all selected records (i.e. hide all other records). 'Ban' means select
and hide all selected records. 'Selection scope' defines what records are subject
to the current select operation, e.g. checking 'unselected' will remain
previously selected records unchanged etc. All these operations maybe tried
with the selection dialog on a real newsgroup to understand how they work.
Kill filters can be defined for every newsgroup. A new newsgroup gets
filters from the 'default' entry (the filters that are there at the moment).
To define filters look at the properties dialog, the 'Filters' pane. Names
of the newsgroups that have filters are distinguished with the green color;
the red color means that a previously defined filter (file) was deleted. In both
list controls multiple selection is allowed for easy copying and pasting.
Number of filters for every newsgroup basically doesn't influence performance.
Every filter should have 'extract' or 'ban' (not 'select') in its last
line because otherwise the resulting compound filter would depend on the
order of appliance. Redefining filter for a newsgroup as well as editing a
specific filter will be in effect for all subsequent tasks immediately after
saving the filters or pressing the Apply or OK button in the properties
dialog. Messages are filtered on entering the database; those that are
filtered out enter the database as deleted headers and can be still accessed
as such.
Threads
Deleted headers aren't shown in threads.
A new context submenu in newsgroup views operates on (sub)threads.
Deleting a parent deletes all its children in the (sub)thread. All new
messages are checked for being a child of a deleted header even after
all its parents left the database. That effectively prevents such
messages from appearing in newsgroup views, unless viewing deleted
headers was activated.
Partial in threads are shown as one entry.
Partial duplicates aren't shown any more although they've been
previously treated correctly.
An option to hide partial messages with missing parts (by request).
Monitoring servers with posting
The program constantly checks servers for posting, so servers that enable
posting will be shown with the green colour in the properties dialog (posting
pane) and will have an icon with an envelope in the workspace window.
Other changes and fixes
In the selection dialog two buttons added - delete (selected) headers/bodies.
An option (default, properties dialog) to save message text and source
with the name derived from subject and author with the date of posting (by request).
Nice message box for reporting servers-aliases that enables to delete
them before closing the box.
The program is smarter and more tolerant to malformed messages.
Deja news: from newsgroup views (launching without actually downloading
bodies), the search string can be now adjusted in the properties.
An option to disable deleting opened attachments from the temp directory
while the program is running - e.g. JukeBox for playing mp3 plays a list;
the files may be deleted before playing. The option to manually clear the
temp directory has been added in the file menu.
The saving mode dialog when saving attachments etc. was moved to the
properties - that spares one click.
The reset database option allows to keep info about previously
deleted/read headers, so now it is never lost.
The negation operation has been added in the selection&find dialogs/filters.
An option to save the article task list between sessions (properties).
Also unsuccessful tasks are added to the list (clear errors before exit
if that is not desirable).
When the task list is rescheduled upon restart - tasks are launched
in the same order, except for previously unsuccessful tasks.
The shutdown code has been reviewed, partly an option for slow shutdown
(for old unstable Win95 versions?) has been resurrected (properties).
Now the program gives a warning when 25Mb left on the NewsPro drive. Also
it handles itself attempts to write to a full disk by showing a small message
box without forwarding the exceptions for automatic (but awkward) handling by
the framework.
The find function now looks also into collapsed threads and expands
them if necessary.
From v1.7 to v1.74
Rigorous bookkeeping
At last the approach to deleted headers and read messages has been reviewed.
In the properties dialog the "Remember deleted/read messages for n days" entry
has been introduced.
If the user-defined number of days equals to 0 - the mechanism is disabled.
Otherwise the program will remember all deleted/read headers for the number
of days even after they left the database.
Headers now are deleted through the database, so cross-posts will be automatically
removed from all newsgroups (independently of the number of days).
Still deleted headers are shown in threads but they have different color.
The restore deleted headers option has been enhanced to enable easy undeleting
some and not necessarilly all deleted headers. It works in this way:
In a newsgroup press the 'restore deleted headers' toolbar button (Ctrl-Z).
You'll see deleted headers appearing with different color. The button remains
pressed. Undelete deleted headers with the help of the context menu or shortcuts
(Ctrl-J or Alt-J for selected). Click the button one more time and remaining
deleted headers will disappear. You have not necessarily to do that - all always
will be handled correctly.
Deleted/read headers leave the database when they are deleted on servers so they
free the storage. If they come back - read messages remain read and deleted headers
don't enter newsgroups, although they can be seen again among deleted headers.
The track of deleted/read headers is lost after they absent from the database
for more than the number of days (after last depature from the database).
You should use the database backup if the information about deleted headers
and read messages is considered as important.
Resetting the database will erase information about deleted headers. All
other activities will preserve it - including resetting newsgroups.
More task management
Deciding what kind of tasks should have higher priority in the end I gave
the option to define chances to run for every kind of tasks.
So if we scheduled for download 1000 articles - we still can regulate
other activities by changing the chances.
Limiting number of headers in newsgroups
The properties dialog has been changed. A new page with newsgroup properties has
been added as well as corresponding menu entries in the newsgroup pane in the
workspace window.
The 'default' entry defines default settings for newsgroups. You can redefine
these settings for each newsgroup. The headers per server entry allows to limit
the number of headers that read from a server (there is also the 'all' value).
The rest of headers in the newsgroups maybe deleted or retained, for example if
newsgroup already contains 800 headers, 500 new headers arrive and Headers/server
is equal to 1000 - 300 headers will be deleted or not depending on the value in the
'the rest' column. The last three columns describe how each newsgroup will
be open. E.g. for large mp3 newsgroups you can disable threads, enable the
partial support and sort by subject for faster newsgroup opening. Actual
numbers for number of headers in a newsgroup may be less than the 'header/server'
value, when some headers are missing on the server. You need not to reset a
newsgroup if you change the settings - the rest of headers will be downloaded
even if they are older than the headers in the database.
Limiting number of headers for non-critical newsgroups reduces the database
size - the program works faster. Some servers may keep huge archives for
selected newsgroups - and often only recent headers are required.
My advice is to set for the 'Default' entry 'headers per server' to, say,
1000, 'the rest' to 'Delete'. For your favorite newsgroups set the 'headers per
server' to 'all'. The speed will grow greatly and you will still have all
recent headers from different servers.
Faster database
Opening newsgroups is about 5 times faster (for the worst case, not always,
i.e. for a large database with limited resources).
The database structure has been optimized for large newsgroups - also
with high thread density.
Invoking the 'optimize database accesses' option in the file menu or
enabling the 'always optimize database' option in the properties dialog
will result in faster operations on newsgroups - opening, selecting etc.
After the procedure the database tends to keep its optimized structure
while a relatively small number of new headers enters the database.
The purpose of the procedure is to rearrange database records, so that
the most of hits were targeting the same disk location; the pages in question
with high probability will be found in RAM without actually reading data
from the hard drive - it drastically improves performance.
Getting new headers now requires 4 times less disk accesses that results
in smoother work in background and friendlier attitude towards other
applications.
Small features
Now uncompleted partial messages may be reassembled in the following way - for such
an entry use Selected headers -> Multipart message (Alt-G) - all that for views
with advanced partial support - a new article will be generated, reflecting
the current state of the partial message.
Now the temp directory is cleaned every 45 seconds and not just only on start and
exit - once while listening mp3's I filled the directory with 700MB of files and
got a full disk.
You can see on which servers an article is residing by using the properties
entry in the context menu (Alt-I or F6).
A progress dialog reflecting saving partial messages has been introduced
with an option to cancel the operation.
Partial messages are shown in threads with all advanced capabilities,
although other parts in threads are also shown - partly they may be needed
in for repost of selected parts.
I found a better solution for replies to partial messages, that
makes the 'partial replies' button unnecessary. Now replies with the
number of lines less than 250 are not considered as partial unless the
article in question is the last part of a partial message (we have still
the manual option) - the replies will be shown correctly as 'normal' messages.
So I removed the 'partial replies' button from the toolbar, the shortcut
Ctrl+Space corresponds now to the 'enable partial' toolbar button and
also one more shortcut for symmetry: Shift+Space for the 'enable threads'
button.
Before invoking the restore database from backup procedure an option is
given to reset the database in case the backup was corrupted (never saw or
heard that but in theory it may lead to an unpleasant situation).
The trivial option in the file menu 'Save database and restart'
terminates all tasks and restarts the program saving the current database
state - useful after downloading a large number of headers in Win95 or Win98
where any application may crash the system.
New shortcuts for downloading threads and for the 'all headers' context
submenu in newsgroup views.
New features and fixes in v1.7.0.7
- Search in article bodies from newsgroup views
- DejaNews
- news://ServerName - adding the server on doubleclick
- Newsgroup names export/import (like server list)