Project Description
Community project for accessing the MS Web-Forums via an open source NNTP newsserver (bridge).

News: 2013-10-29

Starting with today, the bridge works again! To get it work, you need to download the new bridge, whcih now uses LiveConnect as authentication schema. Also you need to enable NNTP access in your user profile! If it is already enabled NNTP access in your settings, you need to enabled it again and press "Save changes"!

Go to "Quick access | My Settings | Be sure the "Use NNTP bridge" is checked and press "Save changes"

If you already started the bridge, you need to log out first! Go to "Tools | Logout and exit...". The restart the bridge.
See also: http://social.msdn.microsoft.com/Forums/en-US/user

Current features

  • Replaces the MS NNTP Bridge(s) completely
  • "MyThreads" support: Automatic detection of my own posts!; just post one time to the forum and all your subsequent articles will be marked as yours and will have your email address! (will allow Ctrl-H to work in WLM)
  • Code colorization for posts in the forum
  • Auto start and Autominimize, Auto login for LiveId, so no need to accept any LiveId dialog
  • Supports the conversion of html-web-articles into plain/text articles for your newsreader
  • Converts "http(s)" links into html links, if posted in plain/text / supports some other markups, like bold/italic/underline and code-tags!
  • Search of all newsgroups also via description
  • X-Face support for MVPs, Microsofties and Admins
  • Encodes Subject/From only, if non-ASCII characters are present
  • MessageId contains a valid domain name
  • You can bind to 0.0.0.0, so the NNTP bridge is accessible from any other computer in the network!
  • The message/thread URL of the forum will be submitted in the Archived-At (RFC5064) header, so you can directly go to the web page
  • Thunderbird can display the article source code ;)
  • Many tracing options to see the newsclients messages/responses

Upgrade from MS NNTP Bridge

  • If you have previously used the MS NNTP Bridge and now want to use this bridge for the same groups, the threaded view in your newsreader might fail for all old messages (depending on your newsgreader)! This is because the messageId has changed (it now has a domain name). But this is not dangerous ;) you can have the full threaded view again, if you unsubsrcribe from the groups and subscribe again. Then all messages can be downloaded with the new messageId which will lead to the correct threading view.

Main User Interface

Here is just a small display of the main UI:
MainWindow.png
More infos can be found in the http://communitybridge.codeplex.com/documentation

Project history

This project was developed using the following existing projects: The first project was used as an example for the LiveID authentication and was first updated to use the current webservices.
The second project was used as the NNTP server.
The third project is used for code colorization.

Contributors / Developers wanted!

If you want to contribute to this project, the following things needs to be done. Please contact me, if you want to help this project:
  • Quoted-Printable C# encoder needed (for headers)!
  • Unit Testing
  • UI Design (WPF 3.5SP1)
  • More source code documentaion
  • Documentation
  • Support of Path header
  • ...

Support this project

If you want to donate to this project, you can do it here: http://communitybridge.kalmbach.eu/. THANKS!

