jekyll-fdroid 1.1 → 1.1.4

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 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