discorb 0.2.5 → 0.3.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 +4 -4
- data/.yardopts +1 -1
- data/Gemfile.lock +4 -4
- data/docs/cli/init.md +55 -0
- data/docs/{discord_irb.md → cli/irb.md} +5 -7
- data/docs/cli.md +20 -0
- data/exe/discorb +28 -0
- data/lib/discorb/audit_logs.rb +3 -0
- data/lib/discorb/common.rb +1 -1
- data/lib/discorb/dictionary.rb +3 -0
- data/lib/discorb/exe/init.rb +185 -0
- data/{exe/discord-irb → lib/discorb/exe/irb.rb} +2 -0
- data/lib/discorb/flag.rb +3 -0
- data/lib/discorb/intents.rb +3 -0
- data/lib/discorb/permission.rb +3 -0
- data/lib/discorb/utils/colored_puts.rb +11 -0
- metadata +9 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f5c9c3f2c3e472300d1fe8462b9e667008bce0a30d11b2ce6cf866f697aedb0
|
4
|
+
data.tar.gz: d2c2fa2edd51a84a1001675d0572bfae3464f5d25b85865a95a7c7f5daebf109
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed4bb639464a3adc7a5982088149421d6d15f7e3c4be37bb59855a5d106ee5a1e1756b10ba401fd3d3ced9008c15e99bb3967f93eb7ff197903fb6cf95e19699
|
7
|
+
data.tar.gz: fc6809db6b8e7a7e65e70fb49ce3b25a2aa4f42145477730e234511a95f278879759d76f5ee9547fa213f34ce3c413f5ba167c7f042d7f73a954718ba22e51d4
|
data/.yardopts
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
discorb (0.
|
4
|
+
discorb (0.3.0)
|
5
5
|
async
|
6
6
|
async-http
|
7
7
|
async-websocket
|
@@ -34,11 +34,11 @@ GEM
|
|
34
34
|
fiber-local (1.0.0)
|
35
35
|
mime-types (3.3.1)
|
36
36
|
mime-types-data (~> 3.2015)
|
37
|
-
mime-types-data (3.2021.
|
38
|
-
nio4r (2.5.
|
37
|
+
mime-types-data (3.2021.0901)
|
38
|
+
nio4r (2.5.8)
|
39
39
|
protocol-hpack (1.4.2)
|
40
40
|
protocol-http (0.22.5)
|
41
|
-
protocol-http1 (0.14.
|
41
|
+
protocol-http1 (0.14.2)
|
42
42
|
protocol-http (~> 0.22)
|
43
43
|
protocol-http2 (0.14.2)
|
44
44
|
protocol-hpack (~> 1.4)
|
data/docs/cli/init.md
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
# @title CLI: discorb init
|
2
|
+
|
3
|
+
# discorb init
|
4
|
+
|
5
|
+
This command will create a new project in the directory.
|
6
|
+
|
7
|
+
## Usage
|
8
|
+
|
9
|
+
```bash
|
10
|
+
discorb init [options] [dir]
|
11
|
+
```
|
12
|
+
|
13
|
+
## Options
|
14
|
+
|
15
|
+
### `dir`
|
16
|
+
|
17
|
+
The directory to create the project in.
|
18
|
+
Defaults to the current directory.
|
19
|
+
If the directory exists and is not empty, an error is returned.
|
20
|
+
You can use `--force` to overwrite an existing directory.
|
21
|
+
|
22
|
+
### `--[no-]bundle`
|
23
|
+
|
24
|
+
Whether to use bundle.
|
25
|
+
If true, the command will create Gemfile and execute `bundle install`.
|
26
|
+
Default to true.
|
27
|
+
|
28
|
+
### `--[no-]git`
|
29
|
+
|
30
|
+
Whether to initialize git.
|
31
|
+
If true, the command will initialize git and commit the initial files with commit message `Initial commit`.
|
32
|
+
Use `git commit --amend -m "..."` to change the commit message.
|
33
|
+
Default to true.
|
34
|
+
|
35
|
+
### `-t`, `--token`
|
36
|
+
|
37
|
+
The name of token environment variable.
|
38
|
+
Default to TOKEN.
|
39
|
+
|
40
|
+
### `-f`, `--force`
|
41
|
+
|
42
|
+
Whether to overwrite an existing directory.
|
43
|
+
Default to false.
|
44
|
+
|
45
|
+
## File structure
|
46
|
+
|
47
|
+
The following files will be created:
|
48
|
+
|
49
|
+
| File | Description |
|
50
|
+
| ---- | ----------- |
|
51
|
+
| `.env` | Environment variables. |
|
52
|
+
| `.gitignore` | Git ignore file. Won't be created if `--git` is false. |
|
53
|
+
| `Gemfile` | Gemfile. Won't be created if `--bundle` is false. |
|
54
|
+
| `Gemfile.lock` | Gemfile lock file. Won't be created if `--bundle` is false. |
|
55
|
+
| `main.rb` | Main script. |
|
@@ -1,21 +1,19 @@
|
|
1
|
-
# @title
|
1
|
+
# @title CLI: discorb irb
|
2
2
|
|
3
|
-
#
|
3
|
+
# discorb irb
|
4
4
|
|
5
|
-
|
5
|
+
discorb irb is a command line tool for interacting with the Discord API.
|
6
6
|
|
7
7
|
|
8
8
|
## Usage
|
9
9
|
|
10
10
|
```
|
11
|
-
|
11
|
+
discorb irb [options]
|
12
12
|
```
|
13
13
|
|
14
|
-
To start.
|
15
|
-
|
16
14
|
### Load a token
|
17
15
|
|
18
|
-
|
16
|
+
discorb irb will load a token from...
|
19
17
|
1. the `DISCORD_BOT_TOKEN` environment variable
|
20
18
|
2. the `DISCORD_TOKEN` environment variable
|
21
19
|
3. `token` file in the current directory(customizable with `-t` option)
|
data/docs/cli.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# @title CLI tools
|
2
|
+
|
3
|
+
# CLI tools
|
4
|
+
|
5
|
+
discorb has a CLI tool for developing.
|
6
|
+
|
7
|
+
## Usage
|
8
|
+
|
9
|
+
```bash
|
10
|
+
bundle exec discorb <command> ...
|
11
|
+
```
|
12
|
+
|
13
|
+
## Commands
|
14
|
+
|
15
|
+
Currently, discorb has the following commands:
|
16
|
+
|
17
|
+
| Command | Description |
|
18
|
+
|---------|-------------|
|
19
|
+
| {file:docs/cli/init.md `init`} | Create a new project. |
|
20
|
+
| {file:docs/cli/irb.md `irb`} | Start an interactive Ruby shell with connected client. |
|
data/exe/discorb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
script = ARGV[0]
|
4
|
+
|
5
|
+
if script.nil?
|
6
|
+
puts "\e[94mThis is a tool for discorb. Currently these tools are available:\e[m"
|
7
|
+
|
8
|
+
discorb_path = $:.find { |path| File.directory?(path + "/discorb") }
|
9
|
+
scripts = {}
|
10
|
+
Dir.glob(discorb_path + "/discorb/exe/*.rb") do |script|
|
11
|
+
name = File.basename(script, ".rb")
|
12
|
+
description = File.read(script).match(/# description: (.+)/)&.[](1) || "No description"
|
13
|
+
scripts[name] = description
|
14
|
+
end
|
15
|
+
max_length = scripts.keys.map { |key| key.length }.max
|
16
|
+
scripts.sort.each do |name, description|
|
17
|
+
puts "\e[90m#{name.rjust(max_length)}\e[m - #{description}"
|
18
|
+
end
|
19
|
+
|
20
|
+
exit 1
|
21
|
+
end
|
22
|
+
|
23
|
+
begin
|
24
|
+
require "discorb/exe/#{script}"
|
25
|
+
rescue LoadError
|
26
|
+
puts "\e[91mThis tool is not available: \e[90m#{script}\e[m"
|
27
|
+
exit 1
|
28
|
+
end
|
data/lib/discorb/audit_logs.rb
CHANGED
data/lib/discorb/common.rb
CHANGED
@@ -4,7 +4,7 @@ module Discorb
|
|
4
4
|
# @return [String] The API base URL.
|
5
5
|
API_BASE_URL = "https://discord.com/api/v9"
|
6
6
|
# @return [String] The version of discorb.
|
7
|
-
VERSION = "0.
|
7
|
+
VERSION = "0.3.0"
|
8
8
|
# @return [String] The user agent for the bot.
|
9
9
|
USER_AGENT = "DiscordBot (https://github.com/discorb-lib/discorb #{VERSION}) Ruby/#{RUBY_VERSION}"
|
10
10
|
|
data/lib/discorb/dictionary.rb
CHANGED
@@ -0,0 +1,185 @@
|
|
1
|
+
# description: Make files for the discorb project.
|
2
|
+
|
3
|
+
require "optparse"
|
4
|
+
require_relative "../utils/colored_puts"
|
5
|
+
|
6
|
+
$path = Dir.pwd
|
7
|
+
|
8
|
+
FILES = {
|
9
|
+
"main.rb" => <<~'RUBY',
|
10
|
+
require "discorb"
|
11
|
+
require "dotenv"
|
12
|
+
|
13
|
+
Dotenv.load
|
14
|
+
|
15
|
+
client = Discorb::Client.new
|
16
|
+
|
17
|
+
client.once :ready do
|
18
|
+
puts "Logged in as #{client.user}"
|
19
|
+
end
|
20
|
+
|
21
|
+
client.run ENV["%<token>s"]
|
22
|
+
RUBY
|
23
|
+
".env" => <<~BASH,
|
24
|
+
%<token>s=Y0urB0tT0k3nHer3.Th1sT0ken.W0ntWorkB3c4useItH4sM34n1ng
|
25
|
+
BASH
|
26
|
+
".gitignore" => <<~GITIGNORE,
|
27
|
+
*.gem
|
28
|
+
*.rbc
|
29
|
+
/.config
|
30
|
+
/coverage/
|
31
|
+
/InstalledFiles
|
32
|
+
/pkg/
|
33
|
+
/spec/reports/
|
34
|
+
/spec/examples.txt
|
35
|
+
/test/tmp/
|
36
|
+
/test/version_tmp/
|
37
|
+
/tmp/
|
38
|
+
|
39
|
+
# Used by dotenv library to load environment variables.
|
40
|
+
.env
|
41
|
+
|
42
|
+
# Ignore Byebug command history file.
|
43
|
+
.byebug_history
|
44
|
+
|
45
|
+
## Specific to RubyMotion:
|
46
|
+
.dat*
|
47
|
+
.repl_history
|
48
|
+
build/
|
49
|
+
*.bridgesupport
|
50
|
+
build-iPhoneOS/
|
51
|
+
build-iPhoneSimulator/
|
52
|
+
|
53
|
+
## Specific to RubyMotion (use of CocoaPods):
|
54
|
+
#
|
55
|
+
# We recommend against adding the Pods directory to your .gitignore. However
|
56
|
+
# you should judge for yourself, the pros and cons are mentioned at:
|
57
|
+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
58
|
+
#
|
59
|
+
# vendor/Pods/
|
60
|
+
|
61
|
+
## Documentation cache and generated files:
|
62
|
+
/.yardoc/
|
63
|
+
/_yardoc/
|
64
|
+
/doc/
|
65
|
+
/rdoc/
|
66
|
+
|
67
|
+
## Environment normalization:
|
68
|
+
/.bundle/
|
69
|
+
/vendor/bundle
|
70
|
+
/lib/bundler/man/
|
71
|
+
|
72
|
+
# for a library or gem, you might want to ignore these files since the code is
|
73
|
+
# intended to run in multiple environments; otherwise, check them in:
|
74
|
+
# Gemfile.lock
|
75
|
+
# .ruby-version
|
76
|
+
# .ruby-gemset
|
77
|
+
|
78
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
79
|
+
.rvmrc
|
80
|
+
|
81
|
+
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
82
|
+
# .rubocop-https?--*
|
83
|
+
|
84
|
+
# This gitignore is from github/gitignore.
|
85
|
+
# https://github.com/github/gitignore/blob/master/Ruby.gitignore
|
86
|
+
GITIGNORE
|
87
|
+
}
|
88
|
+
|
89
|
+
def make_files
|
90
|
+
iputs "Making files..."
|
91
|
+
FILES.each do |file, content|
|
92
|
+
File.write($path + "/#{file}", format(content, token: $values[:token]), mode: "wb")
|
93
|
+
end
|
94
|
+
sputs "Made files.\n"
|
95
|
+
end
|
96
|
+
|
97
|
+
def bundle_init
|
98
|
+
iputs "Initializing bundle..."
|
99
|
+
File.write($path + "/Gemfile", <<~'RUBY', mode: "wb")
|
100
|
+
# frozen_string_literal: true
|
101
|
+
|
102
|
+
source "https://rubygems.org"
|
103
|
+
|
104
|
+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
105
|
+
|
106
|
+
gem "discorb", "~> 0.2.5"
|
107
|
+
gem "dotenv", "~> 2.7"
|
108
|
+
RUBY
|
109
|
+
iputs "Installing gems..."
|
110
|
+
system "bundle install"
|
111
|
+
sputs "Installed gems.\n"
|
112
|
+
end
|
113
|
+
|
114
|
+
def git_init
|
115
|
+
iputs "Initializing git repository..."
|
116
|
+
system "git init"
|
117
|
+
system "git add ."
|
118
|
+
system "git commit -m \"Initial commit\""
|
119
|
+
sputs "Initialized repository, use " +
|
120
|
+
"\e[32mgit commit --amend -m '...'\e[92m" +
|
121
|
+
" to change commit message of initial commit.\n"
|
122
|
+
end
|
123
|
+
|
124
|
+
opt = OptionParser.new <<~BANNER
|
125
|
+
A tool to make a new project.
|
126
|
+
|
127
|
+
Usage: discorb init [options] [dir]
|
128
|
+
|
129
|
+
dir The directory to make the files in.
|
130
|
+
BANNER
|
131
|
+
|
132
|
+
$values = {
|
133
|
+
bundle: true,
|
134
|
+
git: true,
|
135
|
+
force: false,
|
136
|
+
token: "TOKEN",
|
137
|
+
}
|
138
|
+
|
139
|
+
opt.on("--[no-]bundle", "Whether to use bundle. Default to true.") do |v|
|
140
|
+
$values[:bundle] = v
|
141
|
+
end
|
142
|
+
|
143
|
+
opt.on("--[no-]git", "Whether to initialize git. Default to true.") do |v|
|
144
|
+
$values[:git] = v
|
145
|
+
end
|
146
|
+
|
147
|
+
opt.on("-t NAME", "--token NAME", "The name of token environment variable. Default to TOKEN.") do |v|
|
148
|
+
$values[:token] = v
|
149
|
+
end
|
150
|
+
|
151
|
+
opt.on("-f", "--force", "Whether to force use directory. Default to false.") do |v|
|
152
|
+
$values[:force] = v
|
153
|
+
end
|
154
|
+
|
155
|
+
ARGV.delete_at(0)
|
156
|
+
|
157
|
+
opt.parse!(ARGV)
|
158
|
+
|
159
|
+
if (dir = ARGV[0])
|
160
|
+
$path += "/#{dir}"
|
161
|
+
if Dir.exist?($path)
|
162
|
+
if Dir.empty?($path)
|
163
|
+
gputs "Found \e[30m#{dir}\e[90m and empty, using this directory."
|
164
|
+
else
|
165
|
+
if $values[:force]
|
166
|
+
gputs "Found \e[30m#{dir}\e[90m and not empty, but force is on, using this directory."
|
167
|
+
else
|
168
|
+
eputs "Directory \e[31m#{dir}\e[91m already exists and not empty. Use \e[31m-f\e[91m to force."
|
169
|
+
exit
|
170
|
+
end
|
171
|
+
end
|
172
|
+
else
|
173
|
+
Dir.mkdir($path)
|
174
|
+
gputs "Couldn't find \e[30m#{dir}\e[90m, created directory."
|
175
|
+
end
|
176
|
+
Dir.chdir($path)
|
177
|
+
end
|
178
|
+
|
179
|
+
bundle_init if $values[:bundle]
|
180
|
+
|
181
|
+
make_files
|
182
|
+
|
183
|
+
git_init if $values[:git]
|
184
|
+
|
185
|
+
sputs "\nSuccessfully made a new project at \e[32m#{$path}\e[92m."
|
data/lib/discorb/flag.rb
CHANGED
data/lib/discorb/intents.rb
CHANGED
data/lib/discorb/permission.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: discorb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sevenc-nanashi
|
@@ -70,7 +70,7 @@ description:
|
|
70
70
|
email:
|
71
71
|
- sevenc-nanashi@sevenbot.jp
|
72
72
|
executables:
|
73
|
-
-
|
73
|
+
- discorb
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
@@ -88,7 +88,9 @@ files:
|
|
88
88
|
- discorb.gemspec
|
89
89
|
- docs/Examples.md
|
90
90
|
- docs/application_command.md
|
91
|
-
- docs/
|
91
|
+
- docs/cli.md
|
92
|
+
- docs/cli/init.md
|
93
|
+
- docs/cli/irb.md
|
92
94
|
- docs/events.md
|
93
95
|
- docs/extension.md
|
94
96
|
- docs/voice_events.md
|
@@ -103,7 +105,7 @@ files:
|
|
103
105
|
- examples/simple/ping_pong.rb
|
104
106
|
- examples/simple/rolepanel.rb
|
105
107
|
- examples/simple/wait_for_message.rb
|
106
|
-
- exe/
|
108
|
+
- exe/discorb
|
107
109
|
- lib/discorb.rb
|
108
110
|
- lib/discorb/application.rb
|
109
111
|
- lib/discorb/asset.rb
|
@@ -120,6 +122,8 @@ files:
|
|
120
122
|
- lib/discorb/emoji_table.rb
|
121
123
|
- lib/discorb/error.rb
|
122
124
|
- lib/discorb/event.rb
|
125
|
+
- lib/discorb/exe/init.rb
|
126
|
+
- lib/discorb/exe/irb.rb
|
123
127
|
- lib/discorb/extend.rb
|
124
128
|
- lib/discorb/extension.rb
|
125
129
|
- lib/discorb/file.rb
|
@@ -145,6 +149,7 @@ files:
|
|
145
149
|
- lib/discorb/sticker.rb
|
146
150
|
- lib/discorb/user.rb
|
147
151
|
- lib/discorb/utils.rb
|
152
|
+
- lib/discorb/utils/colored_puts.rb
|
148
153
|
- lib/discorb/voice_state.rb
|
149
154
|
- lib/discorb/webhook.rb
|
150
155
|
- po/yard.pot
|