Monthly Archives: December 2019

Goals for 2020

Even though this project has been neglected for the past couple years, there are still a few things I would like to accomplish in 2020 that I hope will encourage others in the open source community to contribute. I still believe the idea of Owl as an application has great appeal, and with the proper care it could grow into an amazing app!

Here are some of the things I would like to work on in 2020:

Installers

In the past, building the installers was a manual process. Of course I had scripts that helped automate part of the process, the bulk of the work was done by hand.

During the holiday break, I have been working on adding CPack integration into the existing CMake infrastructure. These efforts can be seen on the deploy branch in Github. The idea is to have installers available for release builds, and for builds of the master branch (the unstable builds).

This will allow people to use/test the latest development efforts of Owl without having to build it themselves.

Package Manager Support

Both Owl and OwlConsole should be available via various package managers for each OS supported. For example:

  • Windows – choco install owl
  • macOS – brew install owl
  • Ubuntu – apt-get install owl

All of the above should work to install the latest release. This will take some effort on my part since I have on idea how one goes about getting their app into ay of those managers’ repos.

Refactor Board Detection

When a user adds a board to Owl, the functionality for detecting the best parser is very naive and prone to error.

Most message board software systems do not publicly publish the version number running. If you go to a particular site (ie. www.wtf.com) and look at the Page Source, it’s very easy to see that they are running XenForo, but it is nearly impossible to tell which version. This is done for security reasons.

Because of this I want to refactor the auto-detect functionality in Owl to use a “scoring system”. A parser will execute certain actions (ie. login to a board, list all the forums, list the threads in a forum, etc) and based on the success or failure of those actions, the parser will generate a “score”.

In the end the parser with the highest score wins.

Website

The website needs a significant overhaul. I plan to put the existing website code into its own repo, and encourage people with better design skills than myself to contribute.

Owl Forum

The forum should be brought back to life and perhaps even come as a pre-configured board with downloads of Owl.


Those items will be the main focus of 2020. Assuming there is more time at the end of the year, here are a few other things I would like to accomplish:

More Board Support – Specifically it would be nice to have XenForo 2.x and vBulletin 5.x support.

Parser API Refactor – Currently all the parsers create Owl-specific objects and return these objects to the caller. Parsers should instead return standard JSON. This will not only add greater abstraction, allowing for greater reuse of existing parsers, but will also make it easier for others to write their own parsers.

Less Reliance on Qt – It would be nice to isolate the areas that really need Qt and use standard C++ in the areas that don’t. The first example that comes to mind is the owl::WebClient class.

As always, if you would like to help out in any areas, please let me know! Or send a Pull Request! https://github.com/zethon/Owl

Happy New Year!