* WTF-657 Add spec coverage for cfg/common_settings.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Add spec coverage for cfg/position_validation.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Add spec coverage for cfg/validations.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Add spec coverage for checklist/checklist.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Add spec coverage for checklist/checklist_item.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Add spec coverage for utils/conversions.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Get rid of utils.Home() function
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Add spec coverage for utils/homedir.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Add spec coverage for utils/text.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-657 Clean up utils/utils.go
Signed-off-by: Chris Cummer <chriscummer@me.com>
* Add support to both the twitter and twitterstats modules for authenticating using both bearer tokens as well as consumer key + secret.
* A bearer token is defaulted to if it's supplied
* Add this support to both the twitterstats module as well as to the existing twitter module, modifying its functionality to re-use the same HTTP client and handle authentication upfront via oauth2
* Unmarshal directly into a `TwitterStats` struct by using json struct annotations
* Pull stats fetching for a single user out into its own function so that closing the request body is done after each request and the HTTP request can be re-used for multiple usernames' stats
* Improve type casting code used in settings parsing logic
* Create Oauth2 client configured for Twitter and create a HTTP client out of that
* Fetch user stats for each of the users, parse out of JSON, and return stats as stats structs
* Create module skeleton based off of the existing twitter module
* Strip out unused pieces and try to make it as minimal as possible
* Implement settings parsing, converting the untyped `screenNames` slice into an slice of strings
* Implement initial minimal display, showing a table with all usernames and their follower count + # of tweets (using dummy metrics for now)
azuredevops had a error due to cli being a pointer to interface rather
than interface.
devto module's `widget.articles` and `displayArticles` data type changed
to `devto.ListedArticles`.
Allows the user to specify either "12" or "24" to set whether or not to
display times in AM/PM format or 24-hour format.
Example:
gcal:
enabled: true
timeFormat: "12"
refreshInterval: 360
Fixes#665