diff --git a/src/calibre/gui2/main.py b/src/calibre/gui2/main.py index 2241c5bf07..adf2f5b8de 100644 --- a/src/calibre/gui2/main.py +++ b/src/calibre/gui2/main.py @@ -418,8 +418,10 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI): try: db = LibraryDatabase2(self.library_path) except Exception, err: + import traceback error_dialog(self, _('Bad database location'), - unicode(err)).exec_() + _('Bad database location')+':'+self.library_path, + det_msg=traceback.format_exc()).exec_() dir = unicode(QFileDialog.getExistingDirectory(self, _('Choose a location for your ebook library.'), os.path.expanduser('~'))) diff --git a/src/calibre/trac/plugins/templates/linux.html b/src/calibre/trac/plugins/templates/linux.html index b948dccc74..4bbd15954b 100644 --- a/src/calibre/trac/plugins/templates/linux.html +++ b/src/calibre/trac/plugins/templates/linux.html @@ -91,6 +91,10 @@ sudo python -c "import urllib2; exec urllib2.urlopen('http://calibre.kovidgoyal. You must have xdg-utils installed on your system before running the installer. +
  • + For device automounting to work, you must have the pmount + package installed on your system. +
  • On a 64bit machine, you must have 32-bit versions of common libraries like X11, freetype, fontconfig, diff --git a/src/calibre/web/feeds/recipes/recipe_estadao.py b/src/calibre/web/feeds/recipes/recipe_estadao.py index 4b23fdb235..994aafadac 100644 --- a/src/calibre/web/feeds/recipes/recipe_estadao.py +++ b/src/calibre/web/feeds/recipes/recipe_estadao.py @@ -1,62 +1,62 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' -''' -estadao.com.br -''' - +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Darko Miletic ' +''' +estadao.com.br +''' + from calibre.web.feeds.news import BasicNewsRecipe -class Estadao(BasicNewsRecipe): - title = 'O Estado de S. Paulo' - __author__ = 'Darko Miletic' - description = 'News from Brasil in Portugese' - publisher = 'O Estado de S. Paulo' - category = 'news, politics, Brasil' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - encoding = 'utf8' - cover_url = 'http://www.estadao.com.br/img/logo_estadao.png' - remove_javascript = True - - html2lrf_options = [ +class Estadao(BasicNewsRecipe): + title = 'O Estado de S. Paulo' + __author__ = 'Darko Miletic' + description = 'News from Brasil in Portuguese' + publisher = 'O Estado de S. Paulo' + category = 'news, politics, Brasil' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + encoding = 'utf8' + cover_url = 'http://www.estadao.com.br/img/logo_estadao.png' + remove_javascript = True + + html2lrf_options = [ '--comment', description - , '--category', category - , '--publisher', publisher - ] - - html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' - - keep_only_tags = [dict(name='div', attrs={'id':'c1'})] - - remove_tags = [ - dict(name=['script','object','form','ul']) - ,dict(name='div', attrs={'id':['votacao','estadaohoje']}) - ,dict(name='p', attrs={'id':'ctrl_texto'}) - ,dict(name='p', attrs={'class':'texto'}) - ] - - feeds = [ - (u'Manchetes Estadao', u'http://www.estadao.com.br/rss/manchetes.xml') - ,(u'Ultimas noticias', u'http://www.estadao.com.br/rss/ultimas.xml') - ,(u'Nacional', u'http://www.estadao.com.br/rss/nacional.xml') - ,(u'Internacional', u'http://www.estadao.com.br/rss/internacional.xml') - ,(u'Cidades', u'http://www.estadao.com.br/rss/cidades.xml') - ,(u'Esportes', u'http://www.estadao.com.br/rss/esportes.xml') - ,(u'Arte & Lazer', u'http://www.estadao.com.br/rss/arteelazer.xml') - ,(u'Economia', u'http://www.estadao.com.br/rss/economia.xml') - ,(u'Vida &', u'http://www.estadao.com.br/rss/vidae.xml') - ] - - def preprocess_html(self, soup): - ifr = soup.find('iframe') - if ifr: - ifr.extract() - for item in soup.findAll(style=True): - del item['style'] - return soup - - language = _('Portugese') \ No newline at end of file + , '--category', category + , '--publisher', publisher + ] + + html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' + + keep_only_tags = [dict(name='div', attrs={'id':'c1'})] + + remove_tags = [ + dict(name=['script','object','form','ul']) + ,dict(name='div', attrs={'id':['votacao','estadaohoje']}) + ,dict(name='p', attrs={'id':'ctrl_texto'}) + ,dict(name='p', attrs={'class':'texto'}) + ] + + feeds = [ + (u'Manchetes Estadao', u'http://www.estadao.com.br/rss/manchetes.xml') + ,(u'Ultimas noticias', u'http://www.estadao.com.br/rss/ultimas.xml') + ,(u'Nacional', u'http://www.estadao.com.br/rss/nacional.xml') + ,(u'Internacional', u'http://www.estadao.com.br/rss/internacional.xml') + ,(u'Cidades', u'http://www.estadao.com.br/rss/cidades.xml') + ,(u'Esportes', u'http://www.estadao.com.br/rss/esportes.xml') + ,(u'Arte & Lazer', u'http://www.estadao.com.br/rss/arteelazer.xml') + ,(u'Economia', u'http://www.estadao.com.br/rss/economia.xml') + ,(u'Vida &', u'http://www.estadao.com.br/rss/vidae.xml') + ] + + def preprocess_html(self, soup): + ifr = soup.find('iframe') + if ifr: + ifr.extract() + for item in soup.findAll(style=True): + del item['style'] + return soup + + language = _('Portuguese') diff --git a/src/calibre/web/feeds/recipes/recipe_jb_online.py b/src/calibre/web/feeds/recipes/recipe_jb_online.py index 4ac4b70836..c597615c43 100644 --- a/src/calibre/web/feeds/recipes/recipe_jb_online.py +++ b/src/calibre/web/feeds/recipes/recipe_jb_online.py @@ -1,47 +1,47 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' -''' -jbonline.terra.com.br -''' - +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Darko Miletic ' +''' +jbonline.terra.com.br +''' + from calibre.web.feeds.news import BasicNewsRecipe -class JBOnline(BasicNewsRecipe): - title = 'Jornal Brasileiro Online' - __author__ = 'Darko Miletic' - description = 'News from Brasil' - publisher = 'Jornal Brasileiro' - category = 'news, politics, Brasil' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - encoding = 'cp1252' - cover_url = 'http://jbonline.terra.com.br/img/logo_01.gif' - remove_javascript = True - - html2lrf_options = [ +class JBOnline(BasicNewsRecipe): + title = 'Jornal Brasileiro Online' + __author__ = 'Darko Miletic' + description = 'News from Brasil' + publisher = 'Jornal Brasileiro' + category = 'news, politics, Brasil' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + encoding = 'cp1252' + cover_url = 'http://jbonline.terra.com.br/img/logo_01.gif' + remove_javascript = True + + html2lrf_options = [ '--comment', description - , '--category', category - , '--publisher', publisher - ] - - html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' - - keep_only_tags = [dict(name='div', attrs={'id':'corpoNoticia'})] - - remove_tags = [dict(name=['script','object','form'])] - - feeds = [(u'Todos as editorias', u'http://jbonline.terra.com.br/extra/rsstrjb.xml')] - - def preprocess_html(self, soup): - ifr = soup.find('iframe') - if ifr: - ifr.extract() - for item in soup.findAll(style=True): - del item['style'] - return soup - - language = _('Portugese') \ No newline at end of file + , '--category', category + , '--publisher', publisher + ] + + html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' + + keep_only_tags = [dict(name='div', attrs={'id':'corpoNoticia'})] + + remove_tags = [dict(name=['script','object','form'])] + + feeds = [(u'Todos as editorias', u'http://jbonline.terra.com.br/extra/rsstrjb.xml')] + + def preprocess_html(self, soup): + ifr = soup.find('iframe') + if ifr: + ifr.extract() + for item in soup.findAll(style=True): + del item['style'] + return soup + + language = _('Portuguese') diff --git a/src/calibre/web/feeds/recipes/recipe_o_globo.py b/src/calibre/web/feeds/recipes/recipe_o_globo.py index f4f78d54b8..3bf2a98779 100644 --- a/src/calibre/web/feeds/recipes/recipe_o_globo.py +++ b/src/calibre/web/feeds/recipes/recipe_o_globo.py @@ -1,69 +1,69 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' -''' -oglobo.globo.com -''' - +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = '2009, Darko Miletic ' +''' +oglobo.globo.com +''' + from calibre.web.feeds.news import BasicNewsRecipe -class OGlobo(BasicNewsRecipe): - title = 'O Globo' - __author__ = 'Darko Miletic' - description = 'News from Brasil' - publisher = 'O Globo' - category = 'news, politics, Brasil' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - encoding = 'cp1252' - cover_url = 'http://oglobo.globo.com/_img/o-globo.png' - remove_javascript = True - - html2lrf_options = [ +class OGlobo(BasicNewsRecipe): + title = 'O Globo' + __author__ = 'Darko Miletic' + description = 'News from Brasil' + publisher = 'O Globo' + category = 'news, politics, Brasil' + oldest_article = 2 + max_articles_per_feed = 100 + no_stylesheets = True + use_embedded_content = False + encoding = 'cp1252' + cover_url = 'http://oglobo.globo.com/_img/o-globo.png' + remove_javascript = True + + html2lrf_options = [ '--comment', description - , '--category', category - , '--publisher', publisher - ] - - html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' - - keep_only_tags = [dict(name='div', attrs={'id':'ltintb'})] - - remove_tags = [ - dict(name='script') - ,dict(name='object') - ,dict(name='form') - ,dict(name='div', attrs={'id':['linksPatGoogle','rdpm','cor','com','env','rcm_st']}) - ,dict(name='div', attrs={'class':'box-zap-anu2'}) - ,dict(name='a') - ,dict(name='link') - ] - - - feeds = [ - (u'Todos os canais', u'http://oglobo.globo.com/rss/plantao.xml') - ,(u'Ciencia', u'http://oglobo.globo.com/rss/plantaociencia.xml') - ,(u'Educacao', u'http://oglobo.globo.com/rss/plantaoeducacao.xml') - ,(u'Opiniao', u'http://oglobo.globo.com/rss/plantaoopiniao.xml') - ,(u'Sao Paulo', u'http://oglobo.globo.com/rss/plantaosaopaulo.xml') - ,(u'Viagem', u'http://oglobo.globo.com/rss/plantaoviagem.xml') - ,(u'Cultura', u'http://oglobo.globo.com/rss/plantaocultura.xml') - ,(u'Esportes', u'http://oglobo.globo.com/rss/plantaoesportes.xml') - ,(u'Mundo', u'http://oglobo.globo.com/rss/plantaomundo.xml') - ,(u'Pais', u'http://oglobo.globo.com/rss/plantaopais.xml') - ,(u'Rio', u'http://oglobo.globo.com/rss/plantaorio.xml') - ,(u'Saude', u'http://oglobo.globo.com/rss/plantaosaude.xml') - ,(u'Viver Melhor', u'http://oglobo.globo.com/rss/plantaovivermelhor.xml') - ,(u'Economia', u'http://oglobo.globo.com/rss/plantaoeconomia.xml') - ,(u'Tecnologia', u'http://oglobo.globo.com/rss/plantaotecnologia.xml') - ] - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - return soup - - language = _('Portugese') \ No newline at end of file + , '--category', category + , '--publisher', publisher + ] + + html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"' + + keep_only_tags = [dict(name='div', attrs={'id':'ltintb'})] + + remove_tags = [ + dict(name='script') + ,dict(name='object') + ,dict(name='form') + ,dict(name='div', attrs={'id':['linksPatGoogle','rdpm','cor','com','env','rcm_st']}) + ,dict(name='div', attrs={'class':'box-zap-anu2'}) + ,dict(name='a') + ,dict(name='link') + ] + + + feeds = [ + (u'Todos os canais', u'http://oglobo.globo.com/rss/plantao.xml') + ,(u'Ciencia', u'http://oglobo.globo.com/rss/plantaociencia.xml') + ,(u'Educacao', u'http://oglobo.globo.com/rss/plantaoeducacao.xml') + ,(u'Opiniao', u'http://oglobo.globo.com/rss/plantaoopiniao.xml') + ,(u'Sao Paulo', u'http://oglobo.globo.com/rss/plantaosaopaulo.xml') + ,(u'Viagem', u'http://oglobo.globo.com/rss/plantaoviagem.xml') + ,(u'Cultura', u'http://oglobo.globo.com/rss/plantaocultura.xml') + ,(u'Esportes', u'http://oglobo.globo.com/rss/plantaoesportes.xml') + ,(u'Mundo', u'http://oglobo.globo.com/rss/plantaomundo.xml') + ,(u'Pais', u'http://oglobo.globo.com/rss/plantaopais.xml') + ,(u'Rio', u'http://oglobo.globo.com/rss/plantaorio.xml') + ,(u'Saude', u'http://oglobo.globo.com/rss/plantaosaude.xml') + ,(u'Viver Melhor', u'http://oglobo.globo.com/rss/plantaovivermelhor.xml') + ,(u'Economia', u'http://oglobo.globo.com/rss/plantaoeconomia.xml') + ,(u'Tecnologia', u'http://oglobo.globo.com/rss/plantaotecnologia.xml') + ] + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup + + language = _('Portuguese') diff --git a/src/calibre/web/feeds/recipes/recipe_publico.py b/src/calibre/web/feeds/recipes/recipe_publico.py index 34c89ccb6c..a3406ec83f 100644 --- a/src/calibre/web/feeds/recipes/recipe_publico.py +++ b/src/calibre/web/feeds/recipes/recipe_publico.py @@ -11,23 +11,23 @@ from calibre.web.feeds.news import BasicNewsRecipe import re class Publico(BasicNewsRecipe): - title = u'P\xc3\xbablico' + title = u'P\xfablico' __author__ = 'David Rodrigues' oldest_article = 1 max_articles_per_feed = 30 encoding='utf-8' no_stylesheets = True - language = _('Portugese') + language = _('Portuguese') preprocess_regexps = [(re.compile(u"\uFFFD", re.DOTALL|re.IGNORECASE), lambda match: ''),] feeds = [ (u'Geral', u'http://feeds.feedburner.com/PublicoUltimaHora'), (u'Internacional', u'http://www.publico.clix.pt/rss.ashx?idCanal=11'), - (u'Pol\xc3\xadtica', u'http://www.publico.clix.pt/rss.ashx?idCanal=12'), - (u'Ci\xc3\xaancias', u'http://www.publico.clix.pt/rss.ashx?idCanal=13'), + (u'Pol\xedtica', u'http://www.publico.clix.pt/rss.ashx?idCanal=12'), + (u'Ci\xcencias', u'http://www.publico.clix.pt/rss.ashx?idCanal=13'), (u'Desporto', u'http://desporto.publico.pt/rss.ashx'), (u'Economia', u'http://www.publico.clix.pt/rss.ashx?idCanal=57'), - (u'Educa\xc3\xa7\xc3\xa3o', u'http://www.publico.clix.pt/rss.ashx?idCanal=58'), + (u'Educa\xe7\xe3o', u'http://www.publico.clix.pt/rss.ashx?idCanal=58'), (u'Local', u'http://www.publico.clix.pt/rss.ashx?idCanal=59'), (u'Media e Tecnologia', u'http://www.publico.clix.pt/rss.ashx?idCanal=61'), (u'Sociedade', u'http://www.publico.clix.pt/rss.ashx?idCanal=62')