version 0.4.101

This commit is contained in:
Kovid Goyal 2008-10-30 20:56:59 -07:00
parent 94b3ba12f8
commit d03b2be8d7
5 changed files with 32 additions and 8 deletions

View File

@ -2,7 +2,7 @@ __license__ = 'GPL v3'
__copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net' __copyright__ = '2008, Kovid Goyal kovid@kovidgoyal.net'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
__appname__ = 'calibre' __appname__ = 'calibre'
__version__ = '0.4.100' __version__ = '0.4.101'
__author__ = "Kovid Goyal <kovid@kovidgoyal.net>" __author__ = "Kovid Goyal <kovid@kovidgoyal.net>"
''' '''
Various run time constants. Various run time constants.

View File

@ -78,7 +78,7 @@
<item> <item>
<widget class="QStackedWidget" name="stackedWidget" > <widget class="QStackedWidget" name="stackedWidget" >
<property name="currentIndex" > <property name="currentIndex" >
<number>1</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="page_3" > <widget class="QWidget" name="page_3" >
<layout class="QVBoxLayout" name="verticalLayout" > <layout class="QVBoxLayout" name="verticalLayout" >
@ -86,6 +86,12 @@
<layout class="QVBoxLayout" name="_2" > <layout class="QVBoxLayout" name="_2" >
<item> <item>
<widget class="QLabel" name="label" > <widget class="QLabel" name="label" >
<property name="maximumSize" >
<size>
<width>16777215</width>
<height>70</height>
</size>
</property>
<property name="text" > <property name="text" >
<string>&amp;Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)</string> <string>&amp;Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)</string>
</property> </property>

View File

@ -7,10 +7,11 @@ __docformat__ = 'restructuredtext en'
HTTP server for remote access to the calibre database. HTTP server for remote access to the calibre database.
''' '''
import sys import sys, logging
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
from calibre.constants import __version__ from calibre.constants import __version__
from calibre.utils.config import StringConfig, Config
class Server(HTTPServer): class Server(HTTPServer):
pass pass
@ -21,19 +22,35 @@ class DBHandler(BaseHTTPRequestHandler):
def set_db(self, db): def set_db(self, db):
self.db = db self.db = db
self.l = logging.getLogger('calibre.server')
self.l.info('calibre-server starting...')
def server(db, port=80): def server(db, opts):
server = Server(('', port), DBHandler) return Server(('', opts.port), DBHandler)
def config(defaults=None):
desc=_('Settings to control the calibre content server')
c = Config('server', desc) if defaults is None else StringConfig(defaults, desc)
c.add_opt('port', ['-p', '--port'], default=8080,
help=_('The port on which to listen. Default is %default'))
return c
def option_parser():
return config().option_parser('%prog '+ _('[options]\n\nStart the calibre content server.'))
def main(args=sys.argv): def main(args=sys.argv):
parser = option_parser()
opts, args = parser.parse_args(args)
from calibre.utils.config import prefs from calibre.utils.config import prefs
from calibre.library.database2 import LibraryDatabase2 from calibre.library.database2 import LibraryDatabase2
db = LibraryDatabase2(prefs['library_path']) db = LibraryDatabase2(prefs['library_path'])
try: try:
print 'Starting server...' print 'Starting server...'
s = server() s = server(db, opts)
s.server_forever() s.serve_forever()
except KeyboardInterrupt: except KeyboardInterrupt:
print 'Server interrupted' print 'Server interrupted'
s.socket.close() s.socket.close()

View File

@ -37,6 +37,7 @@ entry_points = {
'rtf2lrf = calibre.ebooks.lrf.rtf.convert_from:main', 'rtf2lrf = calibre.ebooks.lrf.rtf.convert_from:main',
'web2disk = calibre.web.fetch.simple:main', 'web2disk = calibre.web.fetch.simple:main',
'feeds2disk = calibre.web.feeds.main:main', 'feeds2disk = calibre.web.feeds.main:main',
'calibre-server = calibre.library.server:main',
'feeds2lrf = calibre.ebooks.lrf.feeds.convert_from:main', 'feeds2lrf = calibre.ebooks.lrf.feeds.convert_from:main',
'feeds2epub = calibre.ebooks.epub.from_feeds:main', 'feeds2epub = calibre.ebooks.epub.from_feeds:main',
'web2lrf = calibre.ebooks.lrf.web.convert_from:main', 'web2lrf = calibre.ebooks.lrf.web.convert_from:main',

View File

@ -502,7 +502,7 @@ class BasicNewsRecipe(object, LoggingInterface):
head = soup.find('body') head = soup.find('body')
if not head: if not head:
head = soup.find(True) head = soup.find(True)
style = BeautifulSoup(u'<style type="text/css" title="override_css">%s</style>'%(self.template_css +'\n\n'+self.extra_css)).find('style') style = BeautifulSoup(u'<style type="text/css" title="override_css">%s</style>'%(self.template_css +'\n\n'+(self.extra_css if self.extra_css else ''))).find('style')
head.insert(len(head.contents), style) head.insert(len(head.contents), style)
if first_fetch and job_info: if first_fetch and job_info:
url, f, a, feed_len = job_info url, f, a, feed_len = job_info