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



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

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]
  urls=Photo.get_photos(data[:id])
  {tag:params[:tag],edit:params[:edit],urls:urls,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
# File 'app/models/xforum/photo.rb', line 20

def self.get_photos(forum_id)
  photos=Photo.where(forum_id:forum_id).pluck(:key)
  urls=[]
  photos.each {|photo|
    urls.push(ForumAssist.get_url(photo)  )
  }
  urls
end

.upload(params, user_id) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'app/models/xforum/photo.rb', line 36

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