XnewsQueue is a small application designed to provide nzb support for the popular newsreader Xnews.
As Xnews is no longer being developed, native support for NZB files was not included since their recent rise to popularity.
While Xnews uses the mxb format for storage of messages, it uses it's own format of storing and indexing messages in binary
format. Armed with only notepad and my trust hex editor I spent two days figuring out the format so that headerless downloads
could finally be enjoyed by all.
Q. Do you use Xnews for browsing Usenet?
A. Actualy.....no, I don't.
Q. Why did you write XnewsQueue then?
A. Well, other than because I am such a brilliant person, my slightly quirky friend Bodach is quite attached to Xnews and
also happens to be an editor for newzbin and he asked me to take a look in to seeing
what I could do to get NZB's in to Xnews.
Q. How did you figure out the format?
A. Working out the complex and mysterious file format used by Xnews was by no means an easy task. Initially I resorted to
necromancy in hope that the dead would speak to me if I channeled their spirits through the body of my cat. Unfortunatley,
my cat was not happy with this idea. Even after I'd gone to the effort of creating a giant pentagon on my front lawn and
performing mystic rites with the body of a dead squirrel I had found earlier, the dead decided not to show and all I was
left with was an interesting conversation piece about why my lawn looks like the fiery depths of hell. Thankfully I then
had an even better idea which was to simply try a bunch of headers/articles/downloads and look at what changed, identify
what made up a single entry and then map the numbers and strings to the appropriate properties.
Q. Why on earth did you write XnewsQueue in C#?
A. Currently my favorite language is coincidently C# as I find it's an excellent blend of the best elements from C++ and Java.
Unfortunatley C# is not completly cross platform yet as the *nix variants are still missing large parts of important libraries.
One of the other major downside of C# is that it requires the Microsoft .NET runtime environment which needs to be installed
to run any of the new .NET languages.
E-Mail: william at archbell dot com