#!/usr/bin/env ruby
# encoding: UTF-8

require 'net/http' 
require 'uri'
require 'public_suffix_list'
require 'public_suffix'
require 'fileutils'
require 'mechanize'
require 'nokogiri'
require 'watir-webdriver'
require 'selenium/webdriver'

module VideoTitle
  class ViewTitle
 
    def initialize
      make_agent    
    end

    def find_site(url)
      uri = URI.parse(url)
      domain = PublicSuffix.parse(uri.host)  
      return domain.sld
    end
    
    def get_youtube_title(url) #ok
      page = @agent.get url
      views = page.parser.xpath('//*[@id="eow-title"]/text()')       
      return views.to_s.strip # sortie en html, supprimer les tags? 
    end

    def get_dailymotion_title(url) #ok
      page = @agent.get url
      views = page.at('meta[@property="og:title"]')[:content]
      return views
    end

    def get_izlesene_title(url) #ok
      page = @agent.get url
      views = page.at('meta[@property="og:title"]')[:content]      
      #views = page.parser.xpath('//html/body/div[9]/div/article/div[2]/meta[10]/content()') 
      return views.to_s.strip
    end
    
    def get_trilulilu_title(url) #ok
      page = @agent.get url
      views = page.parser.xpath('//html/body/div[5]/div[3]/div/div/div/div[3]/div/div/div/div/h1/text()')
      return views[0].to_s.strip
    end
    
    def get_clipfish_title(url) #ok
      page = @agent.get url
      views = page.parser.xpath('//html/body/div[4]/div[6]/div/div[2]/div[3]/div[2]/div/div/h1/text()')
      return views[0].to_s.strip
    end
    
    def get_metacafe_title(url) #ok
      page = @agent.get url
      views_tmp = page.parser.xpath('//h2[@id="Views"]/text()')
      if 
        views_tmp.empty?
      then
        views = page.parser.xpath('//html/body/div/div[6]/hgroup/h1/text()')
      else
        views = views_tmp
      end
      return views.to_s.strip
    end    

   def get_myspace_title(url) #ok  
      page = @agent.get url
      views = page.at('meta[@property="og:title"]')[:content]
      return views
    end    

    def get_photobucket_title(url) #ok 
      page = @agent.get url
      views = page.at('meta[@property="og:title"]')[:content]
      return views
    end
    
    def get_daleplay_title(url) #ko no available vid 
      page = @agent.get url
      views = page.parser.xpath('//*[@id="video_views_countv2"]/b/text()')
      return views.to_s.strip
    end

    def get_vxv_title(url) #ok
      page = @agent.get url
      views = page.parser.xpath('//html/body/div[4]/div/div/div[2]/h1/text()') 
      return views.to_s.strip
    end    

    def get_rutube_title(url) #ok 
      page = @agent.get url
      views = page.at('meta[@property="og:title"]')[:content]
      return views
    end
    
    def get_smotri_title(url) #ok 
      page = @agent.get url
      views = page.parser.xpath('//html/body/div[6]/div/div/div[3]/div/div/div[2]/div/h1/text()')
      return views.to_s.strip
    end 
           
    def get_miwim_title(url) #ok 
      page = @agent.get url
      views = page.parser.xpath('//*[@id="viewvideo-title"]/h1/text()')
      return views.to_s.strip
    end 

    def get_wat_title(url) #ok 
      page = @agent.get url
      views = page.parser.xpath('//html/body/div[3]/div[2]/div/div[2]/div/div/div/h1/text()') 
      return views.to_s.strip
    end 
    
    def get_viddler_title(url) #ok 
      page = @agent.get url
      views = page.at('meta[@property="og:title"]')[:content]
      return views.to_s.strip
    end     

    def get_veoh_title(url) #ok
      page = @agent.get url
      views = page.at('meta[@name="og:title"]')[:content]
      return views.to_s.strip
    end              
    
    def get_myvideo_title(url) #ok
      page = @agent.get url
      views = page.parser.xpath('//html/body/div[6]/div[3]/div[6]/div[3]/div/div[2]/div/table/tbody/tr/td[2]/h1/text()')   
      return views.to_s.strip
    end

    def get_kewego_title(url) #ok
      page = @agent.get url
      views = page.at('meta[@name="title"]')[:content] 
      return views.to_s.strip
    end    
       
    
private
   def make_agent
      @agent = Mechanize.new do |a|
        a.user_agent_alias = 'Mac Safari'
        a.max_history = 1
        a.open_timeout = 15
        a.read_timeout = 5
        a.keep_alive = false
      end
    end      
    
  end
end