Skip to content

Instantly share code, notes, and snippets.

@duynhm
Created November 28, 2023 05:01
Show Gist options
  • Save duynhm/da372b4ed866c5197ff68698234c9537 to your computer and use it in GitHub Desktop.
Save duynhm/da372b4ed866c5197ff68698234c9537 to your computer and use it in GitHub Desktop.
Create bot for Teambuilding Trip with features: 1. Inform, 2. Mini Game, 3. Checkin, 4.Share Photo. Make by Telegram bot and Google App Script
function getCategoryNew(key, chatid) {
var ele = [];
var children = MENU[key].childrentAlias;
for (ichild in children) {
var child = MENU[children[ichild]];
var text = "";
var callbackdata = "";
if (child.visible || chatid == "746" || chatid == "165" || chatid == "635" || chatid == "603" || chatid == "85") {
text = child.title ;
if (child.flag == true) {
callbackdata = "category_" + children[ichild];
}
else {
switch(child.type) {
case 'txt' :
callbackdata = "sendtxt_" + children[ichild];
break;
case 'img' :
callbackdata = "sendimg_" + children[ichild];
break;
case 'location' :
callbackdata = "sendlocation_" + children[ichild];
break;
case 'callback' :
callbackdata = "callback_" + children[ichild];
break;
}
}
ele.push([{
'text' : text,
'callback_data': callbackdata
}]);
}
}
return ele;
}
function updateMenu () {
scriptProperty.setProperty("Menu",getValueNotation("conf","D1"));
MENU = JSON.parse(scriptProperty.getProperty("Menu"));
}
function testGame() {
//registerGame(26858, "Blue");
//checkin(54165, "Black",156789);
Logger.log(MENU['1.1']);
}
function registerGame(chatID, game) {
var team = {'7047':3,'5597':2,'3631':1};
var myTeam = team[chatID]-1;
var sheet = SpreadsheetApp.getActive().getSheetByName("RegisterGame");
var count = sheet.getRange("J1").getValue();
var data = sheet.getRange(2, 1, count,9).getValues();
var checkList = sheet.getRange("K3:O3").getValues();//max in game
var checkListMaxGame = sheet.getRange("K6:O10").getValues();//game/team
var max = sheet.getRange("P2").getValue();
var n = data.length;
var flagMaxTemp = true;
var number = 0;
var total = 0;
switch(game){
case 'Blue': number = checkList[0][0];
total = checkListMaxGame[0][4];
if(checkListMaxGame[0][myTeam] >= number){
flagMaxTemp = false;
}
break;
case 'Green': number = checkList[0][1];
total = checkListMaxGame[1][4];
if(checkListMaxGame[1][myTeam] >= number){
flagMaxTemp = false;
}
break;
case 'Orange': number = checkList[0][2];
total = checkListMaxGame[2][4];
if(checkListMaxGame[2][myTeam] >= number){
flagMaxTemp = false;
}
break;
case 'Black': number = checkList[0][3];
total = checkListMaxGame[3][4];
if(checkListMaxGame[3][myTeam] >= number){
flagMaxTemp = false;
}
break;
case 'Red': number = checkList[0][4];
total = checkListMaxGame[4][4];
if(checkListMaxGame[4][myTeam] >= number){
flagMaxTemp = false;
}
break;
}
//qua so luong nguoi cho 1 tram
if(total >= max){
Logger.log("Oops! Quá số lượng đăng ký. Vui lòng đợi lượt tiếp theo!");
return "Oops! Quá số lượng đăng ký. Vui lòng đợi lượt tiếp theo!";
}
//qua so luong gioi han cho 1 game cua 1 team
if(!flagMaxTemp){
Logger.log("Oops! Game này đã full cho đội của bạn. Vui lòng đợi lượt tiếp theo!");
return "Oops! Game này đã full cho đội của bạn. Vui lòng đợi lượt tiếp theo!";
}
for(var i = 0; i < n; i++)
{
if(data[i][0]==chatID){
//da dang ky
if(data[i][1] == game){
Logger.log("Oops! Đăng ký rồi mà!");
return "Oops! Đăng ký rồi mà!";
}
//chua check out
if(data[i][4] == ""){
Logger.log("Oops! Tham lam quá độ, chưa hoàn tất game cũ mà đã đăng ký game mới là mần sao!");
return "Oops! Tham lam quá độ, chưa hoàn tất game cũ mà đã đăng ký game mới là mần sao!";
}
}
}
sheet.getRange(count+1, 1, 1 , 2).setValues([[chatID, game]]);
return "Đồng chí đã đăng ký game "+game+" thành công! Guốc lắc!";
}
function checkin(chatID, time){
var sheet = SpreadsheetApp.getActive().getSheetByName("RegisterGame");
var count = sheet.getRange("J1").getValue();
var data = sheet.getRange(2, 1, count,5).getValues();
var n = data.length;
for(var i = 0; i < n; i++)
{
if(data[i][0]==chatID){
if(data[i][3] == "")
{
Logger.log("Check-in Thành công");
sheet.getRange(i+2,4).setValue(time);
return "Check-in Thành công";
}
}
}
Logger.log("Check-in rồi má! Ủa có thể là chưa đăng ký, mà cũng có thể là lỗi kỹ thuật. Nói chung là nếu do lỗi kỹ thuật vui lòng gọi điện cho BTC :D");
return "Check-in rồi má! Ủa có thể là chưa đăng ký, mà cũng có thể là lỗi kỹ thuật. Nói chung là nếu do lỗi kỹ thuật vui lòng gọi điện cho BTC :D";
//Logger.log("Đồng chí chưa đăng ký hoặc lỗi kỹ thuật! Nếu do lỗi kỹ thuật vui lòng gọi điện cho BTC :D");
//return "Đồng chí chưa đăng ký hoặc lỗi kỹ thuật! Nếu do lỗi kỹ thuật vui lòng gọi điện cho BTC :D";
}
function checkout(chatID, time){
var sheet = SpreadsheetApp.getActive().getSheetByName("RegisterGame");
var count = sheet.getRange("J1").getValue();
var data = sheet.getRange(2, 1, count,5).getValues();
var n = data.length;
for(var i = 0; i < n; i++)
{
if(data[i][0]==chatID ){
if(data[i][3] == ""){
Logger.log("Tào lao, chưa check-in mà đòi check-out!");
return "Tào lao, chưa check-in mà đòi check-out!";
}
if(data[i][4] == "")
{
Logger.log("Check-out Thành công");
sheet.getRange(i+2,5).setValue(time);
return "Check-out Thành công";
}
}
}
Logger.log("Check-out rồi má ơi! Hoặc là Đồng chí chưa đăng ký hoặc lỗi kỹ thuật! Nếu do lỗi kỹ thuật vui lòng gọi điện cho BTC :D");
return "Check-out rồi má ơi! Hoặc là Đồng chí chưa đăng ký hoặc lỗi kỹ thuật! Nếu do lỗi kỹ thuật vui lòng gọi điện cho BTC :D";
}
function top10(){
return getValueNotation("Dashboard", "G2");
}
function getScoreByTeam(team){
var sheet = SpreadsheetApp.getActive().getSheetByName("Dashboard");
var pos = sheet.getRange("I1:J5").getValues();
return sheet.getRange(pos[team][1]).getValue();
}
function getScoreOfMyTeam(chatID){
var data = getValuesInSheet("AllTeam");
for(var i = 0; i < data.length; i++)
{
if(data[i][0] == chatID){
return getScoreByTeam(data[i][3]);
}
}
return "Không xác định, vui lòng liên hệ BTC!";//Tên đội
}
function getScoreAllTeam(){
return getValueNotation("Dashboard", "J6");
}
function getValue(sheetName, row, col){
return SpreadsheetApp.getActive().getSheetByName(sheetName).getRange(row,col).getValue();
}
function getValueNotation(sheetName,a1Notation){
return SpreadsheetApp.getActive().getSheetByName(sheetName).getRange(a1Notation).getValue();
}
function getValues(sheetName, row, col, numRow, numCol){
return SpreadsheetApp.getActive().getSheetByName(sheetName).getRange(row,col, numRow, numCol).getValues();
}
function getValuesInSheet(sheetName){
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
return sheet.getRange(1,1,sheet.getLastRow(),sheet.getLastColumn()).getValues();
}
function setValue(sheetName, row, col, value){
SpreadsheetApp.getActive().getSheetByName(sheetName).getRange(row,col).setValue(value);
}
function appendValues(sheetName, row, values){
SpreadsheetApp.getActive().getSheetByName(sheetName).getRange(row, 1, 1 , values[0].length).setValues(values);
}
//link backend: https://docs.google.com/spreadsheets/d/1RnGok8zQwn0aHHOLXFKprAXQs-AJKbHXotC91BPa644/edit#gid=1626974869
function getMe() {
var url = telegramUrl + "/getMe";
var response = UrlFetchApp.fetch(url);
return response.getContentText();
}
function setWebhook () {
var url = telegramUrl + "/setWebhook?url=" + webhookURL ;
var response = UrlFetchApp.fetch(url);
return response.getContentText();
}
function sendChatAction (chat_id, action) {
var url = telegramUrl + "/sendChatAction";
var data = {
"chat_id": chat_id,
"action" : action
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
return response.getContentText();
}
function sendMessage(chat_id, text, reply_to_message_id, reply_markup, parse_mode) {
sendChatAction(chat_id,"typing");
reply_to_message_id = (typeof reply_to_message_id === "undefined") ? "" : reply_to_message_id;
parse_mode = (typeof parse_mode === "undefined") ? "" : parse_mode;
reply_markup = (typeof reply_markup === "undefined") ? "" : reply_markup;
var url = telegramUrl + "/sendMessage";
var data = {
"chat_id": chat_id,
"text": text,
"reply_to_message_id": reply_to_message_id,
"reply_markup" : reply_markup,
"parse_mode" : parse_mode
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
//ssLog.appendRow([new Date(),"sendMessage",response.getContentText()]); //write log
console.log("sendMessage: " + response.getContentText());
return response.getContentText();
}
function sendPhoto(chat_id, photo, caption, reply_markup) {
sendChatAction(chat_id,"upload_photo");
caption = (typeof caption === "undefined") ? "" : caption;
reply_markup = (typeof reply_markup === "undefined") ? "" : reply_markup;
var url = telegramUrl + "/sendPhoto";
var data = {
"chat_id": chat_id,
"photo": photo,
"caption": caption,
"reply_markup" : reply_markup
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
//ssLog.appendRow([new Date(),"sendPhoto",response.getContentText()]); //write log
console.log("sendPhoto: " + response.getContentText());
return response.getContentText();
}
function sendLocation(chat_id, latitude, longitude, reply_markup) {
sendChatAction(chat_id,"find_location");
reply_markup = (typeof reply_markup === "undefined") ? "" : reply_markup;
var url = telegramUrl + "/sendLocation";
var data = {
"chat_id": chat_id,
"latitude": latitude,
"longitude": longitude,
"reply_markup" : reply_markup
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
//ssLog.appendRow([new Date(),"sendLocation",response.getContentText()]); //write log
console.log("sendLocation: " + response.getContentText());
return response.getContentText();
}
function answerCallbackQuery(callback_query_id, text, show_alert, p_url, cache_time) {
text = (typeof text === "undefined") ? "" : text;
show_alert = (typeof show_alert === "undefined") ? "" : show_alert;
p_url = (typeof url === "undefined") ? "" : url;
cache_time = (typeof cache_time === "undefined") ? "" : cache_time;
var url = telegramUrl + "/answerCallbackQuery";
var data = {
"callback_query_id": callback_query_id,
"text": text,
"url": p_url,
"cache_time": cache_time
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
//ssLog.appendRow([new Date(),"answerCallbackSent",response.getContentText()]); //write log
console.log("answerCallbackSent: " + response.getContentText());
return response.getContentText();
}
function editMessageReplyMarkup(chat_id, message_id, inline_message_id, reply_markup) {
chat_id = (typeof chat_id === "undefined") ? "" : chat_id;
message_id = (typeof message_id === "undefined") ? "" : message_id;
inline_message_id = (typeof inline_message_id === "undefined") ? "" : inline_message_id;
reply_markup = (typeof reply_markup === "undefined") ? "" : reply_markup;
var url = telegramUrl + "/editMessageReplyMarkup";
var data = {
"chat_id": chat_id,
"message_id": message_id,
"inline_message_id": inline_message_id,
"reply_markup": reply_markup
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
//ssLog.appendRow([new Date(),"editMessageReplyMarkup",response.getContentText()]); //write log
console.log("editMessageReplyMarkup: " + response.getContentText());
return response.getContentText();
}
function editMessageText (chat_id, message_id, inline_message_id, text, reply_markup, parse_mode) {
chat_id = (typeof chat_id === "undefined") ? "" : chat_id;
message_id = (typeof message_id === "undefined") ? "" : message_id;
inline_message_id = (typeof inline_message_id === "undefined") ? "" : inline_message_id;
reply_markup = (typeof reply_markup === "undefined") ? "" : reply_markup;
parse_mode = (typeof parse_mode === "undefined") ? "" : parse_mode;
var url = telegramUrl + "/editMessageText";
var data = {
"chat_id": chat_id,
"message_id": message_id,
"inline_message_id": inline_message_id,
"text" : text,
"reply_markup": reply_markup,
"parse_mode": parse_mode,
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
//ssLog.appendRow([new Date(),"editMessageText",response.getContentText()]); //write log
console.log("editMessageText: " + response.getContentText());
return response.getContentText();
}
function forwardMessage (chat_id, from_chat_id, message_id) {
sendChatAction(chat_id,"typing");
var url = telegramUrl + "/forwardMessage";
var data = {
"chat_id": chat_id,
"from_chat_id": from_chat_id,
"message_id": message_id
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
//ssLog.appendRow([new Date(),"forwardMessage",response.getContentText()]); //write log
console.log("forwardMessage: " + response.getContentText());
return response.getContentText();
}
function deleteMessage (chat_id, message_id) {
var url = telegramUrl + "/deleteMessage";
var data = {
"chat_id": chat_id,
"message_id": message_id
};
var options = {
"method" : "post",
"contentType": "application/json",
"payload" : JSON.stringify(data)
};
var response = UrlFetchApp.fetch(url,options);
//ssLog.appendRow([new Date(),"deleteMessage",response.getContentText()]); //write log
console.log("deleteMessage: " + response.getContentText());
return response.getContentText();
}
//@s_trip_bot
//group BTC:
var photoGroup = "-1002472";
var errorGroup = "-28682";
var token = "390126410:AAFPVtM4gK4";
var telegramUrl = "https://api.telegram.org/bot" + token;
var ssBotDb = "1xwp75RqDceKgTz4-tUfOk";
//var ssLog = SpreadsheetApp.openById(ssBotDb).getSheetByName("BotLog");
var ssCategory = SpreadsheetApp.openById(ssBotDb).getSheetByName("Menu");
var webhookURL = "https://script.google.com/macros/s/AKfycbwETnxP9bzRvK7XWpA7L/exec";
//var category = ssCategory.getRange('A2:G').getValues();
var scriptProperty = PropertiesService.getScriptProperties();
var MENU = JSON.parse(scriptProperty.getProperty("Menu"));
function preConf(suffix,chatId, replyMessageId){
var cate = [];
var parent = MENU[suffix].parent;
(suffix == "0") ? "": cate.push([{'text' : "Quay về",'callback_data': "back_" + parent}]);
var reply_markup = {
"inline_keyboard": cate
};
deleteMessage(chatId,replyMessageId);
return reply_markup;
}
function doPost(e) {
//listening Telegram Bot
try {
var messageData = JSON.parse(e.postData.contents);
var isMessage = ((typeof messageData.message)!=="undefined"?true:false);
var isCallback = ((typeof messageData.callback_query)!=="undefined"?true:false);
if (isMessage){ //Nếu là một message
//ssLog.appendRow([new Date(),"messageReceived",e.postData.contents]); //write log
console.log("messageReceived: "+ e.postData.contents);
var isPhoto = ((typeof messageData.message.photo)!=="undefined"?true:false);
var chatId = messageData.message.chat.id;
var fromId = messageData.message.from.id;
var text = messageData.message.text;
var replyMessageId = messageData.message.message_id;
if (isPhoto) {
forwardMessage (photoGroup, chatId, replyMessageId, "");
return;
}
var cmd = text[0];
if (chatId>0) { //Nếu trong chat riêng
if(cmd == "/") {
var message = text.split(" ");
var paras = message.slice(1);
switch(message[0]) {
case "/start" : case "/menu" :
var reply_markup = {
"inline_keyboard": getCategoryNew("0", chatId)
};
sendMessage(chatId, "⭐️ Hãy chọn vào thông tin bạn cần : ⭐️",null,JSON.stringify(reply_markup),"HTML");
break;
case "/setmenu" :
try {
switch(chatId){
case 472675603: case 475797746: case 54954165: case 284260635: break;
default: return;
} var index = MENU[paras[0]].index;
(paras[1] == 1) ? ssCategory.getRange("E" + index).setValue(true) : ssCategory.getRange("E" + index).setValue(false) ;
updateMenu();
sendMessage(chatId,"Done !️",null,"","HTML");
}
catch (e) {
sendMessage(chatId,"Error !️",null,"","HTML");
}
break;
case "/updatemenu" :
try {
switch(chatId){
case 472675603: case 475797746: case 54954165: case 284260635: break;
default: return;
} updateMenu();
sendMessage(chatId,"Done !️",null,"","HTML");
}
catch (e) {
sendMessage(chatId,"Error !️","","HTML");
}
break;
case "/s3ndM3ss@ge" :
try {
switch(chatId){
case 45603: case 47746: case 5465: case 20635: break;
default: return;
} sendMessageBroadcast();
//sendMessage(chatId,"Done !️",null,"","HTML");
}
catch (e) {
sendMessage(chatId,"Error !️","","HTML");
}
break;
default :
break;
}
}
}
if(/^@/.test(text)){
if(/^@br0adcAst/.test(text)){
switch(fromId){
case 45603: case 47746: case 5465: case 20635: break;
default: return;
}
var message = text.replace(/^\S+\s/,"");
sendMessageBroadcast(message);
}
}
}
else if (isCallback){ //Nếu là một callbackquery
//ssLog.appendRow([new Date(),"callbackReceived",e.postData.contents]); //write log
console.log("callbackReceived: "+ e.postData.contents);
var callback_query_id = messageData.callback_query.id;
var dataCallback = messageData.callback_query.data;
var fromId = messageData.callback_query.from.id;
var chatId = messageData.callback_query.message.chat.id;
var text = messageData.callback_query.message.text;
var replyMessageId = messageData.callback_query.message.message_id;
var callbackData = dataCallback.split("_");
var prefix = callbackData[0];
var suffix = dataCallback.slice(prefix.length + 1);
switch (prefix) {
case "category" :
var cate = getCategoryNew(suffix, chatId);
(suffix == "0") ? "": cate.push([{'text' : "Quay về",'callback_data': "category_" + MENU[suffix].parent}]);
var reply_markup = {
"inline_keyboard": cate
};
editMessageReplyMarkup(chatId,replyMessageId,null,JSON.stringify(reply_markup));
answerCallbackQuery(callback_query_id);
break;
case "back" :
var cate = getCategoryNew(suffix, chatId);
(suffix == "0") ? "": cate.push([{'text' : "Quay về",'callback_data': "category_" + MENU[suffix].parent}]);
var reply_markup = {
"inline_keyboard": cate
};
deleteMessage(chatId,replyMessageId);
sendMessage(chatId,"⭐️ Hãy chọn vào thông tin bạn cần : ⭐️",null,JSON.stringify(reply_markup),"HTML");
answerCallbackQuery(callback_query_id);
break;
case "sendtxt" :
var reply_markup = preConf(suffix,chatId, replyMessageId);
var content = ssCategory.getRange("G" + MENU[suffix].index).getValue();
sendMessage(chatId,content,null,JSON.stringify(reply_markup),"HTML");
answerCallbackQuery(callback_query_id);
break;
case "sendimg" :
var reply_markup = preConf(suffix,chatId, replyMessageId);
var content = ssCategory.getRange("G" + MENU[suffix].index).getValue();
sendPhoto(chatId,content,"",JSON.stringify(reply_markup));
answerCallbackQuery(callback_query_id);
break;
case "sendlocation" :
var reply_markup = preConf(suffix,chatId, replyMessageId);
var val = ssCategory.getRange("G" + MENU[suffix].index).getValue().split("_");
var name = val[0];
reply_markup.inline_keyboard.unshift([{'text' : name,'callback_data': "_"}]);
var latitude = val[1];
var longitude = val[2];
sendLocation(chatId, latitude, longitude, JSON.stringify(reply_markup));
answerCallbackQuery(callback_query_id);
break;
case "callback" :
var val = ssCategory.getRange("G" + MENU[suffix].index).getValue().split("_");
var func = val[0];
var parameters = val.slice(1);
var reply_markup = preConf(suffix,chatId, replyMessageId);
switch(func){
case "getTeam" :
sendMessage(chatId,getTeam(chatId),null,JSON.stringify(reply_markup),"HTML");
break;
case "getMyTeam" :
sendMessage(chatId,getMyTeam(chatId),null,JSON.stringify(reply_markup),"HTML");
break;
case "getAllTeam" :
sendMessage(chatId,getAllTeam(),null,JSON.stringify(reply_markup),"HTML");
break;
case "registerGame" :
var game = parameters[0];
sendMessage(chatId,registerGame(chatId,game),null,JSON.stringify(reply_markup),"HTML");
break;
case "checkin" :
sendMessage(chatId,checkin(chatId,new Date()),null,JSON.stringify(reply_markup),"HTML");
break;
case "checkout" :
sendMessage(chatId,checkout(chatId,new Date()),null,JSON.stringify(reply_markup),"HTML");
break;
case "top10" :
sendMessage(chatId,top10(),null,JSON.stringify(reply_markup),"HTML");
break;
case "getScoreOfMyTeam" :
sendMessage(chatId,getScoreOfMyTeam(chatId),null,JSON.stringify(reply_markup),"HTML");
break;
case "getScoreAllTeam" :
sendMessage(chatId,getScoreAllTeam(),null,JSON.stringify(reply_markup),"HTML");
break;
}
answerCallbackQuery(callback_query_id);
default :
answerCallbackQuery(callback_query_id);
break;
}
}
}
catch (err) {
//ssLog.appendRow([new Date(),"error",err.message]); //write log
console.error(err.message);
sendMessage(errorGroup,"Trip Bot lỗi : " + err.message);
}
}
function test() {
var json = "{\"update_id\":851681, \"message\":{\"message_id\":5515,\"from\":{\"id\":47746,\"is_bot\":false,\"first_name\":\"Nghia\",\"last_name\":\"Nguyen\",\"username\":\"NghiaNT_IT\",\"language_code\":\"en-us\"},\"chat\":{\"id\":-3362,\"title\":\"HR-Trip BTC\",\"type\":\"group\",\"all_members_are_administrators\":true},\"date\":1527156520,\"text\":\"@br0adcAst hello m\u1ecdi ng\u01b0\u1eddi\",\"entities\":[{\"offset\":0,\"length\":10,\"type\":\"mention\"}]}}";
var e = {"postData":{"contents":json}};
e.postData.contents = json;
doPost(e);
}
//duy
function getTeam(chatID){
var data = getValuesInSheet("AllTeam");
for(var i = 0; i < data.length; i++)
{
if(data[i][0] == chatID){
//cap nhap sheet phan doi
if(data[i][5] != 1){
var row = getValue("PhanDoi",1, data[i][3]);
setValue("PhanDoi", row+3, data[i][3], data[i][2]);
setValue("AllTeam", i+1, 6, 1);
}
return "<b>Your team :</b> \n" + data[i][4];
}
}
return "Không xác định, vui lòng liên hệ BTC!";//Tên đội
}
function getMyTeam(chatID){
var data = getValuesInSheet("AllTeam");
for(var i = 0; i < data.length; i++)
{
if(data[i][0] == chatID){
return getTeamMember(data[i][3]);
}
}
return "Không xác định, vui lòng liên hệ BTC!";//Tên đội
}
function getTeamMember(pos){
//cap nhap sheet phan doi
var row = getValue("PhanDoi",1,pos);
var team = getValues("PhanDoi",2,pos,row+1,1);
var text = "<b>"+team[0][0]+"</b>";
//var text = team[0][0];
for(var j = 1 ; j < team.length; j++){
text+= "\r\n" + team[j][0];
}
Logger.log(text);
return text;
}
function getAllTeam(){
var text = "<b>Danh sách các đội chơi</b>\n\n";
text+= getTeamMember(1) + "\r\n\n";
text+= getTeamMember(2) + "\r\n\n";
text+= getTeamMember(3) + "\r\n\n";
text+= getTeamMember(4);
Logger.log(text);
return text;//trả về chuỗi HTML
}
function sendMessageBroadcast(message){
var sheet = SpreadsheetApp.getActive().getSheetByName("AllTeam");
var count = sheet.getLastRow();
var chatIDList = sheet.getRange(1,1,count).getValues();
for(var i = 1; i < count; i++){
try {
sendMessage(chatIDList[i][0], message);
}
catch (e) {
sendMessage(errorGroup,"User đã block BOT : " + chatIDList[i][0]);
}
}
}
function reg(){
var str = "@br0adcAst hello xin chào mọi người br0adcAst @br0adcAst";
var number_regex = /[+-]?\d+(\.\d+)?/g;
var matches = [];
var match;
while ((match = number_regex.exec(str)) !== null) {
matches.push(match[0]);
}
Logger.log(matches);
// => ["42", "42.999"]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment