diff --git a/inline.py b/inline.py
index 5e37938..6b77167 100644
--- a/inline.py
+++ b/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(""HonusBot", "HTML")
+ elif command.getMode() == "genericurl":
+ contentText = InputTextMessageContent(""link", "HTML")
+ else:
+ contentText = InputTextMessageContent("Error", "HTML")
+
return InlineQueryResultArticle(
id=uuid.uuid4().hex,
type="article",
- title=qTitle,
- input_message_content=InputTextMessageContent("H0nusBot", "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()