A web-based CombatLog parser for RIFT. Link to the live PT site is here.
Please note - this is currently being rewritten in .Net Core 3.1. Contact me on Discord (Hewi#0692) for further info.
The whole project is written in C#, and consists of two console applications & one ASP.NET MVC project. Below is a breakdown of how PT has been put together and a bit of history - if you're looking for the Getting Started guide, you'll find it here.
Best contact method for issues - discord: Hewi#0692
The purpose of the AutoExtracter is to watch a specific folder for incoming files, and when new files arrive, the logs within them are extracted to another folder, and the file is archived in case it needs to be used again later. Files that don't match a specific filter (which currently is simply .zip) are deleted.
This is the application responsible for parsing the uncompressed logs & updating the database. Similar to the AutoExtracter, it watches a specific folder for incoming logs and parses them when they do. The only requirement here is that the incoming log is attributable to a previously created session from the web interface.
This project is pretty small, and contains objects that are shared between the parser and the web project.
This project handles all of the database interaction and is used by both the parser and the web project.
A simple implementation of NLog
This project is responsible for everything other than the database interaction and the log parsing.
Notable packages used by this project:
- Glimpse for debugging & insight
- Quartz.NET for the early scheduling implementation
- Hangfire - a better way of executing background tasks
- StructureMap for Dependency Injection / IoC
PrancingTurtle originally existed as a very simple web project for internal use within a RIFT guild. The idea came from a site that I had used before but had been decommissioned. I managed to get in contact with the author and was kindly given a copy of the source that was used there. The structure of the logs themselves had changed significantly but looking through the existing code gave me a few ideas, and a very early iteration of PrancingTurtle was born. Looking back at my first series of commits, it turns out that development started around August 2014.
Being a side project, it didn't get worked on full-time, but as there were plenty of feature requests from guildies, it continued to evolve until it was (amusingly) used to point out how much better some players were than others. This spawned a series of conversations which ultimately led to PrancingTurtle turning into a site for anyone and everyone within the RIFT community to use. PrancingTurtle was published publicly in April 2015.