Merge from trunk

This commit is contained in:
Sengian 2010-10-24 23:29:33 +02:00
commit ab7de6bbe1
4 changed files with 152 additions and 119 deletions

View File

@ -0,0 +1,60 @@
__license__ = 'GPL v3'
__copyright__ = '2010, Larry Chan <larry1chan at gmail.com>'
'''
Singtao STNN
'''
from calibre.web.feeds.recipes import BasicNewsRecipe
class SingtaoSTNN(BasicNewsRecipe):
title = 'Singtao STNN'
__author__ = 'Larry Chan, larry1chan'
description = 'Chinese News'
oldest_article = 2
max_articles_per_feed = 100
simultaneous_downloads = 5
no_stylesheets = True
#delay = 1
use_embedded_content = False
encoding = 'gb2312'
publisher = 'Singtao STNN'
category = 'news, China, world'
language = 'zh'
publication_type = 'newsportal'
extra_css = ' body{ font-family: Verdana,Helvetica,Arial,sans-serif } .introduction{font-weight: bold} .story-feature{display: block; padding: 0; border: 1px solid; width: 40%; font-size: small} .story-feature h2{text-align: center; text-transform: uppercase} '
masthead_url = 'http://www.stnn.cc/images/0806/logo_080728.gif'
conversion_options = {
'comments' : description
,'tags' : category
,'language' : language
,'publisher' : publisher
,'linearize_tables': True
}
remove_tags_before = dict(name='div', attrs={'class':['page_box']})
remove_tags_after = dict(name='div', attrs={'class':['pagelist']})
keep_only_tags = [
dict(name='div', attrs={'class':['font_title clearfix']}),
dict(name='div', attrs={'id':['content_zoom']})
]
remove_attributes = ['width','height','href']
# for a full list of rss check out [url]http://www.stnn.cc/rss/[/url]
feeds = [ (u'Headline News', u'http://www.stnn.cc/rss/news/index.xml'),
(u'Breaking News', u'http://www.stnn.cc/rss/tufa/index.xml'),
(u'Finance', u'http://www.stnn.cc/rss/fin/index.xml'),
(u'Entertainment', u'http://www.stnn.cc/rss/ent/index.xml'),
(u'International', u'http://www.stnn.cc/rss/guoji/index.xml'),
(u'China', u'http://www.stnn.cc/rss/china/index.xml'),
(u'Opnion', u'http://www.stnn.cc/rss/fin_op/index.xml'),
(u'Blog', u'http://blog.stnn.cc/uploadfile/rssblogtypehotlog.xml'),
(u'Hong Kong', u'http://www.stnn.cc/rss/hongkong/index.xml')
]

View File

