appscreens-io-uploader 0.0.5 → 0.0.6

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
  SHA1:
3
- metadata.gz: 6648cfd40417f57c27639cc88ae424ac0478caaf
4
- data.tar.gz: d3df647dfc9e8227c30758bf0bb6a7421c88cfa2
3
+ metadata.gz: 871943afdeb92212ec7879149080090439f09c6e
4
+ data.tar.gz: f6715820cb485f28f07d33cd7f84b051ce5caee8
5
5
  SHA512:
6
- metadata.gz: ea88c1b1126fa1e9d37674db8b70eb23b9d1b21fdec862ddcb7bd98a23f4e478ed27263ad5b692e20a9f016e422cbe2688f3872ba6ab4248d9287aec52a6f496
7
- data.tar.gz: 1a6fa989b23edeb3481cbb4b10495d99804d9c45a30127af4819cdffbf33972125a7a244f58d6ab6befc8787db7075e89a112c7997bdbc663ca82176ff5c5392
6
+ metadata.gz: a85eb662b0786f3a3d17500c8ca9c49ed1bfb67a2afffd801d21f4d09b838837f12251f986f57b136f3df1e6629093817c815e48e6b10ba041bd8ea397eb7218
7
+ data.tar.gz: 7bb0b8a42c8901897c02e441024e03fd221a7e859dd9607b010e8c15f647d640ea20872bfba18423f8a18da97f36b38b9a744f348bc91ff5ad7bb851dbdb27fa
@@ -8,9 +8,8 @@ module AppscreensIoUploader
8
8
  def run(path, project_id, screensSize)
9
9
  screenshots = Dir.glob("#{path}/**/*.{png,PNG}")
10
10
 
11
- screenshots_to_upload = Array.new
11
+ screenshots_to_upload = Hash.new
12
12
  prevHeight = 0
13
- maxScreens = 5
14
13
 
15
14
  if (project_id.length != 10)
16
15
  Helper.log.error "No valid project_id '#{project_id}' must be exactly 10 chars (copy it from your appscreens.io/[project_id] URL)"
@@ -27,14 +26,17 @@ module AppscreensIoUploader
27
26
 
28
27
  begin
29
28
  screenshot = Screenshot.new(full_path)
30
- if screensSize == screenshot.screen_size && screenshots_to_upload.count < maxScreens
29
+ if screensSize == screenshot.screen_size
31
30
  if !screenshot.is_portrait?
32
31
  raise "appscreens.io only supports PORTRAIT Orientation for now".red
33
32
  end
34
33
  if !screenshot.is_supported_screen_size?
35
- raise "appscreens.io only supports 4.7inch,5inch and 5.5inch screen sizes".red
34
+ raise "appscreens.io only supports 4inch, 4.7inch and 5.5inch screen sizes to upload".red
36
35
  end
37
- screenshots_to_upload << screenshot
36
+ if screenshots_to_upload[screenshot.language].nil?
37
+ screenshots_to_upload[screenshot.language] = Array.new
38
+ end
39
+ screenshots_to_upload[screenshot.language] << screenshot
38
40
  end
39
41
  rescue => ex
40
42
  Helper.log.error ex
@@ -42,7 +44,7 @@ module AppscreensIoUploader
42
44
  end
43
45
 
44
46
  if screenshots_to_upload.count == 0
45
- Helper.log.error "Could not find any screensshots that fit the spec, please check again".red
47
+ Helper.log.error "Could not find any screenshots that fit the spec, please check again".red
46
48
  else
47
49
  uploader = Uploader.new
48
50
  uploader.upload!(project_id, screenshots_to_upload)
@@ -3,6 +3,7 @@ module AppscreensIoUploader
3
3
  class Screenshot
4
4
  attr_accessor :path # path to the screenshot
5
5
  attr_accessor :size # size in px array of 2 elements: height and width
