Anyone have a solution to this problem?

On Oct 12, 12:36 pm, Christian Fazzini <[email protected]>
wrote:
> My form submits the file. The custom processor I made for Paperclip
> uses FFMPEG. My custom processor expects a style to be set so that it
> can process the audio based on that value. So for example, in my form,
> I set stream_type to 30, my custom processor would process the audio
> file to 30 seconds.
>
> Walter, in your example. You already have a style set as a fixed
> string (has_attached_file :pdf,:styles => { :text => { :fake =>
> 'variable' } },)
>
> Your example is valid, because you are processing again after the file
> is submitted. But, I don't want to reprocess. It would be a waste of
> resources to do this twice. I want do it right the first time around.
>
> On Oct 12, 12:17 pm, Walter Lee Davis <[email protected]> wrote:
>
> > I built a system in Rails 2.3.8 that accepted PDF uploads and needed  
> > to extract their text content using the venerable (read ancient)  
> > pdftotext command-line utility. I had to jump through the following  
> > hoops to make it work, and this might have some bearing on your  
> > solution:
>
> > #model
> >    has_attached_file :pdf,:styles => { :text => { :fake =>  
> > 'variable' } }, :processors => [:text]
> >    after_post_process :extract_text
>
> >    private
> >    def extract_text
> >      file = File.open("#{pdf.queued_for_write[:text].path}","r")
> >      plain_text = ""
> >      while (line = file.gets)
> >        plain_text << Iconv.conv('ASCII//IGNORE', 'UTF8', line)
> >      end
> >      self.plain_text = plain_text
> >    end
>
> > #lib/paperclip_processors/text.rb
> > module Paperclip
> >    # Handles extracting plain text from PDF file attachments
> >    class Text < Processor
>
> >      attr_accessor :whiny
>
> >      # Creates a Text extract from PDF
> >      def make
> >        src = @file
> >        dst = Tempfile.new([...@basename, 'txt'].compact.join("."))
> >        command = <<-end_command
> >          "#{ File.expand_path(src.path) }"
> >          "#{ File.expand_path(dst.path) }"
> >        end_command
>
> >        begin
> >          success = Paperclip.run("/usr/bin/pdftotext -nopgbrk",  
> > command.gsub(/\s+/, " "))
> >          Rails.logger.info "Processing #{src.path} to #{dst.path} in  
> > the text processor."
> >        rescue PaperclipCommandLineError
> >          raise PaperclipError, "There was an error processing the text  
> > for #...@basename}" if @whiny
> >        end
> >        dst
> >      end
> >    end
> > end
>
> > Within the environs of Paperclip, you can write processors that do  
> > pretty much anything, and usually result in a new file saved as a new  
> > format in the attachments hierarchy. Once that process is done, you  
> > can access the result file and do other stuff with it. But I'm not  
> > sure if that answers your question at all, since you don't seem to be  
> > facing the same problem I was.
>
> > If your form posts a file to Paperclip, you don't get access to the  
> > file parts of that form submission directly in your controller, unless  
> > I'm missing something fundamental. But a processor can access them  
> > directly, at a very low level.
>
> > Walter
>
> > On Oct 12, 2010, at 12:01 AM, Christian Fazzini wrote:
>
> > > Walter Lee, I am trying to pass a value (stream_type) that was in
> > > submitted in my form to :styles using proc.
>
> > > Radhames, even if I do all this in the model, without a processor, I
> > > am still not able to get the value of stream_type, that was passed
> > > when the form tried to submit.
>
> > > So Philip, this means I would need to reprocess the file and delete
> > > the original? This means I will be processing the file twice? Isn't
> > > this a waste of resources if I only want one processed file that is
> > > adherent to the stream_type?
>
> > > On Oct 12, 12:07 am, Philip Hallstrom <[email protected]> wrote:
> > >> has_attached_file gets read when the class file is first read.  It  
> > >> then sets up the various paperclip methods that do there stuff.  
> > >> When it does that, 'instance' is a new/blank record.
>
> > >> What you have below will work (if memory serves me right) if you  
> > >> save the record, reload it, and then reprocess it.
>
> > >> Something along those lines... it's been awhile since I ran into  
> > >> this.
>
> > >> -philip
>
> > >> On Oct 10, 2010, at 1:22 PM, Christian Fazzini wrote:
>
> > >>> anyone?? Been on this for days without a solution.... thinking  
> > >>> that I
> > >>> may have to switch to another gem just to get this feature to  
> > >>> work...
>
> > >>> On Oct 7, 3:16 pm, Christian Fazzini <[email protected]>
> > >>> wrote:
> > >>>> I have a stream_type field on my form. When the form submits,
> > >>>> instance.stream_type is blank. To verify this, in my custom  
> > >>>> processor
> > >>>> (class ProcessAudio < Processor), I do puts options[:geometry].
>
> > >>>>   has_attached_file :media,
> > >>>>                     :styles => { :original => Proc.new { |instance|
> > >>>> instance.stream_type } },
> > >>>>                     :url => '/assets/artists/:artist_id/
> > >>>> songs/:id/:style.:extension',
> > >>>>                     :path => ':rails_root/public/assets/
> > >>>> artists/:artist_id/songs/:id/:style.:extension',
> > >>>>                     :processors => [:process_audio]
>
> > >>>> If I provide a fixed string. For example:
>
> > >>>>   has_attached_file :media,
> > >>>>                     :styles => { :original => '30' },
> > >>>>                     :url => '/assets/artists/:artist_id/
> > >>>> songs/:id/:style.:extension',
> > >>>>                     :path => ':rails_root/public/assets/
> > >>>> artists/:artist_id/songs/:id/:style.:extension',
> > >>>>                     :processors => [:process_audio]
>
> > >>>> puts options[:geometry] = 30. Why does is it NOT work with proc?
>
> > >>>> What is wrong?
>
> > >>> --
> > >>> You received this message because you are subscribed to the Google  
> > >>> Groups "Ruby on Rails: Talk" group.
> > >>> To post to this group, send email to [email protected]
> > >>> .
> > >>> To unsubscribe from this group, send email to 
> > >>> [email protected]
> > >>> .
> > >>> For more options, visit this group 
> > >>> athttp://groups.google.com/group/rubyonrails-talk?hl=en
> > >>> .
>
> > > --
> > > You received this message because you are subscribed to the Google  
> > > Groups "Ruby on Rails: Talk" group.
> > > To post to this group, send email to rubyonrails-
> > > [email protected].
> > > To unsubscribe from this group, send email to 
> > > [email protected]
> > > .
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/rubyonrails-talk?hl=en
> > > .
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to