@ -1,7 +1,8 @@
<ui version="4.0" > <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class> <class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow" > <widget class="QMainWindow" name="MainWindow">
<property name="geometry" > <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
@ -9,75 +10,51 @@
<height>701</height> <height>701</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy" > <property name="sizePolicy">
<sizepolicy vsizetype="Minimum" hsizetype="Minimum" > <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="windowTitle" > <property name="windowTitle">
<string>LRF Viewer</string> <string>LRF Viewer</string>
</property> </property>
<property name="windowIcon" > <property name="windowIcon">
<iconset resource="../../../../resources/images.qrc" > <iconset>
<normaloff>:/images/viewer.png</normaloff>:/images/viewer.png</iconset> <normaloff>:/images/viewer.png</normaloff>:/images/viewer.png</iconset>
</property> </property>
<widget class="QWidget" name="central_widget" > <widget class="QWidget" name="central_widget">
<property name="geometry" > <layout class="QVBoxLayout">
<rect> <property name="margin">
<x>0</x>
<y>39</y>
<width>601</width>
<height>662</height>
</rect>
</property>
<layout class="QVBoxLayout" >
<property name="margin" >
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<widget class="QStackedWidget" name="stack" > <widget class="QStackedWidget" name="stack">
<property name="currentIndex" > <property name="currentIndex">
<number>0</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="viewer_page" > <widget class="QWidget" name="viewer_page">
<property name="geometry" > <layout class="QGridLayout">
<rect> <property name="margin">
<x>0</x>
<y>0</y>
<width>601</width>
<height>662</height>
</rect>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0" > <item row="0" column="0">
<widget class="BookView" name="graphics_view" > <widget class="BookView" name="graphics_view">
<property name="mouseTracking" > <property name="mouseTracking">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="bar_page" > <widget class="QWidget" name="bar_page">
<property name="geometry" > <layout class="QVBoxLayout">
<rect>
<x>0</x>
<y>0</y>
<width>601</width>
<height>701</height>
</rect>
</property>
<layout class="QVBoxLayout" >
<item> <item>
<spacer> <spacer>
<property name="orientation" > <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" stdset="0" > <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>40</height> <height>40</height>
@ -86,34 +63,34 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QFrame" name="frame_2" > <widget class="QFrame" name="frame_2">
<property name="frameShape" > <property name="frameShape">
<enum>QFrame::StyledPanel</enum> <enum>QFrame::StyledPanel</enum>
</property> </property>
<property name="frameShadow" > <property name="frameShadow">
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout">
<item> <item>
<widget class="QProgressBar" name="progress_bar" > <widget class="QProgressBar" name="progress_bar">
<property name="maximum" > <property name="maximum">
<number>0</number> <number>0</number>
</property> </property>
<property name="value" > <property name="value">
<number>-1</number> <number>-1</number>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="progress_label" > <widget class="QLabel" name="progress_label">
<property name="font" > <property name="font">
<font> <font>
<pointsize>11</pointsize> <pointsize>11</pointsize>
<weight>75</weight> <weight>75</weight>
<bold>true</bold> <bold>true</bold>
</font> </font>
</property> </property>
<property name="text" > <property name="text">
<string>Parsing LRF file</string> <string>Parsing LRF file</string>
</property> </property>
</widget> </widget>
@ -123,10 +100,10 @@
</item> </item>
<item> <item>
<spacer> <spacer>
<property name="orientation" > <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" stdset="0" > <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>40</height> <height>40</height>
@ -140,93 +117,85 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QToolBar" name="tool_bar" > <widget class="QToolBar" name="tool_bar">
<property name="geometry" > <property name="windowTitle">
<rect>
<x>0</x>
<y>0</y>
<width>601</width>
<height>39</height>
</rect>
</property>
<property name="windowTitle" >
<string>LRF Viewer toolbar</string> <string>LRF Viewer toolbar</string>
</property> </property>
<property name="allowedAreas" > <property name="allowedAreas">
<set>Qt::AllToolBarAreas</set> <set>Qt::AllToolBarAreas</set>
</property> </property>
<attribute name="toolBarArea" > <attribute name="toolBarArea">
<enum>TopToolBarArea</enum> <enum>Qt::TopToolBarArea</enum>
</attribute> </attribute>
<attribute name="toolBarBreak" > <attribute name="toolBarBreak">
<bool>true</bool> <bool>false</bool>
</attribute> </attribute>
<addaction name="action_back" /> <addaction name="action_back"/>
<addaction name="action_forward" /> <addaction name="action_forward"/>
<addaction name="separator" /> <addaction name="separator"/>
<addaction name="action_open_ebook" /> <addaction name="action_open_ebook"/>
<addaction name="action_configure" /> <addaction name="action_configure"/>
<addaction name="separator" /> <addaction name="separator"/>
<addaction name="action_previous_page" /> <addaction name="action_previous_page"/>
<addaction name="action_next_page" /> <addaction name="action_next_page"/>
<addaction name="separator" /> <addaction name="separator"/>
</widget> </widget>
<action name="action_next_page" > <action name="action_next_page">
<property name="icon" > <property name="icon">
<iconset resource="../../../../resources/images.qrc" > <iconset>
<normaloff>:/images/next.png</normaloff>:/images/next.png</iconset> <normaloff>:/images/next.png</normaloff>:/images/next.png</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Next Page</string> <string>Next Page</string>
</property> </property>
</action> </action>
<action name="action_previous_page" > <action name="action_previous_page">
<property name="icon" > <property name="icon">
<iconset resource="../../../../resources/images.qrc" > <iconset>
<normaloff>:/images/previous.png</normaloff>:/images/previous.png</iconset> <normaloff>:/images/previous.png</normaloff>:/images/previous.png</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Previous Page</string> <string>Previous Page</string>
</property> </property>
</action> </action>
<action name="action_back" > <action name="action_back">
<property name="icon" > <property name="icon">
<iconset resource="../../../../resources/images.qrc" > <iconset>
<normaloff>:/images/back.png</normaloff>:/images/back.png</iconset> <normaloff>:/images/back.png</normaloff>:/images/back.png</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Back</string> <string>Back</string>
</property> </property>
</action> </action>
<action name="action_forward" > <action name="action_forward">
<property name="icon" > <property name="icon">
<iconset resource="../../../../resources/images.qrc" > <iconset>
<normaloff>:/images/forward.png</normaloff>:/images/forward.png</iconset> <normaloff>:/images/forward.png</normaloff>:/images/forward.png</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Forward</string> <string>Forward</string>
</property> </property>
</action> </action>
<action name="action_next_match" > <action name="action_next_match">
<property name="text" > <property name="text">
<string>Next match</string> <string>Next match</string>
</property> </property>
</action> </action>
<action name="action_open_ebook" > <action name="action_open_ebook">
<property name="icon" > <property name="icon">
<iconset resource="../../../../resources/images.qrc" > <iconset>
<normaloff>:/images/document_open.png</normaloff>:/images/document_open.png</iconset> <normaloff>:/images/document_open.png</normaloff>:/images/document_open.png</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Open ebook</string> <string>Open ebook</string>
</property> </property>
</action> </action>
<action name="action_configure" > <action name="action_configure">
<property name="icon" > <property name="icon">
<iconset resource="../../../../resources/images.qrc" > <iconset>
<normaloff>:/images/config.png</normaloff>:/images/config.png</iconset> <normaloff>:/images/config.png</normaloff>:/images/config.png</iconset>
</property> </property>
<property name="text" > <property name="text">
<string>Configure</string> <string>Configure</string>
</property> </property>
</action> </action>
@ -239,7 +208,7 @@
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="../../../../resources/images.qrc" /> <include location="../../../../resources/images.qrc"/>
</resources> </resources>
<connections/> <connections/>
</ui> </ui>

