pig-media-server 1500 → 2000
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/pig-media-server/version.rb +1 -1
- data/lib/pig-media-server/web.rb +58 -49
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dab850bdae7c3e0de1ef2cd2b31a041892e008e7
|
4
|
+
data.tar.gz: 34defff9f55b15ade326f44c716f21d432f62631
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ada348c8e28316f833e98bbe86b374036465ae2403e4d6f70fbee0120e34576a5c62daaccd9791063c0eebeaea8443de66b6d0f1cf7660a53db2b26eb343c5ab
|
7
|
+
data.tar.gz: beb055da9f66b87cfcfea986589b1f936e1a76d692de985637651201a4154c1159ad9a000e83441f229eecbedc5da9e1d9faa9ebff1fdc5aaf81cda583764831
|
data/lib/pig-media-server/web.rb
CHANGED
@@ -15,6 +15,8 @@ require 'redcarpet'
|
|
15
15
|
require 'json'
|
16
16
|
require 'twitter'
|
17
17
|
require 'tempfile'
|
18
|
+
require 'tmpdir'
|
19
|
+
|
18
20
|
|
19
21
|
module PigMediaServer
|
20
22
|
CONFIG = Pit.get 'Pig Media Sever'
|
@@ -30,36 +32,39 @@ module PigMediaServer
|
|
30
32
|
|
31
33
|
class Gyazo
|
32
34
|
def self.tweet url, comment, key, secret, token, token_secret, c
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
35
|
+
Dir.mktmpdir do |dir|
|
36
|
+
name = dir + "/#{rand(256**16).to_s(16)}.png"
|
37
|
+
jpg = name.sub(/png$/, 'jpg')
|
38
|
+
img = url.sub(/data:image\/png;base64,/, '').unpack('m').first
|
39
|
+
open(name, 'w'){|f| f.puts img}
|
40
|
+
system "gm", "convert", name, jpg
|
41
|
+
client = Twitter::REST::Client.new do |config|
|
42
|
+
config.consumer_key = key
|
43
|
+
config.consumer_secret = secret
|
44
|
+
config.access_token = token
|
45
|
+
config.access_token_secret = token_secret
|
46
|
+
end
|
47
|
+
|
48
|
+
client.update_with_media(comment.to_s, open(jpg))# rescue nil
|
49
|
+
FileUtils.rm name
|
50
|
+
FileUtils.rm jpg
|
51
|
+
end
|
48
52
|
end
|
53
|
+
|
49
54
|
def self.post url, point
|
50
55
|
imagedata = url.sub(/data:image\/png;base64,/, '').unpack('m').first
|
51
56
|
boundary = '----BOUNDARYBOUNDARY----'
|
52
|
-
id = rand(256**16).to_s(16)
|
57
|
+
id = rand(256**16).to_s(16)
|
53
58
|
|
54
59
|
data = <<EOF
|
55
60
|
--#{boundary}\r
|
56
61
|
content-disposition: form-data; name="id"\r
|
57
62
|
\r
|
58
|
-
#{id}\r
|
63
|
+
#{id}\r
|
59
64
|
--#{boundary}\r
|
60
65
|
content-disposition: form-data; name="imagedata"; filename="gyazo.com"\r
|
61
66
|
\r
|
62
|
-
#{imagedata}\r
|
67
|
+
#{imagedata}\r
|
63
68
|
--#{boundary}--\r
|
64
69
|
EOF
|
65
70
|
header ={
|
@@ -80,14 +85,14 @@ EOF
|
|
80
85
|
class Web < Sinatra::Base
|
81
86
|
register Sinatra::Flash
|
82
87
|
include PigMediaServer::API
|
83
|
-
|
88
|
+
|
84
89
|
configure do
|
85
90
|
set :haml, escape_html: true
|
86
91
|
set :haml, attr_wrapper: '"'
|
87
92
|
set :logging, true
|
88
93
|
use Rack::Session::Cookie, key: 'pigmeidaserver', secret: $session_secret || rand(256**16).to_s(16)
|
89
94
|
end
|
90
|
-
|
95
|
+
|
91
96
|
get '/' do
|
92
97
|
haml :react
|
93
98
|
end
|
@@ -114,6 +119,7 @@ EOF
|
|
114
119
|
get('/meta/:key') do
|
115
120
|
haml :react
|
116
121
|
end
|
122
|
+
|
117
123
|
get('/sub/:key'){@p = Pig.find(params[:key]);haml :sub}
|
118
124
|
get('/webvtt/:key'){@p = Pig.find(params[:key]); content_type :text; @p.webvtt}
|
119
125
|
get '/delete/:key' do
|
@@ -125,7 +131,6 @@ EOF
|
|
125
131
|
redirect params[:href]
|
126
132
|
end
|
127
133
|
|
128
|
-
|
129
134
|
get '/read/:key' do
|
130
135
|
if request.xhr?
|
131
136
|
@record = Pig.find params[:key] rescue nil
|
@@ -135,6 +140,7 @@ EOF
|
|
135
140
|
raise
|
136
141
|
end
|
137
142
|
end
|
143
|
+
|
138
144
|
get('/book/info/:key'){ content_type :json; Pig.find(params[:key]).comic.info(params[:page]).to_json}
|
139
145
|
get '/book/image' do
|
140
146
|
image, type = Pig.find(params[:id]).comic.page(params[:page])
|
@@ -152,6 +158,7 @@ EOF
|
|
152
158
|
content_type :json
|
153
159
|
{url: url}.to_json
|
154
160
|
end
|
161
|
+
|
155
162
|
post '/gyazo/tweet' do
|
156
163
|
consumer_key = UserData.load session[:user_id], 'consumer_key'
|
157
164
|
consumer_secret = UserData.load session[:user_id], 'consumer_secret'
|
@@ -161,15 +168,14 @@ EOF
|
|
161
168
|
true
|
162
169
|
end
|
163
170
|
|
164
|
-
|
165
171
|
get '/remote' do
|
166
172
|
if request.xhr? and params[:key]
|
167
173
|
return partial :_link, locals: {l: Pig.find(params[:key])}
|
168
174
|
end
|
175
|
+
|
169
176
|
return haml :remote
|
170
177
|
end
|
171
178
|
|
172
|
-
|
173
179
|
get '/sessions' do
|
174
180
|
if session[:user_id]
|
175
181
|
session[:user_id] = nil
|
@@ -189,7 +195,6 @@ EOF
|
|
189
195
|
end
|
190
196
|
end
|
191
197
|
|
192
|
-
|
193
198
|
post '/sessions' do
|
194
199
|
session[:user_id] = params[:user_id]
|
195
200
|
p session
|
@@ -226,13 +231,14 @@ EOF
|
|
226
231
|
get('/*.css'){scss params[:splat].first.to_sym}
|
227
232
|
get('/bundle.js'){content_type :js; open(File::dirname(__FILE__)+"/views/bundle.js").read}
|
228
233
|
get('/*.js'){coffee params[:splat].first.to_sym}
|
229
|
-
|
234
|
+
|
230
235
|
post '/api/save' do
|
231
236
|
key = Digest::MD5.hexdigest(params[:name]).to_s
|
232
237
|
FileUtils.mkdir_p "#{config['user_data_path']}/api_data"
|
233
238
|
open("#{config['user_data_path']}/api_data/#{key}", 'w'){|x| x.puts params[:body]}
|
234
239
|
true
|
235
240
|
end
|
241
|
+
|
236
242
|
get '/api/get' do
|
237
243
|
key = Digest::MD5.hexdigest(params[:name]).to_s
|
238
244
|
FileUtils.mkdir_p "#{config['user_data_path']}/api_data"
|
@@ -242,6 +248,7 @@ EOF
|
|
242
248
|
nil
|
243
249
|
end
|
244
250
|
end
|
251
|
+
|
245
252
|
post '/api/capapi' do
|
246
253
|
record = Groonga['Files'][params[:key]]
|
247
254
|
name = "#{rand(256**16).to_s(16)}.jpg"
|
@@ -262,17 +269,19 @@ EOF
|
|
262
269
|
haml :index
|
263
270
|
end
|
264
271
|
|
265
|
-
|
266
272
|
helpers do
|
267
273
|
def config
|
268
274
|
$config = Pit.get("Pig Media Server") unless $config
|
269
275
|
$config['page_title'] = 'Pig Media Server' unless $config['page_title']
|
270
276
|
$config
|
271
277
|
end
|
278
|
+
|
272
279
|
def h str; CGI.escapeHTML str.to_s; end
|
280
|
+
|
273
281
|
def remote?
|
274
282
|
UserData.load(session[:user_id], 'remote')
|
275
283
|
end
|
284
|
+
|
276
285
|
def partial(template, *args)
|
277
286
|
options = args.last.is_a?(Hash) ? args.pop : {}
|
278
287
|
options.merge!(:layout => false)
|
@@ -283,40 +292,41 @@ EOF
|
|
283
292
|
else
|
284
293
|
haml(template, options)
|
285
294
|
end
|
286
|
-
end
|
295
|
+
end
|
287
296
|
|
288
297
|
def star? key
|
289
298
|
Stars.star?(session[:user_id], key)
|
290
299
|
end
|
291
|
-
|
300
|
+
|
292
301
|
def markdown str
|
293
|
-
|
294
|
-
|
302
|
+
str = str.to_s
|
303
|
+
Redcarpet::Markdown.new(Redcarpet::Render::HTML.new(hard_wrap: true), autolink: true, fenced_code_blocks: true).render(str)
|
295
304
|
end
|
296
|
-
|
305
|
+
|
297
306
|
def number_to_human_size(number, precision = 1)
|
298
307
|
number = begin
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
308
|
+
Float(number)
|
309
|
+
rescue ArgumentError, TypeError
|
310
|
+
return number
|
311
|
+
end
|
312
|
+
|
303
313
|
case
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
314
|
+
when number.to_i == 1 then
|
315
|
+
"1 Byte"
|
316
|
+
when number < 1024 then
|
317
|
+
"%d Bytes" % number
|
318
|
+
when number < 1048576 then
|
319
|
+
"%.#{precision}f KB" % (number / 1024)
|
320
|
+
when number < 1073741824 then
|
321
|
+
"%.#{precision}f MB" % (number / 1048576)
|
322
|
+
when number < 1099511627776 then
|
323
|
+
"%.#{precision}f GB" % (number / 1073741824)
|
324
|
+
else
|
325
|
+
"%.#{precision}f TB" % (number / 1099511627776)
|
316
326
|
end.sub(/([0-9]\.\d*?)0+ /, '\1 ' ).sub(/\. /,' ').encode('UTF-8')
|
317
327
|
rescue
|
318
328
|
""
|
319
|
-
end
|
329
|
+
end
|
320
330
|
|
321
331
|
def title
|
322
332
|
base = $config['page_title']
|
@@ -326,5 +336,4 @@ EOF
|
|
326
336
|
end
|
327
337
|
end
|
328
338
|
end
|
329
|
-
|
330
339
|
end
|