discorb 0.8.1 → 0.8.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd489ad4debd6585ee50f7e260288c862b1b655d2dda44af6151398e9b722b01
4
- data.tar.gz: b5fd92c939bdbc8456dd0302b1a6d5e362afba2f39bdbe337e03918d30eb6357
3
+ metadata.gz: c3274a015f4e303bb978379e4eb01a039088ce3139507bccf6e32dbcf19dfe29
4
+ data.tar.gz: 4f8b8ca01fcbd9e362ff90bdee7880d11769e0c984687be1e7d5774a9da6a8b5
5
5
  SHA512:
6
- metadata.gz: ebf5a3685316ab02f18ff2d21af0f494c13beac47554968a54b96109eebfa98c38b6e4e0c5f4c1c8e8d8ce2dee70a6424a87782ca75804830e8826da1ce64c43
7
- data.tar.gz: dfb9ee552ed4eae349ed6cf99f846f391a1afab96941a181de11a3257d1a9234bb7304baeedd36b29f751374a59492299697856728b1a7779b930dc22e43ff81
6
+ metadata.gz: 7eb065d83e4fa92ac82bfd70426e48e04aaca4832dcea9890603e04a349998b48f0d39aac1169a047b73014b88517eae05ab9679c1e55e27286e7b411f6454b2
7
+ data.tar.gz: 77bb4471337fbf056af8a3d3493b84218cb6811745ce28e3a33e4684e72f6806c74045af1a58bf8d7e80532d46cf9fb8caa51587e94c8f96660e5ad9ce10bd6b
data/Changelog.md CHANGED
@@ -220,3 +220,7 @@ end
220
220
  - Add: Add `File.from_string`
221
221
  - Fix: Fix `Client#update_presence`
222
222
  - Add: Add information in `discorb run -d`
223
+
224
+ ## 0.8.2
225
+
226
+ Fix: Fix `Client#initialize`
@@ -65,13 +65,12 @@ module Discorb
65
65
  # @param [Boolean] colorize_log Whether to colorize the log.
66
66
  # @param [:debug, :info, :warn, :error, :critical] log_level The log level.
67
67
  # @param [Boolean] wait_until_ready Whether to delay event dispatch until ready.
68
- # @param [Boolean] fetch_member Whether to fetch member on ready. This may slow down the client.
69
- # Defaultly, it's `false` if {Discorb::Intents#members} is false. Otherwise, it's `true`.
68
+ # @param [Boolean] fetch_member Whether to fetch member on ready. This may slow down the client. Default to `false`.
70
69
  #
71
70
  def initialize(
72
71
  allowed_mentions: nil, intents: nil, message_caches: 1000,
73
72
  log: nil, colorize_log: false, log_level: :info,
74
- wait_until_ready: true, fetch_member: nil
73
+ wait_until_ready: true, fetch_member: false
75
74
  )
76
75
  @allowed_mentions = allowed_mentions || AllowedMentions.new(everyone: true, roles: true, users: true)
77
76
  @intents = (intents or Intents.default)
@@ -94,7 +93,7 @@ module Discorb
94
93
  @commands = []
95
94
  @bottom_commands = []
96
95
  @status = :initialized
97
- @fetch_member = fetch_member.nil? ? !(intents&.members) : fetch_member
96
+ @fetch_member = fetch_member
98
97
  set_default_events
99
98
  end
100
99
 
@@ -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.8.1"
7
+ VERSION = "0.8.2"
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
 
@@ -213,6 +213,55 @@ module Discorb
213
213
  !@updated_at.nil?
214
214
  end
215
215
 
