-
Notifications
You must be signed in to change notification settings - Fork 5
Home
Since 2007, XWord Info has been parsing Across Lite .puz files from the New York Times to build up a database of historical and statistical information. It is by far the most complete and most accurate archive of NYT crossword data anywhere (including at the Times!)
This .Net Core console app, written entirely in C#, is a handy command-line utility for anyone dealing with .puz files. More importantly, it demonstrates two essential functions: cracking the binary format of Across Lite, and organizing the resulting data in the correct format for a valid text file. That text file can then be edited, opened in Across Lite, and saved as an updated .puz file.
For details, see Across Lite to text
As of version 2.0, XML files (with richer content) can also be created. Details at Across Lite to XML.
Version 2.3 added Json files as well.
AcrossLiteToText from to XmlFilename
The first parameter is a file or folder to convert.
The optional second parameter specifies a folder to write the text and XML files into.
A third parameter lets you specify a single filename in the "to" folder for both XML and Json.
You'll be prompted if parameters are not supplied.
There is some useful documentation here about the Across Lite binary format. I can't vouch for its accuracy. Logic in the code here is derived from direct examination of the binary files.
If you care about crosswords, and you either know or would like to learn C#, this is a great project for you to participate in. Fork your own branch, make your edits, and submit a pull request.
There are some simple and obvious missing features. Notably, the user interface is poor. It would be great to make it friendlier.
Perhaps you're an experienced programmer and can see better ways to accomplish the core features.
Maybe there are new features you think would be great, or you wonder why there isn't better error handling.
Maybe it should optionally output JSON. Update: Contributor charberg has now added JSON output. Thanks!
Perhaps you want to go all out and parse encrypted (locked) Across Lite puzzles too. There is information on the web about how to decrypt them.
There is some useful documentation here about the Across Lite binary format. I can't vouch for its accuracy. Logic in the code here is derived from direct examination of the binary files.
I'll review your code before it's integrated into the main branch, so be as brave as you like. There's an automatic build that happens on the server each time you submit code, so you'll know right away if you broke the build.
Anything is worth trying or asking about. Contact me via the XWord Info home page link, and tell me your ideas.
Where are the automated tests? So far, there aren't any. Hey, that's something else you can contribute!
The binaries are available under Releases, but I encourage you to download and build it yourself. That's my lure to get programmers involved. The utility works fine as is, but over time, I plan to make more XWord Info components open source, and I hope to use this project to build up a community of interested developers.
I will update this wiki as questions or ideas come up.
If there is interest, I'll add details for using Visual Studio or Visual Studio Code, so you can fork, compile, and run it on your computer. (Separate installation of the .Net Core runtime may be required.)
The rest of the future depends on you.
PLEASE RESPECT THE COPYRIGHTS ON PUBLISHED CROSSWORDS.
You need permission from the rights holders for most public and for all commercial uses.
AcrossLiteToText is released under a GNU General Public License v3.0 license. It is free software but there are some limitations.
Jim Horne