Read files from imap server using streams

1.1.101
Chris Fuertes 2019-01-14 16:04:25 +01:00
parent 4fe0cb910e
commit 6c97affba1
4 changed files with 387 additions and 144 deletions

168
.hgignore Normal file
View File

@ -0,0 +1,168 @@
build
# Created by .ignore support plugin (hsz.mobi)
syntax: glob
### Node template
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
### macOS template
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

View File

@ -4,4 +4,7 @@
Using docker
```docker build -t <image_tag> . && docker run -v build:/usr/src/app/build <image_tag> ```
Using bash
```zip -r build/p4t.xpi chrome```

View File

@ -9,7 +9,7 @@ const DIR_OUTGOING = 1;
const ENC_FORMAT_PEP = 4;
const PEP_PREFIX = "pEp-";
const RATING_COLOR_GREY = "grey";
const RATING_COLOR_NO_COLOR = "no_color";
const RATING_COLOR_RED = "red";
const RATING_COLOR_GREEN = "green";
const RATING_COLOR_YELLOW = "yellow";
@ -64,10 +64,7 @@ class pEpAdapter {
message.reply_to = replyTo;
}
//message.longmsg = "";
// message.addAttachment(btoa(body), body.length);
//message.addAttachment(body, body.length);
let params = [
message,
@ -145,15 +142,15 @@ class pEpAdapter {
async color_from_rating(rating) {
let color = RATING_COLOR_GREY;
let color = RATING_COLOR_NO_COLOR;
if (rating === -2 || rating === 2) {
color = RATING_COLOR_GREY;
color = RATING_COLOR_NO_COLOR;
}
else if (rating < 0) {
color = RATING_COLOR_RED;
}
else if (rating < 6) {
color = RATING_COLOR_GREY;
color = RATING_COLOR_NO_COLOR;
}
else if (rating >= 7) {
color = RATING_COLOR_GREEN;

View File

@ -18,7 +18,7 @@ let onLoadListener = (event) => {
console.log("pepmsghdrview.js: onLoadListener()");
let onStartHeadersMessageListener = () => {
let messagePanelFrame = getPanel("messagepane", window);
let messagePanelFrame = window.GetMessagePaneFrame();
console.log("pepmsghdrview.js: onLoadMsgPanelFrameListener(), frame: ", messagePanelFrame);
if (messagePanelFrame != null) {
console.log("pepmsghdrview.js: onLoadListener() added listener");
@ -48,10 +48,11 @@ let onLoadMsgPanelFrameListener = (event) => {
function updateBody(newBody) {
//TODO Not implemented yet
let bodyElement = getPanel("messagepane", window).document.getElementsByTagName("body")[0];
let panel = window.GetMessagePaneFrame();
let bodyElement = panel.document.getElementsByTagName("body")[0];
let node = bodyElement.firstChild;
while (node) {
if(node.nodeName === "DIV" || node.nodeName === "PRE") {
if (node.nodeName === "DIV" || node.nodeName === "PRE") {
if (node.textContent.indexOf("-----BEGIN PGP")) {
node.innerHTML = newBody;
return;
@ -67,148 +68,222 @@ let onLoadMsgPanelFrameListener = (event) => {
}
let messageString;
console.log("pepmsghdrview.js: onLoadMsgPanelFrameListener()");
// read email from tb
// TODO decrypt mail
let messageString = "-----BEGIN PGP MESSAGE-----\n" +
"\n" +
"hQEMA3nTjPcdpPimAQgA2yAWJ7f3UdRvL/D8PI6KgAExPnQ4g8bEOUpwOgmo435x\n" +
"rEKlkP/QMGUWZfliDlhTAugaxqAxzVE4+rfyp9OqQUSj9S5xToIj0/qMa3ae4wLF\n" +
"WUxPksBVbb0r8nPQgGP9cpWa0+MWi3vUWeEvdcpcPCGsgmTKkxOKbqDAOD5GEKxX\n" +
"xj7iodBCevzf+nFtrHoMU56qkdreY/Pw1BTCFUPAUB8cEfqIp58CAfwP+WJUM2LM\n" +
"uMkZ4tq+F+bT5Q6oZUVqwdWeARlD6lu6LYFM/MQTBwHL9vVtpz35e7/yYa0O7lMB\n" +
"ev9ccn2a2qPaCdQt3tGfKREluT4GBhljxR5Oe55SUdJHASOnYNeFd48wfToxkXkv\n" +
"j1urYFxRZmq9atq0upqd2EnWlxq2OitrcG0PM4uuLKsw+vGjkElAqotLxdQqwXMJ\n" +
"jkogthSisZ8=\n" +
"=dTBg\n" +
"-----END PGP MESSAGE-----";
let messageStringPlainPGP = `-----BEGIN PGP MESSAGE-----
/*
let messageString = "-----BEGIN PGP MESSAGE-----\n" +
"\n" +
"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\n" +
"Sr2kl6sMaEtqKsmobd9KXjgjMZ5iV4v7EDloeBo=\n" +
"=xc3m\n" +
"-----END PGP MESSAGE-----";
*/
hQEMA3nTjPcdpPimAQgA2yAWJ7f3UdRvL/D8PI6KgAExPnQ4g8bEOUpwOgmo435x
rEKlkP/QMGUWZfliDlhTAugaxqAxzVE4+rfyp9OqQUSj9S5xToIj0/qMa3ae4wLF
WUxPksBVbb0r8nPQgGP9cpWa0+MWi3vUWeEvdcpcPCGsgmTKkxOKbqDAOD5GEKxX
xj7iodBCevzf+nFtrHoMU56qkdreY/Pw1BTCFUPAUB8cEfqIp58CAfwP+WJUM2LM
uMkZ4tq+F+bT5Q6oZUVqwdWeARlD6lu6LYFM/MQTBwHL9vVtpz35e7/yYa0O7lMB
ev9ccn2a2qPaCdQt3tGfKREluT4GBhljxR5Oe55SUdJHASOnYNeFd48wfToxkXkv
j1urYFxRZmq9atq0upqd2EnWlxq2OitrcG0PM4uuLKsw+vGjkElAqotLxdQqwXMJ
jkogthSisZ8=
=dTBg
-----END PGP MESSAGE-----`;
pep.decryptMail(messageString, currentHeaderData).then((message) => {
// replace encrypted mail with decrypted from pEpAdapter
updateSubject(message.shortmsg);
updateBody(message.longmsg);
let messageStringpEpEncrypted = `-----BEGIN PGP MESSAGE-----
pep.getPrivacyColorFromRating(message.rating).then(
(rating) => updatePrivacy(rating)
);
});
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
Sr2kl6sMaEtqKsmobd9KXjgjMZ5iV4v7EDloeBo=
=xc3m
-----END PGP MESSAGE-----`;
let currentUri = getCurrentMessageURI();
if (currentUri !== null) {
try {
messageString = readMailFromUri(currentUri);
}
catch (e) {
console.debug("Errors while reading message from uri", e);
}
pep.decryptMail(messageString, currentHeaderData).then((message) => {
// replace encrypted mail with decrypted from pEpAdapter
updateSubject(message.shortmsg);
updateBody(message.longmsg);
pep.getPrivacyColorFromRating(message.rating).then(
(rating) => updatePrivacy(rating)
);
});
}
};
let readMailFromUri = (msgUri) => {
let msgWindow = Cc["@mozilla.org/messenger/msgwindow;1"].createInstance();
msgWindow = msgWindow.QueryInterface(Ci.nsIMsgWindow);
let msgStream = Cc["@mozilla.org/network/sync-stream-listener;1"].createInstance();
msgStream = msgStream.QueryInterface(Ci.nsIInputStream);
let messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger);
let msgService = messenger.messageServiceFromURI(msgUri);
let scriptInputStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance();
scriptInputStream = scriptInputStream.QueryInterface(Ci.nsIScriptableInputStream);
scriptInputStream.init(msgStream);
try {
msgService.streamMessage(msgUri, // uri of message to stream
msgStream, // a stream listener listening to the message
msgWindow, // a nsIMsgWindow for progress and status feedback
null, // a nsIUrlListener that is notified when url starts and stops
false, // it will create a stream converter from message rfc2822 to
null // Header added to the URI. e.g., header=filter
);
} catch (ex) {
console.debug("Error while reading mail from server", ex);
}
// Get only the PGP message
let keyFound = false;
let content = "";
let str = "";
const PGP_MESSAGE_HEADER = "-----BEGIN PGP MESSAGE-----";
const PGP_MESSAGE_FOOTER = "-----END PGP MESSAGE-----";
const INPUTSTREAM_READING_SIZE = 512;
while (scriptInputStream.available()) {
str = scriptInputStream.read(INPUTSTREAM_READING_SIZE);
let pgpStartIndex = str.indexOf(PGP_MESSAGE_HEADER);
let pgpEndIndex = str.indexOf(PGP_MESSAGE_FOOTER);
if (pgpStartIndex >= 0) {
keyFound = true;
str = str.substring(pgpStartIndex);
} else if (pgpEndIndex >= 0) {
content += str.substring(0, pgpEndIndex + PGP_MESSAGE_FOOTER.length);
break;
}
if (keyFound) {
content += str;
}
}
return content;
};
let getCurrentMessageURI = () => {
if (gFolderDisplay.selectedMessages.length === 1) {
return gFolderDisplay.selectedMessageUris[0];
}
return null;
};
window.addEventListener("load", onLoadListener, false);