From 5ef742638ec983a08fde70d6cf9b30df8060ccff Mon Sep 17 00:00:00 2001 From: Tommy Ip Date: Sat, 24 Dec 2016 14:35:56 +0000 Subject: [PATCH] interactive bots: Create Howdoi bot. This bot allows users to search technical questions from Stack Overflow. --- .../lib/HowdoiBot/answer_howdoi_all.png | Bin 0 -> 57120 bytes contrib_bots/lib/HowdoiBot/answer_howdowe.png | Bin 0 -> 57154 bytes contrib_bots/lib/HowdoiBot/docs.md | 56 ++++++++ .../lib/HowdoiBot/question_howdoi_all.png | Bin 0 -> 9233 bytes .../lib/HowdoiBot/question_howdowe.png | Bin 0 -> 7047 bytes contrib_bots/lib/howdoi_bot.py | 130 ++++++++++++++++++ 6 files changed, 186 insertions(+) create mode 100644 contrib_bots/lib/HowdoiBot/answer_howdoi_all.png create mode 100644 contrib_bots/lib/HowdoiBot/answer_howdowe.png create mode 100644 contrib_bots/lib/HowdoiBot/docs.md create mode 100644 contrib_bots/lib/HowdoiBot/question_howdoi_all.png create mode 100644 contrib_bots/lib/HowdoiBot/question_howdowe.png create mode 100644 contrib_bots/lib/howdoi_bot.py diff --git a/contrib_bots/lib/HowdoiBot/answer_howdoi_all.png b/contrib_bots/lib/HowdoiBot/answer_howdoi_all.png new file mode 100644 index 0000000000000000000000000000000000000000..ee712530f116260e4aca7c412b72696c63477483 GIT binary patch literal 57120 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 N`q9cX#bo97{{Wn%n>_#k literal 0 HcmV?d00001 diff --git a/contrib_bots/lib/HowdoiBot/answer_howdowe.png b/contrib_bots/lib/HowdoiBot/answer_howdowe.png new file mode 100644 index 0000000000000000000000000000000000000000..35eaadde15ba5b84b745c503d47b32c9fe2c4b88 GIT binary patch literal 57154 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 `@howdowe use supervisor in elixir` + + ![howdowe question](question_howdowe.png) + +Answer -> Howdoi would try to **only** respond with the coding section +of the answer. + + ![howdowe answer](answer_howdowe.png) + +#### Example 2 + +Question -> `@howdoi! stack vs heap` + + ![howdoi! question](question_howdoi_all.png) + +Answer -> Howdoi would return the **full** stackoverflow answer via +**private message** to the original sender. The URL of the answer can be +seen at the bottom of the message. + + ![howdoi! answer](answer_howdoi_all.png) + +**Note:** + +* Line wrapped is enabled with a maximum line length of 85 characters. +This could be adjusted in the source code (`HowdoiHandler.MAX_LINE_LENGTH`). + +* *Howdoi* generally perform better if you ask a question using keywords +instead of a complete sentences (eg: "How do i make a decorator in Python" +-> "python decorator"). + +* __[*Limitation*]__ If a answer contains multiple code blocks, the `@howdoi` +and `@howdowe` commands would only return the first coding section, use +`@howdo[we|i]!` in that case. diff --git a/contrib_bots/lib/HowdoiBot/question_howdoi_all.png b/contrib_bots/lib/HowdoiBot/question_howdoi_all.png new file mode 100644 index 0000000000000000000000000000000000000000..871f293627a5382ff1a9de6f226af2992303e04e GIT binary patch literal 9233 zcma)icT`hd@GUBef{65{D519?y@N=k6QoKv$}@X^w{Px0$2%T>l}Mw7JMWMsF=v|y^n z{*!AnLH-QiPgMR6WwbgXo90Bb?%uxJnC_`Zc8=4ElA(0(w+?MG1atnPap?2+KhK}H zRlUye;Lw$-u;Qud%S+E*Yr`;_ns3fQIPYrSTOXfU$a6 zXR52)pTlL}IDbn;Kae`t*=4WBOt|sC)jYJ>m($Uf`m9$kS<#W!fpuEW?*%^_U)c?` zV*KB4B$gLnXFUf_uCpT9S+n47#)ug8?K#h7xkc%$0jHYZ88P6Wf1@I!v+DmqgSI

