jekyll-fdroid 1.1 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f72286c732de382d651b8377c0083ed8faeb58cab5a865dd8e72978dd84e1a60
4
- data.tar.gz: 57873902b7c8d5249f269293afc0b2d172db25c1371f37b70ec959f00192dfcc
3
+ metadata.gz: fdf022851950f00170f4826165c03341ded682c0d1af6b2d1e045afb13e20d6d
4
+ data.tar.gz: 24a734ec556f49bbabc12f048e5375d47285e29c3e93fda6ded4733fe1d7b6a3
5
5
  SHA512:
6
- metadata.gz: 551e0cba8c4add0d485a7dec9e12d95107b6be1a38620a730e58fe9174b648a861aa054dac69e9e519058adb6dc010c89843958fed78f3ba581ce1ccad4991d6
7
- data.tar.gz: '0098617770f3bd1f3bbeddfd0278a9dcdf2cf50f1cc2ed5c8c842051210f7ea36e2f8ad6d59112237b94724bf223b97036031cfb1d271bffd602261153545b87'
6
+ metadata.gz: cdd231bec8b9f2e2e3deec73485cf1e7d649b9e35659ceb0cc488c71520a247be4be4ce83400e978eb275bd4090b435201dcd768abc53b402eef063a79e034c5
7
+ data.tar.gz: 7d0d654997464ecc5f1e887b4385c29adfa21c4a7ffbb76162c0795377615846969ee3ab819e37fe6b75bd259ed8de607eb7818470be1f2802515a2299c76875
@@ -15,6 +15,7 @@
15
15
  # You should have received a copy of the GNU Affero General Public License
16
16
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
 
18
+ require 'loofah'
18
19
  require_relative './Package'
19
20
 
20
21
  module FDroid
@@ -44,8 +45,10 @@ module FDroid
44
45
  end
45
46
  end
46
47
 
48
+ # this must exist since all entries are sorted by name,
49
+ # it uses tildes since they sort last
47
50
  def name
48
- field('name') || App.localized(@available_locales, @app['localized'], 'name')
51
+ field('name') || App.localized(@available_locales, @app['localized'], 'name') || '~missing name~'
49
52
  end
50
53
 
51
54
  def summary
@@ -90,7 +93,7 @@ module FDroid
90
93
  'flattrID' => field('flattrID'),
91
94
  'liberapayID' => field('liberapayID'),
92
95
  'categories' => field('categories'),
93
- 'anti_features' => field('anti_features'),
96
+ 'anti_features' => field('antiFeatures'),
94
97
  'suggested_version_code' => suggested_version_code,
95
98
  'suggested_version_name' => @packages.detect { |p| p.version_code == suggested_version_code }&.version_name,
96
99
  'issue_tracker' => field('issueTracker'),
@@ -110,6 +113,9 @@ module FDroid
110
113
  'feature_graphic' => App.localized_graphic_path(@available_locales, @app['localized'], 'featureGraphic'),
111
114
  'phone_screenshots' => App.localized_graphic_list_paths(@available_locales, @app['localized'], 'phoneScreenshots'),
112
115
  'seven_inch_screenshots' => App.localized_graphic_list_paths(@available_locales, @app['localized'], 'sevenInchScreenshots'),
116
+ 'ten_inch_screenshots' => App.localized_graphic_list_paths(@available_locales, @app['localized'], 'tenInchScreenshots'),
117
+ 'tv_screenshots' => App.localized_graphic_list_paths(@available_locales, @app['localized'], 'tvScreenshots'),
118
+ 'wear_screenshots' => App.localized_graphic_list_paths(@available_locales, @app['localized'], 'wearScreenshots'),
113
119
 
114
120
  'packages' => @packages.sort.reverse.map { |p| p.to_data },
115
121
 
@@ -239,7 +245,17 @@ module FDroid
239
245
  private
240
246
 
241
247
  def field(name)
242
- @app.key?(name) ? @app[name] : nil
248
+ if @app.key?(name)
249
+ value = @app[name]
250
+ case value
251
+ when Fixnum then return value
252
+ when Float then return value
253
+ when Integer then return value
254
+ when Array then return value.map { |i| Loofah.scrub_fragment(i, :escape).to_html(:save_with => 0) }
255
+ else
256
+ return Loofah.scrub_fragment(value, :escape).to_html(:save_with => 0)
257
+ end
258
+ end
243
259
  end
244
260
  end
245
261
  end
@@ -51,7 +51,13 @@ module FDroid
51
51
  Dir.mktmpdir do |dir|
52
52
  jar = File.join dir, 'index-v1.jar'
53
53
  open(jar, 'wb') do |file|
