tumblrer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/tumblrer +5 -0
  3. data/lib/tumblrer.rb +52 -0
  4. metadata +126 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 23923caafe09cb1672c26cbf2912639ad0018f2a
4
+ data.tar.gz: '08ad8e438a120835b01959b3bb623ca5986ec4a8'
5
+ SHA512:
6
+ metadata.gz: 8c9b6b950ca48a5b93d3d269f29347935e8faf78510f790b8d66d9953241a51199a8ed07313ba45c16d2c6b8a15fec74369c10631948f6d67cc6e3932b55e929
7
+ data.tar.gz: 9e2380c0fd6b14c0346cc89557f813b380a8aed295188597db28815f98d016afde13ce1537818cb3784d08d33687ef6b09d1392ff8f562ff0078f2f829d1b99b
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'tumblrer'
4
+ tumblrer = Tumblrer.new(ARGV[0], ARGV[1], ARGV[2])
5
+ tumblrer.download
@@ -0,0 +1,52 @@
1
+ require 'open-uri'
2
+ require 'nokogiri'
3
+ require 'mechanize'
4
+
5
+ class Tumblrer
6
+ def initialize(url = nil, number_of_images = nil, start_index = nil)
7
+ @url = url
8
+ @number_of_images = number_of_images || 10
9
+ @start_index = start_index || 0
10
+ @successfulls = 0
11
+ @fails = 0
12
+ @already_exists = 0
13
+ @mechanize = Mechanize.new
14
+ end
15
+
16
+ def download
17
+ unless @url.nil?
18
+ puts "download from: #{@url}"
19
+ puts "going to download #{@number_of_images} of image(s) and starting from (#{@start_index}) index of image"
20
+ puts "---------- downloading ----------"
21
+ url = "#{@url}/api/read?type=photo&num=#{@number_of_images}&start=#{@start_index}"
22
+ xml = Nokogiri::XML.parse(open(url))
23
+ images = (xml/'post photo-url').select{|post| post.content if post['max-width'].to_i == 1280}.map{|image| image.content}
24
+ pwd = FileUtils.pwd
25
+ images.each do |image|
26
+ unless File.exists?("#{pwd}/#{image.to_s.split("/").last}")
27
+ begin
28
+ @mechanize.get(image).save
29
+ puts "file saved to current directory :) - #{image}"
30
+ @successfulls += 1
31
+ rescue
32
+ puts "failed to save file to current directory :( - #{image}"
33
+ @fails += 1
34
+ end
35
+ else
36
+ puts "file already exists :( - #{image}"
37
+ @already_exists += 1
38
+ end
39
+ end
40
+ statistics
41
+ else
42
+ puts "you should give some tumblr url :( \n usage: tumblrer http://hebe.tumblr.com"
43
+ end
44
+ end
45
+
46
+ def statistics
47
+ puts "---------- statistics ----------"
48
+ puts "total number of downloaded images: #{@successfulls}"
49
+ puts "total number of failed images: #{@fails}"
50
+ puts "total number of already exist images: #{@already_exists}"
51
+ end
52
+ end
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tumblrer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Burak KIYAK
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-07-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.8'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.8.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.8'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.8.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: mechanize
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.7'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.7.5
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '2.7'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.7.5
53
+ - !ruby/object:Gem::Dependency
54
+ name: nokogiri
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.8'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.8.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.8'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.8.0
73
+ - !ruby/object:Gem::Dependency
74
+ name: mechanize
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '2.7'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 2.7.5
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.7'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 2.7.5
93
+ description: tumblrer gem allows you to download images from tumblr blogs
94
+ email: brkkyk@gmail.com
95
+ executables:
96
+ - tumblrer
97
+ extensions: []
98
+ extra_rdoc_files: []
99
+ files:
100
+ - bin/tumblrer
101
+ - lib/tumblrer.rb
102
+ homepage: http://rubygems.org/gems/tumblrer
103
+ licenses:
104
+ - MIT
105
+ metadata: {}
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 2.6.8
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: tumblrer
126
+ test_files: []