Working codecs web app; logic, display, wording, and database logging finished.
[opensuse:software-o-o.git] / app / controllers / codecs_controller.rb
1 class CodecsController < ApplicationController
2   def index
3     @visitor = Visitor.new(
4         :os_release => params["os_release"],
5         :language => params["lang"],
6         :client_version => params["client_version"],
7         :kernel => params["kernel"],
8         :gstreamer_package => params["gstreamer"],
9         :xine_package => params["xine"],
10         :user_agent => request.user_agent,
11         :ip_address => request.remote_ip
12     )
13
14     params.each do | k, v |
15       if k.starts_with?("plugin")
16         a = v.split("|")
17         @visitor.missing_codecs << MissingCodec.from_array(a)
18         if @visitor.application == nil
19           @visitor.application = a[2]
20         end
21       end
22     end
23
24     if @visitor.client_version && @visitor.os_release 
25       last_visitor = Visitor.find(
26         :first, 
27         :include => :missing_codecs,
28         :conditions => ['created_at > ? AND ip_address = ? AND fourcc IN (?)',
29           5.minutes.ago, 
30           @visitor.ip_address,
31           @visitor.missing_codecs.map(&:fourcc)
32       ])
33
34       if last_visitor == nil || last_visitor.missing_codecs.length != @visitor.missing_codecs.length 
35         @visitor.save()
36       end
37     end
38   end
39 end
40