如何编译维基百科镜头并安装?

如何编译维基百科镜头并安装?

我读过教程关于如何编译和安装维基百科镜头,但它没有起作用。

本教程听起来很简单——我只是复制并粘贴到要编辑的文件中。

我尝试过几次,以下是 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

您的问题是格式和缩进问题。

第一次编辑将导入项放置错误。并且缩进不正确。Python 对缩进非常严格,如果不准确,您将一事无成。

第二次编辑a在 Wikipedia 后面多了一个内容。代码中到处都是 wikipediaa,这让事情变得混乱。它还存在一些缩进和格式问题。

这里这是教程中文件的一个非常基本的工作版本。对我来说,它很有用。您可以继续添加其他功能,例如自定义图像和语言环境。

学习编程的最佳实践不是要求提供完整的文件,而是问自己哪里做错了。我通过提供示例文件来给你留出余地。


我猜你对自己开发镜头不太感兴趣。为了你好,我已将镜头添加到我的 PPA 中,这样你就可以毫不费力地安装和使用它。

在终端中输入以下命令:

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

安装镜头后,退出 Unity 然后重新登录。现在您就可以使用维基百科镜头了。

笔记:我的 PPA 中的镜头只是功能性的。不要指望它有漂亮的图像、错误消息或本地化版本。如果您想要所有这些,我建议您亲自尝试本教程并添加它们以获得乐趣。

相关内容