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

can_be_read_by? check_only_one_featured featured_video has_cover_photo? published? show_in_agencia show_in_agencia? show_in_irekia show_in_irekia? translated_to? video_preview_img videos videos_in_dir

### Included Modules

Sluggable FerretMethods DraftUtils::InstanceMethods VideoPaths

### Public Class methods

videos_in_dir(path)

[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

can_be_read_by?(user)

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

check_only_one_featured()

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

featured_video()

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

has_cover_photo?()

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

published?()

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

show_in_agencia()

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

show_in_agencia?()

[Source]

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

show_in_irekia()

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

show_in_irekia?()

[Source]

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

translated_to?(lang)

[Source]

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

video_preview_img()

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

videos()

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]