diff --git a/src/calibre/ebooks/metadata/mobi.py b/src/calibre/ebooks/metadata/mobi.py
index 74db3b3a58..2da9f74961 100644
--- a/src/calibre/ebooks/metadata/mobi.py
+++ b/src/calibre/ebooks/metadata/mobi.py
@@ -330,9 +330,11 @@ class MetadataUpdater(object):
prefs = load_defaults('mobi_output')
pas = prefs.get('prefer_author_sort', False)
kindle_pdoc = prefs.get('personal_doc', None)
+ share_not_sync = prefs.get('share_not_sync', False)
except:
pas = False
kindle_pdoc = None
+ share_not_sync = False
if mi.author_sort and pas:
authors = mi.author_sort
update_exth_record((100, normalize(authors).encode(self.codec, 'replace')))
@@ -376,7 +378,7 @@ class MetadataUpdater(object):
# Add a 113 record if not present to allow Amazon syncing
if (113 not in self.original_exth_records and
self.original_exth_records.get(501, None) == 'EBOK' and
- not added_501):
+ not added_501 and not share_not_sync):
from uuid import uuid4
update_exth_record((113, str(uuid4())))
if 503 in self.original_exth_records:
diff --git a/src/calibre/ebooks/mobi/output.py b/src/calibre/ebooks/mobi/output.py
index 4f5d09c894..f22015d71f 100644
--- a/src/calibre/ebooks/mobi/output.py
+++ b/src/calibre/ebooks/mobi/output.py
@@ -55,6 +55,11 @@ class MOBIOutput(OutputFormatPlugin):
' specified directory. If the directory already '
'exists, it will be deleted.')
),
+ OptionRecommendation(name='share_not_sync', recommended_value=False,
+ help=_('Enable sharing of book content via Facebook etc. '
+ ' on the Kindle. WARNING: Using this feature means that '
+ ' the book will not auto sync its last read position '
+ ' on multiple devices. Complain to Amazon.'))
])
def check_for_periodical(self):
diff --git a/src/calibre/ebooks/mobi/writer2/main.py b/src/calibre/ebooks/mobi/writer2/main.py
index 1cda1b14dd..1705a5a342 100644
--- a/src/calibre/ebooks/mobi/writer2/main.py
+++ b/src/calibre/ebooks/mobi/writer2/main.py
@@ -529,9 +529,10 @@ class MobiWriter(object):
if isinstance(uuid, unicode):
uuid = uuid.encode('utf-8')
- exth.write(pack(b'>II', 113, len(uuid) + 8))
- exth.write(uuid)
- nrecs += 1
+ if not self.opts.share_not_sync:
+ exth.write(pack(b'>II', 113, len(uuid) + 8))
+ exth.write(uuid)
+ nrecs += 1
# Write cdetype
if not self.is_periodical:
diff --git a/src/calibre/gui2/convert/mobi_output.py b/src/calibre/gui2/convert/mobi_output.py
index f268ac8606..cd1d0430ae 100644
--- a/src/calibre/gui2/convert/mobi_output.py
+++ b/src/calibre/gui2/convert/mobi_output.py
@@ -23,7 +23,7 @@ class PluginWidget(Widget, Ui_Form):
Widget.__init__(self, parent,
['prefer_author_sort', 'rescale_images', 'toc_title',
'mobi_ignore_margins', 'mobi_toc_at_start',
- 'dont_compress', 'no_inline_toc',
+ 'dont_compress', 'no_inline_toc', 'share_not_sync',
'personal_doc']#, 'mobi_navpoints_only_deepest']
)
self.db, self.book_id = db, book_id
diff --git a/src/calibre/gui2/convert/mobi_output.ui b/src/calibre/gui2/convert/mobi_output.ui
index 7643d791f3..68cd55ab95 100644
--- a/src/calibre/gui2/convert/mobi_output.ui
+++ b/src/calibre/gui2/convert/mobi_output.ui
@@ -75,6 +75,13 @@
+ -
+
+
+ Enable sharing of book content via Facebook, etc. WARNING: Disables last read syncing
+
+
+
-