Jump to content

Leftover-Waffle

Member
  • Posts

    3
  • Joined

  • Last visited

Posts posted by Leftover-Waffle

  1. Hello! I am a newbie to writing my own scripts/Alfred workflows, even though I have used Alfred for a long while.

     

    I have been searching everywhere for how to pass a variable in Alfred to a variable in a Python script, but I couldn't find anything. I figured this was the best place to ask.

     

    This is the script I wrote to add {query} to a specific line in a file, I personally use it for logging in my daily note in Obsidian.

     

    #!/usr/bin/python3
    
    import sys
    import os.path
    import time
    
    # Convert Alfred variables to Python
    query = sys.argv[1]
    sys.stdout.write(query)
    
    # Create "save_path" variable for Daily Notes folder
    save_path = "/Users/jackverstraate/Obsidian/Daily Notes/"
    
    # Create "file_name" variable with YYYY-MM-DD format
    file_name = str((time.strftime("%Y-%m-%d")))
    
    # Join "save_path" and "file_name" to create completeName
    completeName = os.path.join(save_path, file_name) + ".md"
    
    # Count the number of lines in a file to create variable "line_count"
    with open(completeName, 'r') as fp:
        for count, line in enumerate(fp):
            pass
    line_count = (count + 1)
    
    # Read the contents of a file to create variable "contents"
    with open(completeName, "r") as f:
        contents = f.readlines()
    
    # Insert "query" at "line_count" minus 22 with current time
    contents.insert((line_count) - 22, "- **" + (time.strftime("%I:%M %p")) + "** – " + query + "\n")
    
    with open(completeName, "w") as f:
        contents = "".join(contents)
        f.write(contents)

     

    I want the variable "save_path" to be passed from Alfred instead of manually typing a string for the user path. Can you help me out?

×
×
  • Create New...