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.
|
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
|
## 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`.
|
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 {
|
try {
|
||||||
const hasAsked = Services.prefs.getBoolPref("extensions.kindleZoteroImporter.askedAnonymizedShare");
|
const hasAsked = Services.prefs.getBoolPref("extensions.kindleZoteroImporter.askedAnonymizedShare");
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
// First run: ask
|
// First run: default ON, allow opt-out
|
||||||
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.")) {
|
|
||||||
Services.prefs.setBoolPref("extensions.kindleZoteroImporter.shareAnonymized", true);
|
Services.prefs.setBoolPref("extensions.kindleZoteroImporter.shareAnonymized", true);
|
||||||
try {
|
try {
|
||||||
const anonId = Math.random().toString(36).slice(2,10) + Date.now().toString(36);
|
const anonId = Math.random().toString(36).slice(2,10) + Date.now().toString(36);
|
||||||
Services.prefs.setCharPref("extensions.kindleZoteroImporter.anonId", anonId);
|
Services.prefs.setCharPref("extensions.kindleZoteroImporter.anonId", anonId);
|
||||||
} catch(e2) {}
|
} catch(e2) {}
|
||||||
} else {
|
|
||||||
Services.prefs.setBoolPref("extensions.kindleZoteroImporter.shareAnonymized", false);
|
|
||||||
}
|
|
||||||
Services.prefs.setBoolPref("extensions.kindleZoteroImporter.askedAnonymizedShare", true);
|
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;
|
this.data = data;
|
||||||
|
|
@ -1046,7 +1045,7 @@
|
||||||
const shareCheck = document.createElement('input');
|
const shareCheck = document.createElement('input');
|
||||||
shareCheck.type = 'checkbox';
|
shareCheck.type = 'checkbox';
|
||||||
shareCheck.id = 'setting-shareAnonymized';
|
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);
|
shareRow.appendChild(shareCheck);
|
||||||
const shareLabel = document.createElement('label');
|
const shareLabel = document.createElement('label');
|
||||||
shareLabel.htmlFor = 'setting-shareAnonymized';
|
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.pythonPath", "/opt/homebrew/bin/python3");
|
||||||
pref("extensions.kindleZoteroImporter.zoteroDbPath", "/Users/ubd/Zotero/zotero.sqlite");
|
pref("extensions.kindleZoteroImporter.zoteroDbPath", "/Users/ubd/Zotero/zotero.sqlite");
|
||||||
pref("extensions.kindleZoteroImporter.zoteroStorageRoot", "/Users/ubd/Zotero/storage");
|
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