Share your favorite FastKeys commands
-
TokyoMike
- Posts: 28
- Joined: May 10th, ’18, 07:01
Post
by TokyoMike » Jan 16th, ’22, 01:55
Hi - I am wondering if it is possible to call a Python script as a text expansion replacement to fetch information from the web.
As an example - I would like to type :pq and have a python script fetch a quote from the internet and replace the trigger with that quote:
Type
:pq and get:
The things that people do now in sports, you can't even believe. These are complete total athletes. To see what human beings can do in the highest level is amazing. -*Billie Joe Armstrong*
Here is an example script:
Code: Select all
import requests
import pyautogui
## function that gets the random quote
def get_random_quote():
try:
## making the get request
response = requests.get(
"https://quote-garden.herokuapp.com/api/v3/quotes/random"
)
if response.status_code == 200:
## extracting the core data
json_data = response.json()
data = json_data["data"]
# the quote
pyautogui.typewrite(data[0]["quoteText"])
pyautogui.typewrite(" -")
pyautogui.press("*")
# the author
pyautogui.typewrite(data[0]["quoteAuthor"])
pyautogui.press("*")
pyautogui.press(["enter"])
else:
print("Error while getting quote")
except:
print("Something went wrong! Try Again!")
get_random_quote()
Thanks!
-
Marko
- Posts: 1460
- Joined: Mar 2nd, ’13, 21:02
Post
by Marko » Jan 17th, ’22, 10:29
Why not? Try using the Text Expander with the Type: Run to run the external script.
-
TokyoMike
- Posts: 28
- Joined: May 10th, ’18, 07:01
Post
by TokyoMike » Jan 18th, ’22, 05:48
Hi - I have tried three methods, both have failed.
1. I entered the python script into the text area for TextExpander > Run -- Result: a web page opened with the raw unprocessed json string that my script fetches. I had hoped to see the parsed string.
2. I pointed to a file. Result: the .py file was opened in my default editor
3. I tried a more obvious method: python file.py in the text area - and a command prompt opened, then close - so - closer!
Is there any way to replace the trigger with the output? Thanks for the help!
-
Marko
- Posts: 1460
- Joined: Mar 2nd, ’13, 21:02
Post
by Marko » Jan 18th, ’22, 06:28
You cannot use the Python code in FastKeys directly. You need to compile the code to exe and then run in.
-
TokyoMike
- Posts: 28
- Joined: May 10th, ’18, 07:01
Post
by TokyoMike » Jan 18th, ’22, 23:25
Marko wrote: ↑Jan 18th, ’22, 06:28
You cannot use the Python code in FastKeys directly. You need to compile the code to exe and then run in.
Doh - thanks - I missed that. This will work in cases where I don’t need to feed the code with an input.
Thanks!