image_puller 0.2.1 → 0.2.2
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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +0 -1
- data/failed items +18 -0
- data/image_puller.gemspec +1 -1
- data/lib/flickr/downloader.rb +26 -31
- data/lib/image_puller.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4d6f8b3aa69adcf0996129eaf61997b38c572a8790a28b073b9b57ed443a4cf
|
4
|
+
data.tar.gz: 89bc1c0fcacaf36278147e4a99500b89b318efc2b5103fc107ab05254f80e387
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afabc83d0bd69cd3ca1ee343a792e94d3f968c4373efec8c754a1075a7521518b11ee4ed387ce690a0f72bf92a9bd0bc37ab171a3a2bb9053303f0cd5ead9236
|
7
|
+
data.tar.gz: 7258cc5690096c4bab21ee6a76e087cf1ece5cc0874dbdf69d4d6a985e948a44621bcfac22143d1618a5ee0b408ef122f5fc7963fd8254d030cd50efab54b04e
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -39,7 +39,6 @@ Example settings file
|
|
39
39
|
"OUTPUT_PATH": "path to export to",
|
40
40
|
"FLICKR_USER_ID": "https://www.flickr.com/services/api/explore/?method=flickr.people.getInfo under 'Your User ID'",
|
41
41
|
"PHOTO": "false",
|
42
|
-
"VIDEO": "true",
|
43
42
|
"PULLER_TYPE": "flickr",
|
44
43
|
"FLICKR_STARTING_PAGE": 0
|
45
44
|
}
|
data/failed items
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
cannot download https://www.flickr.com/photos/105860661@N02/24198129478/play/orig/c8e5749bc2/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/MK_TSHOLIDAY_20171013_8109792074.jpg error: 404 Not Found |
|
2
|
+
cannot download https://www.flickr.com/photos/105860661@N02/24198129478/play/orig/c8e5749bc2/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/MK_TSHOLIDAY_20171013_8109792074.jpg error: 404 Not Found |
|
3
|
+
cannot download https://www.flickr.com/photos/105860661@N02/38051132251/play/orig/d70bbe8237/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/EPCOT_ECENTR1_20171019_8112946569.jpg error: 404 Not Found |
|
4
|
+
Page 8/14: |================================================================================================================================================================================================================================|
|
5
|
+
cannot download https://www.flickr.com/photos/105860661@N02/26244735229/play/orig/cc9b2d2a58/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171026-WA0001.jpg error: 404 Not Found |
|
6
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37989896432/play/orig/6c446f28d3/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171026-WA0002.jpg error: 404 Not Found |
|
7
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37311335954/play/orig/661f938092/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171027-WA0012.jpg error: 404 Not Found |
|
8
|
+
cannot download https://www.flickr.com/photos/105860661@N02/24168590038/play/orig/c5e4c14c31/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171029-WA0000.jpg error: 404 Not Found |
|
9
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37966724626/play/orig/4f13cc1315/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171029-WA0001.jpg error: 404 Not Found |
|
10
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37310930364/play/orig/dee2bc3f6a/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171029-WA0002.jpg error: 404 Not Found |
|
11
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37924109381/play/orig/5d218dfd58/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171016-WA0000.jpg error: 404 Not Found |
|
12
|
+
cannot download https://www.flickr.com/photos/105860661@N02/26244735229/play/orig/cc9b2d2a58/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171026-WA0001.jpg error: 404 Not Found |
|
13
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37989896432/play/orig/6c446f28d3/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171026-WA0002.jpg error: 404 Not Found |
|
14
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37311335954/play/orig/661f938092/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171027-WA0012.jpg error: 404 Not Found |
|
15
|
+
cannot download https://www.flickr.com/photos/105860661@N02/24168590038/play/orig/c5e4c14c31/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171029-WA0000.jpg error: 404 Not Found |
|
16
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37966724626/play/orig/4f13cc1315/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171029-WA0001.jpg error: 404 Not Found |
|
17
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37310930364/play/orig/dee2bc3f6a/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171029-WA0002.jpg error: 404 Not Found |
|
18
|
+
cannot download https://www.flickr.com/photos/105860661@N02/37924109381/play/orig/5d218dfd58/ to /Users/nicklongmore/Pictures/flickr_backup_2//Wedding & Florida & Mexico/VID-20171016-WA0000.jpg error: 404 Not Found
|
data/image_puller.gemspec
CHANGED
data/lib/flickr/downloader.rb
CHANGED
@@ -6,79 +6,74 @@ module Flickr
|
|
6
6
|
end
|
7
7
|
|
8
8
|
MAX_RETRIES = 10
|
9
|
+
PER_PAGE = 500
|
10
|
+
|
9
11
|
|
10
12
|
def download
|
11
13
|
page = ENV['FLICKR_STARTING_PAGE'].to_i
|
12
|
-
per_page = 100
|
13
14
|
|
14
15
|
loop do
|
15
16
|
page += 1
|
16
17
|
|
17
18
|
begin
|
18
19
|
retry_count ||= 0
|
19
|
-
images = @flickr.people.getPhotos(user_id: ENV['FLICKR_USER_ID'], page: page, per_page:
|
20
|
+
images = @flickr.people.getPhotos(user_id: ENV['FLICKR_USER_ID'], page: page, per_page: PER_PAGE)
|
20
21
|
|
21
|
-
pb = ProgressBar.create(title: "
|
22
|
-
images.each
|
23
|
-
get_photo(photoset['id'])
|
24
|
-
pb.increment
|
25
|
-
end
|
22
|
+
pb = ProgressBar.create(title: "Page #{page}/#{images['pages']}", total: PER_PAGE)
|
23
|
+
images.each { |photoset| get_photo(photoset['id']); pb.increment }
|
26
24
|
rescue StandardError => e
|
27
|
-
puts "Failed on #{page} exception: #{e.message}" if retry_count.zero?
|
28
|
-
|
29
25
|
retry_count += 1
|
30
|
-
sleep(
|
31
|
-
puts "Retry retry #{retry_count}/#{MAX_RETRIES}"
|
26
|
+
sleep(30.seconds)
|
32
27
|
retry unless retry_count == MAX_RETRIES
|
28
|
+
|
29
|
+
puts "Failure on page #{page}"
|
33
30
|
end
|
34
31
|
|
35
|
-
break if images.nil? || images.size <
|
32
|
+
break if images.nil? || images.size < PER_PAGE
|
36
33
|
end
|
37
34
|
end
|
38
35
|
|
39
36
|
private
|
40
37
|
|
41
38
|
def get_photo(id)
|
42
|
-
# transform to json and then back to a hash so we can use hash methods
|
43
|
-
photoset_details = JSON.parse(@flickr.photos.getAllContexts(photo_id: id).to_json)
|
44
|
-
album_title = photoset_details.dig('set', 0, 'title') || 'misc'
|
45
|
-
|
46
39
|
info = @flickr.photos.getInfo(photo_id: id)
|
47
40
|
|
48
|
-
filename = "#{info['title']}.#{info['originalformat']}"
|
49
|
-
|
50
41
|
case info['media']
|
51
42
|
when 'photo'
|
52
43
|
return unless ENV['PHOTO'] == 'true'
|
53
44
|
|
54
45
|
url = FlickRaw.url_o(info)
|
55
|
-
|
56
|
-
|
57
|
-
return unless original_video = @flickr.photos.getSizes(photo_id: id).detect{ |size| size['label'] == 'Video Original' }
|
58
|
-
|
59
|
-
url = original_video['source']
|
46
|
+
filename = url.split('/')[-1]
|
47
|
+
#TODO: add support for video
|
60
48
|
end
|
61
49
|
|
62
50
|
return unless url
|
63
51
|
|
64
|
-
url_download(url, album_title, filename)
|
65
|
-
|
52
|
+
url_download(url, path(album_title(id), filename))
|
66
53
|
end
|
67
54
|
|
68
|
-
def url_download(url,
|
55
|
+
def url_download(url, path)
|
69
56
|
retry_count ||= 0
|
70
|
-
open(url) do |image|
|
71
|
-
path = "#{ENV['OUTPUT_PATH']}/#{album_title}/#{filename}"
|
72
57
|
|
58
|
+
open(url) do |image|
|
73
59
|
FileUtils.mkdir_p(File.dirname(path))
|
74
60
|
open(path, 'wb') { |file| file.write(image.read) }
|
75
61
|
end
|
76
62
|
rescue StandardError => e
|
77
|
-
puts "cannot download #{url} error: #{e.message}" if retry_count.zero?
|
78
|
-
|
79
63
|
retry_count += 1
|
80
|
-
puts "Retry #{retry_count}/#{MAX_RETRIES}"
|
81
64
|
retry unless retry_count == MAX_RETRIES
|
65
|
+
|
66
|
+
puts "cannot download #{url} to #{path} error: #{e.message}"
|
67
|
+
end
|
68
|
+
|
69
|
+
def album_title(id)
|
70
|
+
# transform to json and then back to a hash so we can use hash methods
|
71
|
+
photoset_details = JSON.parse(@flickr.photos.getAllContexts(photo_id: id).to_json)
|
72
|
+
photoset_details.dig('set', 0, 'title') || 'misc'
|
73
|
+
end
|
74
|
+
|
75
|
+
def path(album_title, filename)
|
76
|
+
"#{ENV['OUTPUT_PATH']}/#{album_title}/#{filename}"
|
82
77
|
end
|
83
78
|
end
|
84
79
|
end
|
data/lib/image_puller.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: image_puller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Longmore
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry-byebug
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- bin/image_puller
|
100
100
|
- bin/setup
|
101
101
|
- example.json
|
102
|
+
- failed items
|
102
103
|
- image_puller.gemspec
|
103
104
|
- lib/flickr/authenticator.rb
|
104
105
|
- lib/flickr/downloader.rb
|