Gnome-deskbar-appletへの追加を書いています

Gnome deskbar-appletは、Gnomeパネルのアプレットで、ファイルの検索、名前の最初の文字を入力してプログラムを実行することができます(Quicksilverまたはポピーのスポットライトを連想させる)

この記事では、このアプレット用の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):
        合格する






どうぞ 検索自体は、 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コードの場所を教えてください。



All Articles