Class: Xforum::Photo

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/xforum/photo.rb

Class Method Summary collapse

Class Method Details

.get_photo(params) ⇒ Object



31
32
33
34
35
36
# File 'app/models/xforum/photo.rb', line 31

def self.get_photo(params)
  params[:id].nil? || params[:id] == '' ? which = {tag:params[:tag]}  : which = {id:params[:id]}
  data=Forum.grab(which,[:id,:parent],{})[0]
  answer=Photo.get_photos(data[:id])
  {tag:params[:tag],edit:params[:edit],urls:answer[:urls],video:answer[:video],id:data[:id],parent:data[:parent],count:params[:count].to_i+1}
end

.get_photos(forum_id) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'app/models/xforum/photo.rb', line 20

def self.get_photos(forum_id)
  photos=Photo.grab({forum_id:forum_id},[:key,:has_video],{order:[:id]})
  urls=[]
  video=false
  photos.each {|photo|
    urls.push(ForumAssist.get_url(photo[:key])  )
    video=true if photo[:has_video]
  }
  {urls:urls,video:video,forum:forum_id}
end

.get_video(params) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/models/xforum/photo.rb', line 39

def self.get_video(params)
  photos=Photo.grab({forum_id:params[:forum_id]},[:key,:has_video,:name],{})
  if photos.size>1
    {video:false}
  else
    photo=photos[0]
    ext= photo[:name].split('.').last
    name=photo[:name].split(ext).first
    name+='mp4'
    folder=ENV['XFORUM_VIDEOS']
    {video:ForumAssist.get_url(File.join(folder,name))}
  end

end

.upload(params, user_id) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'app/models/xforum/photo.rb', line 53

def self.upload(params,user_id)
  temp=JSON.load(params[:photo][:data])
  pforward=Hash[temp.map{|k,v| [k.to_sym,v]}]  #make the true/false strings again
  pforward[:needs_photo] ? pforward[:needs_photo] ='true' : pforward[:needs_photo] ='false'
  pforward[:already_has_photo] ? pforward[:already_has_photo] ='true' : pforward[:already_has_photo] ='false'
  pforward[:edit] ? pforward[:edit] ='true' : pforward[:edit] ='false'
  pforward[:translating] ? pforward[:translating] ='true' : pforward[:translating] ='false'
  comment_info=Forum.add_comment(pforward,user_id)
  k=params[:photo][:file]
  Spawnling.new {
    (0...k.size).each {|i|
      name=k[i].original_filename.downcase
      ext=name.split('.').last
      if %w(jpg gif png).include?(ext)
        folder=ENV['XFORUM_PHOTOS']          # todo make this programable
        save_name=File.join(folder,name)
        ForumAssist.save_image(k[i].tempfile.path, save_name)
        Photo.create(user_id:user_id,forum_id:comment_info[:id],name:name,key:save_name)
      end
    }
  } unless k.nil?
  Rails.logger.debug 'saved job, now going back'
end