2013-07-09 07:53:49 +00:00
|
|
|
require 'securerandom'
|
2013-07-09 08:04:03 +00:00
|
|
|
require 'base64'
|
2013-07-09 07:53:49 +00:00
|
|
|
|
|
|
|
require 'bundler/setup'
|
|
|
|
require 'sinatra'
|
|
|
|
require 'sequel'
|
2013-07-09 08:04:03 +00:00
|
|
|
require 'encryptor'
|
2013-07-09 07:53:49 +00:00
|
|
|
require 'haml'
|
|
|
|
|
|
|
|
require 'app/config'
|
|
|
|
require 'app/database'
|
|
|
|
require 'app/paste'
|
|
|
|
|
|
|
|
class Pastemaster < Sinatra::Application
|
|
|
|
set :public_folder, 'public'
|
|
|
|
|
|
|
|
get '/' do
|
|
|
|
haml :form, layout: :default
|
|
|
|
end
|
|
|
|
|
|
|
|
post '/' do
|
2013-07-09 08:04:03 +00:00
|
|
|
paste = Paste.new(params[:contents])
|
|
|
|
id = paste.save
|
|
|
|
|
|
|
|
redirect "/#{id}/#{paste.key}"
|
2013-07-09 07:53:49 +00:00
|
|
|
end
|
|
|
|
|
2013-07-09 08:04:03 +00:00
|
|
|
get '/:id/:key' do
|
|
|
|
@paste = Paste.find(params[:id])
|
|
|
|
redirect '/' unless @paste
|
|
|
|
|
|
|
|
@paste.decrypt(params[:key])
|
2013-07-09 07:53:49 +00:00
|
|
|
haml :show, layout: :default
|
|
|
|
end
|
|
|
|
end
|