This is a way more convenient way for the underlying providers to
access the input in which the software was called. Having the input
path in providers that already discover path will allow users to
override paths easily, and this way we could also add more flags that
some providers would need and others ignore without changuing function calls.
* Using EXIF data for screenshots which is more accurate and doesn't
require parsing the filename (which not always contains the date)
* Relying on the date parsing for videos for now since I haven't found
a game that didn't have the datetime on the video filename. This could
change in the future.
- Added the retroarch provider
- Fixed some `path.X` references (moved to filepath)
Note: In order to use RetroArch specific settings on the app are
required. Read the top comment on the provider module to know how
to start.
On windows filesystems no special characters can be used on path routes,
so when we fail to create (MkdirAll) the path for a certain
game and a failure happens, we use a slugified version of the name
instead.