revoltrb 0.0.3 → 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.
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Revoltrb
4
4
  # The current version of revoltrb
5
- VERSION = "0.0.3"
5
+ VERSION = "0.1.0"
6
6
  end
@@ -1,108 +1,104 @@
1
- # lib/revoltrb/webhooks.rb
2
- require 'json'
3
- require 'net/http'
4
- require 'uri'
5
-
6
- module Revoltrb
7
- class Webhooks
8
- attr_reader :api_url, :logger, :token, :selfbot
9
- def initialize(api_url, logger, token, selfbot)
10
- @api_url = api_url
11
- @logger = logger
12
- @token = token
13
- @selfbot = selfbot
14
- end
15
-
16
- def create_webhook(channel_id, name, avatar_url: nil)
17
- @logger.debug "Attempting to create a webhook for channel '#{channel_id}' with name '#{name}'."
18
-
19
- uri = URI("#{@api_url}/channels/#{channel_id}/webhooks")
20
- req = Net::HTTP::Post.new(uri)
21
- if @selfbot
22
- req['Authorization'] = @token
23
- else
24
- req['x-bot-token'] = @token
25
- end
26
- req['Content-Type'] = 'application/json'
27
-
28
- payload = {
29
- name: name
30
- }
31
- payload[:avatar] = avatar_url unless avatar_url.nil?
32
- req.body = payload.to_json
33
-
34
- res = nil
35
- begin
36
- res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https', read_timeout: 10, open_timeout: 10) do |http|
37
- http.request(req)
38
- end
39
- rescue Net::ReadTimeout => e
40
- @logger.debug "AN ERROR HAS OCCURED: Network request timed out while reading: #{e.message}"
41
- return nil
42
- rescue Net::OpenTimeout => e
43
- @logger.debug "AN ERROR HAS OCCURED: Network request timed out while connecting: #{e.message}"
44
- return nil
45
- rescue => e
46
- @logger.debug "AN ERROR HAS OCCURED: An unexpected error occurred while creating the webhook: #{e.message}"
47
- return nil
48
- end
49
-
50
- if res.is_a?(Net::HTTPSuccess)
51
- webhook_data = JSON.parse(res.body)
52
- @logger.debug "Webhook created successfully! Details: #{res.body}"
53
- @logger.debug "--- Webhook Created ---"
54
- @logger.debug "Name: #{webhook_data['name']} | ID: #{webhook_data['id']}"
55
- @logger.debug "Channel ID: #{webhook_data['channel_id']} | Permissions: #{webhook_data['permissions']}"
56
- @logger.debug "Token: #{webhook_data['token'].inspect}"
57
- @logger.debug "--- End Webhook Details ---"
58
- return webhook_data
59
- else
60
- @logger.debug "AN ERROR HAS OCCURED: Failed to create webhook. (Code: #{res.code}) Response: #{res.message}"
61
- @logger.debug "Response Body: #{res.body}"
62
- return nil
63
- end
64
- end
65
- end
66
- end
67
-
68
- module RevoltWebhooks
69
- class Webhook
70
- DEFAULT_API_URL = 'https://beta.revolt.chat/api'.freeze
71
- def initialize(webhook_id, webhook_token, api_url: DEFAULT_API_URL)
72
- @webhook_id = webhook_id
73
- @webhook_token = webhook_token
74
- @api_url = api_url
75
- @uri = URI("#{@api_url}/webhooks/#{@webhook_id}/#{@webhook_token}")
76
- end
77
-
78
- def send_message(content:, embeds: nil)
79
- payload = {
80
- content: content
81
- }
82
-
83
- if embeds
84
- payload[:embeds] = Array(embeds)
85
- end
86
-
87
- http = Net::HTTP.new(@uri.host, @uri.port)
88
- http.use_ssl = true
89
- request = Net::HTTP::Post.new(@uri.path, 'Content-Type' => 'application/json')
90
- request.body = payload.to_json
91
-
92
- begin
93
- response = http.request(request)
94
-
95
- if response.code.to_i == 204 || response.code.to_i == 200
96
- return true
97
- else
98
- puts "AN ERROR HAS OCCURED: Status code: #{response.code}"
99
- puts "Response body: #{response.body}"
100
- return false
101
- end
102
- rescue StandardError => e
103
- puts "AN ERROR HAS OCCURED: #{e.message}"
104
- return false
105
- end
106
- end
107
- end
1
+ # lib/revoltrb/webhooks.rb
2
+ require 'json'
3
+ require 'net/http'
4
+ require 'uri'
5
+
6
+ module Revoltrb
7
+ class Webhooks
8
+ attr_reader :api_url, :logger, :token, :selfbot
9
+ def initialize(api_url, logger, token, selfbot)
10
+ @api_url = api_url
11
+ @logger = logger
12
+ @token = token
13
+ @selfbot = selfbot
14
+ end
15
+
16
+ def create_webhook(channel_id, name, avatar_url: nil)
17
+ @logger.debug "Attempting to create a webhook for channel '#{channel_id}' with name '#{name}'."
18
+
19
+ uri = URI("#{@api_url}/channels/#{channel_id}/webhooks")
20
+ req = Net::HTTP::Post.new(uri)
21
+ if @selfbot
22
+ req['Authorization'] = @token
23
+ else
24
+ req['x-bot-token'] = @token
25
+ end
26
+ req['Content-Type'] = 'application/json'
27
+
28
+ payload = {
29
+ name: name
30
+ }
31
+ payload[:avatar] = avatar_url unless avatar_url.nil?
32
+ req.body = payload.to_json
33
+
34
+ res = nil
35
+ begin
36
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https', read_timeout: 10, open_timeout: 10) do |http|
37
+ http.request(req)
38
+ end
39
+ rescue Net::ReadTimeout => e
40
+ @logger.debug "AN ERROR HAS OCCURED: Network request timed out while reading: #{e.message}"
41
+ return nil
42
+ rescue Net::OpenTimeout => e
43
+ @logger.debug "AN ERROR HAS OCCURED: Network request timed out while connecting: #{e.message}"
44
+ return nil
45
+ rescue => e
46
+ @logger.debug "AN ERROR HAS OCCURED: An unexpected error occurred while creating the webhook: #{e.message}"
47
+ return nil
48
+ end
49
+
50
+ if res.is_a?(Net::HTTPSuccess)
51
+ webhook_data = JSON.parse(res.body)
52
+ @logger.debug "Webhook created successfully! Details: #{res.body}"
53
+ @logger.debug "Webhook Name: #{webhook_data['name']} | Webhook ID: #{webhook_data['id']}"
54
+ @logger.debug "Webhook Channel ID: #{webhook_data['channel_id']}"
55
+ return webhook_data
56
+ else
57
+ @logger.debug "AN ERROR HAS OCCURED: Failed to create webhook. (Code: #{res.code}) Response: #{res.message}"
58
+ @logger.debug "Response Body: #{res.body}"
59
+ return nil
60
+ end
61
+ end
62
+ end
63
+ end
64
+
65
+ module RevoltWebhooks
66
+ class Webhook
67
+ DEFAULT_API_URL = 'https://beta.revolt.chat/api'.freeze
68
+ def initialize(webhook_id, webhook_token, api_url: DEFAULT_API_URL)
69
+ @webhook_id = webhook_id
70
+ @webhook_token = webhook_token
71
+ @api_url = api_url
72
+ @uri = URI("#{@api_url}/webhooks/#{@webhook_id}/#{@webhook_token}")
73
+ end
74
+
75
+ def send_message(content:, embeds: nil)
76
+ payload = {
77
+ content: content
78
+ }
79
+
80
+ if embeds
81
+ payload[:embeds] = Array(embeds)
82
+ end
83
+
84
+ http = Net::HTTP.new(@uri.host, @uri.port)
85
+ http.use_ssl = true
86
+ request = Net::HTTP::Post.new(@uri.path, 'Content-Type' => 'application/json')
87
+ request.body = payload.to_json
88
+
89
+ begin
90
+ response = http.request(request)
91
+ if response.code.to_i == 204 || response.code.to_i == 200
92
+ return true
93
+ else
94
+ puts "[Revoltrb Webhooks] AN ERROR HAS OCCURED: Status code: #{response.code}"
95
+ puts "[Revoltrb Webhooks] Response body: #{response.body}"
96
+ return false
97
+ end
98
+ rescue StandardError => e
99
+ puts "[Revoltrb Webhooks] AN ERROR HAS OCCURED: #{e.message}"
100
+ return false
101
+ end
102
+ end
103
+ end
108
104
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: revoltrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roxanne Studios
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: 0.6.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: websocket-client-simple
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.9.0
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.0
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: thread
42
56
  requirement: !ruby/object:Gem::Requirement
@@ -55,16 +69,16 @@ dependencies:
55
69
  name: parser
56
70
  requirement: !ruby/object:Gem::Requirement
57
71
  requirements:
58
- - - ">="
72
+ - - "~>"
59
73
  - !ruby/object:Gem::Version
60
- version: '0'
74
+ version: 3.3.9.0
61
75
  type: :runtime
62
76
  prerelease: false
63
77
  version_requirements: !ruby/object:Gem::Requirement
64
78
  requirements:
65
- - - ">="
79
+ - - "~>"
66
80
  - !ruby/object:Gem::Version
67
- version: '0'
81
+ version: 3.3.9.0
68
82
  description: The first Ruby package (a.k.a. gem) to exist for making Revolt.chat bots.
69
83
  This project is not officially endorsed by revolt.chat
70
84
  email: