public
Last active

  • Download Gist
sztaki-ubiquity.js
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
// TODO:
// * sztaki off még nem működik
// * a megjelenő ablak legyen draggable és resizeable (jQuery UI)
// * a kijelölt szavak szótövesítése, és a szótő lekérdezése a szótárból (pl. többes számú főneveknél, vagy ing-es igéknél jól jöhet)
 
noun_type_sztaki_states = new CmdUtils.NounType("SztakiStates", ["on", "off"]);
 
var dictionaryWindowStyle = "<style> \
#sztaki_results { \
color: black; \
position: fixed; \
top: 40px; \
left: 40px; \
width: 200px; \
height: 300px; \
background-color: yellow; \
font-size: 11px; \
font-family: \"Lucida Grande\"; \
padding: 10px; \
-moz-border-radius: 10px; \
opacity: .80; \
z-index: 100; \
text-align: left; \
} \
#sztaki_results h3 { \
font-size: 12px; \
font-weight: bold; \
border-bottom: 1px solid black; \
margin: 0 \
} \
#sztaki_results ul { \
padding-left: 0px; \
margin: 5px 0; \
} \
#sztaki_results ul li { \
list-style-type: none; \
padding: 1px; \
} \
</style>";
 
var dictionaryWindowTemplate = "<div id=\"sztaki_results\"> \
<h3>${englishWord}</h3> \
<ul> \
{for w in words } \
<li>${w}</li> \
{/for} \
</ul> \
</div>";
 
 
 
CmdUtils.CreateCommand({
name: "sztaki",
homepage: "http://hiperkocka.hu/",
author: { name: "Tóth Dávid", email: "tothda@gmail.com" },
license: "GPL",
description: "Sztaki szótár kliens",
help: "A \"sztaki on\" paranccsal bekapcsolva, egy kis ablak jelenik meg a weboldalon. Ezután ha egy angol szóra duplán kattintunk, a program lekérdez a Sztaki szótárból, és az eredményt az ablakba teszi.",
icon: "http://szotar.sztaki.hu/favicon.ico",
 
takes: {
"state": noun_type_sztaki_states
},
 
inserWindowStyle: function() {
var body = context.focusedWindow.document.body;
jQuery(body).append(dictionaryWindowStyle);
},
translate: function() {
var word = CmdUtils.getSelection();
var dictUrl = 'http://szotar.sztaki.hu/dict_search.php';
var params = {
L: "ENG:HUN:EngHunDict",
M: "3",
E: "1",
T: "0",
C: "0",
A: "0",
P: "0",
O: "HUN",
in_bookmarklet: "1",
W: word
};
jQuery.get(dictUrl, params,
function(data) {
var result
var tempElement = CmdUtils.getHiddenWindow().document.createElementNS("http://www.w3.org/1999/xhtml", "div");
tempElement.innerHTML = data;
var result = jQuery(tempElement).find('#result .normtext a');
var resultElems = jQuery(tempElement).find('#result .normtext a').get();
var words = jQuery.map(resultElems, function(e) {return jQuery(e).html();});
var body = context.focusedWindow.document.body;
jQuery("#sztaki_results", body).html(CmdUtils.renderTemplate(dictionaryWindowTemplate, {words: words, englishWord:word}));
}
);
},
execute: function(state) {
var body = context.focusedWindow.document.body;
var resultsDiv = jQuery(body).append("<div id='sztaki_results'>Szótár lekérdezés eredmények:</div>");
this.inserWindowStyle();
if (state.text == "off") {
body.removeEventListener("dblclick", this.translate, false);
return;
}
jQuery(body).bind("dblclick", this, this.translate);
}
})

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.