diff --git a/recipes/metro_uk.recipe b/recipes/metro_uk.recipe
index 2d5155ef29..287af47f5c 100644
--- a/recipes/metro_uk.recipe
+++ b/recipes/metro_uk.recipe
@@ -1,3 +1,4 @@
+import re
from calibre.web.feeds.news import BasicNewsRecipe
class AdvancedUserRecipe1306097511(BasicNewsRecipe):
title = u'Metro UK'
@@ -10,6 +11,7 @@ class AdvancedUserRecipe1306097511(BasicNewsRecipe):
remove_empty_feeds = True
remove_javascript = True
+ preprocess_regexps = [(re.compile(r'Tweet'), lambda a : '')]
language = 'en_GB'
diff --git a/src/calibre/ebooks/html/input.py b/src/calibre/ebooks/html/input.py
index ce6c46c6cf..69eb493c7d 100644
--- a/src/calibre/ebooks/html/input.py
+++ b/src/calibre/ebooks/html/input.py
@@ -457,7 +457,7 @@ class HTMLInput(InputFormatPlugin):
href=bhref)
guessed = self.guess_type(href)[0]
media_type = guessed or self.BINARY_MIME
- if 'text' in media_type:
+ if media_type == 'text/plain':
self.log.warn('Ignoring link to text file %r'%link_)
return None
diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py
index db83fca496..d75620adbd 100644
--- a/src/calibre/ebooks/oeb/base.py
+++ b/src/calibre/ebooks/oeb/base.py
@@ -1055,6 +1055,12 @@ class Manifest(object):
and len(a) == 0 and not a.text:
remove_elem(a)
+ # Convert
s with content into paragraphs as ADE can't handle
+ # them
+ for br in xpath(data, '//h:br'):
+ if len(br) > 0 or br.text:
+ br.tag = XHTML('div')
+
return data
def _parse_txt(self, data):
@@ -1156,7 +1162,7 @@ class Manifest(object):
data = self._parse_xml(data)
elif self.media_type.lower() in OEB_STYLES:
data = self._parse_css(data)
- elif 'text' in self.media_type.lower():
+ elif self.media_type.lower() == 'text/plain':
self.oeb.log.warn('%s contains data in TXT format'%self.href,
'converting to HTML')
data = self._parse_txt(data)
diff --git a/src/calibre/library/restore.py b/src/calibre/library/restore.py
index 20065309aa..8bd7174849 100644
--- a/src/calibre/library/restore.py
+++ b/src/calibre/library/restore.py
@@ -24,6 +24,7 @@ NON_EBOOK_EXTENSIONS = frozenset([
class RestoreDatabase(LibraryDatabase2):
PATH_LIMIT = 10
+ WINDOWS_LIBRARY_PATH_LIMIT = 180
def set_path(self, *args, **kwargs):
pass
diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst
index 4b527e169c..733adb65ee 100644
--- a/src/calibre/manual/faq.rst
+++ b/src/calibre/manual/faq.rst
@@ -131,7 +131,7 @@ Follow these steps to find the problem:
* Make sure that you are connecting only a single device to your computer at a time. Do not have another |app| supported device like an iPhone/iPad etc. at the same time.
* If you are connecting an Apple iDevice (iPad, iPod Touch, iPhone), use the 'Connect to iTunes' method in the 'Getting started' instructions in `Calibre + Apple iDevices: Start here `_.
* Make sure you are running the latest version of |app|. The latest version can always be downloaded from `the calibre website `_.
- * Ensure your operating system is seeing the device. That is, the device should be mounted as a disk that you can access using Windows explorer or whatever the file management program on your computer is.
+ * Ensure your operating system is seeing the device. That is, the device should be mounted as a disk, that you can access using Windows explorer or whatever the file management program on your computer is. On Windows your device **must have been assigned a drive letter**, like K:.
* In calibre, go to Preferences->Plugins->Device Interface plugin and make sure the plugin for your device is enabled, the plugin icon next to it should be green when it is enabled.
* If all the above steps fail, go to Preferences->Miscellaneous and click debug device detection with your device attached and post the output as a ticket on `the calibre bug tracker `_.