Я прочитал учебное руководство о том, как скомпилировать и установить линзу Википедии, но это не работало.
Учебное руководство звучит легким - я просто скопировал и вставил в файл, который был, предполагают для редактирования.
Я попробовал несколько раз и здесь являюсь 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
так.. что я могу изменить в редактировании? (если кто-либо дает мне, весь файл редактирования отредактировал, я буду ценить),
Ваша проблема связана с форматированием и отступами.
При первом редактировании неверно размещались элементы импорта. И отступ не был правильным. Python очень специфичен в отношении отступов, и если он не точен, вы никуда не денетесь.
У второго редактирования есть дополнительный a
после Википедии. Это википедия повсюду в коде, которая все портит. У него также есть некоторые проблемы с отступами и форматированием.
Здесь - очень простая рабочая версия файла из учебника. Меня устраивает. Вы можете продолжить и добавить другие функции, такие как настроенные изображения и локали.
Лучший способ научиться программировать - это не запрашивать заполненный файл, а спрашивать, где вы сделали это неправильно. Я предоставлю вам свободу действий, предоставив вам образец файла.
Я думаю, вы не очень заинтересованы в разработке объектива самостоятельно. Ради вас, я добавил объектив в свой PPA, чтобы вы могли установить его и использовать без особых хлопот.
Введите следующие команды в терминале:
sudo apt-add-repository ppa:jokerdino/ppa
sudo apt-get update
sudo apt-get install wikipedia
После установки объектива выйдите из Unity и вернитесь обратно. Теперь вы должны быть готовы использовать объектив Wikipedia.
Примечание : Объектив в моем PPA просто функционален. Не ожидайте, что у него будут стильные изображения, сообщения об ошибках или локализованные версии. Если вы хотите все это, я рекомендую вам попробовать учебник самостоятельно и добавить их для вашего удовольствия.