// Finds your FreeTube profiles.db and adds the channel objects divided by profile to global data
// Access this anywhere via `freetubeCategories`, which will return an array of profile objects
// Note: I refer to 'profiles' as 'categories' since that naming makes more sense given how I'm using them in this automation and on my site. In this documentation, a "category" is the same thing as a FreeTube "Profile."
//
// Category object structure:
// - `name`: string - The name of the category/profile as assigned in FreeTube
// - 'subscriptions': array of subscription objects - The channels added to this category. See below for the subscription object structure. Note that channels added to multiple categories are distinct objects, so making a change to a channel object in one category does not affect that same channel's object if it appears in another category.
// - `bgColor`: string - The background color chosen for the category in FreeTube as a hexidecimal string with leading `#`
// - `textColor`: string - The foreground color chosen for the category in FreeTube as a hexidecimal string with leading `#`
// - `_id`: string - A unique ID generated by FreeTube to track the category. This is generally a seemingly random string of alphanumeric characters, but in the case of the "All Channels" category, the `_id` value is `"allChannels"`.
// - `$$deleted`: boolean - This property only exists on categories that have been deleted. Deleted categories seem to only persist in profiles.db while the app is still running and are removed when the app is closed.
// Note: You may see multiple instances of each category while the app is still running. Make sure to close it before you generate anything from this data.
//
// Subscription object structure:
// - `id`: string - The YouTube channel ID. You can build a URL to this channel by using this format: https://www.youtube.com/channel/{id}
// - `name`: string - The channel's name
// - `thumbnail`: string - A URI pointing to the channel's thumbnail
// - `tags`: string - For any channels assigned to tag categories, this property will contain a string with all of that channel's emoji tags
// - `selected`: boolean - Not entirely sure what this is to be perfectly honest.
//
// This would be more generally useful if I parameterized some things like the tag categories, the config location, and some others, but I won't bother with that for now.
// Maybe in a future revision… or maybe someone would like to submit that as a pull request!