54
- file.write(Net::HTTP.get(repo))
54
+ begin
55
+ file.write(Net::HTTP.get(repo))
56
+ rescue Net::OpenTimeout, Net::ReadTimeout => e
57
+ puts "Timeout (#{e}), retrying in 1 second..."
58
+ sleep(1)
59
+ retry
60
+ end
55
61
  end
56
62
 
57
63
  Zip::File.open(jar) do |zip_file|
@@ -15,6 +15,9 @@
15
15
  # You should have received a copy of the GNU Affero General Public License
16
16
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
17
 
18
+ require 'loofah'
19
+ require 'uri'
20
+
18
21
  module FDroid
19
22
  class Repo
20
23
  def initialize(repo)
@@ -22,23 +25,25 @@ module FDroid
22
25
  end
23
26
 
24
27
  def name
25
- @repo['name']
28
+ Loofah.scrub_fragment(@repo['name'], :escape).to_s
26
29
  end
27
30
 
28
31
  def address
29
- @repo['address']
32
+ url = @repo['address']
33
+ url =~ /\A#{URI::regexp}\z/ ? url : nil
30
34
  end
31
35
 
32
36
  def icon_url
33
- "#{self.address}/icons/#{@repo['icon']}"
37
+ url = "#{self.address}/icons/#{@repo['icon']}"
38
+ url =~ /\A#{URI::regexp}\z/ ? url : nil
34
39
  end
35
40
 
36
41
  def description
37
- @repo['description']
42
+ Loofah.scrub_fragment(@repo['description'], :escape).to_s
38
43
  end
39
44
 
40
45
  def timestamp
41
- @repo['timestamp']
46
+ Integer(@repo['timestamp']) rescue nil
42
47
  end
43
48
 
44
49
  def date
@@ -33,33 +33,34 @@ module Jekyll
33
33
  # Hash with relation between Android SDK Level and Android version
34
34
  # https://source.android.com/setup/build-numbers
35
35
  @@AndroidSdkLevelToVersionRelation = {
36
- '1' => '1.0',
37
- '2' => '1.1',
38
- '3' => '1.5',
39
- '4' => '1.6',
40
- '5' => '2.0',
41
- '6' => '2.0.1',
42
- '7' => '2.1',
43
- '8' => '2.2',
44
- '9' => '2.3',
45
- '10' => '2.3.3',
46
- '11' => '3.0',
47
- '12' => '3.1',
48
- '13' => '3.2',
49
- '14' => '4.0',
50
- '15' => '4.0.3',
51
- '16' => '4.1',
52
- '17' => '4.2',
53
- '18' => '4.3',
54
- '19' => '4.4',
55
- '20' => '4.4W',
56
- '21' => '5.0',
57
- '22' => '5.1',
58
- '23' => '6.0',
59
- '24' => '7.0',
60
- '25' => '7.1',
61
- '26' => '8.0',
62
- '27' => '8.1',
36
+ 1 => '1.0',
37
+ 2 => '1.1',
38
+ 3 => '1.5',
39
+ 4 => '1.6',
40
+ 5 => '2.0',
41
+ 6 => '2.0.1',
42
+ 7 => '2.1',
43
+ 8 => '2.2',
44
+ 9 => '2.3',
45
+ 10 => '2.3.3',
46
+ 11 => '3.0',
47
+ 12 => '3.1',
48
+ 13 => '3.2',
49
+ 14 => '4.0',
50
+ 15 => '4.0.3',
51
+ 16 => '4.1',
52
+ 17 => '4.2',
53
+ 18 => '4.3',
54
+ 19 => '4.4',
55
+ 20 => '4.4W',
56
+ 21 => '5.0',
57
+ 22 => '5.1',
58
+ 23 => '6.0',
59
+ 24 => '7.0',
60
+ 25 => '7.1',
61
+ 26 => '8.0',
62
+ 27 => '8.1',
63
+ 28 => '9.0',
63
64
  }
64
65
 
65
66
  # Convert a file size to a human-readable String.
@@ -75,6 +75,7 @@ module Jekyll
75
75
  extras = [
76
76
  'assets/fdroid-search-autocomplete.js',
77
77
  'assets/fdroid-search-autocomplete-init.js',
78
+ 'assets/register-listener.js',
78
79
  'bower_components/lunr.js/lunr.js',
79
80
  'bower_components/mustache.js/mustache.min.js',
80
81
  'bower_components/awesomplete/awesomplete.min.js',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-fdroid
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.1'
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nico Alt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-30 00:00:00.000000000 Z
11
+ date: 2018-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll-include-cache
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.8.5
83
+ - !ruby/object:Gem::Dependency
84
+ name: loofah
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rspec
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -151,8 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  requirements: []
154
- rubyforge_project:
155
- rubygems_version: 2.7.7
168
+ rubygems_version: 3.0.6
156
169
  signing_key:
157
170
  specification_version: 4
158
171
  summary: F-Droid - Free and Open Source Android App Repository