visioner 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -3
- data/bin/visioner +4 -0
- data/lib/visioner/version.rb +1 -1
- data/lib/visioner.rb +19 -11
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfb460875ffcf77f13a494ce40b05e1dc089fc9c
|
4
|
+
data.tar.gz: ba23dfdae48c61b58fc88e8bda5c3d0e15c9de1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72d6f000b32cbbb60675d483b452d35cec3b176cfbcab02eee5b99d94c1c3b331f5a9da8100491813410f53786f9a1517d0b084e5ffc13bbb1b94fce887ef072
|
7
|
+
data.tar.gz: 050e98a0ef8f60b2d4dd8512fd6388b4db22d5c5c08f3505a996687be1adef043cb0d51f26bec33c0fb86d76384885c5cdfdaaccb8c2876b275dd63ca8b0101e
|
data/README.md
CHANGED
@@ -16,6 +16,8 @@ Automatically rename your pictures using Google Vision API and metadata.
|
|
16
16
|
|
17
17
|
-c, --country Adds country to the new filename (ex: south-korea)
|
18
18
|
|
19
|
+
-i, --city Adds city to the new filename (ex: seoul)
|
20
|
+
|
19
21
|
-d, --date Adds date to the new filename (ex: 29/07/2016)
|
20
22
|
|
21
23
|
-h, --help Displays help
|
@@ -23,19 +25,19 @@ Automatically rename your pictures using Google Vision API and metadata.
|
|
23
25
|
**Examples:**
|
24
26
|
|
25
27
|
$ export GOOGLE_VISION_API_KEY=BI34SyB5DhqV5ReVnkmIM79812yux9UFazNdynD
|
26
|
-
|
28
|
+
|
27
29
|
$ bin/visioner /Desktop/travel-south-korea-2016-2/*.jpg
|
28
30
|
/Desktop/travel-south-korea-2016-2/IMG_213.jpg -> sea.jpg
|
29
31
|
/Desktop/travel-south-korea-2016-2/IMG_214.jpg -> tower.jpg
|
30
32
|
/Desktop/travel-south-korea-2016-2/IMG_215.jpg -> people.jpg
|
31
33
|
/Desktop/travel-south-korea-2016-2/IMG_216.jpg -> sea2.jpg
|
32
|
-
|
34
|
+
|
33
35
|
$ bin/visioner --date /Desktop/travel-south-korea-2016-3/*.jpg
|
34
36
|
/Desktop/travel-south-korea-2016-3/IMG_213.jpg -> 02-28-2015_sea.jpg
|
35
37
|
/Desktop/travel-south-korea-2016-3/IMG_214.jpg -> 02-15-2015_tower.jpg
|
36
38
|
/Desktop/travel-south-korea-2016-3/IMG_215.jpg -> 03-28-2015_people.jpg
|
37
39
|
/Desktop/travel-south-korea-2016-3/IMG_216.jpg -> 04-02-2015_sea2.jpg
|
38
|
-
|
40
|
+
|
39
41
|
$ bin/visioner --country --date /Desktop/travel-south-korea-2016-4/*.jpg
|
40
42
|
/Desktop/travel-south-korea-2016-4/IMG_213.jpg -> south-korea_02-28-2015_sea.jpg
|
41
43
|
/Desktop/travel-south-korea-2016-4/IMG_214.jpg -> south-korea_03-15-2015_tower.jpg
|
data/bin/visioner
CHANGED
@@ -12,6 +12,10 @@ opts.on("-c", "--country", "Adds country to the new filename (ex: south-korea)")
|
|
12
12
|
options[:country] = c
|
13
13
|
end
|
14
14
|
|
15
|
+
opts.on("-l", "--locality", "Adds locality / city to the new filename (ex: seoul)") do |l|
|
16
|
+
options[:locality] = l
|
17
|
+
end
|
18
|
+
|
15
19
|
opts.on("-d", "--date", "Adds date to the new filename (ex: 29/07/2016)") do |d|
|
16
20
|
options[:date] = d
|
17
21
|
end
|
data/lib/visioner/version.rb
CHANGED
data/lib/visioner.rb
CHANGED
@@ -7,7 +7,7 @@ require 'optparse'
|
|
7
7
|
|
8
8
|
module Visioner
|
9
9
|
|
10
|
-
def self.
|
10
|
+
def self.get_place(latitude, longitude, type)
|
11
11
|
# Prepare request
|
12
12
|
url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=#{latitude},#{longitude}"
|
13
13
|
url = URI(url)
|
@@ -15,19 +15,21 @@ module Visioner
|
|
15
15
|
res = Net::HTTP.new(url.host, url.port)
|
16
16
|
res.use_ssl = true
|
17
17
|
|
18
|
-
# Get
|
19
|
-
|
18
|
+
# Get place
|
19
|
+
place = 'unknown'
|
20
20
|
res.start do |http|
|
21
21
|
resp = http.request(req)
|
22
22
|
json = JSON.parse(resp.body)
|
23
|
-
if json && json['status'] == 'OK' && json['results'][0]['address_components'] && json['results'][0]['address_components'].select {|address_component| address_component['types'][0] ==
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
if json && json['status'] == 'OK' && json['results'][0]['address_components'] && json['results'][0]['address_components'].select {|address_component| address_component['types'][0] == type }
|
24
|
+
place = json['results'][0]['address_components'].select {|address_component| address_component['types'][0] == type }
|
25
|
+
if place[0]
|
26
|
+
place = place[0]['long_name']
|
27
|
+
place = place.downcase.tr(" ", "-")
|
28
|
+
end
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
30
|
-
return
|
32
|
+
return place
|
31
33
|
end
|
32
34
|
|
33
35
|
def self.rename_all(images, options)
|
@@ -101,12 +103,18 @@ module Visioner
|
|
101
103
|
country = ''
|
102
104
|
if options[:country]
|
103
105
|
country = 'unknown' # Fallback
|
104
|
-
country = self.
|
106
|
+
country = self.get_place(exif.gps.latitude, exif.gps.longitude, 'country') + '_' if exif.gps_latitude && exif.gps_longitude
|
107
|
+
end
|
108
|
+
|
109
|
+
locality = ''
|
110
|
+
if options[:locality]
|
111
|
+
locality = 'unknown' # Fallback
|
112
|
+
locality = self.get_place(exif.gps.latitude, exif.gps.longitude, 'locality') + '_' if exif.gps_latitude && exif.gps_longitude
|
105
113
|
end
|
106
114
|
|
107
|
-
puts "#{image_name} -> #{country + date + name + counter.to_s + File.extname(image_name)}"
|
115
|
+
puts "#{image_name} -> #{country + locality + date + name + counter.to_s + File.extname(image_name)}"
|
108
116
|
|
109
|
-
File.rename(image_name, File.dirname(image_name) + "/" + country + date + name + counter.to_s + File.extname(image_name))
|
117
|
+
File.rename(image_name, File.dirname(image_name) + "/" + country + locality + date + name + counter.to_s + File.extname(image_name))
|
110
118
|
end
|
111
119
|
|
112
120
|
end
|