この記事では、このアプレット用のPythonアドオンを作成するのがどれほど簡単かを説明します。 Habréでシーカーを作成します。
habr-suggestions.pyファイルをどこかに作成し、お気に入りのエディターで開きます。
まず、「スケルトン」を作成しましょう。
gettextからgettextを_としてインポート import deskbar.interfaces.Module import deskbar.interfaces.Match deskbar.handlers.actions.ShowUrlActionからimport ShowUrlAction deskbar.core.Utilsからimport load_icon ハンドラー= ["HabrSuggestHandler"] クラスHabrSuggestHandler(deskbar.interfaces.Module): INFOS = {'icon':load_icon( "habr.png")、 '名前':_( "Habrahabr.ru Suggest")、 '説明':_(「入力すると、Habrが提案を提供します。」)、 'バージョン': '1.0.0.0'} def __init __(self): deskbar.interfaces.Module .__ init __(self) defクエリ(self、qstring): 合格する
- 必要なモジュールをインポートします
-
HANDLERS = ["HabrSuggestHandler"]
モジュールのどのクラスがメインでHANDLERS = ["HabrSuggestHandler"]
アプレットにHANDLERS = ["HabrSuggestHandler"]
ます -
INFOS = ...
アドオンの説明 -
deskbar.interfaces.Module.__init__(self)
親コンストラクターを呼び出します -
def query(self, qstring):
検索に入るときに呼び出される関数、空の場合
どうぞ 検索自体は、 habrahabr.ru / search /?q =探しているページを介して実行されます。いわゆる「仮定」に機能を追加します。これは、Googleを通じて実装する提案です。 Googleの応答を解析するには、 simplejsonモジュールが必要です。
gettextからgettextを_としてインポート import deskbar.interfaces.Module import deskbar.interfaces.Match deskbar.handlers.actions.ShowUrlActionからimport ShowUrlAction deskbar.core.Utilsからimport load_icon urllibをインポートする 試してください: インポートsimplejson を除く: 合格する ハンドラー= ["HabrSuggestHandler"] GOOGLE_SUGGEST_URL = "http://suggestqueries.google.com/complete/search" HABR_SEARCH_URL = "http://habrahabr.ru/search/" クラスHabrSuggestAction(ShowUrlAction): def __init __(自己、クエリ): ShowUrlAction .__ init __(self、query、GOOGLE_SEARCH_URL + '?' + Urllib.urlencode({'q':query})) def get_verb(self): return _( "<i>%(name)s </ i>を<b> Habrahabr.ru </ b>で検索") クラスGoogleSuggestMatch(deskbar.interfaces.Match): def __init __(self、query、** args): deskbar.interfaces.Match .__ init__(self、name = query、category = "web"、icon = "habr.png"、** args) self._query = query self.add_action(HabrSuggestAction(クエリ)) def get_hash(self、text = None): self._queryを返します クラスHabrSuggestHandler(deskbar.interfaces.Module): INFOS = {'icon':load_icon( "habr.png")、 '名前':_( "Habrahabr.ru Suggest")、 「説明」:_(「入力すると、Habrが提案を提供します。」) 'バージョン': '1.0.0.0'} def __init __(self): deskbar.interfaces.Module .__ init __(self) defクエリ(self、qstring): args = {'output': 'firefox'、 'qu':qstring、 'as_sitesearch': 'http://habrahabr.ru'} url = GOOGLE_SUGGEST_URL + '?' + urllib.urlencode(引数) result = simplejson.load(urllib.urlopen(url)) 結果が「エラー」でない場合: 一致= [] #結果は[[qstring "、["提案1 "、"提案2 "、]]のようになります 結果[1]の提案: matches.append(GoogleSuggestMatch(提案)) self._emit_query_ready(qstring、一致) @staticmethod def has_requirements(): 試してください: インポートsimplejson 真を返す を除く: HabrSuggestHandler.INSTRUCTIONS = _(「Pythonモジュールsimplejsonは使用できません」) 偽を返す
アドオンは簡単にインストールできます。tar.bz2ファイルを.pyファイルと.pngファイルとともに、次のようにDeskbar-applet設定ウィンドウにドラッグアンドドロップするだけです。

それにチェックを入れると動作します:

追加で.tar.bz2をダウンロードします
// Habrのpythonコードの場所を教えてください。