File weight calculator
This commit is contained in:
		
							parent
							
								
									1494e81fa7
								
							
						
					
					
						commit
						135f10d73a
					
				@ -8,7 +8,8 @@ module Vkontakte
 | 
			
		||||
  def self.get artist, track, length
 | 
			
		||||
    #html = self.getHtml artist +' - '+ track
 | 
			
		||||
    files = self.parseHtml 1 #html
 | 
			
		||||
    files = self.calcWeight files
 | 
			
		||||
    files = self.calcWeight files, artist, track, length
 | 
			
		||||
    self.stream files.first['url']
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
@ -58,13 +59,37 @@ module Vkontakte
 | 
			
		||||
          'url'     => item[0],
 | 
			
		||||
          'length'  => (t[0].to_i * 60) + t[1].to_i,
 | 
			
		||||
          'artist'  => item[2],
 | 
			
		||||
          'title'   => item[3].gsub(/<\/?span>/, '')
 | 
			
		||||
          'track'   => item[3].gsub(/<\/?.*?>/, '')
 | 
			
		||||
        }
 | 
			
		||||
      end
 | 
			
		||||
    files
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def self.calcWeight files
 | 
			
		||||
    pp files
 | 
			
		||||
  def self.calcWeight files, artist, track, length
 | 
			
		||||
    files.each do |file|
 | 
			
		||||
      weight = 0
 | 
			
		||||
      
 | 
			
		||||
      if file['artist'] == artist then weight += 10 else
 | 
			
		||||
      if file['artist'].include? artist then weight += 5 else
 | 
			
		||||
      if file['track'].include? artist then weight += 4
 | 
			
		||||
      end end end
 | 
			
		||||
      
 | 
			
		||||
      if file['track'] == track then weight += 10 else
 | 
			
		||||
      if file['track'].include? track then weight += 5
 | 
			
		||||
      end end
 | 
			
		||||
      
 | 
			
		||||
      if file['length'] == length then weight +=10 else
 | 
			
		||||
        delta = (length - file['length']).abs
 | 
			
		||||
        if delta < 5 then weight += (5 - delta) end
 | 
			
		||||
      end
 | 
			
		||||
      
 | 
			
		||||
      file['weight'] = weight
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    files.sort_by{|file| file['weight']}.reverse
 | 
			
		||||
  end
 | 
			
		||||
  
 | 
			
		||||
  def self.stream url
 | 
			
		||||
    
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user