Prototype of thumbnail generation

openid
Marcin Kulik 12 years ago
parent bd85ecda47
commit da3ec8aca1

@ -0,0 +1,29 @@
require 'tempfile'
class ThumbnailWorker
def self.perform(asciicast_id)
asciicast = Asciicast.find(asciicast_id)
in_data_file = Tempfile.new('asciiio-data', :encoding => 'ascii-8bit')
in_data_file.write(asciicast.stdout.read)
in_data_file.close
in_data_path = in_data_file.path
in_timing_file = Tempfile.new('asciiio-timing', :encoding => 'ascii-8bit')
in_timing_file.write(asciicast.stdout_timing.read)
in_timing_file.close
in_timing_path = in_timing_file.path
out_data_path = in_data_path + '.ts'
out_timing_path = in_timing_path + '.ts'
if system "bash -c './script/convert-to-typescript.sh #{in_data_path} #{in_timing_path} #{out_data_path} #{out_timing_path}'"
delay = (asciicast.duration / 2).to_i
command = "scriptreplay #{out_timing_path} #{out_data_path}; sleep 10"
puts '-' * 80
system "bash -c 'ASCIICAST_ID=#{asciicast_id} COLS=#{asciicast.terminal_columns} LINES=#{asciicast.terminal_lines} COMMAND=\"#{command}\" DELAY=#{delay} THUMB_LINES=10 THUMB_COLS=20 ./script/thumbnail.sh'"
else
puts "failed"
end
end
end

@ -0,0 +1,12 @@
#!/bin/bash
in_data_file="$1"
in_timing_file="$2"
out_data_file="$3"
out_timing_file="$4"
echo '# Foo' >$out_data_file
bzip2 -c -d $in_data_file >>$out_data_file
(echo 0.0; bzip2 -c -d $in_timing_file | awk '{ print $2; print $1 }' | head -n -1) | xargs -L 2 echo >$out_timing_file

@ -4,6 +4,8 @@
# ASCIICAST_ID=666 COLS=80 LINES=20 COMMAND="df; df; df; sleep 10"
# DELAY=1 THUMB_LINES=5 THUMB_COLS=10 ./tmux-save.sh
set -e
SESSION_NAME=asciiio-thumb-$ASCIICAST_ID
tmux new -s $SESSION_NAME -d -x $COLS -y $LINES "$COMMAND"

Loading…
Cancel
Save