piwigo-api 0.5.9 → 0.5.10

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