Stephen_C Posted August 7, 2022 Share Posted August 7, 2022 This is a rather basic workflow (primarily an AppleScript script) designed to facilitate logging on to sites which require you to input specified characters from your mother's maiden name, the name of your first school, a memorable date, etc. Some of us use password managers which don't show the numbering of the characters and this workflow is designed to help. I've never used GitHub and certainly don't think this worth "hosting" so please excuse the way in which it's presented. (I shall probably get into trouble for that! 😀.) It looks like this: First copy the relevant word to the clipboard from your password manager. The Keyword (I used "gc" for Get characters) to trigger the workflow has no argument and the script will prompt you to provide the numbers of the characters you need (with a space between each number). This is the script: try -- get the word from the clipboard set theWord to the clipboard -- keep it as a title to the dialogue set titleWord to theWord -- split the word into characters as a list set listChars to characters of theWord as list -- get the length of the character list set lenList to length of listChars -- an empty variable to store the characters we need set existingChars to "" -- set a default answer to demonstrate correct input set dAnswer to "1 3 6" -- ensure the dialogue shows the word and max. no. of characters set userEntry to display dialog ¬ "Enter the 3 numbers of the characters you want from " & "'" & titleWord & "'" & " with a space between each:" default answer dAnswer with title "Get characters from " & "'" & titleWord & "'" & "(" & "max. " & lenList & " characters" & ")" -- get the dialogue input set dAnswer to text returned of userEntry set astid to AppleScript's text item delimiters -- we are splitting the input numbers by the space character set AppleScript's text item delimiters to " " -- create a list of the input numbers set answerList to text items of dAnswer set AppleScript's text item delimiters to astid -- set variable to check the last number input is not > than number of characters in word set overFlow to item -1 of answerList as integer -- check the last input number isn't greater than number of characters in the word if overFlow is greater than lenList then error "There are not " & overFlow & " characters in " & "'" & titleWord & "'" end if -- now loop for each number in input repeat with i from 1 to (length of answerList) -- set each number against the appropriate character of the word set seekChar to item i of answerList as integer if existingChars is "" then set existingChars to item seekChar of listChars else -- add it if we already have a character set existingChars to existingChars & " " & item seekChar of listChars end if end repeat return existingChars on error error_message number error_number if error_number is -1700 then set error_message to "Please ensure there is only a space between the numbers" return error_message else if the error_number is not -128 then return error_message -- substitute the following line if not running in an Alfred workflow -- if the error_number is not -128 then display alert "Error" message error_message as warning end if end try The script traps certain errors (including incorrect input format or a number greater than the number of characters in the word). I don't know if this will be useful for anyone else but I use it a fair bit. Stephen Link to comment
vitor Posted August 7, 2022 Share Posted August 7, 2022 3 hours ago, Stephen_C said: I've never used GitHub and certainly don't think this worth "hosting" Quite the contrary, sometimes the simplest code is the most useful to someone else. If I had to log in to websites with such requirements, I’d definitely try this out. I see you’re even doing error handling! If you change your mind regarding hosting, the Alfred blog has a post teaching how to share a Workflow on GitHub. It goes from zero—assuming you don’t even have an account yet—to the simplest path you can take to share a new Workflow. The goal is precisely to get you done fast with something useful to share but that you can improve if you feel like spending the extra time. Even if you elect not to do it, thank you for sharing what you have! Stephen_C 1 Link to comment
Stephen_C Posted August 24, 2022 Author Share Posted August 24, 2022 I have now added this workflow on Github. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now