mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
merge from trunk
This commit is contained in:
commit
1af1a2a873
3385
resources/content_server/monocle.js
Normal file
3385
resources/content_server/monocle.js
Normal file
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2009, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '30 October 2010, Jordi Balcells based on an earlier recipe by Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
elperiodico.cat
|
elperiodico.cat
|
||||||
'''
|
'''
|
||||||
@ -12,8 +12,8 @@ from calibre.ebooks.BeautifulSoup import Tag
|
|||||||
|
|
||||||
class ElPeriodico_cat(BasicNewsRecipe):
|
class ElPeriodico_cat(BasicNewsRecipe):
|
||||||
title = 'El Periodico de Catalunya'
|
title = 'El Periodico de Catalunya'
|
||||||
__author__ = 'Darko Miletic'
|
__author__ = 'Jordi Balcells/Darko Miletic'
|
||||||
description = 'Noticias desde Catalunya'
|
description = 'Noticies des de Catalunya'
|
||||||
publisher = 'elperiodico.cat'
|
publisher = 'elperiodico.cat'
|
||||||
category = 'news, politics, Spain, Catalunya'
|
category = 'news, politics, Spain, Catalunya'
|
||||||
oldest_article = 2
|
oldest_article = 2
|
||||||
@ -33,15 +33,25 @@ class ElPeriodico_cat(BasicNewsRecipe):
|
|||||||
|
|
||||||
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"'
|
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"'
|
||||||
|
|
||||||
feeds = [(u"Tota l'edició", u'http://www.elperiodico.cat/rss.asp?id=46')]
|
feeds = [(u'Portada', u'http://www.elperiodico.cat/ca/rss/rss_portada.xml'),
|
||||||
|
(u'Internacional', u'http://www.elperiodico.cat/ca/rss/internacional/rss.xml'),
|
||||||
|
(u'Societat', u'http://www.elperiodico.cat/ca/rss/societat/rss.xml'),
|
||||||
|
(u'Ci\xe8ncia i tecnologia', u'http://www.elperiodico.cat/ca/rss/ciencia-i-tecnologia/rss.xml'),
|
||||||
|
(u'Esports', u'http://www.elperiodico.cat/ca/rss/esports/rss.xml'),
|
||||||
|
(u'Gent', u'http://www.elperiodico.cat/ca/rss/gent/rss.xml'),
|
||||||
|
(u'Opini\xf3', u'http://www.elperiodico.cat/ca/rss/opinio/rss.xml'),
|
||||||
|
(u'Pol\xedtica', u'http://www.elperiodico.cat/ca/rss/politica/rss.xml'),
|
||||||
|
(u'Barcelona', u'http://www.elperiodico.cat/ca/rss/barcelona/rss.xml'),
|
||||||
|
(u'Economia', u'http://www.elperiodico.cat/ca/rss/economia/rss.xml'),
|
||||||
|
(u'Cultura i espectacles', u'http://www.elperiodico.cat/ca/rss/cultura-i-espectacles/rss.xml'),
|
||||||
|
(u'Tele', u'http://www.elperiodico.cat/ca/rss/tele/rss.xml')]
|
||||||
|
|
||||||
|
|
||||||
keep_only_tags = [dict(name='div', attrs={'id':'noticia'})]
|
keep_only_tags = [dict(name='div', attrs={'class':'titularnoticia'}),
|
||||||
|
dict(name='div', attrs={'class':'noticia_completa'})]
|
||||||
|
|
||||||
remove_tags = [
|
remove_tags = [dict(name='div', attrs={'class':['opcionb','opcionb last','columna_noticia']}),
|
||||||
dict(name=['object','link','script'])
|
dict(name='span', attrs={'class':'opcionesnoticia'})
|
||||||
,dict(name='ul',attrs={'class':'herramientasDeNoticia'})
|
|
||||||
,dict(name='div', attrs={'id':'inferiores'})
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def print_version(self, url):
|
def print_version(self, url):
|
||||||
|
@ -2,17 +2,17 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
__license__ = 'GPL v3'
|
__license__ = 'GPL v3'
|
||||||
__copyright__ = '2009, Darko Miletic <darko.miletic at gmail.com>'
|
__copyright__ = '30 October 2010, Jordi Balcells based on an earlier recipe by Darko Miletic <darko.miletic at gmail.com>'
|
||||||
'''
|
'''
|
||||||
elperiodico.com
|
elperiodico.cat
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
from calibre.ebooks.BeautifulSoup import Tag
|
from calibre.ebooks.BeautifulSoup import Tag
|
||||||
|
|
||||||
class ElPeriodico_esp(BasicNewsRecipe):
|
class ElPeriodico_cat(BasicNewsRecipe):
|
||||||
title = 'El Periodico de Catalunya'
|
title = 'El Periodico de Catalunya'
|
||||||
__author__ = 'Darko Miletic'
|
__author__ = 'Jordi Balcells/Darko Miletic'
|
||||||
description = 'Noticias desde Catalunya'
|
description = 'Noticias desde Catalunya'
|
||||||
publisher = 'elperiodico.com'
|
publisher = 'elperiodico.com'
|
||||||
category = 'news, politics, Spain, Catalunya'
|
category = 'news, politics, Spain, Catalunya'
|
||||||
@ -33,15 +33,25 @@ class ElPeriodico_esp(BasicNewsRecipe):
|
|||||||
|
|
||||||
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"'
|
html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"'
|
||||||
|
|
||||||
feeds = [(u"Toda la edición", u'http://www.elperiodico.com/rss.asp?id=46')]
|
feeds = [(u'Portada', u'http://www.elperiodico.com/es/rss/rss_portada.xml'),
|
||||||
|
(u'Internacional', u'http://elperiodico.com/es/rss/internacional/rss.xml'),
|
||||||
|
(u'Sociedad', u'http://elperiodico.com/es/rss/sociedad/rss.xml'),
|
||||||
|
(u'Ciencia y Tecnolog\xeda', u'http://elperiodico.com/es/rss/ciencia-y-tecnologia/rss.xml'),
|
||||||
|
(u'Deportes', u'http://elperiodico.com/es/rss/deportes/rss.xml'),
|
||||||
|
(u'Gente', u'http://elperiodico.com/es/rss/gente/rss.xml'),
|
||||||
|
(u'Opini\xf3n', u'http://elperiodico.com/es/rss/opinion/rss.xml'),
|
||||||
|
(u'Pol\xedtica', u'http://elperiodico.com/es/rss/politica/rss.xml'),
|
||||||
|
(u'Barcelona', u'http://elperiodico.com/es/rss/barcelona/rss.xml'),
|
||||||
|
(u'Econom\xeda', u'http://elperiodico.com/es/rss/economia/rss.xml'),
|
||||||
|
(u'Cultura y espect\xe1culos', u'http://elperiodico.com/es/rss/cultura-y-espectaculos/rss.xml'),
|
||||||
|
(u'Tele', u'http://elperiodico.com/es/rss/cultura-y-espectaculos/rss.xml')]
|
||||||
|
|
||||||
|
|
||||||
keep_only_tags = [dict(name='div', attrs={'id':'noticia'})]
|
keep_only_tags = [dict(name='div', attrs={'class':'titularnoticia'}),
|
||||||
|
dict(name='div', attrs={'class':'noticia_completa'})]
|
||||||
|
|
||||||
remove_tags = [
|
remove_tags = [dict(name='div', attrs={'class':['opcionb','opcionb last','columna_noticia']}),
|
||||||
dict(name=['object','link','script'])
|
dict(name='span', attrs={'class':'opcionesnoticia'})
|
||||||
,dict(name='ul',attrs={'class':'herramientasDeNoticia'})
|
|
||||||
,dict(name='div', attrs={'id':'inferiores'})
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def print_version(self, url):
|
def print_version(self, url):
|
||||||
|
24
resources/recipes/taggeschau_de.recipe
Normal file
24
resources/recipes/taggeschau_de.recipe
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
class Tagesschau(BasicNewsRecipe):
|
||||||
|
title = 'Tagesschau'
|
||||||
|
description = 'Nachrichten der ARD'
|
||||||
|
publisher = 'ARD'
|
||||||
|
language = 'de_DE'
|
||||||
|
|
||||||
|
__author__ = 'Florian Andreas Pfaff'
|
||||||
|
oldest_article = 7
|
||||||
|
max_articles_per_feed = 100
|
||||||
|
no_stylesheets = True
|
||||||
|
|
||||||
|
feeds = [('Tagesschau', 'http://www.tagesschau.de/xml/rss2')]
|
||||||
|
|
||||||
|
remove_tags = [
|
||||||
|
dict(name='div', attrs={'class':['linksZumThema schmal','teaserBox','boxMoreLinks','directLinks','teaserBox boxtext','fPlayer','zitatBox breit flashaudio']}),
|
||||||
|
dict(name='div',
|
||||||
|
attrs={'id':['socialBookmarks','seitenanfang']}),
|
||||||
|
dict(name='ul',
|
||||||
|
attrs={'class':['directLinks','directLinks weltatlas']}),
|
||||||
|
dict(name='strong', attrs={'class':['boxTitle inv','inv']})
|
||||||
|
]
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'id':'centerCol'})]
|
@ -8,7 +8,7 @@ __docformat__ = 'restructuredtext en'
|
|||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'pot', 'translations', 'get_translations', 'iso639',
|
'pot', 'translations', 'get_translations', 'iso639',
|
||||||
'build', 'build_pdf2xml',
|
'build', 'build_pdf2xml', 'server',
|
||||||
'gui',
|
'gui',
|
||||||
'develop', 'install',
|
'develop', 'install',
|
||||||
'resources',
|
'resources',
|
||||||
@ -35,6 +35,9 @@ from setup.extensions import Build, BuildPDF2XML
|
|||||||
build = Build()
|
build = Build()
|
||||||
build_pdf2xml = BuildPDF2XML()
|
build_pdf2xml = BuildPDF2XML()
|
||||||
|
|
||||||
|
from setup.server import Server
|
||||||
|
server = Server()
|
||||||
|
|
||||||
from setup.install import Develop, Install, Sdist
|
from setup.install import Develop, Install, Sdist
|
||||||
develop = Develop()
|
develop = Develop()
|
||||||
install = Install()
|
install = Install()
|
||||||
|
48
setup/server.py
Normal file
48
setup/server.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
||||||
|
|
||||||
|
__license__ = 'GPL v3'
|
||||||
|
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||||
|
__docformat__ = 'restructuredtext en'
|
||||||
|
|
||||||
|
import subprocess, tempfile, os, time
|
||||||
|
|
||||||
|
from setup import Command
|
||||||
|
|
||||||
|
class Server(Command):
|
||||||
|
|
||||||
|
description = 'Run the calibre server in development mode conveniently'
|
||||||
|
|
||||||
|
MONOCLE_PATH = '../monocle'
|
||||||
|
|
||||||
|
def rebuild_monocole(self):
|
||||||
|
subprocess.check_call(['sprocketize', '-C', self.MONOCLE_PATH,
|
||||||
|
'-I', 'src', 'src/monocle.js'],
|
||||||
|
stdout=open('resources/content_server/monocle.js', 'wb'))
|
||||||
|
|
||||||
|
def launch_server(self, log):
|
||||||
|
self.rebuild_monocole()
|
||||||
|
p = subprocess.Popen(['calibre-server', '--develop'],
|
||||||
|
stderr=subprocess.STDOUT, stdout=log)
|
||||||
|
return p
|
||||||
|
|
||||||
|
def run(self, opts):
|
||||||
|
tdir = tempfile.gettempdir()
|
||||||
|
logf = os.path.join(tdir, 'calibre-server.log')
|
||||||
|
log = open(logf, 'ab')
|
||||||
|
print 'Server log available at:', logf
|
||||||
|
|
||||||
|
while True:
|
||||||
|
print 'Starting server...'
|
||||||
|
p = self.launch_server(log)
|
||||||
|
try:
|
||||||
|
raw_input('Press Enter to kill/restart server. Ctrl+C to quit: ')
|
||||||
|
except:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
while p.returncode is None:
|
||||||
|
p.terminate()
|
||||||
|
time.sleep(0.1)
|
||||||
|
p.kill()
|
||||||
|
print
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user