From f4529e73e3e619a0cb6352b58a1395eb642d10fa Mon Sep 17 00:00:00 2001 From: Toks Date: Sun, 5 Oct 2014 12:11:08 -0400 Subject: [PATCH] Cache seiga and nijie sessions --- app/logical/sources/strategies/nico_seiga.rb | 20 +++++++++++++++----- app/logical/sources/strategies/nijie.rb | 20 +++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/app/logical/sources/strategies/nico_seiga.rb b/app/logical/sources/strategies/nico_seiga.rb index 696016599..42914d50a 100644 --- a/app/logical/sources/strategies/nico_seiga.rb +++ b/app/logical/sources/strategies/nico_seiga.rb @@ -103,11 +103,21 @@ module Sources @agent ||= begin mech = Mechanize.new - mech.get("https://secure.nicovideo.jp/secure/login_form") do |page| - page.form_with do |form| - form["mail_tel"] = Danbooru.config.nico_seiga_login - form["password"] = Danbooru.config.nico_seiga_password - end.click_button + session = Cache.get("nico-seiga-session") + if session + cookie = Mechanize::Cookie.new("user_session", session) + cookie.domain = ".nicovideo.jp" + cookie.path = "/" + mech.cookie_jar.add(cookie) + else + mech.get("https://secure.nicovideo.jp/secure/login_form") do |page| + page.form_with do |form| + form["mail_tel"] = Danbooru.config.nico_seiga_login + form["password"] = Danbooru.config.nico_seiga_password + end.click_button + end + session = mech.cookie_jar.cookies.select{|c| c.name == "user_session"}.first + Cache.put("nico-seiga-session", session.value, 1.month) if session end # This cookie needs to be set to allow viewing of adult works diff --git a/app/logical/sources/strategies/nijie.rb b/app/logical/sources/strategies/nijie.rb index 7b51239ee..c792db5d6 100644 --- a/app/logical/sources/strategies/nijie.rb +++ b/app/logical/sources/strategies/nijie.rb @@ -76,11 +76,21 @@ module Sources @agent ||= begin mech = Mechanize.new - mech.get("http://nijie.info/login.php") do |page| - page.form_with(:action => "/login_int.php") do |form| - form['email'] = Danbooru.config.nijie_login - form['password'] = Danbooru.config.nijie_password - end.click_button + session = Cache.get("nijie-session") + if session + cookie = Mechanize::Cookie.new("NIJIEIJIEID", session) + cookie.domain = ".nijie.info" + cookie.path = "/" + mech.cookie_jar.add(cookie) + else + mech.get("http://nijie.info/login.php") do |page| + page.form_with(:action => "/login_int.php") do |form| + form['email'] = Danbooru.config.nijie_login + form['password'] = Danbooru.config.nijie_password + end.click_button + end + session = mech.cookie_jar.cookies.select{|c| c.name == "NIJIEIJIEID"}.first + Cache.put("nijie-session", session.value, 1.month) if session end # This cookie needs to be set to allow viewing of adult works while anonymous