aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/curl.lua5
-rw-r--r--server/opensubtitles.lua2
-rw-r--r--server/subscene.lua6
3 files changed, 8 insertions, 5 deletions
diff --git a/lib/curl.lua b/lib/curl.lua
index db501db..c8ae478 100644
--- a/lib/curl.lua
+++ b/lib/curl.lua
@@ -36,7 +36,10 @@ local get = function (url, headr, args)
args = util.array_merge(args, head_to_args(headr))
fetch = util.run(args)
- hcode = fetch:match('%d*$') or 000
+ -- hcode can be nil, it means curl was't able to fulfill the http request, either
+ -- because curl package is broken or mpv killed it prematurely. we can exit
+ -- out of retry loop early if hcode is nil since there's no point in retrying
+ hcode = fetch:match('%d*$')
fetch = fetch:gsub('%s*%d*$', '')
return fetch, tonumber(hcode)
diff --git a/server/opensubtitles.lua b/server/opensubtitles.lua
index a9f2199..6e96703 100644
--- a/server/opensubtitles.lua
+++ b/server/opensubtitles.lua
@@ -122,7 +122,7 @@ local search_ohash = function (ohash)
repeat
fetch, hcode = curl.get(url, nil, nil)
tries = tries + 1
- until hcode == 200 or tries > retries
+ until hcode == 200 or not hcode or tries > retries
id = fetch:match('/en/subtitleserve/sub/[^\n]*\n[^\n]*iduser%-0')
if id then
diff --git a/server/subscene.lua b/server/subscene.lua
index 304ffde..d6eaba6 100644
--- a/server/subscene.lua
+++ b/server/subscene.lua
@@ -99,7 +99,7 @@ local title_search = function (key)
repeat
fetch, hcode = curl.get(url, headr, args)
tries = tries + 1
- until hcode == 200 or tries > retries
+ until hcode == 200 or not hcode or tries > retries
title = fetch:match('href="/subtitles/[^"]*')
if title then
@@ -116,7 +116,7 @@ local id_fetch = function (title)
repeat
fetch, hcode = curl.get(title, headr, nil)
tries = tries + 1
- until hcode == 200 or tries > retries
+ until hcode == 200 or not hcode or tries > retries
tab = {}
iter = fetch:gmatch('[^\n\r]+')
@@ -149,7 +149,7 @@ local link_fetch = function (id)
repeat
fetch, hcode = curl.get(id, headr, nil)
tries = tries + 1
- until hcode == 200 or tries > retries
+ until hcode == 200 or not hcode or tries > retries
if hcode == 200 then
link = domain .. fetch:match('/subtitles/[%l_-]*%-text/[^"]*')