handle comic.pixiv.net being down gracefully

This commit is contained in:
r888888888
2016-10-02 19:59:54 -07:00
parent fc4b2e54a4
commit 0b396124d6

View File

@@ -13,16 +13,18 @@ class PixivWebAgent
phpsessid = Cache.get(SESSION_CACHE_KEY) phpsessid = Cache.get(SESSION_CACHE_KEY)
comicsessid = Cache.get(COMIC_SESSION_CACHE_KEY) comicsessid = Cache.get(COMIC_SESSION_CACHE_KEY)
if phpsessid && comicsessid if phpsessid
cookie = Mechanize::Cookie.new(SESSION_COOKIE_KEY, phpsessid) cookie = Mechanize::Cookie.new(SESSION_COOKIE_KEY, phpsessid)
cookie.domain = ".pixiv.net" cookie.domain = ".pixiv.net"
cookie.path = "/" cookie.path = "/"
mech.cookie_jar.add(cookie) mech.cookie_jar.add(cookie)
cookie = Mechanize::Cookie.new(COMIC_SESSION_COOKIE_KEY, comicsessid) if comicsessid
cookie.domain = ".pixiv.net" cookie = Mechanize::Cookie.new(COMIC_SESSION_COOKIE_KEY, comicsessid)
cookie.path = "/" cookie.domain = ".pixiv.net"
mech.cookie_jar.add(cookie) cookie.path = "/"
mech.cookie_jar.add(cookie)
end
else else
headers = { headers = {
"Origin" => "https://accounts.pixiv.net", "Origin" => "https://accounts.pixiv.net",
@@ -53,11 +55,15 @@ class PixivWebAgent
end end
end end
mech.get("https://comic.pixiv.net") do |page| begin
cookie = mech.cookies.select {|x| x.name == COMIC_SESSION_COOKIE_KEY}.first mech.get("https://comic.pixiv.net") do |page|
if cookie cookie = mech.cookies.select {|x| x.name == COMIC_SESSION_COOKIE_KEY}.first
Cache.put(COMIC_SESSION_CACHE_KEY, cookie.value, 1.month) if cookie
Cache.put(COMIC_SESSION_CACHE_KEY, cookie.value, 1.month)
end
end end
rescue Net::HTTPServiceUnavailable
# ignore
end end
end end