-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.gs
More file actions
68 lines (61 loc) · 2.14 KB
/
Copy pathscript.gs
File metadata and controls
68 lines (61 loc) · 2.14 KB
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
// WRITE YOUR CHANGES (BOT TOKEN,CHAT ID AND SO ON) ONLY THERE:
var token = "YOUR_TELEGRAM_BOT_TOKEN";
var chat_id = "YOUR_CHAT_ID";
var check_only_one_column = false;
var check_only_one_row = false;
var column_letter = "YOUR_COLUMN_LETTER"; //for example "A" or "C"
var row_number = "YOUR_NUMBER"; //for example 2 or 14 (without quotation marks)
// You don't need to change code below
function checkForChanges(e) {
var range = e.range;
var column = range.getColumn();
var row = range.getRow();
if (check_only_one_column && check_only_one_row) {
if (column === getColumnNumber(column_letter)) {
if (row === row_number) {
var value = range.getValue();
callBot(column, row, value);
}
}
} else if(check_only_one_column){
if (column === getColumnNumber(column_letter)) {
var value = range.getValue();
callBot(column, row, value);
}
} else if(check_only_one_row){
if (row === row_number) {
var value = range.getValue();
callBot(column, row, value);
}
} else {
var value = range.getValue();
callBot(column, row, value);
}
}
function callBot(column, row, value) {
var date = new Date();
var currentTime = date.toLocaleTimeString();
var message = '['+currentTime+'] Cell <code>'+ getColumnName(column) + row + "</code> \nNew value: <b><code>" + value + "</code></b>";
var url = "https://api.telegram.org/bot" + token + "/sendMessage?chat_id=" + chat_id + "&parse_mode=HTML&text=" + encodeURIComponent(message);
var response = UrlFetchApp.fetch(url);
Logger.log(response.getContentText());
}
function getColumnNumber(columnLetter) {
var startingNumber = 1;
var base = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var columnNumber = 0;
for (var i = 0; i < columnLetter.length; i++) {
var letterValue = base.indexOf(columnLetter.charAt(i)) + 1;
columnNumber = columnNumber * 26 + letterValue;
}
return columnNumber - startingNumber + 1;
}
function getColumnName(num) {
var columnName = '';
while (num > 0) {
var modulo = (num - 1) % 26;
columnName = String.fromCharCode(65 + modulo) + columnName;
num = Math.floor((num - modulo) / 26);
}
return columnName;
}