reddit_junkie 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9a808bb47b623d6ccaf3068193f627f457a65839f878dcde9dc28be0546a2f62
4
+ data.tar.gz: beb8d19a472842fe1c54b57bb6695cedb36f1df217f6635f0ec72c8d505c961b
5
+ SHA512:
6
+ metadata.gz: 1c42f9766c3902342b61a83f07d15857e79e236341e90397b6d453af09865f01507e85a5f87c676138faa9e956e676ec14fddf552101e35248b5ff5e28e8677f
7
+ data.tar.gz: e1844255e54aadb93ba20194afc72e1849d408e162c68b4a15e153db3d6bef026daacc2a4ead8560bd26439f9a7dff312ed0fe47771918e2b8134364f922ec5e
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'json'
4
+ gem 'httparty'
@@ -0,0 +1,73 @@
1
+ require 'json'
2
+ require 'httparty'
3
+ require 'digest'
4
+
5
+ class RedditImage
6
+ def initialize(sub, qty=25, directory="images", endpoint=nil, after_pointer=nil)
7
+ @sub = sub
8
+ @qty = qty
9
+ @directory = directory
10
+ @endpoint = endpoint
11
+ @after_pointer = after_pointer
12
+ end
13
+
14
+ def get_info
15
+ puts "Going to crawl: "
16
+ puts "https://reddit.com/r/#{@sub}"
17
+
18
+ if @endpoint == nil
19
+ if @after_pointer == nil
20
+ response = HTTParty.get("https://reddit.com/r/#{@sub}.json?limit=#{@qty}", headers: {"User-agent" => "Reddit Image Downloader 1.0"})
21
+ else
22
+ response = HTTParty.get("https://reddit.com/r/#{@sub}.json?limit=#{@qty}&after=#{@after_pointer}", headers: {"User-agent" => "Reddit Image Downloader 1.0"})
23
+ end
24
+ else
25
+ if @after_pointer == nil
26
+ response = HTTParty.get("https://reddit.com/r/#{@sub}/#{@endpoint}.json?limit=#{@qty}", headers: {"User-agent" => "Reddit Image Downloader 1.0"})
27
+ else
28
+ response = HTTParty.get("https://reddit.com/r/#{@sub}/#{@endpoint}.json?limit=#{@qty}&after=#{@after_pointer}", headers: {"User-agent" => "Reddit Image Downloader 1.0"})
29
+ end
30
+ end
31
+
32
+ after_pointer = JSON.parse(response.body)
33
+ after_pointer = after_pointer['data']['after']
34
+
35
+ puts "The value of \"after\" pointer is: #{after_pointer}"
36
+ end
37
+
38
+ def download_images
39
+ if @endpoint == nil
40
+ response = HTTParty.get("https://reddit.com/r/#{@sub}.json?limit=#{@qty}", headers: {"User-agent" => "Reddit Image Downloader 1.0"})
41
+ else
42
+ response = HTTParty.get("https://reddit.com/r/#{@sub}/#{@endpoint}.json?limit=#{@qty}", headers: {"User-agent" => "Reddit Image Downloader 1.0"})
43
+ end
44
+ json_response = JSON.parse(response.body)
45
+ data = json_response['data']['children']
46
+
47
+ Dir::mkdir("#{@directory}")
48
+ Dir::chdir("#{@directory}")
49
+
50
+ links = []
51
+ data.each do |datum|
52
+ datum = datum['data']
53
+ if datum['post_hint'] == "image"
54
+ links << datum['url_overridden_by_dest']
55
+ end
56
+ end
57
+
58
+ links.each do |link|
59
+ if link != nil
60
+ file_name = "#{Digest::MD5.hexdigest(link)}"
61
+ final_image = File.open(file_name, "wb")
62
+ final_image.write(HTTParty.get(link))
63
+ puts "Wrote on #{file_name}"
64
+ sleep 0.5
65
+ final_image.close
66
+ end
67
+ end
68
+
69
+ Dir::chdir("..")
70
+
71
+ return links
72
+ end
73
+ end
metadata ADDED
@@ -0,0 +1,88 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reddit_junkie
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Muhammadreza Haghiri
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-09-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: digest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: json
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: This little library helps people download images from different subs
56
+ much easier. It's actually like a crawler for the images posted on a subreddit.
57
+ Actually, it's a great tool to have your favorite memes locally!
58
+ email: haghiri75@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - Gemfile
64
+ - lib/reddit_image_downloader.rb
65
+ homepage: http://github.com/prp-e/reddit_image_downloader
66
+ licenses:
67
+ - MIT
68
+ metadata: {}
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ requirements: []
84
+ rubygems_version: 3.1.4
85
+ signing_key:
86
+ specification_version: 4
87
+ summary: Ruby gem for downloading pictures from reddit!
88
+ test_files: []