piwigo-api 0.5.9 → 0.5.10

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: 3fa77269c47c5c3de051986ac36f97764f5e766f14b7ab428401229a67ab2a78
4
- data.tar.gz: e8a53e47119346c003463835983b2ce287c42a272f36d4aa143017f77559891d
3
+ metadata.gz: c0a99204c5afaf20cc4487138db8ac03f610b3599b2c67cd07885d0ee12c2150
4
+ data.tar.gz: d2e3017eedba2439a241b79db9c7ecd5f8e2ab273136fea450d49286724b5b93
5
5
  SHA512:
6
- metadata.gz: ef857c2959b2f5090f0ccf3f3ffe3e9b2ff70a8a7e45ab96ea2bbcbf81ece8b9379b67fcc6f54ad0f78c24b6eb29f92314463604b2cb754a20d4cb123eac777a
7
- data.tar.gz: 0347faaf186d2e005a86fbb598b35f79d373026f123adc9e1fcfd5f8f164fa94983e2aec0628d8748f42931eeb2af62dfd72b1f48dec8e1f3d6198121155886e
6
+ metadata.gz: 9c5bf3103979e5a1e68a5e687e35bae8232c7a1e83a5a732d7952c85c8d0d5cd65b555e50e617162c5805c64f91d5e61d87c33c58a5844ff365a8f91eb5ffb6a
7
+ data.tar.gz: ebf38478a69894d10ed41b89e6b1e46b5fce6a97c6cf16c0a29c01debe96b7e8473b62e7852bf789583f29e034c7021ff3fcefa27c4a6ceb894c9ef737943de9
data/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ 0.5.10 - 2022-01-16
8
+ - Update Gemfile dependencies
9
+ - Code and documentation cleanups
10
+
7
11
  0.5.9 - 2021-07-13
8
12
  - Update version to fix github actions
9
13
 
data/Gemfile.lock CHANGED
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- piwigo-api (0.5.9)
4
+ piwigo-api (0.5.10)
5
5
  exifr (~> 1.3)
6
6
  http (~> 5.0)
7
- logger (~> 1.4)
7
+ logger (~> 1.5)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
@@ -13,31 +13,31 @@ GEM
13
13
  public_suffix (>= 2.0.2, < 5.0)
14
14
  ansi (1.5.0)
15
15
  builder (3.2.4)
16
- codecov (0.5.2)
16
+ codecov (0.6.0)
17
17
  simplecov (>= 0.15, < 0.22)
18
18
  docile (1.4.0)
19
19
  domain_name (0.5.20190701)
20
20
  unf (>= 0.0.5, < 1.0.0)
21
21
  exifr (1.3.9)
22
- ffi (1.15.3)
23
- ffi (1.15.3-x64-mingw32)
22
+ ffi (1.15.5)
23
+ ffi (1.15.5-x64-mingw32)
24
24
  ffi-compiler (1.0.1)
25
25
  ffi (>= 1.0.0)
26
26
  rake
27
- http (5.0.1)
28
- addressable (~> 2.3)
27
+ http (5.0.4)
28
+ addressable (~> 2.8)
29
29
  http-cookie (~> 1.0)
30
30
  http-form_data (~> 2.2)
31
- llhttp-ffi (~> 0.3.0)
31
+ llhttp-ffi (~> 0.4.0)
32
32
  http-cookie (1.0.4)
33
33
  domain_name (~> 0.5)
34
34
  http-form_data (2.3.0)
35
- llhttp-ffi (0.3.1)
35
+ llhttp-ffi (0.4.0)
36
36
  ffi-compiler (~> 1.0)
37
37
  rake (~> 13.0)
38
- logger (1.4.3)
39
- minitest (5.14.4)
40
- minitest-reporters (1.4.3)
38
+ logger (1.5.0)
39
+ minitest (5.15.0)
40
+ minitest-reporters (1.5.0)
41
41
  ansi
42
42
  builder
43
43
  minitest (>= 5.0)
@@ -53,21 +53,21 @@ GEM
53
53
  simplecov_json_formatter (0.1.3)
54
54
  unf (0.1.4)
55
55
  unf_ext