View File

@ -108,7 +108,7 @@
</size> </size>
</property> </property>
<attribute name="toolBarArea"> <attribute name="toolBarArea">
<enum>LeftToolBarArea</enum> <enum>Qt::LeftToolBarArea</enum>
</attribute> </attribute>
<attribute name="toolBarBreak"> <attribute name="toolBarBreak">
<bool>false</bool> <bool>false</bool>
@ -136,7 +136,7 @@
</widget> </widget>
<widget class="QToolBar" name="tool_bar2"> <widget class="QToolBar" name="tool_bar2">
<attribute name="toolBarArea"> <attribute name="toolBarArea">
<enum>TopToolBarArea</enum> <enum>Qt::TopToolBarArea</enum>
</attribute> </attribute>
<attribute name="toolBarBreak"> <attribute name="toolBarBreak">
<bool>false</bool> <bool>false</bool>

View File

@ -653,7 +653,11 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
self.dirtied(book_ids) self.dirtied(book_ids)
def get_metadata_for_dump(self, idx, remove_from_dirtied=True): def get_metadata_for_dump(self, idx, remove_from_dirtied=True):
path, mi = (None, None)
try: try:
# While a book is being created, the path is empty. Don't bother to
# try to write the opf, because it will go to the wrong folder.
if self.path(idx, index_is_id=True):
path = os.path.join(self.abspath(idx, index_is_id=True), 'metadata.opf') path = os.path.join(self.abspath(idx, index_is_id=True), 'metadata.opf')
mi = self.get_metadata(idx, index_is_id=True) mi = self.get_metadata(idx, index_is_id=True)
# Always set cover to cover.jpg. Even if cover doesn't exist, # Always set cover to cover.jpg. Even if cover doesn't exist,
@ -663,7 +667,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
except: except:
# This almost certainly means that the book has been deleted while # This almost certainly means that the book has been deleted while
# the backup operation sat in the queue. # the backup operation sat in the queue.
path, mi = (None, None) pass
try: try:
# clear the dirtied indicator. The user must put it back if # clear the dirtied indicator. The user must put it back if