Mozilla has a lot of great documentation on how to use and extend Ubiquity commands. I would recommend you start from this page.
This post deals with posting 'tweets' with Ubiquity.
- Posting a regular text twitter: This is pretty straight-forward, you just bring up Ubiquity and type twitter and whatever message you want to post.
- Posting a selection: Select a section of text, bring up Ubiquity and type twitter. Your selection will make up the twitter content.
You will also need to install FoxyTunes to get this command to work. That is it.
/*
Post Current Song To Twitter
*/
const TWITTER_STATUS_MAXLEN = 160;
CmdUtils.CreateCommand({
name:"tweet-song",
_getSong: function() {
var trackData = window.foxytunesGetCurrentTrackData();
return CmdUtils.makeSugg("'" + trackData.title + "' by " + trackData.artist);
},
preview:function(previewBlock) {
var song = this._getSong();
var previewTemplate = "Updates your Twitter status to:
" +
"I am listening to ${status}
" +
"Characters remaining: ${chars}";
var truncateTemplate = "
The last ${truncate} " +
"characters will be truncated.";
var previewData = {
status: song.text,
chars: TWITTER_STATUS_MAXLEN - song.text.length
};
var previewHTML = CmdUtils.renderTemplate(previewTemplate, previewData);
if (previewData.chars < 0) {
var truncateData = {
truncate: 0 - previewData.chars
};
previewHTML += CmdUtils.renderTemplate(truncateTemplate, truncateData);
}
previewBlock.innerHTML = previewHTML;
},
execute:function() {
var statusText = this._getSong();
if (statusText.chars < 0) {
displayMessage("Twitter requires a status to be entered");
return;
}
var updateUrl = "https://twitter.com/statuses/update.json";
var updateParams = {
source: "ubiquity",
status: "I am listening to " + statusText.text
};
jQuery.ajax({
type:"POST",
url: updateUrl,
data: updateParams,
dataType: "json",
error:function() {
displayMessage("Twitter error - status not updated");
},
success:function() {
displayMessage("Twitter status updated.");
}
});
}
});
Start up a song in iTunes or any other supported player, bring up Ubiquity and type 'tweet-song' and hit enter to post a tweet that looks like 'I am listening to 'Alex Gopher With Demon Presen' by Jazz Boutique (CD Series)' (Note: You may have to login with your twitter account for this to work).
Credits: The tweet-song code is based on work by Blair McBride (twitter command) and Abimanyu Raja (get-lyrics command).
No comments:
Post a Comment