From 0b396124d6f7831cf9450fda9eadfe3c106f014f Mon Sep 17 00:00:00 2001 From: r888888888 Date: Sun, 2 Oct 2016 19:59:54 -0700 Subject: [PATCH] handle comic.pixiv.net being down gracefully --- app/logical/pixiv_web_agent.rb | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/logical/pixiv_web_agent.rb b/app/logical/pixiv_web_agent.rb index 8786d3139..ed51e60c7 100644 --- a/app/logical/pixiv_web_agent.rb +++ b/app/logical/pixiv_web_agent.rb @@ -13,16 +13,18 @@ class PixivWebAgent phpsessid = Cache.get(SESSION_CACHE_KEY) comicsessid = Cache.get(COMIC_SESSION_CACHE_KEY) - if phpsessid && comicsessid + if phpsessid cookie = Mechanize::Cookie.new(SESSION_COOKIE_KEY, phpsessid) cookie.domain = ".pixiv.net" cookie.path = "/" mech.cookie_jar.add(cookie) - cookie = Mechanize::Cookie.new(COMIC_SESSION_COOKIE_KEY, comicsessid) - cookie.domain = ".pixiv.net" - cookie.path = "/" - mech.cookie_jar.add(cookie) + if comicsessid + cookie = Mechanize::Cookie.new(COMIC_SESSION_COOKIE_KEY, comicsessid) + cookie.domain = ".pixiv.net" + cookie.path = "/" + mech.cookie_jar.add(cookie) + end else headers = { "Origin" => "https://accounts.pixiv.net", @@ -53,11 +55,15 @@ class PixivWebAgent end end - mech.get("https://comic.pixiv.net") do |page| - cookie = mech.cookies.select {|x| x.name == COMIC_SESSION_COOKIE_KEY}.first - if cookie - Cache.put(COMIC_SESSION_CACHE_KEY, cookie.value, 1.month) + begin + mech.get("https://comic.pixiv.net") do |page| + cookie = mech.cookies.select {|x| x.name == COMIC_SESSION_COOKIE_KEY}.first + if cookie + Cache.put(COMIC_SESSION_CACHE_KEY, cookie.value, 1.month) + end end + rescue Net::HTTPServiceUnavailable + # ignore end end