TimberBot – blob
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
4 # SPDX-License-Identifier: MIT
5 # This file is part of TimberBot. <https://fietkau.software/timberbot>
6 # Copyright (C) 2022 Julian Fietkau
8 from plugin_base import TimberBotPlugin
10 # Makes the bot slightly more talkative when its name is mentioned in chat.
12 import string
14 class TalkativityPlugin(TimberBotPlugin):
16 def message_read(self, user, message):
17 bot_name_lower = self.bot_name().lower()
18 punctuation = set(string.punctuation)
19 message_no_punc = ''.join(ch for ch in message if ch not in punctuation)
20 if message_no_punc.lower() in [bot_name_lower + ' sucks', 'i hate ' + bot_name_lower, 'i hate you ' + bot_name_lower]:
21 self.reply(user, 'If bots had feelings, mine would be pretty hurt right now.')
22 return
23 if message_no_punc.lower() in ['hi ' + bot_name_lower, 'hello ' + bot_name_lower, 'hey ' + bot_name_lower]:
24 self.reply(user, 'Greetings to you too!')
25 return
26 if message_no_punc.lower() in [bot_name_lower + ' is awesome', 'i love ' + bot_name_lower, 'i love you ' + bot_name_lower]:
27 self.reply(user, 'I am immune to flattery, but your appreciation has been noted.')
28 return
29 if message_no_punc.lower() in [bot_name_lower, 'who is ' + bot_name_lower, 'whos ' + bot_name_lower, message_no_punc.lower() in 'what is ' + bot_name_lower, 'whats ' + bot_name_lower]:
30 self.reply(user, 'Yep, that\'s me! Try "' + self.format_command('help') + '" to find out how I work.')
31 return
32 if message_no_punc.lower() in ['thanks ' + bot_name_lower, 'thank you ' + bot_name_lower]:
33 self.reply(user, 'No problem! Whatever I did (please excuse my short-term memory), I hope it was helpful.')
34 return
35 if message_no_punc.lower() in [bot_name_lower + ' please', bot_name_lower + ' pls', bot_name_lower + ' plz']:
36 self.reply(user, 'What can I do for you? Try "' + self.format_command('help') + '" to find out how I work.')
37 return
38 if message[0:len(bot_name_lower)].lower() == bot_name_lower and message[-1] == '?':
39 self.reply(user, 'How can I help you? Try "' + self.format_command('help') + '" to find out how I work.')
40 return