diff --git a/Gemfile b/Gemfile index e6d6151..5ef7fde 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,7 @@ gem 'wolfram' gem 'puma' gem 'sinatra' gem 'mechanize' +gem 'xml-simple' gem 'nokogiri' group :development, :test do diff --git a/Gemfile.lock b/Gemfile.lock index be001f1..bfa885c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -107,6 +107,7 @@ GEM websocket-extensions (0.1.2) wolfram (0.2.1) nokogiri (>= 1.4.3) + xml-simple (1.1.5) PLATFORMS ruby @@ -122,6 +123,7 @@ DEPENDENCIES sinatra slack-ruby-bot (~> 0.6.0) wolfram + xml-simple BUNDLED WITH 1.11.2 diff --git a/slack-pixiv.rb b/slack-pixiv.rb index 860f370..443f759 100644 --- a/slack-pixiv.rb +++ b/slack-pixiv.rb @@ -1,6 +1,7 @@ require 'slack-ruby-bot' require 'wolfram' require 'mechanize' +require 'xmlsimple' require 'nokogiri' require 'slack-pixiv/commands/pixiv' require 'slack-pixiv/app' diff --git a/slack-pixiv/commands/pixiv.rb b/slack-pixiv/commands/pixiv.rb index 4ded290..dd6c481 100644 --- a/slack-pixiv/commands/pixiv.rb +++ b/slack-pixiv/commands/pixiv.rb @@ -7,6 +7,9 @@ module SlackMathbot # Initalize Mechanize agent = Mechanize.new + # Get time + time = Time.now + # Create Pixiv URL pixiv_url = "http://www.pixiv.net" + _match[:url][0..-2] puts pixiv_url @@ -27,8 +30,23 @@ module SlackMathbot puts title # Scrape image - image_url = agent.get(pixiv_url).images_with(:src => /600x600\/img-master/)[0].to_s.sub! '600x600','480x960' - puts image_url + r = Range.new( + Time.local(time.year, time.month, time.day, 12), + Time.local(time.year, time.month, time.day, 20) + ) === time + + if ((Date.today.to_s == "2016-04-01") && (r)) + api_url = "http://rule34.paheal.net/api/danbooru/find_posts/index.xml" + + agent.get(api_url) + xml = agent.current_page.body + status = XmlSimple.xml_in(xml) + image_url = status["post"].sample["file_url"] + puts agent.get(pixiv_url).images_with(:src => /600x600\/img-master/)[0].to_s.sub! '600x600','480x960' + else + image_url = agent.get(pixiv_url).images_with(:src => /600x600\/img-master/)[0].to_s.sub! '600x600','480x960' + puts image_url + end client.web_client.chat_postMessage( channel: _data.channel,