XT@ngel
Anmeldungsdatum: 30. August 2005
Beiträge: Zähle...
|
Hi, es ist kein Projekt sondern ein Handler für das neue deskbar applet (http://raphael.slinckx.net/deskbar/) den ich mir heute geschrieben habe. Installation: 1.) Code in eine Python Datei kopieren 2.) Datei in das Verzeichnis ~/.gnome2/deskbar-applet/handlers/ kopieren 3.) Bei den Einstellungen "LEO English/German Dictionary" die Erweiterung aktivieren. from gettext import gettext as _
import gnomevfs
import deskbar.Handler
LEO_URL = "http://dict.leo.org/?lp=ende&lang=de&searchLoc=0&cmpType=relaxed&relink=on§Hdr=on&spellToler=on&search=%s"
ICO_PATH = "/home/andreas/.gnome2/deskbar-applet/handlers/leo.png"
HANDLERS = {"LeoHandler" : {
"name": _("LEO English/German Dictionary"),
"description": _("LEO English/German Dictionary"),
}
}
class LeoMatch(deskbar.Match.Match):
def __init__(self, handler, name, url, **args):
deskbar.Match.Match.__init__ (self, handler, name=name, **args)
self.url = url
def get_verb(self):
return "Mit <b>Leo.org</b> nach <i>%(name)s</i> suchen"
def action(self, text=None):
gnomevfs.url_show(self.url)
def get_category(self):
return "websearch"
def get_hash(self, text=None):
return self.url
class LeoHandler(deskbar.Handler.Handler):
def __init__(self):
deskbar.Handler.Handler.__init__(self, ICO_PATH)
def query(self, qstring, qmax):
url = LEO_URL % (qstring,)
matches = [LeoMatch(self, qstring, url)]
return matches Viel Spaß Andreas
|
hartl_vienna
Anmeldungsdatum: 6. Mai 2005
Beiträge: 275
Wohnort: Wien
|
|
JimPanse
Anmeldungsdatum: 1. April 2005
Beiträge: 623
|
Kannte diese Deskbar zwar vorher noch nicht, aber ne gute Sache. Werde ich wahrscheinlich noch oft benutzen 😀
|
cjung
Anmeldungsdatum: 5. April 2006
Beiträge: 6
|
Nettes Plugin =) Ein Icon wäre vielleicht noch schön - kann man auch unabhängig von einer externen Quelle gestalten, indem man das Icon über GIMP nach XPM konvertiert und das dann einbindet. Gruß, cjung
|
nilsja
Anmeldungsdatum: 7. Februar 2007
Beiträge: 304
Wohnort: Berlin
|
wie erstellt man denn eine python datei? dateiendung .py ? dadurch hat sich jedenfalls bei mir eine datei mit der Endung pyc. erstellt. unter einstellungen finde ich trotzdem nirgens wo sich das aktivieren ließe...
|
XT@ngel
(Themenstarter)
Anmeldungsdatum: 30. August 2005
Beiträge: 9
|
Ja einfach eine leere Textdatei mit der Endung .py erstellen und den code reinkopieren. Du musst bei den neueren Versionen des deskbar applet die Datei nicht mehr in das handler Verzeichnis kopieren, sondern kannst sie installieren, indem Du die py Datei nimmst und sie per Drag and drop einfach auf den preferences Dialog ziehst. Danach das Applet neu starten und den Handler aktivieren.. MfG Andreas
|
nilsja
Anmeldungsdatum: 7. Februar 2007
Beiträge: 304
Wohnort: Berlin
|
danke XT@ngel für den Hinweis, die Installation hat angeblich erfolgreich funktioniert. Habe dann das Applet beendet und wieder gestartet, aber ich kann in den Einstellungen nirgens einen Leo Handler finden. weist du zufällig wie man einzelne Suchmachinen entfernt bzw. ändert? Answers.com, Yahoo und Creative Commons brauche ich z.B. nie. Und bei den anderen wäre mir auch die .de Variante lieber.
|
XT@ngel
(Themenstarter)
Anmeldungsdatum: 30. August 2005
Beiträge: 9
|
komisch bei mir mit fedora funktioniert der handler einwandfrei .. Die Version ist 2.18.1 zu dem ändern - bei mir gibts ein Verzeichnis /usr/lib/deskbar-applet/handlers darin findest Du alle standard handler wenn du z.B die yahoo.py öffnest, findest Du eine Zeile YAHOO_URL = 'http://api.search.yahoo.com/WebSearchService/V1/webSearch?%s' Durch ein einfaches ändern von com auf de kommst du nicht weiter da der handler die Yahoo search API nutzt irgendwo im code steht eine Zeile (block)
def query(self, qstring):
# Delay before we query so we *don't* make four queries
# "s", "sp", "spa", "spam".
self.check_query_changed (timeout=QUERY_DELAY)
print 'Query yahoo for:', qstring
stream = urllib.urlopen(
YAHOO_URL %
urllib.urlencode(
{'appid': YAHOO_API_KEY,
'query': qstring,
'results': 15}), proxies=get_proxy())
dom = xml.dom.minidom.parse(stream)
print 'Got yahoo answer for:', qstring
........ Dort musst du für die get abfrage den Wert language (de) hinzufügen:
def query(self, qstring):
# Delay before we query so we *don't* make four queries
# "s", "sp", "spa", "spam".
self.check_query_changed (timeout=QUERY_DELAY)
print 'Query yahoo for:', qstring
stream = urllib.urlopen(
YAHOO_URL %
urllib.urlencode(
{'appid': YAHOO_API_KEY,
'query': qstring,
'language':"de",
'results': 15}), proxies=get_proxy())
dom = xml.dom.minidom.parse(stream)
print 'Got yahoo answer for:', qstring
........ Also du siehst, so einfach kann man das nicht für jeden handler sagen, wie er bearbeitet werden muss.
|
Fredo
Anmeldungsdatum: 27. Juni 2005
Beiträge: 5244
Wohnort: Bochum
|
Sehr cool, bei mir funktioniert es auch problemlos. Apropos: Gibt es eigentlich eine Möglichkeit, Einträge in den Deskbar-Ergebnissen komfortabel per Tastatur-Shortcut anzuwählen. Ich finde es irgendwie etwas umständlich, mich dann mühsam mit den Pfeiltasten um gewünschten Eintrag durchzuhangeln, irgendwie etwas wie "Alt+[1-9]" für die ersten neun Einträge wäre wirklich nett. Gibt es da etwas, das ich bisher übersehen habe? Liebe Grüße Fredo
|
n0id
Anmeldungsdatum: 15. Januar 2007
Beiträge: 47
|
Schade, bei mir funktioniert es auch nicht - das Leo.org Plugin taucht in den Einstellungen nicht auf. Ich habe vorher ein anderes Plugin installiert, das ging problemlos, sogar ohne neustart. ☹ Aber vielen Dank für den Tip mit den Suchmaschinen ... mir sind es auch viel zu viele 😉
|
karotium
Anmeldungsdatum: 1. September 2005
Beiträge: 389
|
Super Teil XT@ngel. Da ich von KDE komme hat mir immer leo:suche gefehlt. Jetzt ist Deskbar mein neuer Freund. Danke schön und weiter so.
|
n0id
Anmeldungsdatum: 15. Januar 2007
Beiträge: 47
|
Nochmal zu den Suchmaschinen ... das Plugin lädt ALLE bei Firefox installierten Suchmaschinen, auch die vorinstallierten, obwohl man sie in Firefox im Suchmaschinen Manager entfernt hat ... gibt es einen Weg das zu ändern? Ich nutze nur Google und Wikipedia.... Jona
|
schiggy
Anmeldungsdatum: 11. August 2007
Beiträge: 107
|
wo muss ich das script unter der version 8.10 reintun? lg
schiggy
|
mutetella
Anmeldungsdatum: 21. November 2008
Beiträge: 45
|
Hallo, für alle, die wie ich hier gelandet sind und "einfach nur" über das Deskbar-Applet (ein so geniales Teil!!!!) eine Suche über Leo starten wollen: Es gibt zwischenzeitlich ein Leo-Handler zum herunterladen auf http://daviddraco.blogsome.com/leo-dictionary-for-deskbar-applet Mit rechter Maustaste->Ziel speichern unter... runterladen, weil die Erweiterung .png ist und Firefox deswegen nicht runterlädt, sondern murrt! .... hmmm, warum .png ?? 😕 Jedenfalls erhält man dann 2 Dateien, eine .png und eine .py. Die .png nach /usr/share/pixmaps/ und die .py nach /usr/lib/deskbar-applet/modules-2.20-compatible/ Den Handler noch über Einstellungen aktivieren und schon brüllt der Löwe! Liebe Grüße
mutetella
|
mutetella
Anmeldungsdatum: 21. November 2008
Beiträge: 45
|
Jetzt ist mir beim Arbeiten aufgefallen, dass es leider nicht möglich ist, über die Tastenkombi ALT-F3 ein markiertes Wort an die Deskbar zu übergeben und dort gleich übersetzen zu lassen. Aus dem einfachen Grund, weil die Leo-Deskbar-Erweiterung nur "anspringt", wenn ich dem Suchwort ein 'en-de', 'fr-de' oder 'es-de' voranstelle, um damit die Suchrichtung (Englisch/Deutsch - Französisch/Deutsch - Spanisch/Deutsch) anzugeben. Ich habe die Leo-Erweiterung etwas modifiziert, damit ohne Angabe der Suchrichtung gleich übersetzt wird (Vorgabe ist bei mir Englisch/Deutsch, aber das lässt sich nach belieben ändern). Somit kann ich aus jedem Text heraus ein Wort markieren und über ALT-F3 an die Deskbar übergeben wo das Wort dann auch gleich verwendet, d. h. mit Leo übersetzt wird. Die modifizierte Datei hängt an, einfach ins selbe Verzeichnis wie das Original kopieren und die Deskbar neu starten... Bei Fragen einfach melden! Liebe Grüße
mutetella
- leo-multilang.py (3.3 KiB)
- Download leo-multilang.py
|