`QI^`-Q5cq(nN)V+-FyqjLOrAx;GjyLj>9 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 literal 0 HcmV?d00001 diff --git a/contrib_bots/lib/HowdoiBot/question_howdowe.png b/contrib_bots/lib/HowdoiBot/question_howdowe.png new file mode 100644 index 0000000000000000000000000000000000000000..f779d6a1dbf0572b260336914dd4bc85a0a3f162 GIT binary patch literal 7047 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 literal 0 HcmV?d00001 diff --git a/contrib_bots/lib/howdoi_bot.py b/contrib_bots/lib/howdoi_bot.py new file mode 100644 index 0000000..3eb78c0 --- /dev/null +++ b/contrib_bots/lib/howdoi_bot.py @@ -0,0 +1,130 @@ +""" +This bot uses the python library `howdoi` which is not a +dependency of Zulip. To use this module, you will have to +install it in your local machine. In your terminal, enter +the following command: + + $ sudo pip install howdoi --upgrade + +Note: + * You might have to use `pip3` if you are using python 3. + * The install command would also download any dependency + required by `howdoi`. +""" + +import sys +import logging +from textwrap import fill +try: + from howdoi.howdoi import howdoi +except ImportError: + logging.error("Dependency missing!!\n%s" % (__doc__)) + sys.exit(0) + + +class HowdoiHandler(object): + ''' + This plugin facilitates searching Stack Overflow for + techanical answers based on the Python library `howdoi`. + To get the best possible answer, only include keywords + in your questions. + + There are two possible commands: + * @howdowe > This would return the answer to the same + stream that it was called from. + + * @howdoi > The bot would send a private message to the + user containing the answer. + + By default, howdoi only returns the coding section of the + first search result if possible, to see the full answer + from Stack Overflow, append a '!' to the commands. + (ie '@howdoi!', '@howdowe!') + ''' + + MAX_LINE_LENGTH = 85 + + def usage(self): + return ''' + This plugin will allow users to get techanical + answers from Stackoverflow. Users should preface + their questions with one of the following: + + * @howdowe > Answer to the same stream + * @howdoi > Answer via private message + + * @howdowe! OR @howdoi! > Full answer from SO + ''' + + def triage_message(self, message): + cmd_list = ['@howdowe', '@howdoi', '@howdowe!', '@howdoi!'] + question = message['content'] + + # This next line of code is defensive, as we never want + # to get into an infinite loop of searching answers + # from Stackoverflow! + if message['sender_email'].startswith('howdoi'): + return False + + is_howdoi = any([question.startswith(cmd) for cmd in cmd_list]) + + return is_howdoi + + def line_wrap(self, string, length): + lines = string.split("\n") + + wrapped = [(fill(line) if len(line) > length else line) + for line in lines] + + return "\n".join(wrapped).strip() + + def get_answer(self, command, query): + question = query[len(command):].strip() + result = howdoi(dict( + query=question, + num_answers=1, + pos=1, + all=command[-1] == '!', + color=False + )) + _answer = self.line_wrap(result, HowdoiHandler.MAX_LINE_LENGTH) + + answer = "Answer to '%s':\n```\n%s\n```" % (question, _answer) + + return answer + + def handle_message(self, message, client, state_handler): + question = message['content'] + + if question.startswith('@howdowe!'): + client.send_message(dict( + type='stream', + to=message['display_recipient'], + subject=message['subject'], + content=self.get_answer('@howdowe!', question) + )) + + elif question.startswith('@howdoi!'): + client.send_message(dict( + type='private', + to=message['sender_email'], + content=self.get_answer('@howdoi!', question) + )) + + elif question.startswith('@howdowe'): + client.send_message(dict( + type='stream', + to=message['display_recipient'], + subject=message['subject'], + content=self.get_answer('@howdowe', question) + )) + + elif question.startswith('@howdoi'): + client.send_message(dict( + type='private', + to=message['sender_email'], + content=self.get_answer('@howdoi', question) + )) + + +handler_class = HowdoiHandler