API: fix regression in expires_in URL parameter.

Fix `https://danbooru.donmai.us/artists.json?expires_in=300` failing with
an `'300' is not a valid duration` error. This call pattern is used by the
Translate Pixiv Tags userscript.

Caused by a5ed8c72, which changed the `age:N` metatag to require time
units, but this inadvertently changed the `expires_in` parameter to
require them too.

Using `expires_in` without time units is deprecated and will be removed
in the future.
This commit is contained in:
evazion
2021-11-04 03:47:21 -05:00
parent 7709e84502
commit 65ab7f1eb5

View File

@@ -10,7 +10,9 @@ class ApplicationResponder < ActionController::Responder
if get?
if params["expires_in"]
controller.expires_in(DurationParser.parse(params["expires_in"]))
expires_in = params["expires_in"]
expires_in += "seconds" if expires_in =~ /\d+\z/
controller.expires_in(DurationParser.parse(expires_in))
elsif request.params["expiry"]
controller.expires_in(params["expiry"].to_i.days)
end