mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Catalog: Handle embedded series number in title correctly
This commit is contained in:
commit
5fa5974f8e
@ -2296,18 +2296,21 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
# Convert the actual title to a string suitable for sorting.
|
# Convert the actual title to a string suitable for sorting.
|
||||||
# Convert numbers to strings, ignore leading stop words
|
# Convert numbers to strings, ignore leading stop words
|
||||||
# The 21-Day Consciousness Cleanse
|
# The 21-Day Consciousness Cleanse
|
||||||
|
# Scan for numbers in each word clump.
|
||||||
|
from calibre.ebooks.metadata import title_sort
|
||||||
|
|
||||||
title_words = title.split(' ')
|
title_words = title_sort(title).split()
|
||||||
|
|
||||||
# Scan for numbers in each word clump
|
|
||||||
translated = []
|
translated = []
|
||||||
|
|
||||||
for (i,word) in enumerate(title_words):
|
for (i,word) in enumerate(title_words):
|
||||||
hit = re.search('[0-9]+',word)
|
# Initial numbers translated to text equivalent
|
||||||
if hit :
|
if i==0 and re.search('[0-9]+',word):
|
||||||
translated.append(EPUB_MOBI.NumberToText(word).text)
|
translated.append(EPUB_MOBI.NumberToText(word).text)
|
||||||
else:
|
else:
|
||||||
|
if re.search('[0-9]+',word):
|
||||||
|
# Coerce standard-width strings for numbers
|
||||||
|
word = '%03d' % int(re.sub('\D','',word))
|
||||||
translated.append(word)
|
translated.append(word)
|
||||||
|
|
||||||
return ' '.join(translated)
|
return ' '.join(translated)
|
||||||
|
|
||||||
def generateThumbnail(self, title, image_dir, thumb_file):
|
def generateThumbnail(self, title, image_dir, thumb_file):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user