web-dev-qa-db-ja.com

ウィキペディアのレンズをコンパイルしてインストールするにはどうすればよいですか?

ウィキペディアのレンズをコンパイルしてインストールする方法について チュートリアル を読みましたが、機能しませんでした。

チュートリアルは簡単に聞こえます-編集するはずのファイルにコピーして貼り付けただけです。

私は何度か試しましたが、ここに2つの編集があります

編集1:

import logging
import optparse

import gettext
from gettext import gettext as _
gettext.textdomain('wikipedia')

from singlet.lens import SingleScopeLens, IconViewCategory, ListViewCategory

from wikipedia import wikipediaconfig
import urllib2
import simplejson

class WikipediaLens(SingleScopeLens):

wiki = "http://en.wikipedia.org"
def wikipedia_query(self,search):
    try:
        search = search.replace(" ", "|")
        url = ("%s/w/api.php?action=opensearch&limit=25&format=json&search=%s" % (self.wiki, search))
        results = simplejson.loads(urllib2.urlopen(url).read())
        print "Searching Wikipedia"
        return results[1]
    except (IOError, KeyError, urllib2.URLError, urllib2.HTTPError, simplejson.JSONDecodeError):
        print "Error : Unable to search Wikipedia"
        return []

   class Meta:
    name = 'Wikipedia'
    description = 'Wikipedia Lens'
    search_hint = 'Search Wikipedia'
    icon = 'wikipedia.svg'
    search_on_blank=True

    # TODO: Add your categories
   articles_category = ListViewCategory("Articles", "dialog-information-symbolic")

  def search(self, search, results):
    for article in self.wikipedia_query(search):
        results.append("%s/wiki/%s" % (self.wiki, article),
                    "http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png",
                    self.articles_category,
                    "text/html",
                    article,
                    "Wikipedia Article",
                    "%s/wiki/%s" % (self.wiki, article))
    pass

編集2:

import urllib2
import simplejson


import logging
import optparse

import gettext
from gettext import gettext as _
gettext.textdomain('wikipediaa')

from singlet.lens import SingleScopeLens, IconViewCategory, ListViewCategory

from wikipediaa import wikipediaaconfig

class WikipediaaLens(SingleScopeLens):

wiki = "http://en.wikipedia.org"

def wikipedia_query(self,search):
    try:
        search = search.replace(" ", "|")
        url = ("%s/w/api.php?action=opensearch&limit=25&format=json&search=%s" % (self.wiki, search))
        results = simplejson.loads(urllib2.urlopen(url).read())
        print "Searching Wikipedia"
        return results[1]

    except (IOError, KeyError, urllib2.URLError, urllib2.HTTPError, simplejson.JSONDecodeError):
        print "Error : Unable to search Wikipedia"
        return []
def search(self, search, results):
    for article in self.wikipedia_query(search):
        results.append("%s/wiki/%s" % (self.wiki, article),
                    "http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png",
                    self.articles_category,
                    "text/html",
                    article,
                    "Wikipedia Article",
                    "%s/wiki/%s" % (self.wiki, article))
    pass

    class Meta:
    name = 'Wikipedia'
    description = 'Wikipedia Lens'
    search_hint = 'Search Wikipedia'
    icon = 'wikipedia.svg'
    search_on_blank=True

    # TODO: Add your categories
   articles_category = ListViewCategory("Articles", "dialog-information-symbolic")

    def search(self, search, results):
    # TODO: Add your search results
    results.append('https://wiki.ubuntu.com/Unity/Lenses/Singlet',
                'ubuntu-logo',
                self.example_category,
                "text/html",
                'Learn More',
                'Find out how to write your Unity Lens',
                'https://wiki.ubuntu.com/Unity/Lenses/Singlet')
    pass

だから..編集で何を変更できますか? (誰かが私に編集された編集ファイル全体をくれたら私は感謝します)

1
user49523

あなたの問題は、フォーマットとインデントの問題のケースです。

最初の編集で、インポートアイテムの配置が間違っていました。そして、インデントは正しくありませんでした。 Pythonはインデントについて非常に具体的であり、それが正確でない場合、どこにも到達しません。

2番目の編集には、ウィキペディアの後にaが追加されています。物事を台無しにするのは、コードのいたるところにあるウィキペディアです。また、インデントとフォーマットの問題もあります。

ここ は、チュートリアルのファイルの非常に基本的な作業バージョンです。わたしにはできる。続けて、カスタマイズされた画像やロケールなどの他の機能を追加できます。

プログラミング方法を学ぶためのベストプラクティスは、完成したファイルを要求するのではなく、どこで間違ったのかを尋ねることです。サンプルファイルを提供することで、その余裕を持たせています。


自分でレンズを開発することにあまり興味がないと思います。あなたのために、私はあなたがそれをインストールして、多くの雑用なしでそれを使うことができるように私のPPAにレンズを追加しました。

ターミナルで次のコマンドを入力します。

Sudo apt-add-repository ppa:jokerdino/ppa
Sudo apt-get update
Sudo apt-get install wikipedia

レンズを取り付けたら、Unityからログアウトしてから再度ログインします。これで、Wikipediaレンズを使用する準備が整いました。

:私のPPAのレンズは機能しているだけです。スタイリッシュな画像、エラーメッセージ、ローカライズされたバージョンが含まれているとは思わないでください。これらすべてが必要な場合は、チュートリアルを自分で試して、喜んで追加することをお勧めします。

4
jokerdino