Jump to content

alfredclough

Member
  • Content Count

    80
  • Joined

  • Last visited

  • Days Won

    3

alfredclough last won the day on January 10 2014

alfredclough had the most liked content!

About alfredclough

  • Rank
    Member

Recent Profile Visitors

2,283 profile views
  1. Thanks! That fixed it. Hmm. I wonder why it worked for years 🤔
  2. Every since I've upgraded to Catalina I have a workflow that is throwing an error but I cannot figure out why. It is a script folder that searches file in a folder. Here is the error: [08:11:59.413] Logging Started... [08:12:03.783] Recent Downloads[Script Filter] Queuing argument '' [08:12:04.065] Recent Downloads[Script Filter] Script with argv '(null)' finished [08:12:04.069] Recent Downloads[Script Filter] Warning: Use of undefined constant BASE_DIR - assumed 'BASE_DIR' (this will throw an Error in a future version of PHP) in Command line code on line 1 Warning: Use of undefined constant FILE_PATTERN - assumed 'FILE_PATTERN' (this will throw an Error in a future version of PHP) in Command line code on line 8 Here is the code for the script filter: define(BASE_DIR, getenv('HOME') . '/Downloads'); $file_pattern = "{query}"; if ( $file_pattern ) { $file_pattern = trim($file_pattern); $file_pattern = preg_quote($file_pattern); $file_pattern = '/' . str_replace(' ', '.', $file_pattern) . '/i'; } define(FILE_PATTERN, $file_pattern); $dir_contents = scandir(BASE_DIR); $files = array(); foreach ( $dir_contents as $file ) { $files[$file] = filemtime(BASE_DIR . '/' . $file); } arsort($files, SORT_NUMERIC); //filter out non matching files if ( $file_pattern ) { foreach ( $files as $file => $modtime ) { if ( ! preg_match(FILE_PATTERN, $file) ) { unset($files[$file]); } } } $items = new SimpleXMLElement("<items></items>"); if ( count($files) == 0 ) { $c = $items->addChild('item'); $c->addAttribute('arg', 'No Match'); $c->addAttribute('valid', 'no'); $c->arg = 'No Match'; $c->addAttribute('type', 'file'); $c->title = 'No Match'; $c->subtitle = ''; $c->icon = 'icon.png'; $c->icon->addAttribute('type', 'default'); } foreach( $files as $basename => $modtime ) { $fullpath = BASE_DIR . '/' . $basename; if ( substr($basename, 0, 1) != '.' ) { $c = $items->addChild( 'item' ); $c->addAttribute('arg', $fullpath); $c->arg = $fullpath; $c->addAttribute('type', 'file'); $c->title = $basename; $c->subtitle = $fullpath; $c->icon = $fullpath; $c->icon->addAttribute('type', 'fileicon'); } } echo $items->asXML(); I can't quite figure out what went wrong? I've used this for a long time however if there is an easier way to do this I'm also open for ideas.
  3. Sorry about that--I updated the link.
  4. To make a long story short, I updated a workflow. It has a long action that is done by an Alfred Script object in AppleScript. In certain cases, I want to do some of the work via a python script rather than in AppleScript. To do this I added the following which checks a variable already set and if so tries to run a python script I put in the workflow folder. (The argument passed is encapsulated in quotes) --check if online and if so, use Python. if contents of online is "online" then --run script to put passage onto the clipboard do shell script "python ./get_verse.py \"" + passageRef + "\"" --paste the passage into the current app keystroke "v" using command down else The réponse I'm getting back in Alfred debugging is: [2019-01-16 15:18:30][ERROR: action.script] /Users/samuel/Library/Caches/com.runningwithcrayons.Alfred-3/Workflow Scripts/27C48708-2D1A-4008-BCBF-CCABCD6247DC:801:811: execution error: Can’t make "python ./get_verse.py \"" into type number. (-1700) This tells me it's not executing the python script. I'm sure there's something simple here I'm missing but cannot figure out what it is.
  5. Thank you! It's a solution I found that seemed to work reasonable quickly. If there's a better option I'm open to it.
  6. I have a strange problem I am trying to solve. I must be missing something because this should be quite simple. I have a script to check and see if the computer is online. Here is the script: echo -e "GET http://google.com HTTP/1.0\n\n" | nc google.com 80 > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "online" else echo "offline" fi After this I have two filters. One filter checks if the value is online and the other checks if the value is offline. The problem is when I run the workflow it always stops at the filter and does not continue. I ran Alfred in debut and here is what I see: [2019-01-10 07:38:49][action.script] Processing output of 'utility.filter' with arg 'online ' [2019-01-10 07:38:49][action.script] Processing output of 'utility.filter' with arg 'online ' It appears to me that there is an extra new line after "online" which would explain why the filter is not successfully completing. However, I cannot see any reason why an extra new line would be inserted? This seems like it should be something very simple so I must be missing something but I cannot see what it is.
  7. I found the bug fix for tags with spaces. In the script that is run by the Bear Search Tag trigger to open Bear, the first line of the script is: orig_query={query} It needs to be changed to enclose {query} in quotes otherwise any tag with spaces in it will fail. Here is what the corrected line should be: orig_query="{query}"
  8. I'm not sure if anyone else has run into this, but it seems like the ability to open a tag in bear does not work if a tag has spaces in it. I'm guessing something's not getting encoded properly somewhere?
  9. I had created a Bear workflow to automate a few things and this workflow adds some really helpful functionality. Thank you
  10. Playing around more with Script filter looks like it will work. I think I can capture the input plus set a variable for which option a user clicked so I should be able to do it all in one step.
  11. Right--My question is how I can capture an argument at the same time as giving the user three selections to choose between in one step.
  12. Here's what I want to do: User selects an option in a script filter. That passes them to a second step which is a list filter where they can make a choice and optionally enter a second argument. In my case what I want to do is let someone enter a search parameter in that second step. So the second step is a list filter that gives them three choices: search, search in a new window, search in a new tab and allows them to enter a search parameter. My problem is that anytime you enter an argument in a list filter it filters the options if that makes sense, but what I want to do is let someone enter a parameter that is passed along the workflow but have a choice of how to action that parameter. I realize I could easily do this by using modifiers (shift, fn, etc) but I'd rather make it more obvious by picking the option out from a list. I haven't created it yet or I would attach the workflow--I'm looking for input on how to do this.
×
×
  • Create New...