6
+ attr_accessor :language # 2 letter language code parsed out of file name - if not found en is used
6
7
  attr_accessor :screen_size # deliver screen size type, is unique per device type, used in device_name
7
8
 
8
9
  # path: Path to screenshot
@@ -12,6 +13,14 @@ module AppscreensIoUploader
12
13
  @path = path
13
14
  @size = FastImage.size(path)
14
15
 
16
+ matched_language = /\/([a-zA-Z]{2})-/.match(path)
17
+ if matched_language
18
+ @language = matched_language.captures[0]
19
+ else
20
+ @language = 'en'
21
+ Helper.log.info "cannot find language in filename fallback to 'en' file: #{path}"
22
+ end
23
+
15
24
  @screen_size = Deliver::AppScreenshot.calculate_screen_size(path)
16
25
  end
17
26
 
@@ -2,6 +2,7 @@ module AppscreensIoUploader
2
2
 
3
3
  class Uploader
4
4
  def upload!(project_id, screenshots)
5
+
5
6
  base_uri = 'https://appscreens.io'
6
7
  api_base_uri = base_uri + '/api/v1'
7
8
  screens_uri = '/projects/' + project_id + '/screens'
@@ -10,27 +11,26 @@ module AppscreensIoUploader
10
11
  response = HTTParty.get(api_base_uri + screens_uri)
11
12
  if response.code == 200
12
13
  screens = JSON.parse(response.body)
13
-
14
- # TODO add multilang support
15
- if screens.count > 5
16
- Helper.log.error "your appscreens.io projects seems to have more than one language - support for this will be shortly :) - sorry".red
17
- return
18
- end
19
-
20
- screens.each_with_index do |screen, index|
21
-
22
- screenshot_path = screenshots[index].path
23
- Helper.log.info "uploading screenshot #{screenshot_path} screen nr: #{screen['order']} lang: #{screen['language']}"
24
- # POST /projects/{project_id}/screens/{screen_id}/image
25
- upload_response = HTTMultiParty.post(api_base_uri + screens_uri + '/' + screen['id'] + '/image', :query => {
26
- :image => File.new(screenshot_path)
27
- })
28
- if response.code == 200
29
- Helper.log.info "successfully uploaded screenshot #{screenshot_path}".green
30
- else
31
- Helper.log.error "error while uploading screenshot #{screenshot_path} #{upload_response.body}"
14
+ screenshots.each do |language, screenshots_per_language|
15
+ screenshots_per_language.each_with_index do |screenshot, index|
16
+ screens.each do |screen|
17
+ if screen['language'] == language && index == screen['order'].to_i
18
+ screenshot_path = screenshot.path
19
+ Helper.log.info "uploading screenshot #{screenshot_path} screen nr: #{(screen['order'].to_i+1)} lang: #{screen['language']}"
20
+ # POST /projects/{project_id}/screens/{screen_id}/image
21
+ upload_response = HTTMultiParty.post(api_base_uri + screens_uri + '/' + screen['id'] + '/image', :query => {
22
+ :image => File.new(screenshot_path)
23
+ })
24
+ if response.code == 200
25
+ Helper.log.info "successfully uploaded screenshot #{screenshot_path}".green
26
+ else
27
+ Helper.log.error "error while uploading screenshot #{screenshot_path} #{upload_response.body}"
28
+ end
29
+ else
30
+
31
+ end
32
+ end
32
33
  end
33
-
34
34
  end
35
35
 
36
36
  else
@@ -1,3 +1,3 @@
1
1
  module AppscreensIoUploader
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appscreens-io-uploader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Griesser
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - '>'
60
60
  - !ruby/object:Gem::Version
61
- version: '0.3'
61
+ version: '0.11'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '>'
67
67
  - !ruby/object:Gem::Version
68
- version: '0.3'
68
+ version: '0.11'
69
69
  description: Upload your screenshots to https://appscreens.io
70
70
  email:
71
71
  - daniel.griesser.86@gmail.com