On June 30 Twitter made good on their threat of requiring OAuth flow for third-party Twitter clients in order for them to receive Direct Messages.
Fortunately we submitted Hibari 1.1.4 to Apple on June 27.
Unfortunately it turns out that wasn’t nearly enough time.
On June 30 Apple rejected the Hibari 1.1.4 update solely because its App Store description mentioned you can download a demo from hibariapp.com*.
Victoria received the rejection email the afternoon of June 30th. Within the hour she deleted the offending paragraph, resubmitted (no need to even upload a new binary) and filed an expedite request since Hibari users can no longer receive Direct Messages.
Here we are 11 days later and no word from Apple.
*Apple had no problem with mentioning the demo in previous versions. Word has it this “rule” is inconsistently applied. I’m taken aback by Apple’s anti-consumer anti-demo stance. But that’s nothing new.)
Jul 12 Update: A couple of anonymous Apple friends unwedged us from the queue and Hibari 1.1.4 is now available on the Mac App Store. If you find yourself in a similar circumstance I was told it may help to resubmit a new build — it forces a re-review and can get things moving.
Last year I wrote a script (original, improved) which posted the selected tweet to MarsEdit from Twitterrific via AppleScript.
Here’s the same script, but I switched out Hibari for Twitterrific and JSTalk for AppleScript:
var t = [[JSTalk application:'Hibari'] selectedTweet];
var output = '['+t.name+' / @'+t.screenName+']'
+'(https://twitter.com/'+t.screenName+'/status/'+t.tweetID+'):\n'
+'> '+t.tweetHTML;
var marsEdit = [SBApplication application:'MarsEdit'];
var firstDocument = [[marsEdit documents] objectAtIndex:0];
var input = [firstDocument selectedText];
if ([input length] > 0) {
input += '\n\n';
}
output = [input stringByAppendingString:output];
[firstDocument setSelectedText:output];
I call [input stringByAppendingString:output] instead of just writing input + output due to what looks like an interaction bug between JSCocoa and Scripting Bridge.
It appears Scripting Bridge attribute proxies representing empty strings get concatenated as '0' instead of ''. Calling stringByAppendingString: works-around the bug.
Another thing is that MarsEdit doesn’t seem willing to execute a .jstalk file even after I set its executable bit — it assumes it’s an AppleScript and dies with a syntax error. So instead I invoke the script via FastScripts, which has no such problem.