BottyCommand   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 2
dl 0
loc 68
ccs 13
cts 13
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B process() 0 21 6
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