Class Video
In: app/models/video.rb
Parent: ActiveRecord::Base
 Clase para los videos de la Web TV.

 Nota sobre los idiomas: las columnas que determinan el idioma en el que

 está disponible el video (show_in_es, show_in_eu y show_in_en) se actualizan automáticamente
 con un cronjob que llama a RAILS_ROOT/batch_processes/check_webtv_video_languages.sh
 Este proceso es necesario porque los videos se suben independientemente a través de SFTP

 sin tener que pasar por la aplicación web.

 Las columnas son necesarias para que por ejemplo en euskera, los listados solo contengan
 los videos disponibles en euskera

Methods

Included Modules

Sluggable FerretMethods DraftUtils::InstanceMethods VideoPaths

Public Class methods

[Source]

     # File app/models/video.rb, line 117
117:   def self.videos_in_dir(path)
118:     Dir.glob(Video::VIDEO_PATH + path + "_e[sun].flv") + Dir.glob(Video::VIDEO_PATH + path + ".flv")
119:   end

Public Instance methods

Indica si el usuario user puede ver el video. Sólo se usa en las búsquedas.

[Source]

     # File app/models/video.rb, line 113
113:   def can_be_read_by?(user)  
114:     published?
115:   end

Asegura que sólo hay un video destacado. Se llama desde before_update

[Source]

    # File app/models/video.rb, line 89
89:   def check_only_one_featured
90:     Video.update_all("featured='f'") if featured && featured_changed?
91:   end

Video a mostrar, en función del idioma actual

[Source]

    # File app/models/video.rb, line 52
52:   def featured_video
53:     videos[I18n.locale.to_sym] || videos[:common] || videos[I18n.default_locale.to_sym] || videos.values.first
54:   end

Determina si este video tiene imagen para preview

[Source]

    # File app/models/video.rb, line 81
81:   def has_cover_photo?
82:     File.exists?("#{Video::VIDEO_PATH}{video_path}.jpg")
83:   end

Indica si el video está publicado

[Source]

    # File app/models/video.rb, line 28
28:   def published?
29:     !draft && !published_at.nil? && published_at <= Time.now
30:   end

Indica si se muestra en Agencia. Sólo se usa en las búsquedas.

[Source]

     # File app/models/video.rb, line 104
104:   def show_in_agencia
105:     false
106:   end

[Source]

     # File app/models/video.rb, line 108
108:   def show_in_agencia?
109:     show_in_agencia
110:   end

Indica si se muestra en Irekia. Sólo se usa en las búsquedas.

[Source]

    # File app/models/video.rb, line 95
95:   def show_in_irekia
96:     true
97:   end

[Source]

     # File app/models/video.rb, line 99
 99:   def show_in_irekia?
100:     show_in_irekia
101:   end

[Source]

    # File app/models/video.rb, line 56
56:   def translated_to?(lang)
57:     !videos[lang.to_sym].nil? || !videos[:common].nil?
58:   end

Devuelve la imagen de preview para este video

[Source]

    # File app/models/video.rb, line 61
61:   def video_preview_img
62:     if !featured_video.nil?
63:       video_preview_filename = featured_video.sub('.flv', '.jpg')
64:       video_preview_file = "#{Video::VIDEO_PATH}#{video_preview_filename}"
65:       video_preview_url = "#{Video::VIDEO_URL}#{video_preview_filename}"
66:       unless File.exists?(video_preview_file)
67:         # Si no esta la imagen nombre_es.jpg, buscamos nombre.jpg
68:         preview_without_locale = video_preview_filename.sub(/_#{I18n.locale.to_sym}.jpg/, '.jpg')
69:         if File.exists?("#{Video::VIDEO_PATH}#{preview_without_locale}")
70:           video_preview_file = "#{Video::VIDEO_PATH}#{preview_without_locale}"
71:           video_preview_url = "#{Video::VIDEO_URL}#{preview_without_locale}"
72:         end
73:       end
74:       preview_img = File.exists?(video_preview_file) ? video_preview_url : "/images/video_preview.jpg"
75:     else
76:       preview_img = "/images/video_preview.jpg"
77:     end
78:   end

Devuelve el listado de videos disponible para este video. Puede haber varios, uno para cada idioma.

[Source]

    # File app/models/video.rb, line 39
39:   def videos
40:     videos = {}
41:     if video_path.present?
42:       videos_in_dir = Video.videos_in_dir(video_path)
43:       Video::LANGUAGES.each do |l|
44:         videos[l.to_sym] = "#{video_path}_#{l}.flv" if videos_in_dir.include?("#{Video::VIDEO_PATH}#{video_path}_#{l}.flv")
45:       end
46:     videos[:common] = "#{video_path}.flv" if videos_in_dir.include?("#{Video::VIDEO_PATH}#{video_path}.flv")
47:     end
48:     return videos
49:   end

[Validate]