56
- unf_ext (0.0.7.7)
57
- unf_ext (0.0.7.7-x64-mingw32)
56
+ unf_ext (0.0.8)
57
+ unf_ext (0.0.8-x64-mingw32)
58
58
 
59
59
  PLATFORMS
60
60
  ruby
61
61
  x64-mingw32
62
62
 
63
63
  DEPENDENCIES
64
- bundler (~> 2.2)
65
- codecov (~> 0.5)
66
- minitest (~> 5.14)
67
- minitest-reporters (~> 1.4)
64
+ bundler (~> 2.3)
65
+ codecov (~> 0.6)
66
+ minitest (~> 5.15)
67
+ minitest-reporters (~> 1.5)
68
68
  piwigo-api!
69
69
  rake (~> 13.0)
70
70
  simplecov (~> 0.21)
71
71
 
72
72
  BUNDLED WITH
73
- 2.2.15
73
+ 2.3.5
data/lib/piwigo/albums.rb CHANGED
@@ -3,8 +3,8 @@ require 'uri'
3
3
  require 'json'
4
4
  require 'logger'
5
5
 
6
- # Piwigo organizes images by albums. The album tree has unlimted depth and each photo can belong to multiple albums. The Piwigo API
7
- # refers to a Album as a Category.
6
+ # Piwigo organizes images by albums. The album tree has unlimited depth and each photo can belong to multiple albums.
7
+ # The Piwigo API refers to a Album as a Category.
8
8
  module Piwigo
9
9
  class Albums
10
10
  class Album
@@ -59,7 +59,7 @@ module Piwigo
59
59
  def initialize(hash: nil)
60
60
  hash&.each do |key, value|
61
61
  # Bug: If the encoding is Windows-1252, then Piwigo will blowup when creating the album
62
- value = value.encode('UTF-8', 'Windows-1252') if value.class == String && value.encoding.to_s == 'Windows-1252'
62
+ value = value.encode('UTF-8', 'Windows-1252') if value.instance_of?(String) && value.encoding.to_s == 'Windows-1252'
63
63
  send("#{key}=", value)
64
64
  end
65
65
  end
@@ -73,10 +73,10 @@ module Piwigo
73
73
  #
74
74
  # @param [Session] session - Session
75
75
  # @param [Number] album_id - Album to fetch, Optional
76
- # @param [Boolean] recursive - Include subalbums, Optional
76
+ # @param [Boolean] recursive - Include sub albums, Optional
77
77
  # @param [Boolean] public - Only include public albums, Optional
78
78
  # @param [Boolean] fullname - ???, Optional
79
- # @param [String] thumbnail_size - Size of thumbname to return, One of: square, thumb, 2small, xsmall, small, medium, large, xlarge, xxlarge. Optional
79
+ # @param [String] thumbnail_size - Size of thumbnail to return, One of: square, thumb, 2small, xsmall, small, medium, large, xlarge, xxlarge. Optional
80
80
  # @param [Logger] logger logger to output debug messages to (Optional)
81
81
  #
82
82
  # @return [Array<Album>] All albums that match the criteria, or nil there were no matches
@@ -5,7 +5,7 @@ require_relative 'albums'
5
5
  require_relative 'image_uploader'
6
6
 
7
7
  module Piwigo
8
- # Syncronize a folder with Piwigo
8
+ # Synchronize a folder with Piwigo
9
9
  # - Album name will be the same as the folder name
10
10
  # - Will be created as a top-level folder unless specified
11
11
  class FolderSync
@@ -27,11 +27,11 @@ module Piwigo
27
27
  FolderSync.new(session, logger: logger).synchronize(directory)
28
28
  end
29
29
 
30
- # Syncronize a folder with Piwigo
30
+ # Synchronize a folder with Piwigo
31
31
  #
32
- # @param [String] directory - directory to syncronize.
32
+ # @param [String] directory - directory to synchronize.
33
33
  def synchronize(directory)
34
- if ['originals', '.picasaoriginals'].include? File.basename(directory.downcase)
34
+ if %w[originals .picasaoriginals].include? File.basename(directory.downcase)
35
35
  @logger.info "Skipping special directory: #{directory}"
36
36
  return
37
37
  else
@@ -75,7 +75,7 @@ module Piwigo
75
75
 
