Commit Graph

158 Commits

Author SHA1 Message Date
King_DuckZ 3b7027d9c4 Update submodules 2020-10-20 22:30:03 +02:00
King_DuckZ dc0ba2984e Retry when server responds 503 too.
That's "Service Unavailable", it's
probably a temporary failure.
2020-10-20 22:20:19 +02:00
King_DuckZ 7d1011405a More readme 2020-09-15 01:35:16 +02:00
King_DuckZ 2534e5896c Add build instructions to readme 2020-09-15 01:17:25 +02:00
King_DuckZ 66e8406689 Delete code that was committed by mistake 2020-09-15 00:51:02 +02:00
King_DuckZ cb12f5c025 Some small fixes 2020-09-15 00:46:18 +02:00
King_DuckZ 36b0c6f6f0 Add retry capability on connection errors
This fixes bug #2
2020-09-15 00:45:39 +02:00
King_DuckZ 2c8e557bb4 Throw when content-type is not application/json 2020-09-12 01:48:10 +01:00
King_DuckZ 6bafd923f3 Import mime_split from tawashi (kamokan) 2020-09-12 01:32:08 +01:00
King_DuckZ ad3bdd0f37 Add some debug verbosity 2020-09-12 00:41:44 +01:00
King_DuckZ 8701b5aef3 Update source_id in fame_list table 2020-09-12 00:41:02 +01:00
King_DuckZ 497d797e32 Quit cleanly when an exception is thrown
The trick is to break the ev loop from within its
same thread. This can be done with the async event
for example, so I repurposed the one I already had
to call stop() in case an error has been set.
Otherwise its callback is a no-op just like before.
2020-09-12 00:40:41 +01:00
King_DuckZ 4cb47eb82e Update readme 2020-09-11 22:36:13 +01:00
King_DuckZ 317e8a3398 Embed try/catch/set_exception into the pool itself 2020-09-08 21:35:50 +01:00
King_DuckZ 6543f31acb fix sql query to only consider vending shops 2020-09-07 01:57:43 +01:00
King_DuckZ ce4753fd6d Add initial readme file 2020-09-07 01:45:40 +01:00
King_DuckZ a99976a242 Small cleaning 2020-09-06 17:47:54 +01:00
King_DuckZ 41eeee4e69 Install config file to etc
Only install if sysconfdir is not the same as the
source config file from the source directory.
2020-09-06 17:43:32 +01:00
King_DuckZ 2221aef77c Throw if api key looks wrong 2020-09-06 17:10:57 +01:00
King_DuckZ abc5441a50 Only print ping stuff in debug 2020-09-06 17:10:35 +01:00
King_DuckZ 3dc0f849b5 Fix bug with ~Event() calling a virtual method
This solves a crash when an exception is thrown
on the main thread (in test() for example, when
setting json storage to xz but without liblzma
support enabled).
Thi also makes the program quit gracefully when
SIGINT is received.
It seems to also fix the problem with exceptions
thrown in worker threads.
2020-09-05 17:09:01 +01:00
King_DuckZ a32044a4b5 Add optional lzma support for stored json responses
When enabled entries in the DB are stored as base64
encoded xz data. To uncompress save to a file
my_json.base64 and run:

cat my_json.base64 | base64 --decode | unxz --decompress - > my_json.txt
2020-09-05 14:00:22 +01:00
King_DuckZ 2e25008de3 Timeouts should be treated as integer here
It's not a double in the settings. It gets casted into
a double later, but it's not like you can set 3.528 in
the settings.
2020-09-05 12:25:12 +01:00
King_DuckZ d19b81a54e Increase max delay from 1 to 10 days 2020-09-05 03:17:46 +01:00
King_DuckZ 406cd80a2e Update some settings 2020-09-05 03:17:19 +01:00
King_DuckZ 78a933a101 Version bump to 0.2.0 2020-09-05 02:49:39 +01:00
King_DuckZ 8be26c2d1c Improve update interval calculation 2020-09-05 02:49:39 +01:00
King_DuckZ 200c74757d Not sure but maybe this should be set_exception()? 2020-09-05 02:15:01 +01:00
King_DuckZ baf0256f84 Store next access time in the db when server returns 429 2020-09-05 02:14:42 +01:00
King_DuckZ e24ebcf8e8 Add timeout options to config file
This allows users to specify the minimum wait for each
request. The (currently wrong) estimate of
retry_after / rate_limit is calculated, and the max
between that and the setting in the config file is
used.
2020-09-05 01:36:26 +01:00
King_DuckZ 7da3f81c27 Fix insertion of empty item record
Also improve some code style a bit
2020-09-05 01:00:25 +01:00
King_DuckZ 8f8865e4df Pass app_config to test() instead of single options 2020-09-05 00:59:51 +01:00
King_DuckZ 9d4d52bed0 Add store_raw_json option to config 2020-09-05 00:41:01 +01:00
King_DuckZ 3b071727c3 Properly use the extra delay in all cases 2020-09-04 15:10:24 +01:00
King_DuckZ a5e2c14171 Rename header to header_list 2020-09-04 15:09:08 +01:00
King_DuckZ f8fde74b84 Rename section "rules" to "options" 2020-09-04 15:06:17 +01:00
King_DuckZ d1573c6218 Header entries should be case insensitive 2020-09-04 02:29:26 +01:00
King_DuckZ 9dffbf811c Throw an exception when response is not 200 OK
Not sure this is the best way to do this, but
at least I'm not just ignoring errors now.
2020-09-04 01:56:38 +01:00
King_DuckZ c98083837d Fix for the new server's reply
Just when I was about to deploy it they changed the
server to return HTTP/2... lol
No big deal (I think), fix the http header parser so
if the "OK" message string is missing it'll keep
parsing.
2020-09-04 01:17:59 +01:00
King_DuckZ b768015b52 Implement ApiNap::fame_list() 2020-09-04 00:58:12 +01:00
King_DuckZ 571a92aa2e Implement ApiNap::market_list() 2020-09-04 00:58:12 +01:00
King_DuckZ 1cb40fd5ba Replace string_view with string
In datatypes.cpp function to_timestamp() the
istringstream needs a string, so passing
a string_view around is pointless.
2020-09-04 00:05:19 +01:00
King_DuckZ 8ca23eb221 Implement ApiNap::items_icons() 2020-09-03 23:51:38 +01:00
King_DuckZ d66c020ad8 Implement ApiNap::items_list() 2020-09-03 23:47:33 +01:00
King_DuckZ 2aaf500b66 Implement ApiNap::WhoAmI()
Refactor code out into fetch_and_parse() since the
two functions were pretty much the copy paste of
the other. This should simplify the rest of the
missing implementations too.
2020-09-03 23:04:41 +01:00
King_DuckZ 3ff82985c9 Implement ApiNap::ping() 2020-09-03 01:59:33 +01:00
King_DuckZ 99d577f43a Bugfix in HttpResponse
string_views are potentially wrong if raw is very small
and stdlib has small string optimisation. Use unique_ptr
instead to force allocations in all cases.
2020-09-03 00:55:16 +01:00
King_DuckZ 5342185370 Build fix for systems without libev in pkg-config 2020-08-29 19:32:18 +01:00
King_DuckZ d433e05877 Change restc-cpp into a meson wrap (lest too) 2020-08-29 18:03:04 +01:00
King_DuckZ 32dea4d089 Add virtual do destructor 2020-08-29 17:20:05 +01:00