guerrilla_mailX 0.0.9

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a629dba964a93dbde384b1be65487f932ec66b2af732a739837033f723e78723
4
+ data.tar.gz: 9af8fd4d3a74325031b5cc7ac837414410de4a32c4ae62f1f851e11376187b31
5
+ SHA512:
6
+ metadata.gz: 0cf5679a828b9c89abce0f7ec82efedfc9c32af775433e2fc18c3c10e17f40f0f035c068549abe73356ff100aba02cab7c5893000a23ea10a7a49789f94b3cab
7
+ data.tar.gz: e33c69bf28e802f8a3989a988876b3bb8f2ad922c95ec656a0414b46949a6b788a70300b42de03a9d32f2f4a39c8ab594f6c986f5cdcde1265fec109baf7eab2
@@ -0,0 +1,26 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = 'guerrilla_mailX'
3
+ spec.version = '0.0.9'
4
+ spec.date = '2020-05-20'
5
+ spec.summary = "Ruby gem to get mail from guerrillamail.com and verify sent mails"
6
+ spec.description = "Ruby gem to get mail from guerrillamail.com. With this gem you can use guerrillamail
7
+ APIs and verify subject and body of email received."
8
+ spec.authors = ["Himanshu Gupta"]
9
+ spec.email = 'gupta.himanshu@thinkfuture.us'
10
+ spec.files = %w[guerrillamailchecker.gemspec] + Dir['lib/**/*.rb']
11
+ spec.homepage = 'https://github.com/himanshu-thinkfuture/guerrillamail-checker'
12
+
13
+ spec.require_paths = ['lib']
14
+
15
+
16
+ spec.add_development_dependency 'bundler'
17
+ spec.add_development_dependency 'rake', '>= 10.0'
18
+ # spec.add_development_dependency 'rspec', '>= 3.9.0'
19
+ spec.add_development_dependency 'pry'
20
+
21
+ spec.add_runtime_dependency 'rest-client', '>=2.1.0'
22
+ spec.add_runtime_dependency 'activesupport', '~> 5.0', '>= 5.0.0.1'
23
+ spec.add_runtime_dependency 'rainbow', '~> 2.1'
24
+
25
+
26
+ end
@@ -0,0 +1,5 @@
1
+ # require 'rubygems'
2
+ require 'rest-client'
3
+ # require 'rspec'
4
+ # require 'clipboard'
5
+ require 'guerrillamailchecker/api.rb'
@@ -0,0 +1,241 @@
1
+ # require 'json'
2
+ # require 'fileutils'
3
+ require 'rest-client'
4
+ require 'json'
5
+ require 'date'
6
+ require 'rainbow'
7
+ require 'active_support'
8
+ require 'active_support/core_ext'
9
+ require 'guerrillamailchecker/errors.rb'
10
+
11
+
12
+ class Guerrilla
13
+ @sid_token
14
+ @email
15
+ @time
16
+ @timestamp
17
+ @alias_id
18
+ @valid_till
19
+
20
+
21
+ attr_accessor :sid_token, :email, :time, :timestamp, :alias_id, :valid_till
22
+
23
+ def initialize(email_id = nil, sid_token: nil)
24
+ if !sid_token.present?
25
+ response = send_request("POST", "https://api.guerrillamail.com/ajax.php?f=get_email_address")
26
+ @sid_token = sid_token = response[:body][:sid_token]
27
+ else
28
+ @sid_token = sid_token
29
+ end
30
+
31
+ if email_id.present?
32
+ set_email_url = "https://api.guerrillamail.com/ajax.php?f=set_email_user&email_user=#{email_id}&lang=en&sid_token=#{sid_token}"
33
+ response = send_request("POST",set_email_url)
34
+ # site_id = response[:body][:site_id]
35
+ # site = response[:body][:site]
36
+ end
37
+ @email = response[:body][:email_addr]
38
+ @alias_id = response[:body][:alias]
39
+ @timestamp = response[:body][:email_timestamp]
40
+ @time = Time.at(timestamp).to_datetime.to_s
41
+ @valid_till = Time.at(timestamp+3600).to_datetime.to_s
42
+ end
43
+
44
+ def self.get_email_address
45
+ response = send_request("POST", "https://api.guerrillamail.com/ajax.php?f=get_email_address")
46
+ end
47
+
48
+ def set_email_user(sid_token: nil, email_user: nil, lang: 'en', site: nil)
49
+ if !sid_token.present?
50
+ sid_token = @sid_token
51
+ end
52
+ set_email_url = "https://api.guerrillamail.com/ajax.php?f=set_email_user&email_user=#{email_user}&lang=#{lang}&sid_token=#{sid_token}&site=#{site}"
53
+ response = send_request("POST",set_email_url)
54
+ end
55
+
56
+ def verify_last_mail sid_token: nil, wait: 120, body: nil, subject: nil
57
+ if !subject.present?
58
+ puts "\e[31mArgument Required\e[0m: No \e[33msubject\e[0m given"
59
+ raise ArgumentRequiredError.new.message("subject")
60
+ return
61
+ end
62
+
63
+ if !sid_token.present?
64
+ sid_token = @sid_token
65
+ end
66
+ get_email_list_url = "https://api.guerrillamail.com/ajax.php?f=get_email_list&offset=0&sid_token=#{sid_token}"
67
+ result = {}
68
+ start_minute = Time.now
69
+ while Time.now <= start_minute + wait
70
+ sleep(5)
71
+ response = send_request("POST",get_email_list_url)
72
+ return "No Mail Present" if response[:body][:list] == nil || response[:body][:list][0] == nil
73
+ mail_id = response[:body][:list][0][:mail_id]
74
+ fetch_email_url = "https://api.guerrillamail.com/ajax.php?f=fetch_email&email_id=#{mail_id}&sid_token=#{sid_token}"
75
+ email_response = send_request("POST",fetch_email_url)
76
+ break if (email_response[:body][:mail_subject]).include?(subject.to_s)
77
+ end
78
+ if email_response[:body][:mail_subject].include?(subject)
79
+ result[:subject] = true
80
+ else
81
+ result[:subject] = false
82
+ end
83
+ if body.present?
84
+ if email_response[:body][:mail_body].include?(body)
85
+ result[:body] = true
86
+ else
87
+ result[:body] = false
88
+ end
89
+ end
90
+ return result
91
+ end
92
+
93
+ def verify_mail sid_token: nil, email_id: nil, offset: nil, wait: 120, body: nil, subject: nil
94
+ if !subject.present?
95
+ puts "\e[31mArgument Required\e[0m: No \e[33msubject\e[0m given"
96
+ raise ArgumentRequiredError.new.message("subject")
97
+ return
98
+ end
99
+
100
+ if !sid_token.present?
101
+ sid_token = @sid_token
102
+ end
103
+
104
+ if !email_id.present?
105
+ if offset.present?
106
+ get_email_list_url = "https://api.guerrillamail.com/ajax.php?f=get_email_list&offset=#{offset}&sid_token=#{sid_token}"
107
+ else
108
+ get_email_list_url = "https://api.guerrillamail.com/ajax.php?f=get_email_list&offset=0&sid_token=#{sid_token}"
109
+ end
110
+ end
111
+
112
+ result ={}
113
+ start_minute = Time.now
114
+ while Time.now <= start_minute + wait
115
+ sleep(5)
116
+ if !email_id.present?
117
+ response = send_request("POST",get_email_list_url)
118
+ return "No Mail Present" if response[:body][:list] == nil || response[:body][:list][0] == nil
119
+ mail_id = response[:body][:list][0][:mail_id]
120
+ else
121
+ mail_id = email_id
122
+ end
123
+ fetch_email_url = "https://api.guerrillamail.com/ajax.php?f=fetch_email&email_id=#{mail_id}&sid_token=#{sid_token}"
124
+ email_response = send_request("POST",fetch_email_url)
125
+ break if (email_response[:body][:mail_subject]).include?(subject.to_s)
126
+ end
127
+ if email_response[:body][:mail_subject].include?(subject)
128
+ result[:subject] = true
129
+ else
130
+ result[:subject] = false
131
+ end
132
+ if body.present?
133
+ if email_response[:body][:mail_body].include?(body)
134
+ result[:body] = true
135
+ else
136
+ result[:body] = false
137
+ end
138
+ end
139
+ return result
140
+ end
141
+
142
+ def check_email(seq: 0, sid_token: nil)
143
+ if !sid_token.present?
144
+ sid_token = @sid_token
145
+ end
146
+ check_email_url = "https://api.guerrillamail.com/ajax.php?f=check_email&seq=#{seq}&sid_token=#{sid_token}"
147
+ response = send_request("POST",check_email_url)
148
+ return response
149
+ end
150
+
151
+ def get_email_list(sid_token: nil, offset: 0, seq: 0)
152
+ if !sid_token.present?
153
+ sid_token = @sid_token
154
+ end
155
+ get_email_list_url = "https://api.guerrillamail.com/ajax.php?f=get_email_list&offset=#{offset}&seq=#{seq}&sid_token=#{sid_token}"
156
+ response = send_request("POST",get_email_list_url)
157
+ return response
158
+ end
159
+
160
+ def fetch_email(sid_token: nil, mail_id: nil)
161
+ if !mail_id.present?
162
+ puts "\e[31mArgument Required\e[0m: No \e[33mmail_id\e[0m given"
163
+ raise ArgumentRequiredError.new.message("mail_id")
164
+ return
165
+ end
166
+ if !sid_token.present?
167
+ sid_token = @sid_token
168
+ end
169
+ fetch_email_url = "https://api.guerrillamail.com/ajax.php?f=fetch_email&sid_token=#{sid_token}&email_id=#{mail_id}"
170
+ response = send_request("POST",fetch_email_url)
171
+ end
172
+
173
+ def forget_me(sid_token: nil, email_addr: nil)
174
+ if !sid_token.present?
175
+ sid_token = @sid_token
176
+ end
177
+ forget_sid_url = "https://api.guerrillamail.com/ajax.php?f=forget_me&sid_token=#{sid_token}&email_addr=#{email_addr}"
178
+ response = send_request("POST",forget_sid_url)
179
+ end
180
+
181
+ def self.forget_me(sid_token: nil, email_addr: nil)
182
+ if !sid_token.present?
183
+ puts "\e[31mArgument Required\e[0m: No \e[33msid_token\e[0m given"
184
+ raise ArgumentRequiredError.new.message("sid_token")
185
+ return
186
+ end
187
+ forget_sid_url = "https://api.guerrillamail.com/ajax.php?f=forget_me&sid_token=#{sid_token}&email_addr=#{email_addr}"
188
+ response = send_request("POST",forget_sid_url)
189
+ end
190
+
191
+ def del_email(sid_token: nil, email_ids: nil)
192
+ if !sid_token.present?
193
+ sid_token = @sid_token
194
+ end
195
+ email_s = ""
196
+ if email_ids.present?
197
+ email_ids.each do |e|
198
+ email_s += "&email_ids[]=#{e}"
199
+ end
200
+ end
201
+ del_email_url = "https://api.guerrillamail.com/ajax.php?f=del_email&sid_token=#{sid_token}#{email_s}"
202
+ response = send_request("POST",del_email_url)
203
+ end
204
+
205
+ def self.del_email(sid_token: nil, email_ids: nil)
206
+ if !sid_token.present?
207
+ puts "\e[31mArgument Required\e[0m: No \e[33msid_token\e[0m given"
208
+ raise ArgumentRequiredError.new.message("sid_token")
209
+ return
210
+ end
211
+ email_s = ""
212
+ if email_ids.present?
213
+ email_ids.each do |e|
214
+ email_s += "&email_ids[]=#{e}"
215
+ end
216
+ end
217
+ del_email_url = "https://api.guerrillamail.com/ajax.php?f=del_email&sid_token=#{sid_token}#{email_s}"
218
+ response = send_request("POST",del_email_url)
219
+ end
220
+
221
+ def get_older_list(sid_token: nil, seq: nil, limit: nil)
222
+ if !sid_token.present?
223
+ sid_token = @sid_token
224
+ end
225
+ get_older_list_url = "https://api.guerrillamail.com/ajax.php?f=get_older_list&sid_token=#{sid_token}&seq=#{seq}&limit=#{limit}"
226
+ response = send_request("POST",get_older_list_url)
227
+ end
228
+
229
+ private
230
+ def self.send_request(method, url, params={})
231
+ response = RestClient::Request.execute(method: method, url: url, payload: params)
232
+ if response.present? && response.code == 200
233
+ {code: response.code, body: response.body.blank? ? '' : JSON.parse(response.body, symbolize_names: true) }
234
+ else
235
+ {:code=>response.code, :body=>{:person=>{}}}
236
+ end
237
+ end
238
+ def send_request(method, url, params={})
239
+ self.class.send_request(method, url, params={})
240
+ end
241
+ end
@@ -0,0 +1,5 @@
1
+ class ArgumentRequiredError < StandardError
2
+ def message(arg)
3
+ "Argument '#{arg}' is missing"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: guerrilla_mailX
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.9
5
+ platform: ruby
6
+ authors:
7
+ - Himanshu Gupta
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-05-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
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: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rest-client
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 2.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 2.1.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.0'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 5.0.0.1
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '5.0'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 5.0.0.1
89
+ - !ruby/object:Gem::Dependency
90
+ name: rainbow
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.1'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '2.1'
103
+ description: "Ruby gem to get mail from guerrillamail.com. With this gem you can use
104
+ guerrillamail \n APIs and verify subject and body of email
105
+ received."
106
+ email: gupta.himanshu@thinkfuture.us
107
+ executables: []
108
+ extensions: []
109
+ extra_rdoc_files: []
110
+ files:
111
+ - guerrillamailchecker.gemspec
112
+ - lib/guerrillamailchecker.rb
113
+ - lib/guerrillamailchecker/api.rb
114
+ - lib/guerrillamailchecker/errors.rb
115
+ homepage: https://github.com/himanshu-thinkfuture/guerrillamail-checker
116
+ licenses: []
117
+ metadata: {}
118
+ post_install_message:
119
+ rdoc_options: []
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ requirements: []
133
+ rubyforge_project:
134
+ rubygems_version: 2.7.9
135
+ signing_key:
136
+ specification_version: 4
137
+ summary: Ruby gem to get mail from guerrillamail.com and verify sent mails
138
+ test_files: []