discorb 0.2.5 → 0.4.1
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/.github/workflows/build_main.yml +51 -0
- data/.gitignore +5 -1
- data/.yardopts +1 -1
- data/Changelog.md +22 -1
- data/Gemfile.lock +8 -7
- data/Rakefile +60 -27
- data/discorb.gemspec +4 -4
- data/docs/application_command.md +7 -1
- data/docs/cli/init.md +55 -0
- data/docs/{discord_irb.md → cli/irb.md} +5 -7
- data/docs/cli/run.md +46 -0
- data/docs/cli/setup.md +17 -0
- data/docs/cli.md +25 -0
- data/exe/discorb +31 -0
- data/lib/discorb/audit_logs.rb +3 -0
- data/lib/discorb/client.rb +59 -13
- data/lib/discorb/command.rb +0 -1
- data/lib/discorb/common.rb +1 -1
- data/lib/discorb/dictionary.rb +3 -0
- data/lib/discorb/error.rb +15 -0
- data/lib/discorb/exe/about.rb +14 -0
- data/lib/discorb/exe/init.rb +195 -0
- data/{exe/discord-irb → lib/discorb/exe/irb.rb} +11 -3
- data/lib/discorb/exe/run.rb +49 -0
- data/lib/discorb/exe/setup.rb +26 -0
- data/lib/discorb/exe/show.rb +8 -0
- data/lib/discorb/flag.rb +3 -0
- data/lib/discorb/gateway.rb +0 -1
- data/lib/discorb/http.rb +16 -24
- data/lib/discorb/intents.rb +3 -0
- data/lib/discorb/log.rb +4 -3
- data/lib/discorb/permission.rb +3 -0
- data/lib/discorb/utils/colored_puts.rb +14 -0
- data/template-replace/files/css/common.css +13 -2
- data/template-replace/resources/version_list.html +2 -2
- data/template-replace/scripts/version.rb +15 -3
- metadata +30 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e88541a1d18a1ebd262bae5d91bb38c02d91350e1b2cf698c3f491bf58bb5cfa
|
4
|
+
data.tar.gz: dc55e68bea5b74105eb941c8ec50bec6fa6f4bf3dd716a1e505ea6c3ab598725
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c5d884643656bca43b2ee1e448c0860f0235f439875cbad59a89c79b5d98c71d7b3f539ab6150a051b262ebb09551cf8f943c090676f0751d5533596bc5aea8
|
7
|
+
data.tar.gz: d4ddfe0faa3c4cdcbc14293216c13017d4c64b7c0f4594e44d5ddb9ab7b9b60ddb4f5acc8a4d06eaec8d1f5e504b13fd43c4f3bc898d787976c617c7509a15dc
|
@@ -0,0 +1,51 @@
|
|
1
|
+
name: Build YARD with main
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
schedule:
|
6
|
+
- cron: "*/8 * * * *"
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
main:
|
10
|
+
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- name: Set up Ruby
|
16
|
+
uses: ruby/setup-ruby@v1
|
17
|
+
with:
|
18
|
+
ruby-version: 3.0.2
|
19
|
+
bundler-cache: true
|
20
|
+
- name: Set up git settings
|
21
|
+
run: |
|
22
|
+
git config --global user.email "action@github.com"
|
23
|
+
git config --global user.name "GitHub Action"
|
24
|
+
- name: Clone pages
|
25
|
+
env:
|
26
|
+
SSH_SECRET: ${{ secrets.SSH }}
|
27
|
+
GIT_SSH_COMMAND: ssh -i ~/ssh_secret
|
28
|
+
run: |
|
29
|
+
echo "$SSH_SECRET" > ~/ssh_secret
|
30
|
+
chmod 600 ~/ssh_secret
|
31
|
+
git clone git@github.com:discorb-lib/discorb-lib.github.io /tmp/pages
|
32
|
+
- name: Install dependencies
|
33
|
+
run: |
|
34
|
+
bundle config --local with 'docs'
|
35
|
+
bundle install
|
36
|
+
- name: Generate document
|
37
|
+
run: bundle exec rake document
|
38
|
+
- name: Push document
|
39
|
+
env:
|
40
|
+
SSH_SECRET: ${{ secrets.SSH }}
|
41
|
+
GIT_SSH_COMMAND: ssh -i ~/ssh_secret
|
42
|
+
run: |
|
43
|
+
echo "$SSH_SECRET" > ~/ssh_secret
|
44
|
+
chmod 600 ~/ssh_secret
|
45
|
+
cp -r ./doc/. /tmp/pages
|
46
|
+
cd /tmp/pages
|
47
|
+
git add -A
|
48
|
+
git commit -m "Update: Update document for ${{ github.sha }} by cron"
|
49
|
+
git update-ref -d refs/remotes/origin/user
|
50
|
+
git push origin main -f
|
51
|
+
continue-on-error: true
|
data/.gitignore
CHANGED
@@ -35,7 +35,7 @@ build-iPhoneSimulator/
|
|
35
35
|
## Documentation cache and generated files:
|
36
36
|
/.yardoc/
|
37
37
|
/_yardoc/
|
38
|
-
/doc/
|
38
|
+
# /doc/
|
39
39
|
/rdoc/
|
40
40
|
|
41
41
|
## Environment normalization:
|
@@ -54,4 +54,8 @@ build-iPhoneSimulator/
|
|
54
54
|
|
55
55
|
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
56
56
|
# .rubocop-https?--*
|
57
|
+
|
58
|
+
# For documentation generation.
|
57
59
|
tmp-template-replace
|
60
|
+
tmp-doc
|
61
|
+
doc
|
data/.yardopts
CHANGED
data/Changelog.md
CHANGED
@@ -73,4 +73,25 @@
|
|
73
73
|
## 0.2.5
|
74
74
|
|
75
75
|
- Add: Add way to add event listener
|
76
|
-
- Change: Move document to https://discorb-lib.github.io/
|
76
|
+
- Change: Move document to https://discorb-lib.github.io/
|
77
|
+
|
78
|
+
## 0.3.0
|
79
|
+
|
80
|
+
- Add: Improve CLI tools
|
81
|
+
- Add: Add `discorb init`
|
82
|
+
- Change: Change `discord-irb` to `discorb irb`
|
83
|
+
|
84
|
+
## 0.3.1
|
85
|
+
|
86
|
+
- Add: Add `discorb show`
|
87
|
+
- Fix: Fix documenting
|
88
|
+
|
89
|
+
## 0.4.0
|
90
|
+
|
91
|
+
- Add: Add `discorb setup`
|
92
|
+
- Add: Add `discorb run`
|
93
|
+
- Add: Add realtime documentation
|
94
|
+
|
95
|
+
## 0.4.1
|
96
|
+
|
97
|
+
- Add: Add `-s` option to `discorb run`
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
discorb (0.
|
5
|
-
async
|
6
|
-
async-http
|
7
|
-
async-websocket
|
4
|
+
discorb (0.4.1)
|
5
|
+
async (~> 1.30.1)
|
6
|
+
async-http (~> 0.56.5)
|
7
|
+
async-websocket (~> 0.19.0)
|
8
8
|
mime-types (~> 3.3)
|
9
9
|
|
10
10
|
GEM
|
@@ -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)
|
@@ -54,6 +54,7 @@ GEM
|
|
54
54
|
|
55
55
|
PLATFORMS
|
56
56
|
x86-mingw32
|
57
|
+
x86_64-linux
|
57
58
|
|
58
59
|
DEPENDENCIES
|
59
60
|
discorb!
|
data/Rakefile
CHANGED
@@ -1,30 +1,26 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "bundler/gem_tasks"
|
4
|
+
require_relative "lib/discorb/utils/colored_puts"
|
4
5
|
task default: %i[]
|
5
6
|
|
7
|
+
# @!visibility private
|
6
8
|
def get_version
|
7
9
|
require_relative "lib/discorb/common"
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
10
|
+
tag = `git tag --points-at HEAD`.force_encoding("utf-8").strip
|
11
|
+
if tag.empty?
|
12
|
+
version = "main"
|
13
|
+
else
|
14
|
+
version = Discorb::VERSION
|
12
15
|
end
|
13
16
|
version
|
14
17
|
end
|
15
18
|
|
16
|
-
|
17
|
-
puts "\e[90m#{text}\e[m"
|
18
|
-
end
|
19
|
-
|
20
|
-
def sputs(text)
|
21
|
-
puts "\e[92m#{text}\e[m"
|
22
|
-
end
|
23
|
-
|
19
|
+
desc "Build emoji_table.rb"
|
24
20
|
task :emoji_table do
|
25
21
|
require_relative "lib/discorb"
|
26
22
|
|
27
|
-
|
23
|
+
iputs "Building emoji_table.rb"
|
28
24
|
res = {}
|
29
25
|
Discorb::EmojiTable::DISCORD_TO_UNICODE.each do |discord, unicode|
|
30
26
|
res[unicode] ||= []
|
@@ -47,11 +43,12 @@ task :emoji_table do
|
|
47
43
|
sputs "Successfully made emoji_table.rb"
|
48
44
|
end
|
49
45
|
|
46
|
+
desc "Format files"
|
50
47
|
task :format do
|
51
48
|
Dir.glob("**/*.rb").each do |file|
|
52
49
|
next if file.start_with?("vendor")
|
53
50
|
|
54
|
-
|
51
|
+
iputs "Formatting #{file}"
|
55
52
|
`rufo ./#{file}`
|
56
53
|
content = ""
|
57
54
|
File.open(file, "rb") do |f|
|
@@ -63,27 +60,37 @@ task :format do
|
|
63
60
|
end
|
64
61
|
end
|
65
62
|
end
|
63
|
+
|
64
|
+
desc "Generate document and replace"
|
66
65
|
namespace :document do
|
67
66
|
version = get_version
|
67
|
+
|
68
|
+
desc "Just generate document"
|
68
69
|
task :yard do
|
69
|
-
sh "yardoc -o doc/#{version}"
|
70
|
+
sh "bundle exec yardoc -o doc/#{version}"
|
70
71
|
end
|
72
|
+
|
73
|
+
desc "Replace files"
|
71
74
|
namespace :replace do
|
72
75
|
require "fileutils"
|
76
|
+
|
77
|
+
desc "Replace CSS"
|
73
78
|
task :css do
|
74
|
-
|
79
|
+
iputs "Replacing css"
|
75
80
|
Dir.glob("template-replace/files/**/*.*")
|
76
81
|
.map { |f| f.delete_prefix("template-replace/files") }.each do |file|
|
77
82
|
FileUtils.cp("template-replace/files" + file, "doc/#{version}/#{file}")
|
78
83
|
end
|
79
84
|
sputs "Successfully replaced css"
|
80
85
|
end
|
86
|
+
|
87
|
+
desc "Replace HTML"
|
81
88
|
task :html do
|
82
89
|
require_relative "template-replace/scripts/sidebar.rb"
|
83
90
|
require_relative "template-replace/scripts/version.rb"
|
84
91
|
require_relative "template-replace/scripts/index.rb"
|
85
92
|
require_relative "template-replace/scripts/yard_replace.rb"
|
86
|
-
|
93
|
+
iputs "Resetting changes"
|
87
94
|
Dir.glob("doc/#{version}/**/*.html") do |f|
|
88
95
|
next if (m = f.match(/[0-9]+\.[0-9]+\.[0-9]+(-[a-z]+)?/)) && m[0] != version
|
89
96
|
|
@@ -91,21 +98,23 @@ namespace :document do
|
|
91
98
|
content.gsub!(/<!--od-->[\s\S]*<!--eod-->/, "")
|
92
99
|
File.write(f, content)
|
93
100
|
end
|
94
|
-
|
101
|
+
iputs "Adding version tab"
|
95
102
|
%w[file_list class_list method_list].each do |f|
|
96
103
|
replace_sidebar("doc/#{version}/#{f}.html")
|
97
104
|
end
|
98
105
|
|
99
|
-
|
100
|
-
build_version_sidebar("doc/#{version}")
|
101
|
-
|
106
|
+
iputs "Building version tab"
|
107
|
+
build_version_sidebar("doc/#{version}", version)
|
108
|
+
iputs "Replacing _index.html"
|
102
109
|
replace_index("doc/#{version}", version)
|
103
|
-
|
110
|
+
iputs "Replacing YARD credits"
|
104
111
|
yard_replace("doc/#{version}", version)
|
105
|
-
|
112
|
+
iputs "Successfully replaced htmls"
|
106
113
|
end
|
114
|
+
|
115
|
+
desc "Replace EOL"
|
107
116
|
task :eol do
|
108
|
-
|
117
|
+
iputs "Replacing CRLF with LF"
|
109
118
|
Dir.glob("doc/**/*.*") do |file|
|
110
119
|
next unless File.file?(file)
|
111
120
|
|
@@ -122,20 +131,36 @@ namespace :document do
|
|
122
131
|
end
|
123
132
|
end
|
124
133
|
task :replace => %i[replace:css replace:html replace:eol]
|
134
|
+
|
135
|
+
desc "Build all versions"
|
125
136
|
task :build_all do
|
126
137
|
require "fileutils"
|
127
|
-
|
138
|
+
|
139
|
+
class Bundler::Definition
|
140
|
+
def validate_platforms!
|
141
|
+
# noop
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
iputs "Building all versions"
|
146
|
+
FileUtils.rm_rf("doc") rescue nil
|
128
147
|
FileUtils.cp_r("./template-replace/.", "./tmp-template-replace")
|
148
|
+
Rake::Task["document:yard"].execute
|
149
|
+
Rake::Task["document:replace:html"].execute
|
150
|
+
Rake::Task["document:replace:css"].execute
|
151
|
+
Rake::Task["document:replace:eol"].execute
|
129
152
|
tags = `git tag`.force_encoding("utf-8").split("\n")
|
130
153
|
tags.each do |tag|
|
131
154
|
sh "git checkout #{tag} -f"
|
132
|
-
|
155
|
+
iputs "Building #{tag}"
|
133
156
|
FileUtils.cp_r("./tmp-template-replace/.", "./template-replace")
|
134
157
|
version = tag.delete_prefix("v")
|
135
158
|
Rake::Task["document:yard"].execute
|
136
159
|
Rake::Task["document:replace:html"].execute
|
137
160
|
Rake::Task["document:replace:css"].execute
|
138
161
|
Rake::Task["document:replace:eol"].execute
|
162
|
+
FileUtils.cp_r("./doc/.", "./tmp-doc")
|
163
|
+
FileUtils.rm_rf("doc")
|
139
164
|
end
|
140
165
|
version = "."
|
141
166
|
Rake::Task["document:yard"].execute
|
@@ -143,11 +168,19 @@ namespace :document do
|
|
143
168
|
Rake::Task["document:replace:css"].execute
|
144
169
|
Rake::Task["document:replace:eol"].execute
|
145
170
|
sh "git switch main -f"
|
171
|
+
FileUtils.cp_r("./tmp-doc/.", "./doc")
|
146
172
|
sputs "Successfully built all versions"
|
173
|
+
rescue => e
|
174
|
+
sh "git switch main -f"
|
175
|
+
raise e
|
147
176
|
end
|
177
|
+
|
178
|
+
desc "Push to discorb-lib/discorb-lib.github.io"
|
148
179
|
task :push do
|
149
|
-
|
180
|
+
iputs "Pushing documents"
|
150
181
|
Dir.chdir("doc") do
|
182
|
+
sh "git init"
|
183
|
+
sh "git remote add origin git@github.com:discorb-lib/discorb-lib.github.io"
|
151
184
|
sh "git add ."
|
152
185
|
sh "git commit -m \"Update: Update document\""
|
153
186
|
sh "git push -f"
|
data/discorb.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
|
18
18
|
spec.metadata["homepage_uri"] = spec.homepage
|
19
19
|
spec.metadata["source_code_uri"] = "https://github.com/discorb-lib/discorb"
|
20
|
-
spec.metadata["changelog_uri"] = "https://
|
20
|
+
spec.metadata["changelog_uri"] = "https://discorb-lib.github.io/file.Changelog.html"
|
21
21
|
spec.metadata["documentation_uri"] = "https://discorb-lib.github.io"
|
22
22
|
|
23
23
|
# Specify which files should be added to the gem when it is released.
|
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.require_paths = ["lib"]
|
31
31
|
|
32
32
|
# Uncomment to register a new dependency of your gem
|
33
|
-
spec.add_dependency "async"
|
34
|
-
spec.add_dependency "async-http"
|
35
|
-
spec.add_dependency "async-websocket"
|
33
|
+
spec.add_dependency "async", "~> 1.30.1"
|
34
|
+
spec.add_dependency "async-http", "~> 0.56.5"
|
35
|
+
spec.add_dependency "async-websocket", "~> 0.19.0"
|
36
36
|
|
37
37
|
spec.add_dependency "mime-types", "~> 3.3"
|
38
38
|
# For more information and examples about making a new gem, checkout our
|
data/docs/application_command.md
CHANGED
@@ -10,7 +10,13 @@ From: [Discord API docs](https://discord.com/developers/docs/interactions/applic
|
|
10
10
|
|
11
11
|
## How do I register an application command?
|
12
12
|
|
13
|
-
|
13
|
+
Write to a your script:
|
14
|
+
- {Discorb::Command::Handler.slash}, {Discorb::Command::Handler.slash_group} for slash commands,
|
15
|
+
- {Discorb::Command::Handler.user_command} for user menu commands,
|
16
|
+
- {Discorb::Command::Handler.message_command} for message menu commands.
|
17
|
+
|
18
|
+
And then run `discorb setup` to register your application commands.
|
19
|
+
{file:docs/cli/setup.md Learn more about `discorb setup`}.
|
14
20
|
|
15
21
|
### Note
|
16
22
|
|
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
|
+
This command will start an interactive Ruby shell with connected client.
|
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)
|