ibg 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/views/show.haml ADDED
@@ -0,0 +1,93 @@
1
+ !!! 5
2
+ %html
3
+ - filename = filename || 'Encrypted File'
4
+ - encdigest = request.path_info.split('/').last
5
+ -# port = request.port
6
+ -# TODO reverse proxy setting: http -> https
7
+ -# hostport = request.scheme + '://' + request.host
8
+ - hostport = 'https://' + request.host
9
+ - params = hexdigest ? "?digest=#{hexdigest}&filename=#{filename}" : ''
10
+ - url = "#{name}#{params}"
11
+ - dllink = "/download/#{url}"
12
+ - ctlink = "/container/#{url}"
13
+ %head
14
+ %title #{filename} - Online Storage - Iceberg
15
+ - if exists
16
+ %meta{:name => 'twitter:title', :content => filename}
17
+ - summary = true
18
+ - case filename
19
+ - when /\.jpg$/, /\.gif$/, /\.png$/
20
+ - if filesize < 1024 * 1024
21
+ %meta{:property => 'twitter:card', :content => 'photo'}
22
+ %meta{:name => 'twitter:image', :content => "#{hostport}#{dllink}"}
23
+ %meta{:name => 'twitter:url', :content => request.url}
24
+ - summary = false
25
+ - when /\.mp3$/
26
+ %meta{:property => 'twitter:card', :content => 'player'}
27
+ %meta{:name => 'twitter:player', :content => "#{hostport}#{ctlink}"}
28
+ %meta{:name => 'twitter:player:width', :content => 300}
29
+ %meta{:name => 'twitter:player:height', :content => 32}
30
+ %meta{:name => 'twitter:image',
31
+ :content => "#{hostport}/white300x32.png"}
32
+ - summary = false
33
+ - if summary
34
+ %meta{:property => 'twitter:card', :content => 'summary'}
35
+ %meta{:name => 'twitter:description',
36
+ :content => 'Store and share files on Iceberg.'}
37
+ %link{:href => "/style.css", :rel => "stylesheet", :type => "text/css",
38
+ :media => "screen"}
39
+ - cdn = Iceberg::SETTING['local']['cdn'] || ''
40
+ %link{:href => "#{cdn}/css/bootstrap.min.css", :rel => "stylesheet"}
41
+ %link{:href => "#{cdn}/css/bootstrap-theme.min.css", :rel => "stylesheet"}
42
+ %link{:href => "/starter-template.css", :rel => "stylesheet"}
43
+ %body
44
+ %nav{:class => "navbar navbar-inverse navbar-fixed-top"}
45
+ %div.container
46
+ %div.navbar-header
47
+ %button{:type => "button", :class => "navbar-toggle collapsed",
48
+ "data-toggle" => "collapse", "data-target" => "#navbar",
49
+ "aria-expanded" => "false", "aria-controls" => "navbar"}
50
+ %span.sr-only Toggle navigation
51
+ %span.icon-bar
52
+ %span.icon-bar
53
+ %span.icon-bar
54
+ %a.navbar-brand{:href => "/"} Online Storage - Iceberg
55
+ %div#navbar{:class => "collapse navbar-collapse"}
56
+ %ul{:class => "nav navbar-nav"}= partial :navbar
57
+ %div.container
58
+ %div.starter-template
59
+ %h1 #{filename}
60
+ - if hexdigest
61
+ %input#name{:type => :hidden, :value => filename}
62
+ %input#digest{:type => :hidden, :value => hexdigest}
63
+ %input#encdigest{:type => :hidden, :value => encdigest}
64
+ - if exists
65
+ - case filename
66
+ - when /\.txt$/
67
+ %iframe{:src => dllink}
68
+ %hr
69
+ - when /\.webm$/
70
+ %video{:width => 640, :height => 360, :controls => :controls}
71
+ %source{:src => dllink}
72
+ %hr
73
+ - when /\.jpg$/, /\.gif$/, /\.png$/
74
+ %img{:src => dllink}
75
+ %hr
76
+ - when /\.mp3$/, /\.ogg$/, /\.flac$/
77
+ %audio{:src => dllink, :controls => :controls}
78
+ %hr
79
+ %a{:href => dllink, :class => 'btn btn-default btn-lg'}
80
+ %span{:class => 'glyphicon glyphicon-cloud-download'} Download
81
+ - else
82
+ %p File not found
83
+ %hr
84
+ %label Share URL:
85
+ %textarea{:rows => 2, :class => 'form-control'}
86
+ #{hostport}/show/#{url}
87
+ %br
88
+ %label Direct URL:
89
+ %textarea{:rows => 2, :class => 'form-control'}
90
+ #{hostport}#{dllink}
91
+ %script{:type => 'text/javascript', :src => '/jquery-2.1.3.min.js'}
92
+ %script{:type => 'text/javascript', :src => "#{cdn}/js/bootstrap.min.js"}
93
+ %script{:type => 'text/javascript', :src => '/show.js'}
@@ -0,0 +1,56 @@
1
+ !!! 5
2
+ %html
3
+ %head
4
+ %title #{tripcode} - Online Storage - Iceberg
5
+ %link{:href => "/style.css", :rel => "stylesheet", :type => "text/css",
6
+ :media => "screen"}
7
+ - cdn = Iceberg::SETTING['local']['cdn'] || ''
8
+ %link{:href => "#{cdn}/css/bootstrap.min.css", :rel => "stylesheet"}
9
+ %link{:href => "#{cdn}/css/bootstrap-theme.min.css", :rel => "stylesheet"}
10
+ %link{:href => "/starter-template.css", :rel => "stylesheet"}
11
+ %body
12
+ %input#tripcode{:type => :hidden, :value => tripcode}
13
+ %nav{:class => "navbar navbar-inverse navbar-fixed-top"}
14
+ %div.container
15
+ %div.navbar-header
16
+ %button{:type => "button", :class => "navbar-toggle collapsed",
17
+ "data-toggle" => "collapse", "data-target" => "#navbar",
18
+ "aria-expanded" => "false", "aria-controls" => "navbar"}
19
+ %span.sr-only Toggle navigation
20
+ %span.icon-bar
21
+ %span.icon-bar
22
+ %span.icon-bar
23
+ %a.navbar-brand{:href => "/"} Online Storage - Iceberg
24
+ %div#navbar{:class => "collapse navbar-collapse"}
25
+ %ul{:class => "nav navbar-nav"}= partial :navbar
26
+ %div.container
27
+ %div.starter-template
28
+ %h1#maintitle Untitled Tag
29
+ %div Tripcode: #{tripcode}
30
+ %br
31
+ - files.each do |file|
32
+ - filename = "encrypted-#{file[0, 8]}"
33
+ %div
34
+ %a.files{:href => "/show/#{file}", :id => file}= filename
35
+ %hr
36
+ %div{:class => 'input-group-btn'}
37
+ %button#starbtn{:type => 'button',
38
+ :class => 'btn btn-default'}
39
+ %span{:class => 'glyphicon glyphicon-star',
40
+ 'aria-hidden' => true}
41
+ %span#star Star
42
+ %br
43
+ %div{:class => 'input-group'}
44
+ %div{:class => 'input-group-btn'}
45
+ %button#settagname{:type => 'button',
46
+ :class => 'btn btn-default'}
47
+ %span{:class => 'glyphicon glyphicon-tag',
48
+ 'aria-hidden' => true}
49
+ Set
50
+ %input#tagname{:type => 'text', :class => 'form-control',
51
+ :placeholder => 'Tag Name', 'aria-label' => 'Set Tag Name'}
52
+ %hr
53
+ %p Fund: #{fund} MiB/Round (Under development)
54
+ %script{:type => 'text/javascript', :src => '/jquery-2.1.3.min.js'}
55
+ %script{:type => 'text/javascript', :src => "#{cdn}/js/bootstrap.min.js"}
56
+ %script{:type => 'text/javascript', :src => '/tripcode.js'}
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ibg
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - OHASHI Hideya
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-01-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.7'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.7'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '10.0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '10.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: sinatra
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: haml
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: redis
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: aws-sdk
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ description: Decenterized file storage
111
+ email:
112
+ - ohachige@gmail.com
113
+ executables:
114
+ - iceberg-sync
115
+ - iceberg-web
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - .gitignore
120
+ - .travis.yml
121
+ - Dockerfile
122
+ - Gemfile
123
+ - LICENSE.txt
124
+ - README.md
125
+ - Rakefile
126
+ - bin/iceberg-sync
127
+ - bin/iceberg-web
128
+ - config.ru
129
+ - examples/docker/default.conf
130
+ - examples/s3/credentials
131
+ - ibg.gemspec
132
+ - lib/ibg.rb
133
+ - lib/ibg/storage.rb
134
+ - lib/ibg/version.rb
135
+ - lib/ibg/web.rb
136
+ - public/bootstrap-filestyle.min.js
137
+ - public/carousel.css
138
+ - public/favicon.ico
139
+ - public/humans.txt
140
+ - public/index.js
141
+ - public/jquery-2.1.3.min.js
142
+ - public/robots.txt
143
+ - public/show.js
144
+ - public/starter-template.css
145
+ - public/style.css
146
+ - public/tripcode.js
147
+ - public/white300x32.png
148
+ - test/test_entry.rb
149
+ - views/_navbar.haml
150
+ - views/container.haml
151
+ - views/index.haml
152
+ - views/show.haml
153
+ - views/tripcode.haml
154
+ homepage: https://box.sighash.info/
155
+ licenses:
156
+ - MIT
157
+ post_install_message:
158
+ rdoc_options: []
159
+ require_paths:
160
+ - lib
161
+ required_ruby_version: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubyforge_project:
175
+ rubygems_version: 1.8.23
176
+ signing_key:
177
+ specification_version: 3
178
+ summary: Decenterized file storage
179
+ test_files:
180
+ - test/test_entry.rb