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: