likeopera-backend/operetta.js

49 lines
1.9 KiB
JavaScript
Raw Normal View History

2016-08-28 00:18:04 +03:00
// TODO: Получать, парсить и хранить тела писем (и, вероятно, вложения) + индексировать тексты
// TODO: Группировка писем
2016-07-31 15:05:14 +03:00
// TODO: Сделать подписки на новые сообщения по вебсокетам
2016-08-28 00:18:04 +03:00
// TODO: Чего я ещё хотел - интеграцию с maillog'ом и серверным спамфильтром
/**
* Нужные методы API:
* - список аккаунтов и папок
* - список сообщений в папке
* - содержимое сообщения
* - поиск по тексту
* - список тредов в папке, с сообщениями
* - проверить почту
* - пометить прочтённым
* - переместить
* - удалить
* - подсказка адресов To
* - отправить сообщение
*
* В определённом плане получается тупость - получается, что дублируешь
* функционал самого почтового сервера. Но шо ж с ним поделаешь, если он "ни ф силах"...
* Ведь по сути-то, MTA от такой штуки нужен только 1 метод: "добавить сообщение в папку".
*/
require('heapdump');
2016-09-11 22:04:37 +03:00
require('babel-register');
const gen = require('gen-thread');
2016-08-28 00:18:04 +03:00
const bricks = require('pg-bricks');
2016-09-11 22:04:37 +03:00
const Syncer = require('./Syncer.js');
const SyncerWeb = require('./SyncerWeb.js');
2016-07-31 15:05:14 +03:00
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
2016-06-27 14:14:10 +03:00
var cfg = require('./cfg.json');
2016-08-28 00:18:04 +03:00
var pg = bricks.configure(cfg.pg);
2016-08-28 12:40:29 +03:00
pg._pg.types.setTypeParser(1082, 'text', val => val); // НЕ ПАРСИТЬ ДАТЫ ! ! !
2016-08-28 00:18:04 +03:00
2016-09-11 22:04:37 +03:00
var syncer = new Syncer(pg);
var syncerweb = new SyncerWeb(syncer, pg, cfg);
2016-08-28 00:18:04 +03:00
2016-09-11 22:04:37 +03:00
gen.run(function*()
2016-06-27 14:14:10 +03:00
{
2016-09-11 22:04:37 +03:00
yield* syncer.init(cfg);
yield* syncer.syncAll();
2016-08-28 00:18:04 +03:00
});
2016-10-03 16:55:09 +03:00
syncerweb.listen(8057);