1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* T3Bot. |
4
|
|
|
* |
5
|
|
|
* @author Frank Nägler <[email protected]> |
6
|
|
|
* |
7
|
|
|
* @link http://www.t3bot.de |
8
|
|
|
* @link http://wiki.typo3.org/T3Bot |
9
|
|
|
*/ |
10
|
|
|
namespace T3Bot\Commands; |
11
|
|
|
|
12
|
|
|
/** |
13
|
|
|
* Class BottyCommand. |
14
|
|
|
*/ |
15
|
|
|
class BottyCommand extends AbstractCommand |
16
|
|
|
{ |
17
|
|
|
/** |
18
|
|
|
* @var array |
19
|
|
|
*/ |
20
|
|
|
protected $cats = [':smiley_cat:', ':smile_cat:', ':heart_eyes_cat:', ':kissing_cat:', |
21
|
|
|
':smirk_cat:', ':scream_cat:', ':crying_cat_face:', ':joy_cat:' , ':pouting_cat:', ]; |
22
|
|
|
|
23
|
|
|
/** |
24
|
|
|
* @var array |
25
|
|
|
*/ |
26
|
|
|
protected $responses = [ |
27
|
|
|
'daddy' => 'My daddy is Frank Nägler aka <@neoblack>', |
28
|
|
|
'n8' => 'Good night %s! :sleeping:', |
29
|
|
|
'nacht' => 'Good night %s! :sleeping:', |
30
|
|
|
'night' => 'Good night %s! :sleeping:', |
31
|
|
|
'hello' => 'Hello %s, nice to see you!', |
32
|
|
|
'hallo' => 'Hello %s, nice to see you!', |
33
|
|
|
'ciao' => 'Bye, bye %s, cu later alligator! :wave:', |
34
|
|
|
'cu' => 'Bye, bye %s, cu later alligator! :wave:', |
35
|
|
|
'thx' => 'You are welcome %s!', |
36
|
|
|
'thank' => 'You are welcome %s!', |
37
|
|
|
'drink' => 'Coffee or beer %s?', |
38
|
|
|
'coffee' => 'Here is a :coffee: for you %s!', |
39
|
|
|
'beer' => 'Here is a :t3beer: for you %s!', |
40
|
|
|
'coke' => 'Coke is unhealthy %s!', |
41
|
|
|
'cola' => 'Coke is unhealthy %s!', |
42
|
|
|
'cookie' => 'Here is a :cookie: for you %s!', |
43
|
|
|
'typo3' => ':typo3: TYPO3 CMS is the best open source CMS of the world!', |
44
|
|
|
'dark' => 'sure, we have cookies :cookie:', |
45
|
|
|
'cat' => 'ok, here is some cat content %s', |
46
|
|
|
'love' => 'I love you too, %s :kiss:', |
47
|
|
|
]; |
48
|
|
|
|
49
|
|
|
/** |
50
|
|
|
* @var array |
51
|
|
|
*/ |
52
|
|
|
protected $links = [ |
53
|
|
|
'My Homepage' => 'http://www.t3bot.de', |
54
|
|
|
'Github' => 'https://github.com/NeoBlack/T3Bot', |
55
|
|
|
'Help for Commands' => 'http://wiki.typo3.org/T3Bot', |
56
|
|
|
]; |
57
|
|
|
|
58
|
|
|
/** |
59
|
|
|
* @return string |
60
|
|
|
*/ |
61
|
40 |
|
public function process() : string |
62
|
|
|
{ |
63
|
40 |
|
$message = strtolower($this->payload->getData()['text']); |
64
|
40 |
|
$username = '<@' . $this->payload->getData()['user'] . '>'; |
65
|
|
|
|
66
|
40 |
|
if (strpos($message, 'help') !== false) { |
67
|
20 |
|
$result = []; |
68
|
20 |
|
foreach ($this->links as $text => $link) { |
69
|
20 |
|
$result[] = ":link: <{$link}|{$text}>"; |
70
|
|
|
} |
71
|
20 |
|
return implode(' | ', $result); |
72
|
|
|
} |
73
|
20 |
|
foreach ($this->responses as $keyword => $response) { |
74
|
20 |
|
$value = $keyword === 'cat' ? $this->cats[array_rand($this->cats)] : $username; |
75
|
20 |
|
if (strpos($message, $keyword) !== false) { |
76
|
20 |
|
return sprintf($response, $value); |
77
|
|
|
} |
78
|
|
|
} |
79
|
|
|
|
80
|
1 |
|
return ''; |
81
|
|
|
} |
82
|
|
|
} |
83
|
|
|
|