pig-media-server 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pig-media-server/cli.rb +3 -0
- data/lib/pig-media-server/crawl.rb +8 -7
- data/lib/pig-media-server/kindle_send.rb +52 -0
- data/lib/pig-media-server/model/pig.rb +11 -1
- data/lib/pig-media-server/version.rb +1 -1
- data/lib/pig-media-server/views/_ft_mobi.haml +3 -0
- data/lib/pig-media-server/views/config.coffee +9 -1
- data/lib/pig-media-server/views/config.haml +18 -0
- data/lib/pig-media-server/views/meta.haml +38 -0
- data/lib/pig-media-server/views/sub.coffee +50 -0
- data/lib/pig-media-server/views/sub.haml +29 -0
- data/lib/pig-media-server/views/subview.coffee +57 -0
- data/lib/pig-media-server/web.rb +41 -1
- data/pig-media-server.gemspec +4 -1
- metadata +51 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a8c11fa4d88792c7a93d697dea3442fc44316d3
|
4
|
+
data.tar.gz: 8b0ad30ffb50ab03192e1254dadd8b2bba69a234
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d965b28375598bd6e4ee27960536f058f68b8a993023b0af75defc8c0f319b1e2adebdd18c01825ebd0d3cb3b549787600cbe9100ce6b994ca2f65293796d10b
|
7
|
+
data.tar.gz: 06be6ced80f9ad5d62db67109866c20d1fcf31d224e1a1b699691847033384aadc110bd4690b12791e255076215d366bb6801fbc3dd830129387ea2e2158bdfa
|
data/lib/pig-media-server/cli.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
1
|
require 'pig-media-server'
|
2
2
|
require 'pig-media-server/model/pig'
|
3
3
|
|
4
|
+
|
4
5
|
module PigMediaServer
|
5
6
|
class Crawl
|
6
7
|
def all
|
7
|
-
config = Pit.get("Pig Media Server")
|
8
|
-
|
8
|
+
$config = Pit.get("Pig Media Server")
|
9
|
+
if ARGV[1]
|
10
|
+
array = Dir.glob("#{ARGV[1]}/**/*")
|
11
|
+
else
|
12
|
+
array = Dir.glob("#{$config['path']}/**/*").sort
|
13
|
+
end
|
9
14
|
array.each_with_index{|x,i|
|
10
15
|
next if File::ftype(x) == 'directory'
|
11
16
|
flag = false
|
12
|
-
config['exclude_path'].each{|e| flag = true if x =~ /#{e.sub(/\//, '\/')}/ } if config['exclude_path'].class.to_s == 'Array'
|
17
|
+
$config['exclude_path'].each{|e| flag = true if x =~ /#{e.sub(/\//, '\/')}/ } if $config['exclude_path'].class.to_s == 'Array'
|
13
18
|
next if flag
|
14
19
|
Pig.find_or_create_by_path x
|
15
20
|
puts "Crawl #{i+1} / #{array.count}"
|
16
21
|
}
|
17
|
-
all = Pig.all
|
18
|
-
all.each_with_index{|x,i|
|
19
|
-
puts "Check #{i+1} / #{all.count}"
|
20
|
-
}
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'mail'
|
2
|
+
require 'pony'
|
3
|
+
require 'pig-media-server'
|
4
|
+
require 'pig-media-server/model/pig'
|
5
|
+
|
6
|
+
module PigMediaServer
|
7
|
+
class KindleSend
|
8
|
+
def run
|
9
|
+
while true
|
10
|
+
begin
|
11
|
+
GC.start
|
12
|
+
pit_config = Pit.get 'Pig Media Server'
|
13
|
+
from_hash = Hash[*Dir.glob("#{pit_config['user_data_path']}/*.json").map{|t| JSON.parse open(t).read}.select{|t| t['kindle_to'] and t['kindle_from']}.map{|t| [t['kindle_to'], t['kindle_from']]}.select{|t| t.first != '' and t.last != ''}.flatten]
|
14
|
+
Dir.glob("#{pit_config['user_data_path']}/kindle/queue/*").each{|x|
|
15
|
+
begin
|
16
|
+
queue = x.split('/').last
|
17
|
+
key = queue.split('_').first
|
18
|
+
user_id = queue.split('_').last
|
19
|
+
config = JSON.parse open("#{pit_config['user_data_path']}/#{user_id}.json").read
|
20
|
+
p [key, user_id, config['kindle_to'], config['kindle_from']]
|
21
|
+
|
22
|
+
pig = Pig.find key
|
23
|
+
puts 'start send'
|
24
|
+
from_hash.each{|to, from|
|
25
|
+
p [to, from]
|
26
|
+
Pony.mail({
|
27
|
+
:to => to,
|
28
|
+
from: from,
|
29
|
+
subject: '',
|
30
|
+
body: '',
|
31
|
+
attachments: {"#{key}.mobi" => File.read(pig.record.path)},
|
32
|
+
:via => :smtp,
|
33
|
+
:via_options => pit_config['smtp'].dup
|
34
|
+
})
|
35
|
+
}
|
36
|
+
rescue =>e
|
37
|
+
p e
|
38
|
+
p e.backtrace
|
39
|
+
end
|
40
|
+
FileUtils.cd '/home/ssig33/dev/pig'
|
41
|
+
FileUtils.rm x
|
42
|
+
puts 'end '+x
|
43
|
+
}
|
44
|
+
rescue => e
|
45
|
+
p e
|
46
|
+
p e.backtrace
|
47
|
+
end
|
48
|
+
sleep 1
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
#coding:utf-8
|
2
|
+
require 'fileutils'
|
2
3
|
require 'pig-media-server/model/migrate'
|
3
4
|
|
4
5
|
class Pig
|
@@ -8,7 +9,7 @@ class Pig
|
|
8
9
|
record.size = File::Stat.new(record.path).size.to_s rescue nil
|
9
10
|
end
|
10
11
|
self.record = record
|
11
|
-
self.config = Pit.get
|
12
|
+
self.config = $config || Pit.get("Pig Media Server")
|
12
13
|
end
|
13
14
|
def key; self.record._key;end
|
14
15
|
def name; self.record.path.split('/').last; end
|
@@ -25,10 +26,15 @@ class Pig
|
|
25
26
|
'read'
|
26
27
|
when 'txt', 'TXT'
|
27
28
|
'txt'
|
29
|
+
when 'mobi'
|
30
|
+
'mobi'
|
28
31
|
else
|
29
32
|
'other'
|
30
33
|
end
|
31
34
|
end
|
35
|
+
def path
|
36
|
+
self.record.path.sub(/#{config['path'].sub(/\//, '\/')}/, '')
|
37
|
+
end
|
32
38
|
def comic
|
33
39
|
Comic.new self.record
|
34
40
|
end
|
@@ -40,6 +46,10 @@ WEBVTT
|
|
40
46
|
EOS
|
41
47
|
str.chomp.chomp
|
42
48
|
end
|
49
|
+
def to_kindle user_id
|
50
|
+
FileUtils.mkdir_p "#{self.config['user_data_path']}/kindle/queue"
|
51
|
+
open("#{self.config['user_data_path']}/kindle/queue/#{self.key}_#{user_id}", 'w'){|x| x.puts ''}
|
52
|
+
end
|
43
53
|
|
44
54
|
|
45
55
|
|
@@ -1,4 +1,8 @@
|
|
1
|
-
save = ->
|
1
|
+
save = ->
|
2
|
+
localStorage.gyazo = $('#gyazo').val()
|
3
|
+
if $('#kindle_to').get(0)
|
4
|
+
save_to_pig({kindle_to: $('#kindle_to').val(), kindle_from: $('#kindle_from').val(),remote: $('#remote').prop('checked')})
|
5
|
+
|
2
6
|
|
3
7
|
$ ->
|
4
8
|
if localStorage.gyazo == undefined
|
@@ -6,3 +10,7 @@ $ ->
|
|
6
10
|
$('#gyazo').val(localStorage.gyazo)
|
7
11
|
|
8
12
|
$('#save').click -> save()
|
13
|
+
|
14
|
+
get_from_pig('kindle_to', (data)-> $('#kindle_to').val(data))
|
15
|
+
get_from_pig('kindle_from', (data)-> $('#kindle_from').val(data))
|
16
|
+
|
@@ -3,6 +3,7 @@
|
|
3
3
|
%title Config - Pig Media Server
|
4
4
|
%script{src: 'http://code.jquery.com/jquery.min.js'}
|
5
5
|
%script{src: '/config.js'}
|
6
|
+
%script{src: '/storage.js'}
|
6
7
|
%link{href: '/app.css', rel: 'stylesheet', type: 'text/css'}
|
7
8
|
%meta(content='width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' name='viewport')
|
8
9
|
#all
|
@@ -24,6 +25,23 @@
|
|
24
25
|
%th Gyazo
|
25
26
|
%td
|
26
27
|
%input#gyazo{size: 60}
|
28
|
+
-if session[:user_id]
|
29
|
+
%tr
|
30
|
+
%th Use Remote?
|
31
|
+
%td
|
32
|
+
-if hash()['remote']
|
33
|
+
%input#remote{type: :checkbox}(checked)
|
34
|
+
-else
|
35
|
+
%input#remote{type: :checkbox}
|
36
|
+
%tr
|
37
|
+
%th Kindle To
|
38
|
+
%td
|
39
|
+
%input#kindle_to{size: 60}
|
40
|
+
%tr
|
41
|
+
%th Kindle From
|
42
|
+
%td
|
43
|
+
%input#kindle_from{size: 60}
|
44
|
+
|
27
45
|
%tr
|
28
46
|
%td
|
29
47
|
%button#save Save
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
%meta{charset: 'UTF-8'}
|
3
|
+
%title Pig Media Server
|
4
|
+
%script{src: 'http://code.jquery.com/jquery.min.js'}
|
5
|
+
%script{src: '/meta.js'}
|
6
|
+
|
7
|
+
%link{href: '/app.css', rel: 'stylesheet', type: 'text/css'}
|
8
|
+
<meta content='width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' name='viewport' />
|
9
|
+
#all
|
10
|
+
%h1 pig.ssig33.com
|
11
|
+
%p=flash[:notice]
|
12
|
+
%form{method: 'GET', action: '/'}
|
13
|
+
%input{name: 'query', value: params[:query]}
|
14
|
+
%button Search
|
15
|
+
%a{href: '/latest'} Latest
|
16
|
+
%a{href: '/?syobo=true'} Syobocal
|
17
|
+
%a{href: '/config'} Config
|
18
|
+
%h2 Metadata
|
19
|
+
%h3=@p.name
|
20
|
+
%h4 Path
|
21
|
+
%p=@p.record.path
|
22
|
+
%h4 Size
|
23
|
+
%p=number_to_human_size @p.size
|
24
|
+
-case @p.type
|
25
|
+
-when 'video'
|
26
|
+
%p
|
27
|
+
%video{src: @p.url, controls: :controls, style: 'max-width:50%;max-height:50%'}
|
28
|
+
%p
|
29
|
+
-if hash()['remote']
|
30
|
+
%a.remote{href: 'javascript:void(0)', key: @p.record.key} remote
|
31
|
+
-if @p.metadata
|
32
|
+
%h4 Data
|
33
|
+
%p#aspect=''
|
34
|
+
%p!=@p.metadata.gsub(/\n/, '<br>')
|
35
|
+
-else
|
36
|
+
%p#aspect=''
|
37
|
+
.none
|
38
|
+
%span#key=params[:key]
|
@@ -0,0 +1,50 @@
|
|
1
|
+
shot = (index, targets, complete)->
|
2
|
+
t = targets[index]
|
3
|
+
if t == undefined
|
4
|
+
$.post('/api/save', name: "sub/caps/#{$('#key').text()}", body: JSON.stringify(complete)).success ->
|
5
|
+
$.post('/api/save', name:"sub/exist_cap/#{$('#key').text()}", body: 'true').success ->
|
6
|
+
location.reload()
|
7
|
+
else
|
8
|
+
i = ~~(parseInt($(t).attr('start'))/1000)
|
9
|
+
$.post('/api/capapi', key: $('#key').text(), time: i).success((data)->
|
10
|
+
complete[$(t).attr('id')] = data
|
11
|
+
$('.control').text "#{index} / #{targets.length}"
|
12
|
+
shot index+1, targets, complete
|
13
|
+
).error(->
|
14
|
+
setTimeout ->
|
15
|
+
shot index, targets, complete
|
16
|
+
,500
|
17
|
+
)
|
18
|
+
create_cap = ->
|
19
|
+
c = 0
|
20
|
+
targets = []
|
21
|
+
$.each $('.srt_line'), (i,n)->
|
22
|
+
if i == 0
|
23
|
+
targets.push n
|
24
|
+
c = parseInt($(n).attr('start')) + 15*1000
|
25
|
+
else if i == ($('.srt_line').length-1)
|
26
|
+
targets.push n
|
27
|
+
else
|
28
|
+
if c <= parseInt($(n).attr('start'))
|
29
|
+
targets.push n
|
30
|
+
c = parseInt($(n).attr('start')) + 15*1000
|
31
|
+
shot(0, targets, {})
|
32
|
+
true
|
33
|
+
|
34
|
+
$ ->
|
35
|
+
for n in $('.srt p')
|
36
|
+
start = $($(n).text().split('\n')[1].split(' ')).filter(-> this.length != 0)[0]
|
37
|
+
milli = parseInt start.split(',')[1], 10
|
38
|
+
hour = parseInt start.split(',')[0].split(':')[0], 10
|
39
|
+
min = parseInt start.split(',')[0].split(':')[1], 10
|
40
|
+
sec = parseInt start.split(',')[0].split(':')[2], 10
|
41
|
+
start_i = hour*60*60*1000 + min*60*1000 + sec*1000 + milli
|
42
|
+
$(n).attr start: start_i, id: "start_#{start_i}", class: 'srt_line'
|
43
|
+
$.get('/api/get', name: "sub/exist_cap/#{$('#key').text()}").success (data)->
|
44
|
+
if data.match /true/
|
45
|
+
sub_view()
|
46
|
+
else
|
47
|
+
$('<button>').text('Create Capture').attr(
|
48
|
+
id: 'cap'
|
49
|
+
).appendTo('.control').click(-> create_cap()).css('cursor','pointer')
|
50
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
%meta{charset: 'UTF-8'}
|
3
|
+
%title Pig Media Server
|
4
|
+
%link{href: '/app.css', rel: 'stylesheet', type: 'text/css'}
|
5
|
+
%script{src: 'http://code.jquery.com/jquery.min.js'}
|
6
|
+
|
7
|
+
%script{src: '/sub.js'}
|
8
|
+
%script{src: '/subview.js'}
|
9
|
+
%meta{content: 'width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no', name: 'viewport'}
|
10
|
+
#all
|
11
|
+
%h1 pig.ssig33.com
|
12
|
+
%form{method: 'GET', action: '/'}
|
13
|
+
%input{name: 'query', value: params[:query]}
|
14
|
+
%button Search
|
15
|
+
%a{href: '/latest'} Latest
|
16
|
+
%a{href: '/?syobo=true'} Syobocal
|
17
|
+
%a{href: '/config'} Config
|
18
|
+
%h2 Subtext
|
19
|
+
%h3=@p.name
|
20
|
+
.control
|
21
|
+
%h4 Data
|
22
|
+
%div.srt!=markdown @p.srt
|
23
|
+
%div
|
24
|
+
%a{href: "/nosub/#{params[:key]}"} Edit
|
25
|
+
.none
|
26
|
+
%span#key=params[:key]
|
27
|
+
%span#url="/data/#{@p.path}"
|
28
|
+
%span#path
|
29
|
+
%canvas
|
@@ -0,0 +1,57 @@
|
|
1
|
+
ps = null
|
2
|
+
ids = []
|
3
|
+
mode = 'eroge'
|
4
|
+
current = null
|
5
|
+
|
6
|
+
eroge_next = ->
|
7
|
+
if current == null or current == undefined
|
8
|
+
current = ps[0]
|
9
|
+
else
|
10
|
+
current = ps[ids.indexOf($(current).attr('id'))+1]
|
11
|
+
|
12
|
+
before = ps[ids.indexOf($(current).attr('id'))-1]
|
13
|
+
if $(before).find('img').length == 0
|
14
|
+
$(before).css display: 'none'
|
15
|
+
if $(current).find('img').length != 0
|
16
|
+
$('html, body').animate {scrollTop: $(current).offset().top}, 'fast'
|
17
|
+
current = ps[ids.indexOf($(current).attr('id'))+1]
|
18
|
+
|
19
|
+
eroge_prev = ->
|
20
|
+
if current == null or current ==undefined
|
21
|
+
current = ps[0]
|
22
|
+
else
|
23
|
+
current = ps[ids.indexOf($(current).attr('id'))-1]
|
24
|
+
if $(current).find('img').length != 0
|
25
|
+
$('html, body').animate {scrollTop: $(current).offset().top}, 'fast'
|
26
|
+
$(current).css display: 'block'
|
27
|
+
|
28
|
+
|
29
|
+
window.sub_view = ->
|
30
|
+
for n in $('.srt_line')
|
31
|
+
a = $(n).html().split('<br>')
|
32
|
+
a.splice(0, 1)
|
33
|
+
$(n).html a.join('<br>')
|
34
|
+
$.get('/api/get', name: "sub/caps/#{$('#key').text()}").success (data)->
|
35
|
+
caps = JSON.parse(data)
|
36
|
+
$.each caps, (i,n)->
|
37
|
+
$("##{i}").before $('<p>').append($('<img>').attr(src: n)).attr(class: 'srt_image', id: "image_#{i}")
|
38
|
+
ps = document.querySelectorAll('.srt p')
|
39
|
+
$('h3').after(
|
40
|
+
$('<button>').text('Reset Capture').click ->
|
41
|
+
$.post('/api/save', name: "sub/exist_cap/#{$('#key').text()}", body: 'false').success(->
|
42
|
+
location.reload()
|
43
|
+
)
|
44
|
+
)
|
45
|
+
for n in ps
|
46
|
+
ids.push $(n).attr('id')
|
47
|
+
$(window).keyup (e)->
|
48
|
+
console.log e.keyCode
|
49
|
+
switch e.keyCode
|
50
|
+
when 74, 13
|
51
|
+
eroge_next()
|
52
|
+
when 75
|
53
|
+
eroge_prev()
|
54
|
+
$ ->
|
55
|
+
$(document).on('click', '.srt_image', -> eroge_next()).css('cursor','pointer')
|
56
|
+
#$(document).on('touchend', '.srt_image', -> eroge_next())
|
57
|
+
|
data/lib/pig-media-server/web.rb
CHANGED
@@ -6,8 +6,10 @@ require 'sinatra/flash'
|
|
6
6
|
require 'net/http'
|
7
7
|
require 'sass'
|
8
8
|
require 'haml'
|
9
|
+
require 'fileutils'
|
9
10
|
require 'coffee_script'
|
10
11
|
require 'rack/csrf'
|
12
|
+
require 'redcarpet'
|
11
13
|
require 'json'
|
12
14
|
|
13
15
|
module PigMediaServer
|
@@ -90,6 +92,10 @@ EOF
|
|
90
92
|
haml :index
|
91
93
|
end
|
92
94
|
|
95
|
+
get('/meta/:key'){@p = Pig.find(params[:key]);haml :meta}
|
96
|
+
get('/sub/:key'){@p = Pig.find(params[:key]);haml :sub}
|
97
|
+
get('/webvtt/:key'){@p = Pig.find(params[:key]); content_type :text; @p.webvtt}
|
98
|
+
|
93
99
|
get '/read/:key' do
|
94
100
|
if request.xhr?
|
95
101
|
@record = Pig.find params[:key] rescue nil
|
@@ -129,6 +135,17 @@ EOF
|
|
129
135
|
end
|
130
136
|
end
|
131
137
|
|
138
|
+
get '/to_kindle/:key' do
|
139
|
+
flash[:notice] = 'Request Accepted. Please wait minutes.'
|
140
|
+
Pig.find(params[:key]).to_kindle(session[:user_id])
|
141
|
+
if params[:path]
|
142
|
+
redirect params[:path]
|
143
|
+
else
|
144
|
+
redirect "/ao/#{params[:key]}"
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
|
132
149
|
post '/sessions' do
|
133
150
|
session[:user_id] = params[:user_id]
|
134
151
|
redirect '/'
|
@@ -142,7 +159,30 @@ EOF
|
|
142
159
|
get('/swipe.js'){content_type :js;erb :swipe}
|
143
160
|
get('/*.css'){scss params[:splat].first.to_sym}
|
144
161
|
get('/*.js'){coffee params[:splat].first.to_sym}
|
145
|
-
|
162
|
+
|
163
|
+
post '/api/save' do
|
164
|
+
key = Digest::MD5.hexdigest(params[:name]).to_s
|
165
|
+
FileUtils.mkdir_p "#{config['user_data_path']}/api_data"
|
166
|
+
open("#{config['user_data_path']}/api_data/#{key}", 'w'){|x| x.puts params[:body]}
|
167
|
+
true
|
168
|
+
end
|
169
|
+
get '/api/get' do
|
170
|
+
key = Digest::MD5.hexdigest(params[:name]).to_s
|
171
|
+
FileUtils.mkdir_p "#{config['user_data_path']}/api_data"
|
172
|
+
if File.exist? "#{config['user_data_path']}/api_data/#{key}"
|
173
|
+
open("#{config['user_data_path']}/api_data/#{key}").read
|
174
|
+
else
|
175
|
+
nil
|
176
|
+
end
|
177
|
+
end
|
178
|
+
post '/api/capapi' do
|
179
|
+
record = Groonga['Files'][params[:key]]
|
180
|
+
name = "#{rand(256**16).to_s(16)}.jpg"
|
181
|
+
system "ffmpeg -ss #{params[:time]} -vframes 1 -i \"#{record.path}\" -f image2 #{config['gyazo_path']}/#{name}"
|
182
|
+
"#{config['gyazo_prefix']}/#{name}"
|
183
|
+
end
|
184
|
+
|
185
|
+
|
146
186
|
helpers do
|
147
187
|
def config
|
148
188
|
Pit.get "Pig Media Server"
|
data/pig-media-server.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ["mail@ssig33.com"]
|
11
11
|
gem.description = %q{Pig Media Server}
|
12
12
|
gem.summary = %q{Pig Media Server}
|
13
|
-
gem.homepage = ""
|
13
|
+
gem.homepage = "http://github.com/ssig33/pig-media-server"
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = %w(pig-media-server)
|
@@ -27,6 +27,9 @@ Gem::Specification.new do |gem|
|
|
27
27
|
gem.add_dependency 'sewell'
|
28
28
|
gem.add_dependency 'rmagick'
|
29
29
|
gem.add_dependency 'zipruby'
|
30
|
+
gem.add_dependency 'pony'
|
31
|
+
gem.add_dependency 'mail'
|
32
|
+
gem.add_dependency 'redcarpet'
|
30
33
|
gem.add_dependency 'coffee-script'
|
31
34
|
gem.add_dependency 'sinatra-flash'
|
32
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pig-media-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ssig33
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rroonga
|
@@ -150,6 +150,48 @@ dependencies:
|
|
150
150
|
- - '>='
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: pony
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: mail
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: redcarpet
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - '>='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - '>='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
153
195
|
- !ruby/object:Gem::Dependency
|
154
196
|
name: coffee-script
|
155
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,11 +238,13 @@ files:
|
|
196
238
|
- lib/pig-media-server/book2.erb
|
197
239
|
- lib/pig-media-server/cli.rb
|
198
240
|
- lib/pig-media-server/crawl.rb
|
241
|
+
- lib/pig-media-server/kindle_send.rb
|
199
242
|
- lib/pig-media-server/model/comic.rb
|
200
243
|
- lib/pig-media-server/model/migrate.rb
|
201
244
|
- lib/pig-media-server/model/pig.rb
|
202
245
|
- lib/pig-media-server/script.rb
|
203
246
|
- lib/pig-media-server/version.rb
|
247
|
+
- lib/pig-media-server/views/_ft_mobi.haml
|
204
248
|
- lib/pig-media-server/views/_ft_other.haml
|
205
249
|
- lib/pig-media-server/views/_ft_read.haml
|
206
250
|
- lib/pig-media-server/views/_ft_txt.haml
|
@@ -213,6 +257,7 @@ files:
|
|
213
257
|
- lib/pig-media-server/views/config.coffee
|
214
258
|
- lib/pig-media-server/views/config.haml
|
215
259
|
- lib/pig-media-server/views/index.haml
|
260
|
+
- lib/pig-media-server/views/meta.haml
|
216
261
|
- lib/pig-media-server/views/movie.coffee
|
217
262
|
- lib/pig-media-server/views/read.haml
|
218
263
|
- lib/pig-media-server/views/remote.coffee
|
@@ -220,11 +265,14 @@ files:
|
|
220
265
|
- lib/pig-media-server/views/session.coffee
|
221
266
|
- lib/pig-media-server/views/sessions.haml
|
222
267
|
- lib/pig-media-server/views/storage.coffee
|
268
|
+
- lib/pig-media-server/views/sub.coffee
|
269
|
+
- lib/pig-media-server/views/sub.haml
|
270
|
+
- lib/pig-media-server/views/subview.coffee
|
223
271
|
- lib/pig-media-server/views/swipe.erb
|
224
272
|
- lib/pig-media-server/views/unread.coffee
|
225
273
|
- lib/pig-media-server/web.rb
|
226
274
|
- pig-media-server.gemspec
|
227
|
-
homepage:
|
275
|
+
homepage: http://github.com/ssig33/pig-media-server
|
228
276
|
licenses: []
|
229
277
|
metadata: {}
|
230
278
|
post_install_message:
|