Скрипт пересыльщик RSS
Помогите доработать скрипт пересылки RSS
Этот скрипт работает с таблицей где на ящейке A1 фид, А2 Тема письма, А3 дата последнего поста. Скрипт отправляет только Тему , ссылку и дату поста. Помогите скрипт доделать, чтоб он отправлял и тело RSS записи. Все это крутится на гугл драйв. function checkFeeds() { const mailAddress = "mail@mail.me"; const feedColumn = 1; const mailSubjectColumn = 2; const lastPublicationDateColumn = 3 var row = 2; var sheet = SpreadsheetApp.getActiveSheet(); while (true) { var currentRow = row++; var feed = sheet.getRange(currentRow, feedColumn).getValue(); if (feed == "") { break; } var mailSubject = sheet.getRange(currentRow, mailSubjectColumn).getValue(); var mailBody = ""; var lastPublicationDateCell = sheet.getRange(currentRow, lastPublicationDateColumn); var feedContent = UrlFetchApp.fetch(feed).getContentText(); var doc = Xml.parse(feedContent, false); var root = doc.getElement(); if (root == null) { break; } var rootName = root.getName().getLocalName(); if (rootName == "rss") { var rssVersion = root.getAttribute("version"); if (rssVersion == null) { break; } if (rssVersion.getValue() == "2.0") { mailBody = parseRssFeed(root, mailSubject, lastPublicationDateCell); } } else if (rootName == "feed") { mailBody = parseAtomFeed(root, mailSubject, lastPublicationDateCell); } if (mailBody != "") { GmailApp.sendEmail(mailAddress, mailSubject, mailBody); } } } function parseRssFeed(root, mailSubject, lastPublicationDateCell) { var maxPubDateText = lastPublicationDateCell.getValue(); var maxPubDate = "2000-01-01T00:00:00Z"; if (maxPubDateText != "") { maxPubDate = maxPubDateText; } var channel = root.getElement("channel"); var mailBody = ""; var items = channel.getElements("item") var curMaxPubDate = maxPubDate; for (var i in items) { var dateText = items[i].getElement("pubDate").getText(); var pubDate = Utilities.formatDate(new Date(dateText), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'"); if (pubDate > maxPubDate) { if (pubDate > curMaxPubDate) { curMaxPubDate = pubDate } mailBody += "\nЗаголовок: " + items[i].getElement("title").getText(); mailBody += "\nСсылка: " + items[i].getElement("link").getText(); mailBody += "\nДата публикации: " + pubDate; mailBody += "\n"; } } lastPublicationDateCell.setValue(curMaxPubDate); return mailBody; } function parseAtomFeed(root, mailSubject, lastPublicationDateCell) { var maxPubDateText = lastPublicationDateCell.getValue(); var maxPubDate = "2000-01-01T00:00:00Z"; if (maxPubDateText != "") { maxPubDate = maxPubDateText; } var mailBody = ""; var entries = root.getElements("entry") var curMaxPubDate = maxPubDate; for (var i in entries) { var pubDate = entries[i].getElement("updated").getText(); if (pubDate > maxPubDate) { if (pubDate > curMaxPubDate) { curMaxPubDate = pubDate } mailBody += "\nЗаголовок: " + entries[i].getElement("title").getText(); mailBody += "\nСсылка: " + entries[i].getElement("link").getAttribute("href").getValue(); mailBody += "\nДата публикации: " + pubDate; mailBody += "\n"; } } lastPublicationDateCell.setValue(curMaxPubDate); return mailBody; } |
Скрипт немного переделал.
function checkFeeds() { const mailAddress = "my@gmail.com"; const feedColumn = 1; const mailSubjectColumn = 2; const lastPublicationDateColumn = 3 var row = 2; var sheet = SpreadsheetApp.getActiveSheet(); while (true) { var currentRow = row++; var feed = sheet.getRange(currentRow, feedColumn).getValue(); if (feed == "") { break; } var mailSubject = sheet.getRange(currentRow, mailSubjectColumn).getValue(); var mailBody = ""; var lastPublicationDateCell = sheet.getRange(currentRow, lastPublicationDateColumn); var feedContent = UrlFetchApp.fetch(feed).getContentText(); var doc = Xml.parse(feedContent, false); var root = doc.getElement(); if (root == null) { break; } var rootName = root.getName().getLocalName(); if (rootName == "rss") { var rssVersion = root.getAttribute("version"); if (rssVersion == null) { break; } if (rssVersion.getValue() == "2.0") { mailBody = parseRssFeed(root, mailSubject, lastPublicationDateCell); } } else if (rootName == "feed") { mailBody = parseAtomFeed(root, mailSubject, lastPublicationDateCell); } if (mailBody != "") { GmailApp.sendEmail(mailAddress, mailSubject, mailBody); } } } function parseRssFeed(root, mailSubject, lastPublicationDateCell) { var maxPubDateText = lastPublicationDateCell.getValue(); var maxPubDate = "2000-01-01T00:00:00Z"; if (maxPubDateText != "") { maxPubDate = maxPubDateText; } var channel = root.getElement("channel"); var mailBody = ""; var items = channel.getElements("item") var curMaxPubDate = maxPubDate; for (var i in items) { var dateText = items[i].getElement("pubDate").getText(); var pubDate = Utilities.formatDate(new Date(dateText), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'"); if (pubDate > maxPubDate) { if (pubDate > curMaxPubDate) { curMaxPubDate = pubDate } mailBody += "\nЗаголовок: " + items[i].getElement("title").getText(); mailBody += "\nСсылка: " + items[i].getElement("link").getText(); mailBody += "\nОписание: " + items[i].getElement("description").getText(); mailBody += "\nДата публикации: " + pubDate; mailBody += "\n"; } } lastPublicationDateCell.setValue(curMaxPubDate); return mailBody; } function parseAtomFeed(root, mailSubject, lastPublicationDateCell) { var maxPubDateText = lastPublicationDateCell.getValue(); var maxPubDate = "2000-01-01T00:00:00Z"; if (maxPubDateText != "") { maxPubDate = maxPubDateText; } var mailBody = ""; var entries = root.getElements("entry") var curMaxPubDate = maxPubDate; for (var i in entries) { var pubDate = entries[i].getElement("updated").getText(); if (pubDate > maxPubDate) { if (pubDate > curMaxPubDate) { curMaxPubDate = pubDate } mailBody += "\nЗаголовок: " + entries[i].getElement("title").getText(); mailBody += "\nСсылка: " + entries[i].getElement("link").getAttribute("href").getValue(); mailBody += "\nОписание: " + entries[i].getElement("description").getText(); mailBody += "\nДата публикации: " + pubDate; mailBody += "\n"; } } lastPublicationDateCell.setValue(curMaxPubDate); return mailBody; } Как удалить mailBody += "\nОписание: " + entries[i].getElement("description").getText();как написать ког ,чтоб в тексте этого сообщения он удалил HTML теги |
Часовой пояс GMT +3, время: 15:49. |