-
Notifications
You must be signed in to change notification settings - Fork 28
/
quote.py
48 lines (39 loc) · 1.85 KB
/
quote.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from telegram import Update
from telegram.ext import CallbackContext
import random
import db
class Quote:
def __init__(self):
self.commands = { 'addq': self.addQuote,
'quote': self.getQuote,
'quotes': self.quotesCountHandler }
def getCommands(self):
return self.commands
def addQuote(self, update: Update, context: CallbackContext):
if len(context.args) < 2:
context.bot.sendMessage(chat_id=update.message.chat.id, text='Usage: /addq <quotee> <quote>')
else:
quotee = context.args[0].strip('@')
quote = ' '.join(context.args[1:])
if quote[0] == '"' and quote[len(quote) - 1] == '"':
quote = quote[1:len(quote) - 1]
db.insertQuote(quote, quotee, update.message.chat.id, update.message.from_user.username)
def quotesCountHandler(self, update: Update, context: CallbackContext):
if len(context.args) == 0:
count = db.countQuotes(update.message.chat.id)
else:
quotee = context.args[0].strip('@')
quotes = db.findQuotes(update.message.chat.id, quotee)
count = len(quotes)
context.bot.sendMessage(chat_id=update.message.chat.id, text=str(count) + ' quotes')
def getQuote(self, update: Update, context: CallbackContext):
if len(context.args) == 0:
quotes = db.findQuotes(update.message.chat.id)
else:
quotee = context.args[0].strip('@')
quotes = db.findQuotes(update.message.chat.id, quotee)
quote = random.sample(quotes, 1)[0] or ("Imneversorry", "tapan kaikki")
formated_quote = '"{}" - {}'.format(*quote)
context.bot.sendMessage(chat_id=update.message.chat.id, text=formated_quote)
def messageHandler(self, update: Update, context: CallbackContext):
return