Created
January 20, 2010 22:47
-
-
Save fwenzel/282373 to your computer and use it in GitHub Desktop.
Takes a bugzilla.mozilla.org bug number from the user and adds a new Things.app ToDo item for it in the Inbox.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Install script for Things-Bugzilla applescript | |
# | |
# To install the script into the scripts folder, just run `install.sh`. | |
# | |
BASENAME=Things-Bugzilla | |
AS_FILE=$BASENAME.applescript | |
SCPT_FILE=$BASENAME.scpt | |
SCRIPT_DIR=$HOME/Library/Scripts | |
function install { | |
osacompile -o $SCPT_FILE $AS_FILE | |
mkdir -p $SCRIPT_DIR | |
mv $SCPT_FILE $SCRIPT_DIR/ | |
echo "Script installed." | |
} | |
function uninstall { | |
rm -f $SCRIPT_DIR/$SCPT_FILE | |
echo "Script uninstalled." | |
} | |
function run { | |
osascript $AS_FILE | |
} | |
case $1 | |
in | |
run) | |
run | |
;; | |
uninstall) | |
uninstall | |
;; | |
install) | |
install | |
;; | |
*) | |
install | |
;; | |
esac | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(* | |
Things-Bugzilla AppleScript: | |
Takes a bugzilla.mozilla.org bug number from the user, and adds a new | |
Things.app ToDo item for it in the Inbox. | |
*) | |
-- get the bug number from the user | |
set bugnumber to "" | |
set clip to (the clipboard as string) | |
repeat with i in characters of clip | |
try | |
set bugnumber to bugnumber & (i as number) | |
end try | |
end repeat | |
set isInputValid to false | |
repeat until isInputValid | |
set response to display dialog "Add TODO for the following bug number:" default answer bugnumber | |
try | |
set bugnumber to (text returned of response) as number | |
set isInputValid to true | |
on error number errorNumber | |
if (errorNumber = -1700) then | |
display dialog "No number. Please try again." | |
end if | |
end try | |
end repeat | |
-- bugzilla URL | |
set bugzilla_url to "https://bugzilla.mozilla.org/show_bug.cgi?id=" & bugnumber | |
-- download the bug title | |
set bugtitle to do shell script "echo \"" & bugzilla_url & "\" | /usr/bin/env python -c \" | |
import htmlentitydefs | |
import re | |
import sys | |
import urllib2 | |
bug = urllib2.urlopen(sys.stdin.read()) | |
title = re.search('<title>([^<]+)</title>', bug.read()).group(1) | |
title = re.sub('&([^;]+);', lambda m: unichr(htmlentitydefs.name2codepoint[m.group(1)]), title) | |
print title.encode('utf-8') | |
\"" | |
if "invalid" is in bugtitle then | |
set success to false | |
else | |
-- create a new TODO in Things | |
tell application "Things" | |
set newToDo to make new to do ¬ | |
with properties {name:bugtitle, tag names:"mozilla, bug", notes:bugzilla_url} | |
end tell | |
set success to true | |
end if | |
-- register with growl, then notify | |
tell application "GrowlHelperApp" | |
set appname to "Things/Bugzilla Helper AppleScript" | |
set the myNotifications to {"Success Notification"} | |
register as application ¬ | |
appname all notifications myNotifications ¬ | |
default notifications myNotifications ¬ | |
icon of application "Things" | |
if success then | |
notify with name (item 1 of myNotifications) ¬ | |
title ¬ | |
"ToDo successfully added" description bugtitle ¬ | |
application name appname | |
else | |
notify with name (item 1 of myNotifications) ¬ | |
title ¬ | |
"Error finding bug" description bugtitle ¬ | |
application name appname | |
end if | |
end tell |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment