var pastebin = {
post : function() {
var selection = ko.views.manager.currentView.selection;
if (selection == "") {
ko.dialogs.alert("No selection found");
return;
}
var lang = encodeURIComponent(this.ko2pastebinLanguage());
var text = encodeURIComponent(selection);
var nick = encodeURIComponent("anonymous");
var expiry = encodeURIComponent("d");
var httpReq = new XMLHttpRequest();
httpReq.open("post", "http://pastebin.mozilla.org", false);
httpReq.setRequestHeader("content-type",
"application/x-www-form-urlencoded");
var requestString = "parent_pid=&format={1}&code2={2}&poster={3}&paste=Send&expiry={4}";
var sendString = requestString
.replace("{1}", lang)
.replace("{2}", text)
.replace("{3}", nick)
.replace("{4}", expiry);
httpReq.send(sendString);
var url = this.getReturnURL(httpReq);
this.copyText(url);
ko.statusBar.AddMessage("Url " + url
+ " copied on clipboard using lang " + lang,
"pastebin_macro", 3000, true)
},
getReturnURL : function(httpReq) {
return "http://pastebin.mozilla.org/"
+ httpReq.responseText.match('name="parent_pid" value="(.*)"')[1];
},
copyText : function(str) {
Components.classes["@mozilla.org/widget/clipboardhelper;1"]
.getService(Components.interfaces.nsIClipboardHelper)
.copyString(str);
},
ko2pastebinLanguage : function() {
var langMap = {};
langMap["Text"] = "text";
langMap["ActionScript"] = "actionscript";
langMap["Ada"] = "ada";
langMap["Apache"] = "apache";
//langMap[""] = "applescript";
langMap["Assembler"] = "asm";
//langMap[""] = "asp";
langMap["Bash"] = "bash";
langMap["C++"] = "c";
//langMap[""] = "c_mac";
//langMap[""] = "caddcl";
//langMap[""] = "cadlisp";
langMap["C++"] = "cpp";
//langMap[""] = "csharp";
//langMap[""] = "cfm";
langMap["CSS"] = "css";
//langMap[""] = "d";
//langMap[""] = "delphi";
langMap["Diff"] = "diff";
//langMap[""] = "dos";
langMap["Eiffel"] = "eiffel";
langMap["Fortran"] = "fortran";
langMap["FreeBasic"] = "freebasic";
//langMap[""] = "gml";
langMap["HTML"] = "html4strict";
//langMap[""] = "ini";
langMap["Java"] = "java";
langMap["JavaScript"] = "javascript";
langMap["Lisp"] = "lisp";
langMap["Lua"] = "lua";
langMap["Matlab"] = "matlab";
//langMap[""] = "mpasm";
langMap["SQL"] = "mysql";
langMap["Nsis"] = "nsis";
//langMap[""] = "objc";
//langMap[""] = "ocaml";
//langMap[""] = "oobas";
langMap["PL-SQL"] = "oracle8";
langMap["Pascal"] = "pascal";
langMap["Perl"] = "perl";
langMap["PHP"] = "php";
langMap["Python"] = "python";
//langMap[""] = "qbasic";
//langMap[""] = "robots";
langMap["Ruby"] = "ruby";
langMap["Scheme"] = "scheme";
langMap["Smarty"] = "smarty";
langMap["SQL"] = "sql";
langMap["Tcl"] = "tcl";
langMap["VisualBasic"] = "vb";
//langMap[""] = "vbnet";
//langMap[""] = "visualfoxpro";
langMap["XBL"] = "xml";
langMap["XML"] = "xml";
langMap["XSLT"] = "xml";
langMap["XUL"] = "xml";
language = langMap[ko.views.manager.currentView.document.language];
if (language == undefined) {
return "text";
}
return language;
}
};
function printKomodoLanguages() {
append_to_command_output_window("", true);
function printLang(hierarchy) {
var children = new Object();
var count = new Object();
if (hierarchy.container == true) {
hierarchy.getChildren(children, count);
children = children.value;
for (i = 0; i < children.length; i++) {
printLang(children[i]);
}
} else {
append_to_command_output_window(hierarchy.name);
}
}
var langService = Components.classes["@activestate.com/koLanguageRegistryService;1"]
.getService(Components.interfaces.koILanguageRegistryService);
printLang(langService.getLanguageHierarchy());
}
pastebin.post();