Class: Wco::NewsvideosController

Inherits:
ApplicationController show all
Defined in:
app/controllers/wco/newsvideos_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#home, #tinymce

Methods included from ApplicationHelper

#my_truthy?, #obfuscate, #pexels_search_path, #pp_amount, #pp_currency, #pp_date, #pp_datetime, #pp_money, #pp_percent, #pp_time, #pretty_date

Instance Method Details

#createObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/controllers/wco/newsvideos_controller.rb', line 9

def create
  params[:newsvideo][:tag_ids]&.delete ''

  @newsvideo = Wco::Newsvideo.new params[:newsvideo].permit!
  authorize! :create, @newsvideo
  @newsvideo.author = current_profile
  if @newsvideo.save
    flash_notice "created newsvideo"
  else
    flash_alert "Cannot create newsvideo: #{@newsvideo.errors.messages}"
  end
  redirect_to action: 'index'
end

#destroyObject



23
24
# File 'app/controllers/wco/newsvideos_controller.rb', line 23

def destroy
end

#editObject



26
27
28
29
# File 'app/controllers/wco/newsvideos_controller.rb', line 26

def edit
  @newsvideo = Wco::Newsvideo.unscoped.find params[:id]
  authorize! :edit, @newsvideo
end

#generateObject



31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/wco/newsvideos_controller.rb', line 31

def generate
  @newsvideo = Wco::Newsvideo.unscoped.find params[:id]
  authorize! :edit, @newsvideo

  Rails.env.production? ?
    Wco::NewsvideoGenerateJob.perform_async(@newsvideo.id.to_s) :
    Wco::NewsvideoGenerateJob.perform_sync( @newsvideo.id.to_s)

  render json: { status: :ok, message: 'Scheduled the generation' }
end

#generate_illustrationObject



42
43
44
45
46
47
48
49
50
51
52
# File 'app/controllers/wco/newsvideos_controller.rb', line 42

def generate_illustration
  @newsvideo = Wco::Newsvideo.unscoped.find params[:id]
  authorize! :edit, @newsvideo

  Rails.env.production? ?
    Wco::NewsvideoIllustrationJob.perform_async(@newsvideo.id.to_s, params[:image_url]) :
    Wco::NewsvideoIllustrationJob.perform_sync( @newsvideo.id.to_s, params[:image_url])

  render json: { status: :ok, message: 'scheduled the run on pc-ai' }
  # redirect_to action: 'show', newsvideo_id: params[:id]
end

#indexObject



54
55
56
57
58
59
60
61
# File 'app/controllers/wco/newsvideos_controller.rb', line 54

def index
  authorize! :index, Wco::Newsvideo
  @newsvideos = Wco::Newsvideo.all.order_by( created_at: :desc )
  if params[:deleted]
    @newsvideos = Wco::Newsvideo.unscoped.where( :deleted_at.ne => nil )
  end
  @newsvideos = @newsvideos.page( params[:newsvideos_page] ).per( current_profile.per_page )
end

#newObject



63
64
65
66
# File 'app/controllers/wco/newsvideos_controller.rb', line 63

def new
  @newsvideo = Wco::Newsvideo.new
  authorize! :create, @newsvideo
end

#showObject



68
69
70
71
72
73
74
# File 'app/controllers/wco/newsvideos_controller.rb', line 68

def show
  @newsvideo = Wco::Newsvideo.unscoped.find params[:id]
  authorize! :show, @newsvideo
  @newspartials = Wco::Newspartial.where( newsvideo_id: @newsvideo.id.to_s).includes(:video)
  @newsoverlays = @newsvideo.newsoverlays
  @skip_footer = true
end

#splitObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'app/controllers/wco/newsvideos_controller.rb', line 76

def split
  @newsvideo = Wco::Newsvideo.unscoped.find params[:id]
  authorize! :edit, @newsvideo

  if Wco::Newspartial.where( newsvideo: @newsvideo).length > 0
    # Wco::Newspartial.where( newsvideo: @newsvideo).each { |n| n.delete }
    flash_alert 'newspartials already exist for this newsvideo - cannot split.'
    redirect_to request.referrer
    return
  end

  sentences = PragmaticSegmenter::Segmenter.new(text: @newsvideo.body).segment
  phrases = sentences_to_phrases(sentences)
  # puts! phrases, 'phrases'
  phrases.each do |phrase|
    newspartial = Wco::Newspartial.new body: phrase, newsvideo: @newsvideo
    newspartial.save!
  end

  flash_notice 'All done.'
  redirect_to request.referrer
end

#updateObject



100
101
102
103
104
105
106
107
108
109
110
111
# File 'app/controllers/wco/newsvideos_controller.rb', line 100

def update
  params[:newsvideo][:tag_ids]&.delete ''

  @newsvideo = Wco::Newsvideo.unscoped.find params[:id]
  authorize! :update, @newsvideo
  if @newsvideo.update params[:newsvideo].permit!
    flash_notice "updated newsvideo"
  else
    flash_alert "Cannot update newsvideo: #{@newsvideo.errors.messages}"
  end
  redirect_to action: 'index'
end