mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
version 0.4.101
This commit is contained in:
parent
94b3ba12f8
commit
d03b2be8d7
@ -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.
|
||||||
|
@ -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>&Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)</string>
|
<string>&Location of ebooks (The ebooks are stored in folders sorted by author and metadata is stored in the file metadata.db)</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -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()
|
||||||
|
@ -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',
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user