zUy?q%E32N!Yir2O&m({3DstDa0i{WIWDKG_$h1D$1We!>`rF$;BA8fQ1k4!t
s>?sJqzW*?M6Vd1!`R8T+2Mhpz0Py&o=d{A2MF0Q*07*qoM6N<$g5NItGynhq
literal 0
HcmV?d00001
diff --git a/recipes/ziuaveche.recipe b/recipes/ziuaveche.recipe
new file mode 100644
index 0000000000..61df768e0a
--- /dev/null
+++ b/recipes/ziuaveche.recipe
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+#!/usr/bin/env python
+
+__license__ = 'GPL v3'
+__copyright__ = u'2011, Silviu Cotoar\u0103'
+'''
+ziuaveche.ro
+'''
+
+from calibre.web.feeds.news import BasicNewsRecipe
+
+class ZiuaVeche(BasicNewsRecipe):
+ title = u'Ziua Veche'
+ __author__ = u'Silviu Cotoar\u0103'
+ description = 'Cotidian online'
+ publisher = 'Ziua Veche'
+ oldest_article = 5
+ language = 'ro'
+ max_articles_per_feed = 100
+ no_stylesheets = True
+ use_embedded_content = False
+ category = 'Ziare,Cotidiane,Stiri'
+ encoding = 'utf-8'
+ cover_url = 'http://www.ziuaveche.ro/wp-content/themes/tema/images/zv-logo-alb-old.png'
+
+ conversion_options = {
+ 'comments' : description
+ ,'tags' : category
+ ,'language' : language
+ ,'publisher' : publisher
+ }
+
+
+ keep_only_tags = [
+ dict(name='div', attrs={'id':'singlePost'})
+
+ ]
+
+ remove_tags = [
+ dict(name='div', attrs={'id':'LikePluginPagelet'})
+
+ ]
+
+ remove_tags_after = [
+ dict(name='div', attrs={'id':'LikePluginPagelet'})
+ ]
+
+ feeds = [
+ (u'Feeds', u'http://www.ziuaveche.ro/feed/rss')
+ ]
+
+ def preprocess_html(self, soup):
+ return self.adeify_images(soup)
From 85e1100db35f9ddfaffcec619b67e6bd272c749b Mon Sep 17 00:00:00 2001
From: GRiker
Date: Mon, 9 May 2011 17:44:33 -0600
Subject: [PATCH 13/15] Added support for custom icons in MessageBox
---
src/calibre/gui2/dialogs/message_box.py | 27 +++++++++++++++----------
1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/src/calibre/gui2/dialogs/message_box.py b/src/calibre/gui2/dialogs/message_box.py
index f9354a0cfc..fdec19dc69 100644
--- a/src/calibre/gui2/dialogs/message_box.py
+++ b/src/calibre/gui2/dialogs/message_box.py
@@ -19,17 +19,23 @@ class MessageBox(QDialog, Ui_Dialog): # {{{
INFO = 2
QUESTION = 3
- def __init__(self, type_, title, msg, det_msg='', show_copy_button=True,
- parent=None):
+ def __init__(self, type_, title, msg,
+ det_msg='',
+ q_icon=None,
+ show_copy_button=True,
+ parent=None):
QDialog.__init__(self, parent)
- icon = {
- self.ERROR : 'error',
- self.WARNING: 'warning',
- self.INFO: 'information',
- self.QUESTION: 'question',
- }[type_]
- icon = 'dialog_%s.png'%icon
- self.icon = QIcon(I(icon))
+ if q_icon is None:
+ icon = {
+ self.ERROR : 'error',
+ self.WARNING: 'warning',
+ self.INFO: 'information',
+ self.QUESTION: 'question',
+ }[type_]
+ icon = 'dialog_%s.png'%icon
+ self.icon = QIcon(I(icon))
+ else:
+ self.icon = q_icon
self.setupUi(self)
self.setWindowTitle(title)
@@ -44,7 +50,6 @@ class MessageBox(QDialog, Ui_Dialog): # {{{
self.bb.ActionRole)
self.ctc_button.clicked.connect(self.copy_to_clipboard)
-
self.show_det_msg = _('Show &details')
self.hide_det_msg = _('Hide &details')
self.det_msg_toggle = self.bb.addButton(self.show_det_msg, self.bb.ActionRole)
From c11164f9820faef3a9eb235033e51daf7c0a6e60 Mon Sep 17 00:00:00 2001
From: GRiker
Date: Mon, 9 May 2011 17:58:16 -0600
Subject: [PATCH 14/15] Added Product IDs for iPad2 (Wifi) and iPad2 (CDMA)
---
src/calibre/devices/apple/driver.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/calibre/devices/apple/driver.py b/src/calibre/devices/apple/driver.py
index 922afc4338..b7d5ac36d2 100644
--- a/src/calibre/devices/apple/driver.py
+++ b/src/calibre/devices/apple/driver.py
@@ -203,9 +203,11 @@ class ITUNES(DriverBase):
# 0x1294 iPhone 3GS
# 0x1297 iPhone 4
# 0x129a iPad
- # 0x12a2 iPad2
+ # 0x129f iPad2 (WiFi)
+ # 0x12a2 iPad2 (GSM)
+ # 0x12a3 iPad2 (CDMA)
VENDOR_ID = [0x05ac]
- PRODUCT_ID = [0x1292,0x1293,0x1294,0x1297,0x1299,0x129a,0x129f,0x12a2]
+ PRODUCT_ID = [0x1292,0x1293,0x1294,0x1297,0x1299,0x129a,0x129f,0x12a2,0x12a3]
BCD = [0x01]
# Plugboard ID
From 778eaffa972123db37a2bba952442e94c07c296c Mon Sep 17 00:00:00 2001
From: John Schember
Date: Mon, 9 May 2011 22:11:23 -0400
Subject: [PATCH 15/15] HTMLZ: Fix covers again...
---
src/calibre/ebooks/htmlz/input.py | 16 ++++++++--------
src/calibre/ebooks/metadata/extz.py | 20 ++++++++------------
2 files changed, 16 insertions(+), 20 deletions(-)
diff --git a/src/calibre/ebooks/htmlz/input.py b/src/calibre/ebooks/htmlz/input.py
index d083fcc4ab..743d8e53eb 100644
--- a/src/calibre/ebooks/htmlz/input.py
+++ b/src/calibre/ebooks/htmlz/input.py
@@ -7,7 +7,6 @@ __copyright__ = '2011, John Schember '
__docformat__ = 'restructuredtext en'
import os
-import posixpath
from calibre import guess_type, walk
from calibre.customize.conversion import InputFormatPlugin
@@ -74,22 +73,23 @@ class HTMLZInput(InputFormatPlugin):
meta_info_to_oeb_metadata(mi, oeb.metadata, log)
# Get the cover path from the OPF.
- cover_href = None
+ cover_path = None
opf = None
for x in walk('.'):
if os.path.splitext(x)[1].lower() in ('.opf'):
opf = x
break
if opf:
- opf = OPF(opf)
- cover_href = posixpath.relpath(opf.cover, os.path.dirname(stream.name))
+ opf = OPF(opf, basedir=os.getcwd())
+ cover_path = opf.raster_cover
# Set the cover.
- if cover_href:
+ if cover_path:
cdata = None
- with open(cover_href, 'rb') as cf:
+ with open(os.path.join(os.getcwd(), cover_path), 'rb') as cf:
cdata = cf.read()
- id, href = oeb.manifest.generate('cover', cover_href)
- oeb.manifest.add(id, href, guess_type(cover_href)[0], data=cdata)
+ cover_name = os.path.basename(cover_path)
+ id, href = oeb.manifest.generate('cover', cover_name)
+ oeb.manifest.add(id, href, guess_type(cover_name)[0], data=cdata)
oeb.guide.add('cover', 'Cover', href)
return oeb
diff --git a/src/calibre/ebooks/metadata/extz.py b/src/calibre/ebooks/metadata/extz.py
index 021450fca5..f3725027a9 100644
--- a/src/calibre/ebooks/metadata/extz.py
+++ b/src/calibre/ebooks/metadata/extz.py
@@ -8,12 +8,11 @@ Read meta information from extZ (TXTZ, HTMLZ...) files.
'''
import os
-import posixpath
from cStringIO import StringIO
from calibre.ebooks.metadata import MetaInformation
-from calibre.ebooks.metadata.opf2 import OPF, metadata_to_opf
+from calibre.ebooks.metadata.opf2 import OPF
from calibre.ptempfile import PersistentTemporaryFile
from calibre.utils.zipfile import ZipFile, safe_replace
@@ -31,9 +30,9 @@ def get_metadata(stream, extract_cover=True):
opf = OPF(opf_stream)
mi = opf.to_book_metadata()
if extract_cover:
- cover_href = posixpath.relpath(opf.cover, os.path.dirname(stream.name))
+ cover_href = opf.raster_cover
if cover_href:
- mi.cover_data = ('jpg', zf.read(cover_href))
+ mi.cover_data = (os.path.splitext(cover_href)[1], zf.read(cover_href))
except:
return mi
return mi
@@ -59,18 +58,15 @@ def set_metadata(stream, mi):
except:
pass
if new_cdata:
- cover = opf.cover
- if not cover:
- cover = 'cover.jpg'
- cpath = posixpath.join(posixpath.dirname(opf_path), cover)
+ cpath = opf.raster_cover
+ if not cpath:
+ cpath = 'cover.jpg'
new_cover = _write_new_cover(new_cdata, cpath)
replacements[cpath] = open(new_cover.name, 'rb')
- mi.cover = cover
+ mi.cover = cpath
# Update the metadata.
- old_mi = opf.to_book_metadata()
- old_mi.smart_update(mi)
- opf.smart_update(metadata_to_opf(old_mi), replace_metadata=True)
+ opf.smart_update(mi, replace_metadata=True)
newopf = StringIO(opf.render())
safe_replace(stream, opf_path, newopf, extra_replacements=replacements, add_missing=True)