Version history

  • 2010-05-25, V01
    • First release on http://communitybridge.codeplex.com/
  • 2010-05-26, V02:
    • MessageId now also contains the forumId, to support ARTICLE without a selected group
  • 2010-05-26, V03:
    • XOVER now returns sorted list of articles (sorted by article number)
    • XHDR: The "header" name is now case-insensitive / articles are sorted by article number
    • Subject is now base64 with utf-8 encoded
  • 2010-05-26, V04:
    • Now listens only to the loopback adpater (127.0.0.1) instead of Any (0.0.0.0)
    • Displays an error message if the port is already in use or some other exception occurs during initialization
    • Bugfix in ARTICLE <id>
    • Tried the new icon
    • From is now base64 with utf-8 encoded
  • 2010-05-26, V05:
    • Changed "charset=utf8" to the correct "charset=utf-8"
  • 2010-05-26, V06:
    • Removed the ForumId from the MessageId / INFO: This will break the "threaded-view" of existing messages! Only new messages will be displayed in the threaded view!
    • Fixed the missing TimeZoneInfo (+0000) in the "Date" header
    • Adding an "Re: " prefix if the article is a reply and does not have a "Re: " in the subject (for example if the article was replied via the forum)
    • Removed SharepointProvider.cs
    • The X-Newsreader header now reports the correct file version in the string
    • Corrected the Xref header (in the form: LOCALHOST.communitybridge.codeplex.com groupname:messageno)
    • Support for the "LIST NEWSGROUPS" command (for OE)
    • Displaying the file version info in the window title / Better title text
  • 2010-05-26, V07:
    • Bugfix, if a thread is posted without retrieving the group first
    • Started to implement tracing...
    • by default the input will be decoded with utf-8; this needs to be improved in the future!
    • Catching Exceptions in prefetching of newsgroups
  • 2010-05-27, V08:
    • Regression from V07: LIST might throw an internal exception
    • If no internet connection is available, a group will not be reported as "411 no such news group", now it will report an "503 program fault"
  • 2010-05-27, V09:
    • ReSharper "enabled"
    • Prefetching button is now disabled while prefetching is active
    • Disabling the checkboxes will now be recognized
    • Subject/From will only be encoded if non-ASCII characters (>0x7F) are present
    • DetailedErrorResponse is now enabled by default (can be changed in the *.config file)
    • DomainName can now be configured in the *.config file
    • ARTICLE command with an invalid parameter will not reponse with 503, instead it will use 430
    • It is now configurable, if you want to bind the NNTP port to the "world" (default is loopback)
    • Last change of the messageId back to the MS NNTP Bridge format (+ @domain.name) / For more info see comments at function "GuidToId"
    • Optimized GROUP response time, at least for "answers" forums
    • Added an X-Comments header with the URL to the thread ;)
    • Renamed the app.config entries to match the service names (social, answers)
  • 2010-05-27, V10:
    • The login-thread is now a background thread (which will be terminated if the mainwindow is closed during the login procedure)
    • Added X-Face support for MVPs, Microsofties and Admins
    • User-Settings now contains "UserName", "UserGuid" and "UserEmail". If either "UserName" or "UserGuid" is present (and the UserEmail), then this info will be used to change the "from" to include the email address.
    • This might be helpfull if you want to find "your" postings.
  • 2010-05-28, V11
    • Added the UserName and UserEmail textbox to the GUI
  • 2010-05-28, V12
    • app.config contains now a example to enable tracing
    • Setup will now remove previous versions, so only one will be displayed in the control panel (programs)
    • If the first/last parameter for XOVER is in the wrong order, then correct the order (some clients may sent XOVER 234-230 instead of "XOVER 230-234") / This has lead to System.ServiceModel.FaultException in the web-service
    • Moved the creation of X-Face and From (with email) into the ArticleConverter
    • Bugfix: Only encode the username of the From-header and not the email address
    • Added tracing for WebService: CreateQuestionThread / CreateReply
    • Removed format=flowed for text/html messages
  • 2010-05-28, V13
    • Renamed "X-Comments" to "Archived-At" (see: http://www.ietf.org/rfc/rfc5064.txt) for the URL
    • BallonTooltip will now not be displayed anymore, if the app was minimized... this leads to problem with "auto-hide" of the taskbar
    • Postings are now using the correct encoding, if the charset is specified
  • 2010-05-29, V14
    • Now fully supports XOVER from RFC2980 (XOVER n / XOVER n- / XOVER n-m); in addition it also supports XOVER <messageId> and "XOVER n n" / the results are now in the order of the requested numbers
    • Newsgroup descriptions are now not containing any linebreaks
    • Bugfix: A line which started with a dot and then some other characters (excpect \r\) was not correctly translated into one dot (it was displayed as two dots) (all dots as first char must be send via two dots; and then the newsserver must replace the two dots with one...)
    • Bugfix: Now supports multi-line content-type headers to detect the correct encoding
    • Now using "<div>...</div>" instead of "</br"> for linebreaks for new messages.
    • On receiving of web-service articles, replace "<br/>" with "<br />" for better compatibility with Forte Agent 6.00/32.1186
    • Bugfix: XOVER for large ranges are now supported
  • 2010-05-29, V15
    • Archived-At is now RFC conform (included in <URI>)
    • Regression: html-link conversion are now working again (failed in V14)
    • Beta feature: UsePlainTextConverter: This will try to convert the forums html messages into plain/text! This is a beta feature and deactivated by default! Thanks to Josef Poetzl who implemented this!
    • Groupnames may now contain trailing/leading spaces..
  • 2010-05-30, V16
    • Rename "Auto start" to "Auto login"
    • Removed guid-email address for other users, because it has no real value for the enduser
    • LIST, XOVER and XHDR are now presenting results while downloading from the web-service (prefious it had lead to timeouts,if you want to download a very amount of range (>300)
    • Bugfix: UsePlainTextConverter was not set correctly after a restart of the program
  • 2010-05-31, V17
    • IHAVE now generates 500 Command Not Recognised
    • Now supports DATE command
    • XHDR now returns the article number, except if an articleId was provided, then it will also return the articleId (RFC2980)
    • Added "MIME-Version: 1.0" Header
    • PlainTextConverter: Support for CODE tags (see: http://communitybridge.codeplex.com/documentation)
    • PlainTextConverter: Converting <a href.." correctly into link with text
    • PlainTextConverter: Linbreaks at 70 characters from html2text
    • PlainTextConverter: Support for signature line (<hr..> => "-- ")
  • 2010-05-31, V18
    • PlainTextConverter: Support for img/i/b html tags / bugfix for hr tags
    • All user settings are now stored in the registry; these settings will survive any update ;)
    • Bugfix: Port was not saved in the user settings
    • Menu added:
      • File | Exit
      • Tools | Advanced options...: To edit all current options
      • Tools | Show Debug Window: Displays trace messages (text can be copied via context menu into the clipboard)
      • Tools | Create LiveId auto login...: Create an authentication blob which will be used the next time the server starts, so no need to use the authentication dialog!
      • Help | Info: Small info dialog
  • 2010-05-31, V19
    • User setting: TextConverter: AutoLineWrap (0: disabled, >0: Number of chars at which a line should automatically break)
    • User setting: EncodingForClient: Optional you can provide an encoding for transmitting data to the newsreader (for example, Forte Agent does not like utf-8 in text/plain, so you can change to "Windows-1252" or whatever you want)
  • 2010-06-01, V20
    • Bugfixes for user settings (failed to store some settings)
    • PlainTextConverter: Better support for nested markups
    • Bugfix: Now supporting "null" Body, and other null-strings in the article
    • Limited the number of cached articles / you can now download more than 100000 articles at once ;)
  • 2010-06-01, V21
  • 2010-06-02, V22
    • Better support for mime/multipart messages (WLM) / Now you can decide what will be used: "text/plain" or "text/html" (default). If you want to use the plain/text converter, then you need to change these settings to "TextPlain" instead of "TextHtml".
    • UserName compare is now done with current locale and case-insensitive
    • Fixed several issues in the plain/text converter (*/_ ...)
  • 2010-06-02, V23
  • 2010-06-03, V24
    • Now you can select if you want to use "Answers" or "Social (msdn, technet, microsoft, expression)" forums or both
    • PlainTextComverter: Support for <ul>, <ol>, <il>
    • Bugfix: Tracing of UserName matches leads to exception if debug window was open
  • 2010-06-03, V25
    • Bugfix: Postings without "Content-Type" will use text/plain and will be posted correctly as html to the web-service
    • PlainTextConverter: Some Bugfixes and improvements with code tags (pre)
    • Started unit tests for PlainTextConverter
  • 2010-06-04, V26
  • 2010-06-04, V27
    • Transmitting "User-Agent" via <a name title /> element; will be dispayed in the receiving client as X-Newsreader if article was sent via this bridge ;) will not be visible in the web-forum (except if you edit an entry)
    • PlainTextConverter: Various improvements with code tags and html<=>text conversion
    • Added X-NNTPServer header
  • 2010-06-04, V28
    • Bugfix: Also use "X-Newsreader" for referencing the newsreader
    • PlainTextConverter: Support for UserDefinedTags (see MarkupGuide: http://communitybridge.codeplex.com/wikipage?title=Markup%20Guide&referringTitle=Documentation)
    • PlainTextConverter: Several improvements
  • 2010-06-05, V29
  • 2010-06-05, V30
    • Newsreader identification now also works in the "main (first) article"
    • Bugfix: Posting with MIME/multipart had lead to problems if text/plain was used
  • 2010-06-06, V31
    • Bugfix: Subjects with tabs had lead to problems in agent
    • Better MIME/multipart support (correct support of multi-line headers in mime parts)
    • PlainTextConverter: Several improvements and bugfixes
    • Removed system.net section in app.config files (was accidently introduced in V2?)
  • 2010-06-07, V32
  • 2010-06-08, V33
    • MyThreads: Automatic detection of my posts; no need to enter Username and email anymore!
    • Bugfix: On shutdown the XmlSerializer was started which failed because of the shutdown
  • 2010-06-08, V34
    • Browsing of the newsgroups with title and description can now be done in the main dialog; search is also possible
    • Removed UserName/UserEmail from the main dialog (it is not needed anymore after adding the auto-detect feature)
    • PlainTextConverter: Several improvements / No longer in beta status...
  • 2010-06-09, V35
    • Support for "quoted-printable" and "base64" as "text/plain" content-transfer-type
    • List of newsgroups in the main dialog is now alphabetically sorted
    • DetailedErrorResponse now always enabled and removed from UserSettings
    • Posting result will now also contain the exception text if an error occurred
    • PlainTextConveter: Several improvements
  • 2010-06-12, V36 (Stable)
    • You can disable the transmittion of the news-agent to the forum
    • Display of MSFT, MVP, ADMIN in username (only for unkown users; it also can be disabled in the user settings)
    • The command LISTGROUP can be disabled via UserSettings
    • Saving of UserDefinedTags and UserMapping is now done without linbreaks
    • UsePlainTextConverter now has the options "None, OnlySend, OnlyReceiver, SendAndReceive"
    • New UserSetting: PostsAreAlwaysFormatFlowed (can be set if your newsclient is always sending in "format=flowed" but is not cetting the "content-type" correctly (like 40tude))
    • Several improvements in PlainTextConverter
  • 2010-06-13, V37 (Stable)
    • Posts with "text/plain" and no plaintextconverter activated now also preserves whitespaces
    • Tabs will now be converted into 4 spaces (user setting)
    • More descriptions for user settings
    • MVP, MSFT, ADMIN will only be added if they are not yet present in the username
    • Complete support for format=flowed
    • Order of X-Comment and X-Face for Admin, Msft, Mvp corrected
  • 2010-06-14, V38 (Stable)
  • 2010-07-05, V39 (Stable)
    • Small changes with LiveId authentication
    • Adding of history-info only if now activated in the user settings
    • BugFix: Mime-Decoding regarding QP corrected (thanks to Peter Fleischer for reporting this!)
  • 2010-07-22, V40 (Stable)
    • Bugfix: Now it can handle "null" UserName (GROUP Msdn.de-DE.sqlserverde; ARTICLE 623)
    • Bugfix: MVP,MSFT,ADMIN now does not use "," as separater...
  • 2011-01-22, V41 (Stable)
    • Bugfix: Decoding of Subject now supported (thanks to Robert Breitenhofer for pointing to the correct function)
    • Added "UserSettings.DisableArticleCache" to disable the bridge-internal article cache (by default the cache is on)
  • 2011-01-23, V42 (Stable)
    • Bugfix: Decoding of Subject now also supports multi-line subjects (occurs only if you have very long subjects with non-ASCII characters)
  • 2011-02-04, V43 (Stable)
    • Bugfix: Now supporting multi-line headers in all headers ;) / Thanks to Kai Schätzl for reporting this!
    • Debug output optimized / Added a "Copy to clipboard" button in the debug window
  • 2011-05-31, V44 (Stable)
    • Bugfix: Logging-Exception during Exception fixed
  • 2011-11-13, V45 (Stable)
  • 2013-10-29, V53 (Beta)
  • 2013-10-30, V54 (Beta)
    • Bugfix for authentication failure after 1 hour
    • Added Logfile which can be found here: "%AppData%\Community\CommunityForumsNNTPServer\LogFile.txt" and can be used to sent error reports.
  • 2013-11-05, V55 (Beta)
    • Real bugfix for 1 hour authentication bug
    • Is passport error is returned, check the AccessToken via LiveConnect to see the "real" reason and log this in the logfile

Last edited Nov 8, 2013 at 12:12 PM by jkalmbach, version 117