add /sync api
parent
6c31561b9b
commit
a4102ad3f0
33
operetta.js
33
operetta.js
|
@ -1,7 +1,6 @@
|
|||
// TODO: Получать, парсить и хранить тела писем (и, вероятно, вложения) + индексировать тексты
|
||||
// TODO: Группировка писем
|
||||
// TODO: Висеть в виде демона и сразу получать новые письма (IDLE)
|
||||
// TODO: Сделать веб-сервер
|
||||
// TODO: Сделать подписки на новые сообщения по вебсокетам
|
||||
// TODO: Чего я ещё хотел - интеграцию с maillog'ом и серверным спамфильтром
|
||||
|
||||
|
@ -48,7 +47,8 @@ var Syncer = {
|
|||
selected: {},
|
||||
connections: {},
|
||||
busy: {},
|
||||
queue: {}
|
||||
queue: {},
|
||||
syncInProgress: false
|
||||
};
|
||||
|
||||
Syncer.app = express();
|
||||
|
@ -139,6 +139,17 @@ Syncer.app.get('/message', genRequest(function*(req, res)
|
|||
return res.send({ msg: msg });
|
||||
}));
|
||||
|
||||
Syncer.app.get('/sync', genRequest(function*(req, res)
|
||||
{
|
||||
var self = Syncer;
|
||||
if (!req.session || !req.session.auth)
|
||||
return res.sendStatus(401);
|
||||
if (self.syncInProgress)
|
||||
return res.send({ error: 'already-running' });
|
||||
Syncer.syncAll();
|
||||
return res.send({ status: 'started' });
|
||||
}));
|
||||
|
||||
Syncer.getBody = function*(messages, boxId)
|
||||
{
|
||||
var self = this;
|
||||
|
@ -356,7 +367,6 @@ Syncer.sync = function*(account)
|
|||
|
||||
Syncer.deleteMessages = function*(where)
|
||||
{
|
||||
console.log(where+'');
|
||||
yield pg.update('threads', { first_msg: null })
|
||||
.where(pg.sql('first_msg IN ('+pg.select('id').from('messages').where(where)+')'))
|
||||
.run(gen.ef());
|
||||
|
@ -636,13 +646,20 @@ Syncer.addMessage = function*(msgrow, attrs)
|
|||
}
|
||||
}
|
||||
|
||||
Syncer.syncAll = function()
|
||||
{
|
||||
gen.run(function*()
|
||||
{
|
||||
Syncer.syncInProgress = true;
|
||||
for (var i = 0; i < cfg.accounts.length; i++)
|
||||
yield* Syncer.sync(cfg.accounts[i]);
|
||||
Syncer.syncInProgress = false;
|
||||
});
|
||||
}
|
||||
|
||||
Syncer.app.listen(8057);
|
||||
|
||||
gen.run(function*()
|
||||
{
|
||||
for (var i = 0; i < cfg.accounts.length; i++)
|
||||
yield* Syncer.sync(cfg.accounts[i]);
|
||||
});
|
||||
Syncer.syncAll();
|
||||
|
||||
function genRequest(fn)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue