tumblrer 0.0.1

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.
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: []