Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const JAIKU_MAXLEN = 140;
- Jaiku = {
- addKey:function(key){
- if (!Application.prefs.has("jaiku_user_api_key")) {
- Application.prefs.setValue("jaiku_user_api_key", key);
- } else {
- var new_key = Application.prefs.get("jaiku_user_api_key");
- new_key.value = key;
- return new_key.value;
- }
- },
- addUsername:function(username){
- Application.prefs.setValue("jaiku_user_username", username);
- },
- getUsername:function(){
- return Application.prefs.get("jaiku_user_username").value;
- },
- getKey:function(){
- return Application.prefs.get("jaiku_user_api_key").value;
- },
- everythingIsOK:function(){
- return Application.prefs.has("jaiku_user_username") && Application.prefs.has("jaiku_user_api_key");
- }
- };
- CmdUtils.CreateCommand({
- name: "jaiku",
- takes: {status: noun_arb_text},
- modifiers : {"at":noun_arb_text},
- author: {name: "Fernando Takai", homepage: "http://fernandotakai.wordpress.com"},
- license: "MPL",
- description: "Post to Jaiku using Ubiquity",
- help: "Type jaiku your message to post.",
- preview: function(previewBlock, statusText) {
- var previewTemplate = "Updates your Jaiku presence : <br/>" +
- "<b>${status}</b> <br /><br />" +
- "Characters remaining: <b>${chars}</b>";
- var truncateTemplate = "<br />The last <b>${truncate}</b> " +
- "characters will be truncated!";
- var previewData = {
- status: statusText.text,
- chars: JAIKU_MAXLEN - statusText.text.length,
- username: Jaiku.getUsername()
- };
- 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(statusText, mods) {
- if(statusText.text.length < 1) {
- displayMessage("Jaiku requires a status to be entered");
- return;
- }
- if (Jaiku.everythingIsOK()) {
- var loc = "";
- if(mods.at.text){
- loc = mods.at.text;
- } else {
- var place = CmdUtils.getGeoLocation();
- loc = place.city + "," + place.country;
- }
- var updateUrl = "http://api.jaiku.com/jason";
- var status = statusText.text;
- var updateParams = {
- personal_key: Jaiku.getKey(),
- user: Jaiku.getUsername(),
- message: status,
- method: "presence.send",
- location: loc
- };
- jQuery.ajax({
- type: "POST",
- url: updateUrl,
- data: updateParams,
- dataType: "json",
- error: function(msg) {
- displayMessage("Jaiku error - status not updated");
- },
- success: function(msg) {
- if(msg.status != "error"){
- displayMessage("Status updated!");
- } else {
- displayMessage(msg.message);
- }
- }
- });
- } else {
- displayMessage("Please set your user api key with jaiku-setuserandkey");
- }
- }
- });
- CmdUtils.CreateCommand({
- name: "jaiku-setuserandkey",
- takes: {username: noun_arb_text},
- modifiers: {"api": noun_arb_text},
- license: "MPL",
- description: "Set your jaiku username and key. Check your key at http://api.jaiku.com",
- help: "Type jaiku-setuserandkey <username> <apikey>. Check your key at http://api.jaiku.com",
- execute: function(username, mods) {
- if(username.text.length < 1) {
- displayMessage("Please, enter your username");
- return;
- }
- var api = mods.api.text || ""
- if(api.length < 1) {
- displayMessage("Please, enter your api key");
- return;
- }
- Jaiku.addKey(mods.api.text);
- Jaiku.addUsername(username.text);
- displayMessage("Your username and api key has been set.");
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement