12
12
include 'discord_hook_lib.php ' ;
13
13
14
14
$ webhook = $ obj ["webhook " ];
15
- $ runner = $ obj ["holder " ];
16
- $ runMap = $ obj ["map " ];
17
- $ runType = ucfirst ($ obj ["type " ]);
18
- $ runTime = $ obj ["time " ];
15
+ // Escape Markdown characters in everything that could go in the message
16
+ $ runner = escape_chars ("*_`~ " , "\\" , $ obj ["holder " ]);
17
+ $ runMap = escape_chars ("*_`~ " , "\\" , $ obj ["map " ]);
18
+ $ runType = ucfirst (escape_chars ("*_`~ " , "\\" , $ obj ["type " ]));
19
+ $ runTime = escape_chars ("*_`~ " , "\\" , $ obj ["time " ]);
19
20
$ top = 5 ;
20
21
21
22
$ botName = "HL KreedZ " ;
40
41
else if ($ j == 2 ) $ desc .= "**- " ;
41
42
else if ($ j == 1 ) $ desc .= "--+ " ;
42
43
else if ($ j == 0 ) $ desc .= "++- " ;
43
- $ desc .= ($ j +1 ) . " " ;
44
+ $ desc .= ($ j +1 ) . " " ;
44
45
45
46
foreach ($ rec [$ j ] as $ key => $ value ) {
46
47
if ($ key == "name " ) {
47
48
$ desc .= mb_str_pad (rtrim ($ value ), $ maxLength );
48
- } else {
49
+ } else if ( $ key != " date " ) {
49
50
$ desc .= $ value ;
50
51
}
51
- $ desc .= " " ;
52
+ $ desc .= " " ;
52
53
}
53
54
$ desc .= "\n" ;
54
55
}
55
- $ desc .= " \n``` " ;
56
+ $ desc .= " \n``` " ;
56
57
57
58
$ msg .= $ title . $ desc ;
58
59
@@ -63,4 +64,12 @@ function mb_str_pad( $input, $pad_length, $pad_string = ' ', $pad_type = STR_PAD
63
64
$ diff = strlen ($ input ) - mb_strlen ($ input , $ encoding );
64
65
return str_pad ($ input , $ pad_length + $ diff , $ pad_string , $ pad_type );
65
66
}
67
+
68
+ function escape_chars ($ charsToEscape , $ escapeSeq , $ string )
69
+ {
70
+ $ charsToEscape = preg_quote ($ charsToEscape , '/ ' );
71
+ $ regexSafeEscapeSeq = preg_quote ($ escapeSeq , '/ ' );
72
+ $ escapeSeq = preg_replace ('/([$ \\\\])/ ' , '\\\$1 ' , $ escapeSeq );
73
+ return (preg_replace ('/(?<! ' .$ regexSafeEscapeSeq .')([ ' .$ charsToEscape .'])/ ' , $ escapeSeq .'$1 ' , $ string ));
74
+ }
66
75
?>
0 commit comments