'apiKey' is one that people are likely to spell wrong in their configs
as 'apikey'. Given that there's no sanity-checking around required
config values yet, and a missing API key can cause silent failures in
some modules, be liberal in accepting spelling.
Have all instances take a function
Update the remaining modules to take this into account
Numerous smaller refactors to make some widgets work more or less the same
This key allows users to pass an arbitrary amount of queries
that contain custom filters. A simple query that shows all closed
PRs could be written like the following.
```
customQueries:
closedPullRequests:
title: "Closed Requests"
perPage: 10
filter:
- "is:closed"
- "is:pr"
```
Resolves#469
* Some assignments simplified by using assignment operators
* Rewrite switch statement with only one case as if.
* Rewrite if-else chain as a switch statement.
* go fmt `modules/todoist/project.go` file.
Note, that this is a backwards incompatible change
Previous config:
```
repositories:
wtf: "wtfutil"
```
New Config:
```
repositories:
- "wtfutil/wtf"
```
Define help with keys
This means that keys and help are automatically in sync
This means that you can't define keys, but forget help
This unfortunately also means that formatting may not be quite as good
Currently, we are only getting a subset of PRs. For very active repos, this might mean I don't see any of my PRs
This isn't an explicit fix (iterating through pages would be), but at least lessens the problem
There is already default handling of title. Remove instances where people are unknowingly overriding it
For instances where we want to set special things, make sure to use CommonSettings.Title, so people can still override
Rather than referencing wtc.Config, instead pass the global config
Also, look up config for the module early and pass that in sooner, to deal with fewer long paths and get rid of the
ConfigKey variable
If, on startup, a widget's positional configuration is invalid (ie:
cannot be displayed onscreen) then terminate the app and inform about
which widget is erroring