mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
IGN:Change startup order to convert CLI args to unicode first. Also return a more useful error if winutil is absent
This commit is contained in:
parent
5d02ce2db1
commit
ea1f813ea9
@ -22,6 +22,22 @@ _run_once = False
|
|||||||
if not _run_once:
|
if not _run_once:
|
||||||
_run_once = True
|
_run_once = True
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Platform specific modules
|
||||||
|
winutil = winutilerror = None
|
||||||
|
if iswindows:
|
||||||
|
winutil, winutilerror = plugins['winutil']
|
||||||
|
if not winutil:
|
||||||
|
raise RuntimeError('Failed to load the winutil plugin: %s'%winutilerror)
|
||||||
|
if len(sys.argv) > 1:
|
||||||
|
sys.argv[1:] = winutil.argv()[1-len(sys.argv):]
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Convert command line arguments to unicode
|
||||||
|
for i in range(1, len(sys.argv)):
|
||||||
|
if not isinstance(sys.argv[i], unicode):
|
||||||
|
sys.argv[i] = sys.argv[i].decode(preferred_encoding, 'replace')
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Setup resources
|
# Setup resources
|
||||||
import calibre.utils.resources as resources
|
import calibre.utils.resources as resources
|
||||||
@ -89,18 +105,4 @@ if not _run_once:
|
|||||||
os.path.join = my_join
|
os.path.join = my_join
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Platform specific modules
|
|
||||||
winutil = winutilerror = None
|
|
||||||
if iswindows:
|
|
||||||
winutil, winutilerror = plugins['winutil']
|
|
||||||
if not winutil:
|
|
||||||
raise RuntimeError('Failed to load the winutil plugin: %s'%winutilerror)
|
|
||||||
if len(sys.argv) > 1:
|
|
||||||
sys.argv[1:] = winutil.argv()[1-len(sys.argv):]
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
# Convert command line arguments to unicode
|
|
||||||
for i in range(1, len(sys.argv)):
|
|
||||||
if not isinstance(sys.argv[i], unicode):
|
|
||||||
sys.argv[i] = sys.argv[i].decode(preferred_encoding, 'replace')
|
|
||||||
|
@ -20,6 +20,8 @@ from collections import defaultdict
|
|||||||
if os.environ.has_key('CALIBRE_CONFIG_DIRECTORY'):
|
if os.environ.has_key('CALIBRE_CONFIG_DIRECTORY'):
|
||||||
config_dir = os.path.abspath(os.environ['CALIBRE_CONFIG_DIRECTORY'])
|
config_dir = os.path.abspath(os.environ['CALIBRE_CONFIG_DIRECTORY'])
|
||||||
elif iswindows:
|
elif iswindows:
|
||||||
|
if plugins['winutil'][0] is None:
|
||||||
|
raise Exception(plugins['winutil'][1])
|
||||||
config_dir = plugins['winutil'][0].special_folder_path(plugins['winutil'][0].CSIDL_APPDATA)
|
config_dir = plugins['winutil'][0].special_folder_path(plugins['winutil'][0].CSIDL_APPDATA)
|
||||||
if not os.access(config_dir, os.W_OK|os.X_OK):
|
if not os.access(config_dir, os.W_OK|os.X_OK):
|
||||||
config_dir = os.path.expanduser('~')
|
config_dir = os.path.expanduser('~')
|
||||||
|
@ -7,7 +7,7 @@ lemonde.fr
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
import re
|
import re
|
||||||
from datetime import date
|
#from datetime import date
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
@ -20,7 +20,28 @@ class LeMonde(BasicNewsRecipe):
|
|||||||
|
|
||||||
max_articles_per_feed = 30
|
max_articles_per_feed = 30
|
||||||
no_stylesheets = True
|
no_stylesheets = True
|
||||||
cover_url='http://abonnes.lemonde.fr/titresdumonde/'+date.today().strftime("%y%m%d")+'/1.jpg'
|
remove_javascript = True
|
||||||
|
|
||||||
|
|
||||||
|
#cover_url='http://abonnes.lemonde.fr/titresdumonde/'+date.today().strftime("%y%m%d")+'/1.jpg'
|
||||||
|
|
||||||
|
|
||||||
|
extra_css = '''
|
||||||
|
.dateline{color:#666666;font-family:verdana,sans-serif;font-size:xx-small;}
|
||||||
|
.mainText{font-family:Georgia,serif;color:#222222;}
|
||||||
|
.LM_articleText{font-family:Georgia,serif;}
|
||||||
|
.mainContent{font-family:Georgia,serif;}
|
||||||
|
.mainTitle{font-family:Georgia,serif;}
|
||||||
|
.LM_content{font-family:Georgia,serif;}
|
||||||
|
.content{font-family:Georgia,serif;}
|
||||||
|
.LM_caption{font-family:Georgia,serif;font-size:xx-small;}
|
||||||
|
.LM_imageSource{font-family:Arial,Helvetica,sans-serif;font-size:xx-small;color:#666666;}
|
||||||
|
h1{font-family:Georgia,serif;font-size:medium;color:#000000;}
|
||||||
|
.entry{font-family:Georgia,Times New Roman,Times,serif;}
|
||||||
|
.mainTitle{font-family:Georgia,Times New Roman,Times,serif;}
|
||||||
|
h2{font-family:Georgia,Times New Roman,Times,serif;font-size:large;}
|
||||||
|
small{{font-family:Arial,Helvetica,sans-serif;font-size:xx-small;}
|
||||||
|
'''
|
||||||
|
|
||||||
feeds = [
|
feeds = [
|
||||||
('A la Une', 'http://www.lemonde.fr/rss/une.xml'),
|
('A la Une', 'http://www.lemonde.fr/rss/une.xml'),
|
||||||
@ -40,14 +61,20 @@ class LeMonde(BasicNewsRecipe):
|
|||||||
('Examens', 'http://www.lemonde.fr/rss/sequence/0,2-3404,1-0,0.xml'),
|
('Examens', 'http://www.lemonde.fr/rss/sequence/0,2-3404,1-0,0.xml'),
|
||||||
('Opinions', 'http://www.lemonde.fr/rss/sequence/0,2-3232,1-0,0.xml')
|
('Opinions', 'http://www.lemonde.fr/rss/sequence/0,2-3232,1-0,0.xml')
|
||||||
]
|
]
|
||||||
|
keep_only_tags = [dict(name='div', attrs={'id':["mainTitle","mainContent","LM_content","content"]}),
|
||||||
|
dict(name='div', attrs={'class':["post"]})
|
||||||
|
]
|
||||||
|
|
||||||
remove_tags = [dict(name='img', attrs={'src':'http://medias.lemonde.fr/mmpub/img/lgo/lemondefr_pet.gif'}),
|
remove_tags = [dict(name='img', attrs={'src':'http://medias.lemonde.fr/mmpub/img/lgo/lemondefr_pet.gif'}),
|
||||||
dict(name='div', attrs={'id':'xiti-logo-noscript'}),
|
dict(name='div', attrs={'id':'xiti-logo-noscript'}),
|
||||||
dict(name='br', attrs={}),
|
dict(name='br', attrs={}),
|
||||||
dict(name='iframe', attrs={}),
|
dict(name='iframe', attrs={}),
|
||||||
|
dict(name='table', attrs={'id':["toolBox"]}),
|
||||||
|
dict(name='table', attrs={'class':["bottomToolBox"]}),
|
||||||
|
dict(name='div', attrs={'class':["pageNavigation","fenetreBoxesContainer","breakingNews","LM_toolsBottom","LM_comments","LM_tools","pave_meme_sujet_hidden","boxMemeSujet"]}),
|
||||||
|
dict(name='div', attrs={'id':["miniUne","LM_sideBar"]}),
|
||||||
]
|
]
|
||||||
|
|
||||||
extra_css = '.ar-tit {font-size: x-large;} \n .dt {font-size: x-small;}'
|
|
||||||
|
|
||||||
preprocess_regexps = [ (re.compile(i[0], re.IGNORECASE|re.DOTALL), i[1]) for i in
|
preprocess_regexps = [ (re.compile(i[0], re.IGNORECASE|re.DOTALL), i[1]) for i in
|
||||||
[
|
[
|
||||||
@ -68,8 +95,8 @@ class LeMonde(BasicNewsRecipe):
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
def print_version(self, url):
|
# def print_version(self, url):
|
||||||
return re.sub('http://www\.lemonde\.fr/.*_([0-9]+)_[0-9]+\.html.*','http://www.lemonde.fr/web/imprimer_element/0,40-0,50-\\1,0.html' ,url)
|
# return re.sub('http://www\.lemonde\.fr/.*_([0-9]+)_[0-9]+\.html.*','http://www.lemonde.fr/web/imprimer_element/0,40-0,50-\\1,0.html' ,url)
|
||||||
|
|
||||||
# Used to filter duplicated articles
|
# Used to filter duplicated articles
|
||||||
articles_list = []
|
articles_list = []
|
||||||
@ -94,3 +121,5 @@ class LeMonde(BasicNewsRecipe):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user