-
Notifications
You must be signed in to change notification settings - Fork 1
/
01_mclient_init.rb
38 lines (29 loc) · 1004 Bytes
/
01_mclient_init.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/local/env ruby
# coding: utf-8
http_proxy = nil
client_name = "off_bot"
# use HTTPS
mastodon_server = "mstdn-workers.com"
require 'net/https'
require 'uri'
require 'json'
uri = URI.parse("https://" + mastodon_server + "/api/v1/apps");
proxy_uri = { "addr" => nil, "port" => nil, "user" => nil, "pass" => nil }
if (http_proxy != nil)
puri = URI.parse(http_proxy)
proxy_uri['addr'] = puri.host
proxy_uri['port'] = puri.port
proxy_uri['user'] = puri.user
proxy_uri['pass'] = puri.password
end
http = Net::HTTP.new(uri.host, uri.port,proxy_uri['addr'],proxy_uri['port'],proxy_uri['user'],proxy_uri['pass'])
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE # :P
req = Net::HTTP::Post.new(uri.path)
req.set_form_data({'client_name' => client_name, 'redirect_uris' => 'urn:ietf:wg:oauth:2.0:oob', 'scopes' => 'read write'})
res = http.request(req)
json = JSON.parse(res.body)
File.open("off_bot.id","w"){ |f|
f.puts json['client_id']
f.puts json['client_secret']
}