appscreens-io-uploader 0.0.5 → 0.0.6

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