216
+ #
217
+ # Removes the mentions from the message.
218
+ #
219
+ # @param [Boolean] user Whether to clean user mentions.
220
+ # @param [Boolean] channel Whether to clean channel mentions.
221
+ # @param [Boolean] role Whether to clean role mentions.
222
+ # @param [Boolean] emoji Whether to clean emoji.
223
+ # @param [Boolean] everyone Whether to clean `@everyone` and `@here`.
224
+ # @param [Boolean] codeblock Whether to clean codeblocks.
225
+ #
226
+ # @return [String] The cleaned content of the message.
227
+ #
228
+ def clean_content(user: true, channel: true, role: true, emoji: true, everyone: true, codeblock: false)
229
+ ret = @content.dup
230
+ ret.gsub!(/<@!?(\d+)>/) do |match|
231
+ member = guild&.members&.[]($1)
232
+ member ||= @client.users[$1]
233
+ member ? "@#{member.name}" : "@Unknown User"
234
+ end if user
235
+ ret.gsub!(/<#(\d+)>/) do |match|
236
+ channel = @client.channels[$1]
237
+ channel ? "<##{channel.id}>" : "#Unknown Channel"
238
+ end
239
+ ret.gsub!(/<@&(\d+)>/) do |match|
240
+ role = guild&.roles&.[]($1)
241
+ role ? "@#{role.name}" : "@Unknown Role"
242
+ end if role
243
+ ret.gsub!(/<a?:([a-zA-Z0-9_]+):\d+>/) do |match|
244
+ $1
245
+ end if emoji
246
+ ret.gsub!(/@(everyone|here)/, "@\u200b\\1") if everyone
247
+ unless codeblock
248
+ codeblocks = ret.split("```", -1)
249
+ original_codeblocks = @content.scan(/```(.+?)```/m)
250
+ res = []
251
+ max = codeblocks.length
252
+ codeblocks.each_with_index do |codeblock, i|
253
+ if max % 2 == 0 && i == max - 1 or i.even?
254
+ res << codeblock
255
+ else
256
+ res << original_codeblocks[i / 2]
257
+ end
258
+ end
259
+ res.join("```")
260
+ else
261
+ ret
262
+ end
263
+ end
264
+
216
265
  #
217
266
  # Edit the message.
218
267
  #
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.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - sevenc-nanashi
@@ -79,8 +79,6 @@ files:
79
79
  - ".github/ISSUE_TEMPLATE/feature_request.md"
80
80
  - ".github/workflows/build_main.yml"
81
81
  - ".github/workflows/build_version.yml"
82
- - ".github/workflows/changelog.rb"
83
- - ".github/workflows/release_from_changelog.yml"
84
82
  - ".gitignore"
85
83
  - ".yardopts"
86
84
  - Changelog.md
@@ -1,12 +0,0 @@
1
- changelog = File.read("./Changelog.md")
2
- releases = changelog.split("## ")
3
- releases_hash = releases.map do |release|
4
- release_name = "v" + release.split("\n")[0]
5
- release_body = release.split("\n")[1..-1].join("\n").strip
6
- [release_name, release_body]
7
- end.to_h
8
-
9
- release_version = ENV["GITHUB_REF"].split("/")[-1]
10
-
11
- release_body = releases_hash[release_version] || "No release notes for this version"
12
- puts "::set-output name=release_body::#{release_body.gsub("\n", "\\n")}"
@@ -1,39 +0,0 @@
1
- name: Release from changelog
2
-
3
- on:
4
- workflow_dispatch:
5
- push:
6
- tags:
7
- - "v*"
8
- jobs:
9
- main:
10
-
11
- runs-on: ubuntu-latest
12
-
13
- steps:
14
- - uses: actions/checkout@v2
15
- with:
16
- fetch-depth: 0
17
- - name: Set up Ruby
18
- uses: ruby/setup-ruby@v1
19
- with:
20
- ruby-version: 3.0.2
21
- bundler-cache: true
22
- - name: Install dependencies
23
- run: |
24
- bundle install
25
- - name: Get changelog
26
- run: |
27
- bundle exec ruby .github/workflows/changelog.rb
28
- id: get-changelog
29
- - name: Build gem
30
- run: |
31
- bundle exec rake build
32
- - name: Release
33
- uses: softprops/action-gh-release@v1
34
- with:
35
- files: |
36
- $(ls -1 pkg/*.gem)
37
- body: ${{ steps.get-changelog.outputs.release_body }}
38
- env:
39
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}