dispander.rb 0.3.5 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f53f17fc3a24d03014af46ad04b48732baa32075729e8c77e2ffc7abe5dce63
4
- data.tar.gz: 4386f34a66fcd65c755d5eea972ecf6c69f255e04ac33be6e1927f4bb2c5df6e
3
+ metadata.gz: a45dba58a6aa5d443c2291232d5f52c9bab44354323add4c9be14e9cb0668658
4
+ data.tar.gz: 4153063d6540ecb03dcfeb957c2dc4a154e16c638068b850be70911d4833745f
5
5
  SHA512:
6
- metadata.gz: d00a9e6a2f45bef1a06b5b17c7afd4179f4d68bd3097cd7de12b91f30a9a3ae18416ce138a532ee0448a6cf373b4fa5bb03ff331695f9fbbd8e93a201c2d7796
7
- data.tar.gz: eb396e041955e31231bd95264e56712e7492f0aeb5926a488f6ef029919ce63ac62644b66a8454e61450db3bc9f7839d3621b7511f5c3897b09662f35f81a60c
6
+ metadata.gz: 47a0b093ce682e5a0a724a4713ad1b50a3ead9e2a095ec1ebe2b085119bc8316d58db7639bb5c95c7a3ea8e4f725b96fa59708a4d2d1db83cadc8a6988d9a1a0
7
+ data.tar.gz: be3b922fb5749554e9e581bf6319cce398131b7870cafb3e0a5060868eb19119894d936d595b3b4524e14b1b100ce2e0917846e1e7dd95a7fb725b9328d8cc00
@@ -0,0 +1,18 @@
1
+ require "discorb"
2
+ require "dispander"
3
+
4
+ client = Discorb::Client.new
5
+
6
+ client.once :standby do
7
+ puts "Logged in as #{client.user}"
8
+ end
9
+
10
+ dispander = Dispander::Core.new(client)
11
+
12
+ def dispander.should_expand?(base_message, ids)
13
+ ENV["ALLOWED_GUILDS"].split(",").include?(ids[0])
14
+ end
15
+
16
+ client.load_extension(dispander)
17
+
18
+ client.run ENV["DISCORD_BOT_TOKEN"]
File without changes
@@ -4,7 +4,7 @@ module Dispander
4
4
  class Core
5
5
  include Discorb::Extension
6
6
 
7
- @@discord_url_pattern = /(?!<)https:\/\/(ptb.|canary.)?discord(app)?.com\/channels\/(?<guild>[0-9]{18,})\/(?<channel>[0-9]{18,})\/(?<message>[0-9]{18,})(?!>)/
7
+ @@discord_url_pattern = /(?!<)https:\/\/(ptb.|canary.)?discord(app)?.com\/channels\/(?<guild>[0-9]{17,})\/(?<channel>[0-9]{17,})\/(?<message>[0-9]{17,})(?!>)/
8
8
 
9
9
  def initialize(client, delete_emoji: Discorb::UnicodeEmoji["wastebasket"])
10
10
  @delete_emoji = delete_emoji
@@ -35,7 +35,7 @@ module Dispander
35
35
  all_sent_messages = []
36
36
  base_message.content.scan(@@discord_url_pattern).each do |match|
37
37
  guild_id, channel_id, message_id = *match
38
- next unless base_message.guild.id == guild_id
38
+ next unless should_expand?(base_message, [guild_id, channel_id, message_id])
39
39
 
40
40
  embeds = []
41
41
 
@@ -125,5 +125,19 @@ module Dispander
125
125
  event.channel.delete_message!(sent_message_id).wait
126
126
  end
127
127
  end
128
+
129
+ #
130
+ # メッセージを展開するかどうか。
131
+ # デフォルトでは同じサーバーのみ展開されます。
132
+ # このメソッドをオーバーライドすることにより、条件を変更することができます。
133
+ #
134
+ # @params [Discorb::Message] base_message 展開するメッセージ。
135
+ # @params [Array<String>] match 展開するメッセージのID。`[guild_id, channel_id, message_id]`
136
+ #
137
+ # @return [Boolean] 展開する場合は `true`、展開しない場合は `false`。
138
+ #
139
+ def should_expand?(base_message, ids)
140
+ base_message.guild.id == ids[0]
141
+ end
128
142
  end
129
143
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dispander
4
- VERSION = "0.3.5"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dispander.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sevenc-nanashi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-09 00:00:00.000000000 Z
11
+ date: 2022-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: discorb
@@ -40,10 +40,11 @@ files:
40
40
  - bin/console
41
41
  - bin/setup
42
42
  - dispander.gemspec
43
+ - examples/custom_condition.rb
44
+ - examples/normal.rb
43
45
  - lib/dispander.rb
44
46
  - lib/dispander/extension.rb
45
47
  - lib/dispander/version.rb
46
- - samplebot.rb
47
48
  homepage: https://github.com/DiscordBotPortalJP/dispander.rb
48
49
  licenses:
49
50
  - MIT