76
76
  def process_file(directory_entry)
77
77
  # Only attempt to import images
78
- return unless ['.jpg', '.png', '.gif'].include? File.extname(directory_entry).downcase
78
+ return unless %w[.jpg .png .gif].include? File.extname(directory_entry).downcase
79
79
 
80
80
  @logger.info "Processing Image: '#{directory_entry}' in album '#{@current_album}'"
81
81
  image = Piwigo::Images.lookup(@session, directory_entry)
@@ -7,7 +7,7 @@ require 'base64'
7
7
 
8
8
  # Add a photo.
9
9
  #
10
- # To avoid limitations on HTTP POST maximum size, the piwigo requires the image to be splitted into several calls to pwg.images.addChunk
10
+ # To avoid limitations on HTTP POST maximum size, the piwigo requires the image to be splitted into several calls to pwg.images.addChunk
11
11
  # and then a single call to pwg.images.add.
12
12
  #
13
13
  # Reference: https://piwigo.org/doc/doku.php?id=dev:webapi:pwg.images.add
@@ -17,8 +17,6 @@ module Piwigo
17
17
  MEGABYTE = 1024 * 1024
18
18
 
19
19
  # Create a new ImageUploader
20
- #
21
- # @param [Session] session - session to a piwigo instance
22
20
  def initialize(logger: nil)
23
21
  @logger = logger || Logger.new(STDOUT)
24
22
  end
@@ -126,10 +124,11 @@ module Piwigo
126
124
  request['Cookie'] = [@session.id]
127
125
 
128
126
  response = http.request(request)
129
- if response.code == '500'
127
+ case response.code
128
+ when '500'
130
129
  @logger.error "Image Add failed: #{response.message}"
131
130
  false
132
- elsif response.code == '200'
131
+ when '200'
133
132
  data = JSON.parse(response.body)
134
133
  p data
135
134
  @logger.info 'Image Add succeeded.'
@@ -144,7 +143,7 @@ module Piwigo
144
143
 
145
144
  def sniff_attributes(filename, album: nil)
146
145
  attributes = {}
147
- begin
146
+ begin
148
147
  info = EXIFR::JPEG.new(filename)
149
148
  @logger.info "--> GPS: #{info.gps.latitude}, #{info.gps.longitude}" unless info.gps.nil?
150
149
  exif = info.exif.first.to_hash if info.exif?
data/lib/piwigo/images.rb CHANGED
@@ -6,12 +6,12 @@ require 'logger'
6
6
  require 'digest'
7
7
  require_relative 'image_uploader'
8
8
 
9
- # Piwigo organizes images by albums. The album tree has unlimted depth and each photo can belong to multiple albums. The Piwigo API
9
+ # Piwigo organizes images by albums. The album tree has unlimited depth and each photo can belong to multiple albums. The Piwigo API
10
10
  # refers to a Album as a Category.
11
11
  module Piwigo
12
12
  class Images
13
13
  class Image
14
- # @return [Number] Unique ID idenifying this ie
14
+ # @return [Number] Unique ID identifying this ie
15
15
  attr_accessor :id
16
16
 
17
17
  # @return [Number] Width of the image in pixels
@@ -53,7 +53,7 @@ module Piwigo
53
53
  def initialize(hash: nil)
54
54
  hash&.each do |key, value|
55
55
  # Bug: If the encoding is Windows-1252, then Piwigo will blowup when creating the album
56
- value = value.encode('UTF-8', 'Windows-1252') if value.class == String && value.encoding.to_s == 'Windows-1252'
56
+ value = value.encode('UTF-8', 'Windows-1252') if value.instance_of?(String) && value.encoding.to_s == 'Windows-1252'
57
57
  send("#{key}=", value)
58
58
  end
59
59
  end
@@ -75,7 +75,7 @@ module Piwigo
75
75
  def initialize(hash: nil)
76
76
  hash&.each do |key, value|
77
77
  # Bug: If the encoding is Windows-1252, then Piwigo will blowup when creating the album
78
- value = value.encode('UTF-8', 'Windows-1252') if value.class == String && value.encoding.to_s == 'Windows-1252'
78
+ value = value.encode('UTF-8', 'Windows-1252') if value.instance_of?(String) && value.encoding.to_s == 'Windows-1252'
79
79
  send("#{key}=", value)
