privacy: anonymized sharing on by default with opt-out, mention in README
This commit is contained in:
parent
fade8a632f
commit
1df8b3f37e
3 changed files with 14 additions and 11 deletions
|
|
@ -43,6 +43,8 @@ python -m kindle_zotero_importer run ... --full # ignore incremental; re-proces
|
|||
|
||||
PDF positioning uses Poppler (`pdftotext`; `pdftohtml`; `pdfinfo`) + `qpdf` fallback; EPUB uses CFI. Zotero writes are only via `Zotero.Annotations`; never direct `zotero.sqlite` writes.
|
||||
|
||||
Anonymized sharing is **on by default** to help future development (only `citation key`; hashed highlight; `color`; `has comment` + note; `added_on`; `integrated_at`; never raw highlight text); opt out anytime in `Manager → Settings` → uncheck `Share anonymized annotations` (also `annotation.utkubilen.de`, private, no AI).
|
||||
|
||||
## Releases
|
||||
|
||||
Stable releases are on `Releases` with `kindle-zotero-importer.xpi` + `updates.json` attached. Pre-releases (`beta`) are marked `Pre-release` on GitHub. Zotero auto-updates from `releases/latest/download/updates.json`.
|
||||
|
|
|
|||
|
|
@ -184,17 +184,16 @@
|
|||
try {
|
||||
const hasAsked = Services.prefs.getBoolPref("extensions.kindleZoteroImporter.askedAnonymizedShare");
|
||||
} catch(e) {
|
||||
// First run: ask
|
||||
if (results.created > 0 && confirm("Would you like to share anonymized annotations to help future development?\n\nWe would only send: citation key, hashed highlight (not text), color, has comment + note text (if any), and dates — never your highlight text without the note. Notes help understand context. No AI at this stage.\n\nYou can change this anytime in Settings.")) {
|
||||
// First run: default ON, allow opt-out
|
||||
Services.prefs.setBoolPref("extensions.kindleZoteroImporter.shareAnonymized", true);
|
||||
try {
|
||||
const anonId = Math.random().toString(36).slice(2,10) + Date.now().toString(36);
|
||||
Services.prefs.setCharPref("extensions.kindleZoteroImporter.anonId", anonId);
|
||||
} catch(e2) {}
|
||||
} else {
|
||||
Services.prefs.setBoolPref("extensions.kindleZoteroImporter.shareAnonymized", false);
|
||||
}
|
||||
Services.prefs.setBoolPref("extensions.kindleZoteroImporter.askedAnonymizedShare", true);
|
||||
if (results.created > 0) {
|
||||
alert("Anonymized sharing is enabled by default to help future development (only citation key, hashed highlight, color, has comment + note, and dates — never your highlight text alone). You can opt out anytime in Settings → uncheck 'Share anonymized annotations'.");
|
||||
}
|
||||
}
|
||||
}
|
||||
this.data = data;
|
||||
|
|
@ -1046,7 +1045,7 @@
|
|||
const shareCheck = document.createElement('input');
|
||||
shareCheck.type = 'checkbox';
|
||||
shareCheck.id = 'setting-shareAnonymized';
|
||||
try { shareCheck.checked = Services.prefs.getBoolPref("extensions.kindleZoteroImporter.shareAnonymized"); } catch(e) { shareCheck.checked = false; }
|
||||
try { shareCheck.checked = Services.prefs.getBoolPref("extensions.kindleZoteroImporter.shareAnonymized"); } catch(e) { shareCheck.checked = true; }
|
||||
shareRow.appendChild(shareCheck);
|
||||
const shareLabel = document.createElement('label');
|
||||
shareLabel.htmlFor = 'setting-shareAnonymized';
|
||||
|
|
|
|||
|
|
@ -2,3 +2,5 @@ pref("extensions.kindleZoteroImporter.projectDir", "/Users/ubd/Library/Mobile Do
|
|||
pref("extensions.kindleZoteroImporter.pythonPath", "/opt/homebrew/bin/python3");
|
||||
pref("extensions.kindleZoteroImporter.zoteroDbPath", "/Users/ubd/Zotero/zotero.sqlite");
|
||||
pref("extensions.kindleZoteroImporter.zoteroStorageRoot", "/Users/ubd/Zotero/storage");
|
||||
pref("extensions.kindleZoteroImporter.shareAnonymized", true);
|
||||
pref("extensions.kindleZoteroImporter.askedAnonymizedShare", false);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue