@@ -5737,9 +5737,13 @@ bot.addCommand( statsCmd );
5737
5737
( #flag capturing group
5738
5738
g? #global (optional)
5739
5739
i? #case insensitive (optional)
5740
- ) #FIN
5740
+ )
5741
+ (?:
5742
+ \s+
5743
+ (\d+) #message id
5744
+ )? #FIN
5741
5745
*/
5742
- var sub = / ^ \s * s ( \/ | \| ) ( (?: (?: \\ \1) | [ ^ \1] ) * ?) \1( (?: (?: \\ \1) | [ ^ \1] ) * ?) \1( g ? i ? ) / ;
5746
+ var sub = / ^ \s * s ( \/ | \| ) ( (?: (?: \\ \1) | [ ^ \1] ) * ?) \1( (?: (?: \\ \1) | [ ^ \1] ) * ?) \1( g ? i ? ) (?: \s + ( \d + ) ) ? / ;
5743
5747
bot . listen ( sub , substitute ) ;
5744
5748
5745
5749
function substitute ( msg ) {
@@ -5750,7 +5754,17 @@ function substitute ( msg ) {
5750
5754
return 'Empty regex is empty' ;
5751
5755
}
5752
5756
5753
- getMatchingMessage ( re , msg . get ( 'message_id' ) , function ( err , message ) {
5757
+ var messages ;
5758
+ if ( msg . matches [ 5 ] ) {
5759
+ messages = Array . from (
5760
+ document . querySelectorAll ( '#message-' + msg . matches [ 5 ] + ' .content' ) ) ;
5761
+ }
5762
+ else {
5763
+ messages = Array . from (
5764
+ document . getElementsByClassName ( 'content' ) ) . reverse ( ) ;
5765
+ }
5766
+
5767
+ getMatchingMessage ( re , messages , msg . get ( 'message_id' ) , function ( err , message ) {
5754
5768
if ( err ) {
5755
5769
msg . reply ( err ) ;
5756
5770
return ;
@@ -5783,10 +5797,7 @@ function substitute ( msg ) {
5783
5797
} ) ;
5784
5798
}
5785
5799
5786
- function getMatchingMessage ( re , onlyBefore , cb ) {
5787
- var messages = Array . from (
5788
- document . getElementsByClassName ( 'content' ) ) . reverse ( ) ;
5789
-
5800
+ function getMatchingMessage ( re , messages , onlyBefore , cb ) {
5790
5801
var arg = {
5791
5802
maxId : onlyBefore ,
5792
5803
pattern : re ,
0 commit comments