updated transactional messages
This commit is contained in:
parent
4f2d66c30c
commit
2486f7b9d8
7 changed files with 353 additions and 46 deletions
|
@ -18,45 +18,76 @@ function feedLoop() {
|
|||
let query = 'SELECT `id`, `source_url`, `from`, `address`, `subject`, `list`, `segment` FROM `campaigns` WHERE `type`=2 AND `status`=6 AND (`last_check` IS NULL OR `last_check`< NOW() - INTERVAL 10 MINUTE) LIMIT 1';
|
||||
|
||||
connection.query(query, (err, rows) => {
|
||||
if (err) {
|
||||
connection.release();
|
||||
if (err) {
|
||||
log.error('Feed', err);
|
||||
return setTimeout(feedLoop, 15 * 1000);
|
||||
}
|
||||
|
||||
if (!rows || !rows.length) {
|
||||
connection.release();
|
||||
return setTimeout(feedLoop, 15 * 1000);
|
||||
}
|
||||
|
||||
let parent = tools.convertKeys(rows[0]);
|
||||
|
||||
let query = 'UPDATE `campaigns` SET `last_check`=NOW() WHERE id=? LIMIT 1';
|
||||
connection.query(query, [parent.id], err => {
|
||||
connection.release();
|
||||
if (err) {
|
||||
log.error('Feed', err);
|
||||
return setTimeout(feedLoop, 15 * 1000);
|
||||
}
|
||||
|
||||
updateRssInfo(parent.id, true, false, () => {
|
||||
log.verbose('Feed', 'Checking feed %s (%s)', parent.sourceUrl, parent.id);
|
||||
feed.fetch(parent.sourceUrl, (err, entries) => {
|
||||
if (err) {
|
||||
log.error('Feed', err);
|
||||
return setTimeout(feedLoop, 1 * 1000);
|
||||
return updateRssInfo(parent.id, false, 'Feed error: ' + err.message, () => {
|
||||
setTimeout(feedLoop, 1 * 1000);
|
||||
});
|
||||
}
|
||||
checkEntries(parent, entries, (err, result) => {
|
||||
let message;
|
||||
if (err) {
|
||||
log.error('Feed', err);
|
||||
}
|
||||
if (result) {
|
||||
message = 'Feed error: ' + err.message;
|
||||
} else if (result) {
|
||||
log.verbose('Feed', 'Added %s new campaigns for %s', result, parent.id);
|
||||
message = 'Found ' + result + ' new campaing messages from feed';
|
||||
} else {
|
||||
message = 'Found nothing new from the feed';
|
||||
}
|
||||
return setTimeout(feedLoop, 1 * 1000);
|
||||
return updateRssInfo(parent.id, false, message, () => {
|
||||
setTimeout(feedLoop, 1 * 1000);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
function updateRssInfo(id, updateCheck, status, callback) {
|
||||
db.getConnection((err, connection) => {
|
||||
if (err) {
|
||||
log.error('Feed', err.stack);
|
||||
return callback(err);
|
||||
}
|
||||
let query;
|
||||
let values;
|
||||
if (updateCheck) {
|
||||
if (status) {
|
||||
query = 'UPDATE `campaigns` SET `last_check`=NOW(), `check_status`=? WHERE id=? LIMIT 1';
|
||||
values = [status, id];
|
||||
} else {
|
||||
query = 'UPDATE `campaigns` SET `last_check`=NOW() WHERE id=? LIMIT 1';
|
||||
values = [id];
|
||||
}
|
||||
} else {
|
||||
query = 'UPDATE `campaigns` SET `check_status`=? WHERE id=? LIMIT 1';
|
||||
values = [status, id];
|
||||
}
|
||||
|
||||
connection.query(query, values, (err, result) => {
|
||||
connection.release();
|
||||
if (err) {
|
||||
log.error('Feed', err);
|
||||
return callback(err);
|
||||
}
|
||||
return callback(null, result.affectedRows);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -37,10 +37,12 @@ CREATE TABLE `campaigns` (
|
|||
`template` int(11) unsigned NOT NULL,
|
||||
`source_url` varchar(255) CHARACTER SET ascii DEFAULT NULL,
|
||||
`last_check` timestamp NULL DEFAULT NULL,
|
||||
`check_status` varchar(255) DEFAULT NULL,
|
||||
`from` varchar(255) DEFAULT '',
|
||||
`address` varchar(255) DEFAULT '',
|
||||
`subject` varchar(255) DEFAULT '',
|
||||
`html` text,
|
||||
`html_prepared` text,
|
||||
`text` text,
|
||||
`status` tinyint(4) unsigned NOT NULL DEFAULT '1',
|
||||
`scheduled` timestamp NULL DEFAULT NULL,
|
||||
|
@ -170,7 +172,7 @@ CREATE TABLE `segments` (
|
|||
`created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `list` (`list`),
|
||||
KEY `name` (`name`),
|
||||
KEY `name` (`name`(191)),
|
||||
CONSTRAINT `segments_ibfk_1` FOREIGN KEY (`list`) REFERENCES `lists` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
CREATE TABLE `settings` (
|
||||
|
|
|
@ -18,6 +18,7 @@ CREATE TABLE `rss` (
|
|||
ALTER TABLE `campaigns` ADD COLUMN `parent` int(11) unsigned DEFAULT NULL AFTER `type`;
|
||||
CREATE INDEX parent_index ON `campaigns` (`parent`);
|
||||
ALTER TABLE `campaigns` ADD COLUMN `last_check` timestamp NULL DEFAULT NULL AFTER `source_url`;
|
||||
ALTER TABLE `campaigns` ADD COLUMN `check_status` varchar(255) NULL DEFAULT NULL AFTER `last_check`;
|
||||
CREATE INDEX check_index ON `campaigns` (`last_check`);
|
||||
ALTER TABLE `campaigns` ADD COLUMN `html_prepared` text AFTER `html`;
|
||||
|
||||
|
|
|
@ -98,11 +98,9 @@ body {
|
|||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>{{title}}</h1>
|
||||
<p class="lead">Please Confirm Subscription</p>
|
||||
|
||||
|
@ -114,7 +112,6 @@ body {
|
|||
<br/>{{contactAddress}}</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue