guerrilla_mail_client 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/guerrilla_mail_client.rb +98 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1d546db9089acbe1825ad514aba335fbbbf1c0f36fff475bc06863085834602a
|
4
|
+
data.tar.gz: 4627cf08f0db0484e186f12f1a7188e19142424138d3d1648c74663155628967
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bd44d8c238c5b1b83f1febe199a1fc7db368230d3186557ba9f11b2aa05e49c96ca4e8bf7f0a5be4c3b471671415582151c5f2f80e67650ae5fb7e224614ecda
|
7
|
+
data.tar.gz: 7663f1708af9ccf15cdefdcef0bbbf62fda60a3dc8bb09e0846564a550d0e8d4b441b2599cf450b243f4a46120f50a237dece34370a1a67a06c3b3760811a1f3
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'cgi'
|
4
|
+
require 'json'
|
5
|
+
require 'openssl'
|
6
|
+
require 'net/https'
|
7
|
+
|
8
|
+
class GuerrillaMailClient
|
9
|
+
def initialize(site: ENV['GUERRILLA_MAIL_SITE'], api_key: ENV['GUERRILLA_MAIL_API_KEY'])
|
10
|
+
@site = site
|
11
|
+
@api_key = api_key
|
12
|
+
@http = Net::HTTP.new('api.guerrillamail.com', 443)
|
13
|
+
@http.use_ssl = true
|
14
|
+
@http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
15
|
+
end
|
16
|
+
|
17
|
+
def build_url(f, sid_token: nil)
|
18
|
+
url = String.new "/ajax.php?f=#{CGI::escape(f)}"
|
19
|
+
|
20
|
+
unless sid_token.to_s.empty?
|
21
|
+
url << build_url_param('sid_token', sid_token)
|
22
|
+
end
|
23
|
+
|
24
|
+
unless @site.to_s.empty?
|
25
|
+
url << build_url_param('site', @site)
|
26
|
+
end
|
27
|
+
|
28
|
+
url
|
29
|
+
end
|
30
|
+
|
31
|
+
def build_url_param(key, value)
|
32
|
+
"&#{CGI::escape(key)}=#{CGI::escape(value.to_s)}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_email_address(lang: 'en', sid_token: nil)
|
36
|
+
url = build_url('get_email_address', sid_token: sid_token)
|
37
|
+
|
38
|
+
unless lang.to_s.empty?
|
39
|
+
url << build_url_param('lang', lang)
|
40
|
+
end
|
41
|
+
|
42
|
+
req = Net::HTTP::Get.new(url)
|
43
|
+
res = @http.request(req)
|
44
|
+
JSON.parse(res.body)
|
45
|
+
end
|
46
|
+
|
47
|
+
def api_token(sid_token:)
|
48
|
+
if @api_key.to_s.empty?
|
49
|
+
return nil
|
50
|
+
end
|
51
|
+
|
52
|
+
OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), @api_key, sid_token)
|
53
|
+
end
|
54
|
+
|
55
|
+
def authorize(req, sid_token:)
|
56
|
+
api_token = self.api_token(sid_token: sid_token)
|
57
|
+
unless api_token.to_s.empty?
|
58
|
+
req['Authorization'] = "ApiToken: #{api_token}"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def set_email_user(email_user, lang: 'en', sid_token:)
|
63
|
+
url = build_url('set_email_user', sid_token: sid_token)
|
64
|
+
|
65
|
+
url << build_url_param('email_user', email_user)
|
66
|
+
|
67
|
+
unless lang.to_s.empty?
|
68
|
+
url << build_url_param('lang', lang)
|
69
|
+
end
|
70
|
+
|
71
|
+
req = Net::HTTP::Get.new(url)
|
72
|
+
res = @http.request(req)
|
73
|
+
authorize(req, sid_token: sid_token)
|
74
|
+
JSON.parse(res.body)
|
75
|
+
end
|
76
|
+
|
77
|
+
def check_email(seq: 0, sid_token:)
|
78
|
+
url = build_url('check_email', sid_token: sid_token)
|
79
|
+
|
80
|
+
url << build_url_param('seq', seq)
|
81
|
+
|
82
|
+
req = Net::HTTP::Get.new(url)
|
83
|
+
res = @http.request(req)
|
84
|
+
authorize(req, sid_token: sid_token)
|
85
|
+
JSON.parse(res.body)
|
86
|
+
end
|
87
|
+
|
88
|
+
def fetch_email(email_id, sid_token:)
|
89
|
+
url = build_url('fetch_email', sid_token: sid_token)
|
90
|
+
|
91
|
+
url << build_url_param('email_id', email_id)
|
92
|
+
|
93
|
+
req = Net::HTTP::Get.new(url)
|
94
|
+
res = @http.request(req)
|
95
|
+
authorize(req, sid_token: sid_token)
|
96
|
+
JSON.parse(res.body)
|
97
|
+
end
|
98
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: guerrilla_mail_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Donald Ness
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-09-29 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Avoid spam and stay safe with Guerrilla Mail disposable temporary email
|
14
|
+
addresses. This gem has no dependencies.
|
15
|
+
email: donald.ness@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/guerrilla_mail_client.rb
|
21
|
+
homepage: https://github.com/programmarchy/guerrilla_mail_client
|
22
|
+
licenses:
|
23
|
+
- MIT
|
24
|
+
metadata:
|
25
|
+
source_code_uri: https://github.com/programmarchy/guerrilla_mail_client
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubyforge_project:
|
42
|
+
rubygems_version: 2.7.6
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: A client for the Guerrilla Mail API
|
46
|
+
test_files: []
|