Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversion to standalone libraries #316

Closed
6 of 9 tasks
erengy opened this issue Oct 12, 2016 · 2 comments
Closed
6 of 9 tasks

Conversion to standalone libraries #316

erengy opened this issue Oct 12, 2016 · 2 comments
Milestone

Comments

@erengy
Copy link
Owner

erengy commented Oct 12, 2016

Similar to my effort in v1.2 to separate the anime video filename parser, I'm planning to continue modularizing Taiga in v1.3. This will not only result in a simpler codebase for Taiga, but it may benefit other projects as well (@erengy/anitomy is being used by at least three other applications).

  • Media detection: @erengy/anisthesia will take care of detecting running media players and web browsers, as well as retrieving information regarding the currently playing video (i.e. base/process.cpp, track/media.cpp, track/media_stream.cpp, data/media.xml). It's going to be Windows-only for a while, but the plan is to add Unix stuff too later on.
  • Advanced Title Formatting: [WIP] @erengy/atf will replace our crude implementation that currently resides in taiga/script.cpp. It will fix some long-standing bugs and provide more features such as conditional sections and multi-line strings. The idea is that the application provides the necessary data for custom fields (e.g. %title%, %episode%), and the library takes care of everything else. We may eventually switch to a more advanced interpreted scripting language such as Lua, but not yet.
  • Semantic Versioning: I'll just move base/version.cpp to @erengy/semaver and write some tests for it.
  • Windows API: I'm moving win/* to its own repository at @erengy/windows. We're going to continue using this until v2.0, for the most part.
  • libcurl wrapper: I'm currently evaluating @whoshuu/cpr as a replacement. If that doesn't work out, I may move my own interface (base/http.h and accompanying files) to a separate repository.

Third-party libraries

  • boost: It has lots of things that should have been in the standard library. In particular, we could at least make use of algorithm, date_time, filesystem and optional headers. However, I'm leaning towards using my own code along with C++17 headers instead, to avoid bringing in a huge dependency.
  • date: We could possibly make use of this alongside <chrono>.
  • fmt: This seems to be a nice little library that we can use to format strings throughout the application.
  • json: I'm considering using this instead of JsonCpp.

Please let me know if you have any ideas or suggestions!

@wiiaboo
Copy link
Contributor

wiiaboo commented Dec 5, 2016

Wasn't sure if this warranted a separate issue:
Would it be possible to add something like https://github.com/stengerh/foo_tfsandbox?

erengy added a commit to erengy/anisthesia that referenced this issue Feb 6, 2017
Code is based on relevant portions of Taiga, but with significant technical improvements.

Taiga will eventually use this library instead: erengy/taiga#316
@tomerghelber
Copy link

I would like to know why boost is "a huge dependency".
Because there is a lot of code? We should be happy.
Because its big? The compiler should be able to cut out the staff that aren't used.
Thanks.

@erengy erengy closed this as completed Apr 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants