-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbotMessage.gs
84 lines (73 loc) · 3.13 KB
/
botMessage.gs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/**
* 声優名を取得する
* 「来月の声優名」、「先月の声優名」、「声優名」の形式でLINE BOTから受け取るため、
* 声優名の前に付加されている文字列を除去したものを返す
* @param {String} [message] - LINE BOTから受け取ったメッセージ
* @return {String} 声優名
*/
function getVoiceActorName(message) {
replaceMessage = message.replace(TargetMonth.LastMonthString, '');
return replaceMessage.replace(TargetMonth.NextMonthString, '');
}
/**
* リストページのURLを作成する
* 年と月情報からリストページのURLを作成する
* @param {Number} [year] - 年
* @param {Number} [month] - 月
* @return {String} リストページのURL
*/
function buildListPageUrl(year, month) {
return 'http://www.getchu.com/all/price.html?genre=pc_soft&year=' + year + '&month=' + month + '&gage=&gall=all';
}
/**
* Postするメッセージを作成する
* @param {Sheet} [sheet] - シートObject
* @param {Number} [row] - 対象のデータ行
* @return {String} 対象のゲームのPostするメッセージ
*/
function postMessage(sheet, row) {
// 対象の行データを全て取得する
var rowValues = sheet.getRange(row, 1, 1, maxColumnsCount).getValues()[0];
// メッセージに表示するための情報を取得します
var releaseDate = Utilities.formatDate(rowValues[Columns.ArrayValue(Columns.ReleaseDate)], "JST", "yyyy/MM/dd"),
title = rowValues[Columns.ArrayValue(Columns.Title)],
price = rowValues[Columns.ArrayValue(Columns.Price)],
introductionPage = rowValues[Columns.ArrayValue(Columns.IntroductionPage)],
brandPage = rowValues[Columns.ArrayValue(Columns.BrandPage)];
var message = releaseDate + '\n' +
title + '\n' +
price + '\n' +
introductionPage + '\n' +
'\n' +
brandPage;
// Logger.log('PostMessage:' + message);
return message;
}
/**
* 発売リストページの情報をPostするメッセージを作成する
* @param {Number} [year] - 年
* @param {Number} [month] - 月
* @return {String} 発売リストページ情報をPostするメッセージ
*/
function listPagePostMessage(year, month) {
var message = year + '年' + month + '月の発売リストページです\n' + buildListPageUrl(year, month);
return message;
}
/**
* 出演ゲームが存在しない時のPostするメッセージを作成する
* @param {Number} [month] - 対象の月(yearMonth.gsのtargetMonthの値)
* @param {String} [voiceActorName] - 声優名
* @return {String} 対象の月に出演しない旨のメッセージ
*/
function notExistPostMessage(month, voiceActorName) {
var message = '';
if (month == TargetMonth.LastMonth) {
message = TargetMonth.LastMonthString + voiceActorName;
} else if (month == TargetMonth.NextMonth) {
message = TargetMonth.NextMonthString + voiceActorName;
} else {
message = TargetMonth.CurrentMonthString + voiceActorName;
}
message = message + 'はゲームに出演する予定はありません'
return message;
}