forked from HonusBot/HonusBot
Refactor: v0.3 merge
This commit is contained in:
commit
a50e046583
136
inline.py
136
inline.py
@ -9,29 +9,95 @@ import uuid
|
||||
import requests
|
||||
import password
|
||||
|
||||
BOT_VERSION = "0.3"
|
||||
|
||||
class Command:
|
||||
def __init__(self):
|
||||
self.desc = ""
|
||||
self.name = ""
|
||||
self.headerField = ""
|
||||
self.mode = ""
|
||||
|
||||
def setMode(self, mode):
|
||||
self.mode = mode
|
||||
|
||||
def getMode(self):
|
||||
return self.mode
|
||||
|
||||
def setDesc(self, desc):
|
||||
self.desc = desc
|
||||
|
||||
def getDesc(self):
|
||||
return self.desc
|
||||
|
||||
def getName(self):
|
||||
return self.name
|
||||
|
||||
def setName(self, name):
|
||||
self.name = name
|
||||
|
||||
def getCommand(self):
|
||||
return self.command
|
||||
|
||||
def setHeaderField(self, param):
|
||||
self.headerField = param
|
||||
|
||||
def getHeaderField(self):
|
||||
return self.headerField
|
||||
|
||||
class InlineBot:
|
||||
def __init__(self):
|
||||
|
||||
self.apiUrl = password.API_URL
|
||||
|
||||
self.errorText = "Sowwy mawster, an ewror occuwed. ;;w;;"
|
||||
self.commands = []
|
||||
|
||||
self.commands = {
|
||||
"Pony" : "yay, ponies!",
|
||||
"Clop" : "NSFW ponies",
|
||||
"Furry" : "Furries"
|
||||
"Loli" : "Cute lolis",
|
||||
"Yiff" : "Yiff",
|
||||
"Lewd" : "Say hi to the police",
|
||||
"Rasoio" : "Dai facciamogli lo scherzo del rasoio!1!!"
|
||||
}
|
||||
#self.__loadConfig() ## todo v0.3.1
|
||||
self.__makeCommands()
|
||||
|
||||
def callRequest(self, command, senderid, text):
|
||||
def __makeCommands(self):
|
||||
cmd = Command()
|
||||
|
||||
cmd.setName("Pony")
|
||||
cmd.setDesc("yay, ponies!")
|
||||
cmd.setMode("imageurl")
|
||||
cmd.setHeaderField("imageurl")
|
||||
self.commands.append(cmd)
|
||||
|
||||
cmd.setName("Clop")
|
||||
cmd.setDesc("NSFW ponies")
|
||||
self.commands.append(cmd)
|
||||
|
||||
cmd.setName("Furry")
|
||||
cmd.setDesc("Furries")
|
||||
self.commands.append(cmd)
|
||||
|
||||
cmd.setName("Loli")
|
||||
cmd.setDesc("Cute lolis")
|
||||
self.commands.append(cmd)
|
||||
|
||||
cmd.setName("Yiff")
|
||||
cmd.setDesc("Yiff")
|
||||
self.commands.append(cmd)
|
||||
|
||||
cmd.setName("Lewd")
|
||||
cmd.setDesc("Say hi to the police")
|
||||
self.commands.append(cmd)
|
||||
|
||||
cmd.setName("Rasoio")
|
||||
cmd.setDesc("Dai facciamogli lo scherzo del rasoio!1!!")
|
||||
cmd.setMode("genericurl")
|
||||
cmd.setHeaderField("htmldescription")
|
||||
self.commands.append(cmd)
|
||||
|
||||
def callRequest(self, command, senderid, text = ""):
|
||||
if not command:
|
||||
return self.errorText
|
||||
|
||||
r = requests.get(self.apiUrl,
|
||||
headers={
|
||||
"botid":password.BOT_ID,
|
||||
"botpassword":password.BOT_PASSWORD,
|
||||
"command":command,
|
||||
"command":command.getName().lower(),
|
||||
"replytouserid":"0",
|
||||
"senderuserid":senderid,
|
||||
"receiverchatid":"0",
|
||||
@ -42,19 +108,19 @@ class InlineBot:
|
||||
if not r:
|
||||
return self.errorText
|
||||
|
||||
if not "authorized" in r.headers or not "success" in r.headers or not "htmldescription" in r.headers or not "imageurl" in r.headers:
|
||||
if not "authorized" in r.headers or not "success" in r.headers or not "htmldescription" in r.headers or not "imageurl" in r.headers or not requiredField in r.headers:
|
||||
return self.errorText
|
||||
|
||||
if r.headers["authorized"] != "true" or r.headers["success"] != "true" or r.headers["imageurl"] == "":
|
||||
if r.headers["authorized"] != "true" or r.headers["success"] != "true" or r.headers[requiredField] == "":
|
||||
return self.errorText
|
||||
|
||||
return r.headers["imageurl"]
|
||||
return r.headers[command.getHeaderField()]
|
||||
|
||||
def start(self):
|
||||
self.bot = Bot(token=password.BOT_TOKEN)
|
||||
self.updater = Updater(bot=self.bot,use_context=True)
|
||||
|
||||
print("h0nus bot\n");
|
||||
print("Inline bot v. {}".format(BOT_VERSION))
|
||||
|
||||
self.dispatcher = self.updater.dispatcher
|
||||
|
||||
@ -65,7 +131,9 @@ class InlineBot:
|
||||
|
||||
inline_caps_handler = InlineQueryHandler(self.inlineQuery)
|
||||
self.dispatcher.add_handler(inline_caps_handler)
|
||||
|
||||
print("Started!")
|
||||
|
||||
self.updater.start_polling()
|
||||
self.updater.idle()
|
||||
|
||||
@ -75,14 +143,33 @@ class InlineBot:
|
||||
|
||||
def commandStart(self, update, context):
|
||||
context.bot.send_message(chat_id=update.effective_chat.id, text="Inline cancer, clop, furry spammer (h0nus)",parse_mode="HTML")
|
||||
|
||||
def makeResult(self, command, senderid, querySearch = ""):
|
||||
if commnand == None:
|
||||
return InlineQueryResultArticle(
|
||||
id=uuid.uuid4().hex,
|
||||
type="article",
|
||||
title="Error",
|
||||
input_message_content=InputTextMessageContent("Error", "HTML"),
|
||||
description=self.errorText
|
||||
)
|
||||
|
||||
def makeResult(self, qTitle, qDesc, picUrl):
|
||||
qValue = self.callRequest(command, senderid, querySearch)
|
||||
contentText = ""
|
||||
|
||||
if command.getMode() == "imageurl":
|
||||
contentText = InputTextMessageContent(""<a href=\"" + qValue + "\">HonusBot</a>", "HTML")
|
||||
elif command.getMode() == "genericurl":
|
||||
contentText = InputTextMessageContent(""<a href=\"" + qValue + "\">link</a>", "HTML")
|
||||
else:
|
||||
contentText = InputTextMessageContent("Error", "HTML")
|
||||
|
||||
return InlineQueryResultArticle(
|
||||
id=uuid.uuid4().hex,
|
||||
type="article",
|
||||
title=qTitle,
|
||||
input_message_content=InputTextMessageContent("<a href=\"" + picUrl + "\">H0nusBot</a>", "HTML"),
|
||||
description=qDesc
|
||||
title=command.getName(),
|
||||
input_message_content=contentText
|
||||
description=command.getDesc()
|
||||
)
|
||||
|
||||
def inlineQuery(self, update, context):
|
||||
@ -90,11 +177,10 @@ class InlineBot:
|
||||
query = update.inline_query.query
|
||||
results = list()
|
||||
if not query:
|
||||
for key in self.commands:
|
||||
desc = self.commands[key]
|
||||
results.append(self.makeResult(key, desc, self.callRequest(key.lower(), senderid, query)))
|
||||
for command in self.commands:
|
||||
results.append(self.makeResult(command, senderid)
|
||||
else:
|
||||
results.append(self.makeResult("Cancer", "Search cancer about " + query, self.callRequest("cancer", senderid, query)))
|
||||
results.append(self.makeResult(self.cancerCommand, senderid, query))
|
||||
context.bot.answer_inline_query(update.inline_query.id, results, 1, False)
|
||||
|
||||
InlineBot().start()
|
||||
|
Loading…
x
Reference in New Issue
Block a user