首页 > 解决方案 > 有没有办法使用 Google 应用程序脚本查看网站网络请求的名称?

问题描述

所以这就是我想要做的:

有一个名为 Torah Anytime ( https://www.torahanytime.com/ ) 的网站发布音频文件(我想你可以称它们为播客,该网站将它们称为 shiurim,shiur 是希伯来语的歌曲,或者在这种情况下,音频)每天。我想创建一个脚本来下载特定扬声器的音频,然后将这些文件通过电子邮件发送给我。我实现这一点的方法是使用 Google Apps Scripts。Torah Anytime 允许您关注特定的演讲者,并在您关注的演讲者发布新播客时收到电子邮件通知。这是我到目前为止的代码:

function main() {
  var emails = getemails();
  for (var i = 0; i < emails.length; i++) {
      var email = emails[i].getMessages();
      if (email[0].getFrom() == "TorahAnytime Following <following@torahanytime.com>"){
      var title = getTitle(email);
      var shiurID = getShiurID(email);
      var downloadLink = "https://dl.torahanytime.com/audio/" + shiurID;
      var shiur = downloadShiur(downloadLink);
      shiur.setName(title);
      var emailSent = emailShiur(shiur);
      if (emailSent) {email[0].moveToTrash();
      Logger.log("Email moved to Trash");}
      }
  }
}

function getemails() {
  var label = GmailApp.getUserLabelByName("TA Speeches");
      return label.getThreads();      
}

function getTitle(email) {     
  body = email[0].getPlainBody();
  var begIndex = body.indexOf("from") + 4;
  var endIndex = body.indexOf("on ");
  var title = body.substring(begIndex, endIndex).toLowerCase().replaceAll(" ", "-").replace(/(\r\n|\n|\r)/gm, "-");
  begIndex = body.indexOf("called ") + 7;
  endIndex = body.indexOf(" [");
  title += "-" + body.substring(begIndex, endIndex).toLowerCase().replaceAll(" ", "-").replace(/(\r\n|\n|\r)/gm, "-") + ".mp3";
  return title;
}

function getShiurID(email) {
body = email[0].getPlainBody();
var begIndex = body.indexOf("[") + 1;
var endIndex = body.indexOf("]");
var link = body.substring(begIndex, endIndex).replaceAll("?v", "?a");
console.log(link);
var mainLink = UrlFetchApp.fetch(link);
//here I somehow need to get the link being used to stream that particular audio file
}

function getIDName(email) {
body = email[0].getPlainBody();
var begIndex = body.indexOf("ID ") + 3;
var endIndex = body.indexOf(" and");
return body.substring(begIndex, endIndex);
}

function downloadShiur(downloadLink) {
  var audio = UrlFetchApp.fetch(downloadLink); 
  return audio.getBlob().getAs('audio/mp3');
}

function emailShiur(shiur) {
const maxFileSize = 26214400;
if (shiur.getBytes().length <= maxFileSize) {
MailApp.sendEmail("[Email addressed removed]", "TA Shiur (File)", "Enjoy!", {
     attachments: [shiur],
     name: 'Automatic Emailer Script'
 });
 return true;
} else {
  MailApp.sendEmail("[Email addressed removed]", "TA Shiur (File)", "Error, File too large to email", {
     name: 'Automatic Emailer Script'
 });
 return false;
}
}

我的问题是下载文件的 URL 不在 HTML 中,所以我不知道如何使用 GAS 获取它。如果您使用 chrome 的开发工具,您可以在网络选项卡中看到 URL输出示例我看到我想要获取. 有谁知道我可以使用 GAS 获取我在 chrome 的开发工具网络选项卡中看到的信息(正在接收的 URL 的名称)?谢谢!

标签: google-apps-script

解决方案


推荐阅读