Prechádzať zdrojové kódy

use typhoeus instead of patron

Umar M. Sheikh 11 rokov pred
rodič
commit
77c623b28e
3 zmenil súbory, kde vykonal 17 pridanie a 15 odobranie
  1. 0 1
      Gemfile
  2. 0 2
      Gemfile.lock
  3. 17 12
      app/models/agents/public_transport_agent.rb

+ 0 - 1
Gemfile

@@ -4,7 +4,6 @@ gem 'rails'
 gem 'rake'
 gem 'mysql2'
 gem 'devise'
-gem "patron"
 gem 'kaminari'
 gem 'bootstrap-kaminari-views'
 gem "rufus-scheduler", :require => false

+ 0 - 2
Gemfile.lock

@@ -138,7 +138,6 @@ GEM
       multi_xml (~> 0.5)
       rack (~> 1.2)
     orm_adapter (0.4.0)
-    patron (0.4.18)
     polyglot (0.3.3)
     pry (0.9.12.2)
       coderay (~> 1.0.5)
@@ -281,7 +280,6 @@ DEPENDENCIES
   kramdown
   mysql2
   nokogiri
-  patron
   pry
   rails
   rake

+ 17 - 12
app/models/agents/public_transport_agent.rb

@@ -64,21 +64,26 @@ module Agents
       options["stops"].collect{|a| a.split("|").last}
     end
     def check
-      page = session.get(check_url)
-      page = Nokogiri::XML page.body
-      predictions = page.css("//prediction")
-      predictions.each do |pr|
-        parent = pr.parent.parent
-        vals = {routeTitle: parent["routeTitle"], stopTag: parent["stopTag"]}
-        if pr["minutes"] && pr["minutes"].to_i < options["alert_window_in_minutes"].to_i
-          vals = vals.merge Hash.from_xml(pr.to_xml)
-          if not_already_in_memory?(vals)
-            create_event(:payload => vals)
-            add_to_memory(vals)
-          else
+      hydra = Typhoeus::Hydra.new
+      request = Typhoeus::Request.new(check_url, :followlocation => true)
+      request.on_success do |response|
+        page = Nokogiri::XML response.body
+        predictions = page.css("//prediction")
+        predictions.each do |pr|
+          parent = pr.parent.parent
+          vals = {routeTitle: parent["routeTitle"], stopTag: parent["stopTag"]}
+          if pr["minutes"] && pr["minutes"].to_i < options["alert_window_in_minutes"].to_i
+            vals = vals.merge Hash.from_xml(pr.to_xml)
+            if not_already_in_memory?(vals)
+              create_event(:payload => vals)
+              add_to_memory(vals)
+            else
+            end
           end
         end
       end
+      hydra.queue request
+      hydra.run
     end
     def add_to_memory(vals)
       self.memory["existing_routes"] ||= []