80
80
  end
81
81
  end
@@ -28,7 +28,7 @@ module Piwigo
28
28
  # Gets information about the current session. Also provides a token useable with admin methods.
29
29
  # @return [<Type>] <description>
30
30
  def status
31
- logger ||= Logger.new(STDOUT)
31
+ logger ||= Logger.new($stdout)
32
32
 
33
33
  begin
34
34
  # Create the HTTP objects
@@ -60,11 +60,11 @@ module Piwigo
60
60
  def logout(logger: nil)
61
61
  raise 'This session has already been logged out' if uri.nil?
62
62
 
63
- logger ||= Logger.new(STDOUT)
63
+ logger ||= Logger.new($stdout)
64
64
 
65
65
  # Create the HTTP objects
66
66
  http = Net::HTTP.new(uri.host, uri.port)
67
- request = Net::HTTP::Get.new(uri.request_uri + '&method=pwg.session.logout')
67
+ request = Net::HTTP::Get.new("#{uri.request_uri}&method=pwg.session.logout")
68
68
  request['Cookie'] = id
69
69
 
70
70
  # Send the request
@@ -84,11 +84,14 @@ module Piwigo
84
84
  raise 'host should not be nil' if host.nil?
85
85
  raise 'username should not be nil' if username.nil?
86
86
 
87
- logger ||= Logger.new(STDOUT)
87
+ logger ||= Logger.new($stdout)
88
88
 
89
89
  begin
90
- uri = https ? URI::HTTPS.build(host: host, path: '/ws.php', query: 'format=json') :
91
- URI::HTTP.build(host: host, path: '/ws.php', query: 'format=json')
90
+ uri = if https
91
+ URI::HTTPS.build(host: host, path: '/ws.php', query: 'format=json')
92
+ else
93
+ URI::HTTP.build(host: host, path: '/ws.php', query: 'format=json')
94
+ end
92
95
 
93
96
  # Create the HTTP objects
94
97
  http = Net::HTTP.new(uri.host, uri.port)
@@ -1,3 +1,3 @@
1
1
  module Piwigo
2
- VERSION = '0.5.9'.freeze
2
+ VERSION = '0.5.10'.freeze
3
3
  end
data/piwigo-api.gemspec CHANGED
@@ -27,14 +27,14 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ['lib']
29
29
 
30
- spec.add_development_dependency 'bundler', '~> 2.2'
31
- spec.add_development_dependency 'codecov', '~> 0.5'
32
- spec.add_development_dependency 'minitest', '~> 5.14'
33
- spec.add_development_dependency 'minitest-reporters', '~>1.4'
30
+ spec.add_development_dependency 'bundler', '~> 2.3'
31
+ spec.add_development_dependency 'codecov', '~> 0.6'
32
+ spec.add_development_dependency 'minitest', '~> 5.15'
33
+ spec.add_development_dependency 'minitest-reporters', '~>1.5'
34
34
  spec.add_development_dependency 'rake', '~> 13.0'
35
35
  spec.add_development_dependency 'simplecov', '~> 0.21'
36
36
 
37
37
  spec.add_runtime_dependency 'http', '~>5.0'
38
- spec.add_runtime_dependency 'logger', '~>1.4'
38
+ spec.add_runtime_dependency 'logger', '~>1.5'
39
39
  spec.add_runtime_dependency 'exifr', '~>1.3'
40
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: piwigo-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.9
4
+ version: 0.5.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Gilbert
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-13 00:00:00.000000000 Z
11
+ date: 2022-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.2'
19
+ version: '2.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.2'
26
+ version: '2.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: codecov
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.5'
33
+ version: '0.6'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.5'
40
+ version: '0.6'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '5.14'
47
+ version: '5.15'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '5.14'
54
+ version: '5.15'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: minitest-reporters
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.4'
61
+ version: '1.5'
62
62
  type: :development
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: '1.4'
68
+ version: '1.5'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '1.4'
117
+ version: '1.5'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '1.4'
124
+ version: '1.5'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: exifr
127
127
  requirement: !ruby/object:Gem::Requirement