Hey Devs,
Wanted to post a link to the new implementation Mike and I have been working on for the last little bit. If can be found on github @
http://github.com/ted/ted.
Github allows any dev to easily clone the repo, write patches/bugfixes, and send them back to the main project.
Here's a quick rundown of how the project is going to be structured. There are three subprojects:
ted-api: This is an Apache Thrift definition of the client/server interface. It is currently being used to generate the service, and Java files that will be passed between client and server, and persisted. You can build and locally deploy the API by running: "mvn -P thrift" in the ted-api directory. (After installing Thrift). We may look at deploying this to a mvn repo soon so devs that do not want to work on API stuff don't need Thrift.
ted-server: This is the core ted code, that is responsible for tracking the watched shows, searching for new episodes, downloading the torrents, etc. (need to do a quick mavenization and move src/ to src/main -- probably this weekend)
ted-ui: These are the project UIs. Anyone will be able to write a UI, but we'll probably have a few built-in UIs. Currently it includes a GWT UI, and will likely have a swing UI once we get a little further.
The ways the project will differ from the original ted:
Instead of maintaining a list of known shows, we are providing a search for shows that the guide knows about.
Instead of defined rules for what makes a good torrent, we're going to include rules that will validate a torrent matches what the user expects.
We will try to maintain strict interfaces between the different modules to allow the addition of new torrent sources, guides, etc by other devs.
Also to note, although the API is changing now, when a version is released the API version number will be changed, and that version number will no longer change. For future versions we will write version translators to move the objects from one version to the next.
Finally, we also created an assembla project page while working on this. It's being used to track the new tickets. Check it out at
https://www.assembla.com/spaces/dashboard/index/ted .
Let me know what you guys think,
Kenny