Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
517
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. function doGet() {
  2.  
  3. // 注文明細情報取得
  4. var yod = getYamadakunOrderDetails();
  5. if (yod == null) {
  6. return HtmlService.createHtmlOutput("<b>勇者ヤマダくんの注文明細が見つかりませんでした。</b>");
  7. }
  8. var sumPrice = yod.sumPrice;
  9. var detailsList = yod.detailsList;
  10.  
  11. // HTMLテキスト作成
  12. var htmlText = "";
  13. htmlText = "<table border=1>";
  14. htmlText = htmlText + "<tr><th>注文日</th><th>アイテム</th><th>価格</th></tr>"
  15.  
  16. for(var i = detailsList.length - 1; i >= 0; i--) { // 古い順に表示
  17. var details = detailsList[i];
  18. htmlText = htmlText + "<tr><td>" + details.date + "</td><td>" + details.name + "</td><td>" + details.price + "</td></tr>";
  19. }
  20.  
  21. htmlText = htmlText + "</table>";
  22. htmlText = htmlText + "<b>合計:" + sumPrice + "</b>"
  23.  
  24. // 出力
  25. return HtmlService.createHtmlOutput(htmlText);
  26. }
  27.  
  28. function getYamadakunOrderDetails() {
  29.  
  30. // 勇者ヤマダくんの注文明細を検索
  31. var threads = GmailApp.search("from: 'googleplay-noreply@google.com' 勇者ヤマダくん");
  32. var messages = GmailApp.getMessagesForThreads(threads);
  33. if (messages.length == 0) {
  34. return null;
  35. }
  36.  
  37. // 注文明細メッセージから項目を抽出
  38. // 項目リスト作成と金額合計算出を行う
  39. var detailsList = [];
  40. var sumPrice = 0;
  41. for (var i = 0; i < messages.length; i++) {
  42. for (var j = 0; j < messages[i].length; j++) {
  43. // 項目抽出
  44. var message = messages[i][j];
  45. var body = message.getBody();
  46. var date = body.match(/<b>注文日:<\/b> (.*?) JST/)[1]; // <b>注文日:</b> 2017/03/29 17:04:14 JST
  47. var name = body.match(/<span itemprop="name">(.*?)<\/span>/)[1]; // <span itemprop="name">音楽 クロちゃん (勇者ヤマダくん)</span>
  48. var price = body.match(/<span itemprop="price">¥(.*?)<\/span>/)[1]; // <span itemprop="price">¥1,600</span>
  49.  
  50. // 項目リスト追加
  51. var details = {
  52. date: date,
  53. name: name,
  54. price: price
  55. };
  56. detailsList.push(details);
  57.  
  58. // 金額合計
  59. sumPrice = sumPrice + parseInt(price.replace(/\D/g, "")); // 数字以外削除
  60. }
  61. }
  62.  
  63. return {sumPrice: sumPrice, detailsList: detailsList};
  64.  
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement