From 86ab1396a17c93583adf673bf0a022e5f26b851d Mon Sep 17 00:00:00 2001 From: MikeTheWatchGuy Date: Sat, 13 Oct 2018 20:34:40 -0400 Subject: [PATCH] New HowDoI standalone application --- HowDoI/PySimpleGUI-HowDoI.py | 90 +++++++++++++++++++++++++++++++++++ HowDoI/QuestionMark.ico | Bin 0 -> 282062 bytes 2 files changed, 90 insertions(+) create mode 100644 HowDoI/PySimpleGUI-HowDoI.py create mode 100644 HowDoI/QuestionMark.ico diff --git a/HowDoI/PySimpleGUI-HowDoI.py b/HowDoI/PySimpleGUI-HowDoI.py new file mode 100644 index 00000000..8ae5fa79 --- /dev/null +++ b/HowDoI/PySimpleGUI-HowDoI.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python +import sys +if sys.version_info[0] >= 3: + import PySimpleGUI as sg +else: + import PySimpleGUI27 as sg +import subprocess + + +# Test this command in a dos window if you are having trouble. +HOW_DO_I_COMMAND = 'python -m howdoi.howdoi' + +# if you want an icon on your taskbar for this gui, then change this line of code to point to the ICO file +DEFAULT_ICON = './QuestionMark.ico' + +def HowDoI(): + ''' + Make and show a window (PySimpleGUI form) that takes user input and sends to the HowDoI web oracle + Excellent example of 2 GUI concepts + 1. Output Element that will show text in a scrolled window + 2. Non-Window-Closing Buttons - These buttons will cause the form to return with the form's values, but doesn't close the form + :return: never returns + ''' + # ------- Make a new Window ------- # + sg.ChangeLookAndFeel('GreenTan') # give our form a spiffy set of colors + + layout = [ + [sg.Text('Ask and your answer will appear here....', size=(40, 1))], + [sg.Output(size=(127, 30), font=('Helvetica 10'))], + [ sg.Spin(values=(1, 2, 3, 4), initial_value=1, size=(2, 1), key='Num Answers', font='Helvetica 15'), + sg.Text('Num Answers',font='Helvetica 15'), sg.Checkbox('Display Full Text', key='full text', font='Helvetica 15'), + sg.T('Command History', font='Helvetica 15'), sg.T('', size=(40,3), text_color=sg.BLUES[0], key='history')], + [sg.Multiline(size=(85, 5), enter_submits=True, key='query', do_not_clear=False), + sg.ReadButton('SEND', button_color=(sg.YELLOWS[0], sg.BLUES[0]), bind_return_key=True), + sg.Button('EXIT', button_color=(sg.YELLOWS[0], sg.GREENS[0]))] + ] + + window = sg.Window('How Do I ??', + default_element_size=(30, 2), + font=('Helvetica',' 13'), + default_button_element_size=(8,2), + icon=DEFAULT_ICON, + return_keyboard_events=True).Layout(layout) + + # ---===--- Loop taking in user input and using it to query HowDoI --- # + command_history = [] + history_offset = 0 + while True: + (button, value) = window.Read() + if button is 'SEND': + query = value['query'].rstrip() + print(query) + QueryHowDoI(query, value['Num Answers'], value['full text']) # send the string to HowDoI + command_history.append(query) + history_offset = len(command_history)-1 + window.FindElement('query').Update('') # manually clear input because keyboard events blocks clear + window.FindElement('history').Update('\n'.join(command_history[-3:])) + elif button is None or button is 'EXIT': # if exit button or closed using X + break + elif 'Up' in button and len(command_history): # scroll back in history + command = command_history[history_offset] + history_offset -= 1 * (history_offset > 0) # decrement is not zero + window.FindElement('query').Update(command) + elif 'Down' in button and len(command_history): # scroll forward in history + history_offset += 1 * (history_offset < len(command_history)-1) # increment up to end of list + command = command_history[history_offset] + window.FindElement('query').Update(command) + elif 'Escape' in button: # clear currently line + window.FindElement('query').Update('') + + +def QueryHowDoI(Query, num_answers, full_text): + ''' + Kicks off a subprocess to send the 'Query' to HowDoI + Prints the result, which in this program will route to a gooeyGUI window + :param Query: text english question to ask the HowDoI web engine + :return: nothing + ''' + howdoi_command = HOW_DO_I_COMMAND + full_text_option = ' -a' if full_text else '' + t = subprocess.Popen(howdoi_command + ' \"'+ Query + '\" -n ' + str(num_answers)+full_text_option, stdout=subprocess.PIPE) + (output, err) = t.communicate() + print('{:^88}'.format(Query.rstrip())) + print('_'*60) + print(output.decode("utf-8") ) + exit_code = t.wait() + +if __name__ == '__main__': + HowDoI() + diff --git a/HowDoI/QuestionMark.ico b/HowDoI/QuestionMark.ico new file mode 100644 index 0000000000000000000000000000000000000000..dee9a36e973b29a6347cd480f494c3d557534dad GIT binary patch literal 282062 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 literal 0 HcmV?d00001