From 2e982e371558c5a6326c76911981a9d23a1cb850 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 9 Oct 2016 21:06:57 +0300 Subject: [PATCH] TODO --- Syncer.js | 3 ++- operetta.js | 24 ++++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/Syncer.js b/Syncer.js index 127674c..bdc3434 100644 --- a/Syncer.js +++ b/Syncer.js @@ -4,6 +4,7 @@ const ImapManager = require('./ImapManager.js'); const EventEmitter = require('events').EventEmitter; const MailParser = require('mailparser').MailParser; const iconv = require('iconv-lite'); +const mimelib = require('mimelib'); module.exports = Syncer; @@ -396,7 +397,7 @@ Syncer.prototype.extractAttachments = function(struct, attachments) else if (struct[i].disposition && struct[i].disposition.type == 'attachment') { attachments.push([ - struct[i].disposition.params && struct[i].disposition.params.filename || struct[i].description || '', + mimelib.parseMimeWords(struct[i].disposition.params && struct[i].disposition.params.filename || struct[i].description || ''), struct[i].type+'/'+struct[i].subtype, struct[i].size ]); diff --git a/operetta.js b/operetta.js index 954a3df..52fc069 100644 --- a/operetta.js +++ b/operetta.js @@ -1,7 +1,23 @@ -// TODO: Получать, парсить и хранить тела писем (и, вероятно, вложения) + индексировать тексты -// TODO: Группировка писем -// TODO: Сделать подписки на новые сообщения по вебсокетам -// TODO: Чего я ещё хотел - интеграцию с maillog'ом и серверным спамфильтром +/** + * TODO: + * - исправить параллелизм запросов и sync'а + * - фоновая индексация всех текстов сообщений в ящике + * - скачивание вложений + * - написание сообщений + * - ответ, пересылка + * - подсказка адресов + * - отправка вложений + * - пометить прочтённым/непрочтённым + * - переместить + * - удалить + * - пометить как спам + * - живое обновление (подписка view на новые сообщения) + * - настройки группировки (дата/прочитано/отмечено) + * - настройки сортировки (дата/тема/размер/возможно отправитель) + * - thread'ы (дискуссии) + * - метки (если вообще нужно) + * - совсем фантазии: интеграция с maillog'ом и серверным спамфильтром + */ /** * Нужные методы API: