imagebackup 0.1.1 → 0.1.2

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: 8302dabf090a0201de6843bea4676e91863635810bd53828f1c5047581f519d9
4
- data.tar.gz: 8dfc55fd154415240dd4b8111b96556be9b78f41bb51626fd342a5e530600d83
3
+ metadata.gz: 19904efc55e1c01e746024dc5918741eab0639d7b9cc50dacc1cfec0223c5532
4
+ data.tar.gz: abc4d7dc6e5a97d83149e6808ed92efca7949cfa5019bf6331698abb01cb4a8c
5
5
  SHA512:
6
- metadata.gz: f40f30bf85d614484a578fe1e3eba2be93e61efcc6ec1703b61c53002b06c08c33c95d00c40dde9bce3098afc7b59e8c13878c49e84531be085fc0701a6dd9e2
7
- data.tar.gz: c57c643d830b95925922499fe971948ed2a9ddb829e8dcf75ecb6a7ab472c994c6941546ad47bc3f6d69d1a6461dcc52dd04998fd9b021c9eaee9f477d0a39ef
6
+ metadata.gz: 626ad2725257da8b7aaa53942613b2a3a14baa698ba150c84e71a9e0d34029531f0bd74e50fd9f2bbbac5ae05d6a1fa60eca0d981622f82df22911f8a96b5fba
7
+ data.tar.gz: a3268bfb3094c872553589d0f7cfaf0272fface7e6e2e3e3f31b4180024a08b8b69904b7c4579b3781258a915e73f97e26c957d0651f794d26a1cf946b3027d8
data/README.md CHANGED
@@ -9,9 +9,10 @@
9
9
 
10
10
  - **Ruby**, plus gems:
11
11
  - exiv2
12
- - ffmpeg-video-info
12
+ - ffprober
13
13
  - Ruby modules:
14
14
  - fileutils.rb
15
+ - json
15
16
 
16
17
 
17
18
  ## Usage:
data/imagebackup.gemspec CHANGED
@@ -28,5 +28,5 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = ["lib"]
29
29
 
30
30
  spec.add_dependency 'exiv2'
31
- spec.add_dependency 'ffmpeg-video-info'
31
+ spec.add_dependency 'ffprober'
32
32
  end
@@ -1,3 +1,3 @@
1
1
  module Imagebackup
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/imagebackup.rb CHANGED
@@ -2,23 +2,47 @@
2
2
  require_relative 'imagebackup/version'
3
3
 
4
4
  require 'exiv2'
5
+ require 'fileutils'
6
+ require 'ffprober'
7
+ require 'json'
8
+
9
+ def get_dates(file)
10
+ begin
11
+ image = Exiv2::ImageFactory.open(file)
12
+ image.read_metadata
13
+ date = image.exif_data.find { |v| v[0] == 'Exif.Image.DateTime' }
14
+ date = date[1].split[0].gsub(':','-')
15
+ rescue => exiv2_no_exifdata
16
+ probe = Ffprober::Parser.from_file(file)
17
+ date = probe.format.tags[:creation_time].split('T')[0]
18
+ end
19
+ return date
20
+ end
21
+
22
+ dest = ARGV[0]
5
23
 
6
24
  file_types = [
7
25
  '**/*.CR2',
8
26
  '**/*.DNG',
9
27
  '**/*.MOV',
10
- '**/*.MP4'
28
+ '**/*.MP4',
29
+ '**/*.JPG'
11
30
  ]
12
31
 
13
- Dir.glob(file_types).each do |f|
14
- puts "#{Dir.pwd}/#{f}"
32
+ Dir.glob(file_types).reverse_each do |f|
33
+
15
34
  file = "#{Dir.pwd}/#{f}"
16
- image = Exiv2::ImageFactory.open(file)
17
- image.read_metadata
18
- # p image.iptc_data.each do |k,v|
19
- # puts "#{k} = #{v}\n"
20
- # end
21
- # p date = image.exif_data.member?("Exif.Image.DateTime")
22
- p date = image.exif_data.find { |v| v[0] == 'Exif.Image.DateTime' }
23
- gets
35
+
36
+ date = get_dates(file)
37
+ destpath = "#{dest}/#{date}"
38
+ destpath = destpath.gsub('//','/')
39
+ outfile = "#{destpath}/#{File.basename(file)}"
40
+ if File.exist?(outfile)
41
+ puts "\"#{outfile}\" already exists."
42
+ else
43
+ puts "copying \"#{file}\" to \"#{outfile}\""
44
+ FileUtils.mkdir_p(destpath)
45
+ FileUtils.cp(file,outfile)
46
+ end
47
+ # sleep 0.1
24
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imagebackup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - adrian-sal-kennedy
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: ffmpeg-video-info
28
+ name: ffprober
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="