guerrilla_mail_client 0.1.0
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 +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: []
|