Jump to content
Bicrypto v4.5.0 + All Plugins
  • Replies 4.1k
  • Views 249.8k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Magd Almuntaser
    Magd Almuntaser

    What's new in version 9.0.0 so far: - Added landing page (welcome page). - Added plans system. - Added cronjob page. - Added Multi-Keyword in autoreply. - Added send message with footer. -

  • Magd Almuntaser
    Magd Almuntaser

    This version will not be released soon, because there are many people who violate rights without permission.. I told everyone to use the script for free, but if you want to sell the version or redev

  • Magd Almuntaser
    Magd Almuntaser

    Today the version will be released, and this is what's new in version 8.5.0: - Added send sticker feature. - Added wysiwyg whatsapp (text editing tools). - Added location, vcard, sticker in camp

Posted Images

Featured Replies

comment_77707
15 hours ago, Pebrian said:

thanks bro. i convert to appscript

Update Script

function sendQuranMessage() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var YOUR_WEBSITE = sheet.getRange('A2').getValue();
  var API = sheet.getRange('B2').getValue();
  var YOUR_NUMBER = sheet.getRange('C2').getValue();
  var AUDIO = sheet.getRange('E2').getValue();
  
  var dataRange = sheet.getRange(2, 4, sheet.getLastRow() - 1, 1);
  var ALL_NUMBERS = dataRange.getValues();

  var TAFSIR = "kemenag";
  var SHAIKH = "alafasy";

  ALL_NUMBERS.forEach(function(row, index) {
    var number = row[0];
    number = String(number).trim();
    
    var randomAyat = getAyatFromAPI();
    
    Logger.log(randomAyat);
  
    var arabic = randomAyat.arab;
    var indonesia = randomAyat.translation;
    
    var surahNumber = randomAyat.number && randomAyat.number.inSurah ? randomAyat.number.inSurah : 'Unknown Surah';
    var numberInSurah = randomAyat.number && randomAyat.number.inQuran ? randomAyat.number.inQuran : 'Unknown Ayat';
  
    var tafsirQuran = randomAyat.tafsir && randomAyat.tafsir[TAFSIR] && randomAyat.tafsir[TAFSIR].short 
      ? randomAyat.tafsir[TAFSIR].short 
      : 'Tafsir tidak tersedia';
  
    var audioUrl = randomAyat.audio[SHAIKH];
    
    var surahName = getSurahName(surahNumber);
  
    var MessageTemplate = `*Ayat Al Quran | Surat: ${surahName} | Qs: ${surahNumber}:${numberInSurah}*

    {{arabic}}

    {{indonesia}}

    *Tafsir (${TAFSIR}):*
    {{tafsir}}

    *Sedekah Jariyah*`;
    
    var Message = MessageTemplate.replace("{{arabic}}", arabic)
                                 .replace("{{indonesia}}", indonesia)
                                 .replace("{{tafsir}}", tafsirQuran);
    
    if (AUDIO == 2) {
      Logger.log("Mengirim Teks ke nomor: " + number);
      Logger.log("Pesan Teks: " + Message);
      sendTextMessage(YOUR_WEBSITE, API, YOUR_NUMBER, number, Message);
      
      Logger.log("Mengirim Audio ke nomor: " + number);
      Logger.log("URL Audio: " + audioUrl);
      sendAudioMessage(YOUR_WEBSITE, API, YOUR_NUMBER, number, audioUrl);
      
    } else if (AUDIO == 1) {
      Logger.log("Mengirim Audio ke nomor: " + number);
      Logger.log("URL Audio: " + audioUrl);
      sendAudioMessage(YOUR_WEBSITE, API, YOUR_NUMBER, number, audioUrl);
      
    } else {
      Logger.log("Mengirim Teks ke nomor: " + number);
      Logger.log("Pesan Teks: " + Message);
      sendTextMessage(YOUR_WEBSITE, API, YOUR_NUMBER, number, Message);
    }

    Utilities.sleep(2000);
  });
}

function getAyatFromAPI() {
  var url = "https://quran-api-id.vercel.app/random";
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());
  
  Logger.log(data);
  
  return data;
}

function sendTextMessage(YOUR_WEBSITE, API, sender, number, message) {
  var url = YOUR_WEBSITE + "/send-message";
  var payload = {
    'api_key': API,
    'number': number,
    'sender': sender,
    'message': message
  };
  
  var options = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload),
    'muteHttpExceptions': true
  };
  
  var response = UrlFetchApp.fetch(url, options);
  Logger.log("Response from server: " + response.getContentText());
}

function sendAudioMessage(YOUR_WEBSITE, API, sender, number, audioUrl) {
  var url = YOUR_WEBSITE + "/send-media";
  var payload = {
    'api_key': API,
    'number': number,
    'sender': sender,
    'media_type': 'audio',
    'caption': '',
    'url': audioUrl
  };
  
  var options = {
    'method': 'POST',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload),
    'muteHttpExceptions': true
  };
  
  var response = UrlFetchApp.fetch(url, options);
  Logger.log("Response from server: " + response.getContentText());
}

function getSurahName(surahNumber) {
  var surahList = {
    1: 'Al-Fatiha',
    2: 'Al-Baqara',
    3: 'Aal-e-Imran',
    4: 'An-Nisa',
    5: 'Al-Maeda',
    6: 'Al-Anaam',
    7: 'Al-Araf',
    8: 'Al-Anfal',
    9: 'At-Taubah',
    10: 'Yunus',
    11: 'Hud',
    12: 'Yusuf',
    13: 'Ar-Rad',
    14: 'Ibrahim',
    15: 'Al-Hijr',
    16: 'An-Nahl',
    17: 'Al-Isra',
    18: 'Al-Kahf',
    19: 'Maryam',
    20: 'Taha',
    21: 'Al-Anbiya',
    22: 'Al-Hajj',
    23: 'Al-Mumenoon',
    24: 'An-Noor',
    25: 'Al-Furqan',
    26: 'Ash-Shuara',
    27: 'An-Naml',
    28: 'Al-Qasas',
    29: 'Al-Ankaboot',
    30: 'Ar-Room',
    31: 'Luqman',
    32: 'As-Sajda',
    33: 'Al-Ahzab',
    34: 'Saba',
    35: 'Fatir',
    36: 'Ya Seen',
    37: 'As-Saaffat',
    38: 'Sad',
    39: 'Az-Zumar',
    40: 'Ghafir',
    41: 'Fussilat',
    42: 'Ash-Shura',
    43: 'Az-Zukhruf',
    44: 'Ad-Dukhan',
    45: 'Al-Jathiya',
    46: 'Al-Ahqaf',
    47: 'Muhammad',
    48: 'Al-Fath',
    49: 'Al-Hujraat',
    50: 'Qaf',
    51: 'Adh-Dhariyat',
    52: 'At-Tur',
    53: 'An-Najm',
    54: 'Al-Qamar',
    55: 'Al-Rahman',
    56: 'Al-Waqia',
    57: 'Al-Hadid',
    58: 'Al-Mujadila',
    59: 'Al-Hashr',
    60: 'Al-Mumtahina',
    61: 'As-Saff',
    62: 'Al-Jumua',
    63: 'Al-Munafiqoon',
    64: 'At-Taghabun',
    65: 'At-Talaq',
    66: 'At-Tahrim',
    67: 'Al-Mulk',
    68: 'Al-Qalam',
    69: 'Al-Haaqqa',
    70: 'Al-Maarij',
    71: 'Nooh',
    72: 'Al-Jinn',
    73: 'Al-Muzzammil',
    74: 'Al-Muddathir',
    75: 'Al-Qiyama',
    76: 'Al-Insan',
    77: 'Al-Mursalat',
    78: 'An-Naba',
    79: 'An-Naziat',
    80: 'Abasa',
    81: 'At-Takwir',
    82: 'AL-Infitar',
    83: 'Al-Mutaffifin',
    84: 'Al-Inshiqaq',
    85: 'Al-Burooj',
    86: 'At-Tariq',
    87: 'Al-Ala',
    88: 'Al-Ghashiya',
    89: 'Al-Fajr',
    90: 'Al-Balad',
    91: 'Ash-Shams',
    92: 'Al-Lail',
     93: 'Ad-Dhuha',
     94: 'Al-Inshirah',
     95: 'At-Tin',
     96: 'Al-Alaq',
     97: 'Al-Qadr',
     98: 'Al-Bayyina',
     99: 'Al-Zalzala',
    100: 'Al-Adiyat',
    101: 'Al-Qaria',
    102: 'At-Takathur',
    103: 'Al-Asr',
    104: 'Al-Humaza',
    105: 'Al-fil',
    106: 'Quraish',
    107: 'Al-Maun',
    108: 'Al-Kauther',
    109: 'Al-Kafiroon',
    110: 'An-Nasr',
    111: 'Al-Masadd',
    112: 'Al-Ikhlas',
    113: 'Al-Falaq',
    114: 'An-Nas'
  };

  return surahList[surahNumber] || 'Unknown Surah';
}


Added Delay 2 Second before send next number
Added Title (Ayat Al Quran | Surahs $Title | Qs Title

image.png.8c3e1f2ad27c6a5dfcd285bcd0572366.png


mybe next time I migrate this all source to my storage, because full surahs in api not working

 

thanks my friend @Magd Almuntaser

Amazing Nice...😍👍👍👍

comment_77715

Hello can anyone help me..?
I have installed according to the instructions, but only a few moments after connecting then wa disconnected
Is there an error in my server.js script
Please share if anyone has a stable server.js
I am using Version v8.0.5 node: v20 (share hosting)

comment_77716
3 minutes ago, mdis said:

Hello can anyone help me..?
I have installed according to the instructions, but only a few moments after connecting then wa disconnected
Is there an error in my server.js script
Please share if anyone has a stable server.js
I am using Version v8.0.5 node: v20 (share hosting)

Does you add cron job?

 

every 1 min:
curl "https://yoursite/blast-start" >/dev/null 2>&1

every 1 min:
curl "https://yoursite/schedule-run" >/dev/null 2>&1

every 1 min:
curl "https://yoursite/schedule-cron" >/dev/null 2>&1

 

Edited by Unicode

comment_77718

@Unicode Yes, of course
I have run it step by step, but the connection is often lost
However, if I create a cronjob to send messages continuously via the API every minute, everything runs well. Is there an error in the server.js script? Please share it with me if anyone has a server.js modification.

Edited by mdis

comment_77719
2 minutes ago, mdis said:

@Unicode Yes, of course
I have run it step by step, but the connection is often lost
However, if I create a cronjob to send messages continuously via the API every minute, everything runs well. Is there an error in the server.js script? Please share it with me if anyone has a server.js modification.

I also got same issues.

always need to refresh connect with QR, refresh until my whatsapp profile picture shown again.

 

comment_77720
1 minute ago, Unicode said:

I also got same issues.

always need to refresh connect with QR, refresh until my whatsapp profile picture shown again.

 

If without cronjob send messages per minute via API the connection is often lost and I have to restart my node.js
Is this happening because I am using shared hosting or is there an error in the script,
If anyone has a stable script please share it with me
thank you

comment_77721
2 minutes ago, mdis said:

If without cronjob send messages per minute via API the connection is often lost and I have to restart my node.js
Is this happening because I am using shared hosting or is there an error in the script,
If anyone has a stable script please share it with me
thank you

I have try another whatsapp gateway and not found a wa gateway with rich feature.

Lets wait new update maybe will be nice

comment_77723
On 9/5/2024 at 8:56 PM, Enno The Explorer said:

Reset Password : Success 💚
**********************************************

File Manager : Success 💚
**********************************************

Export Phonebook : Success 💚
**********************************************

Campaign Snacked Admin (Theme) : Succes 💚
Campaign Eres & Eres Compact (Theme) : Success 💚
**********************************************

Text Message : Success 💚
Media Message : Success 💚
Poll Message : Success 💚
List Message : Success 💚
Location Message : Success 💚
Vcard Message : Success 💚
**********************************************

Automatically delete message history : Success 💚
**********************************************
Auto Replay Message (All Function): Success 💚
**********************************************
Api Test Message (All Function) : Success 💚
**********************************************
AI BOT One Bot (All Function): Success 💚
AI BOT Multi Bot (All Function): Success 💚
**********************************************
Webhook (All Function): Success 💚
**********************************************

Mpwa : v8.0.5
Node.js : v20
Php : v8.2
Server.js : Modifikasi
Cronjob : Tidak ada

Mulai : 

Tgl 05/09/24 Jam 10.02 
s.d
Tgl 05/09/24 Jam 10.42 
Durasi = +- 40 menit 
Tes : Pesan Api 1x 
Hasil : Success & Still Online 💚

Tgl 05/09/24 Jam 10.42 
sd 
Tgl 05/09/24 Jam 13.50 
Durasi = +- 2 Jam 
Tes : Pesan Api 1x 
Hasil : Success & Still Online 💚

Tgl 05/09/24 Jam 13.50 
sd 
Tgl 05/09/24 Jam 19.11
Durasi = +- 5 jam 
Tes : Pesan Api 1x 
Hasil : Success & Still Online 💚

Tgl 05/09/24 Jam 19.11 
sd 
Tgl 06/09/24 Jam 05.11
Durasi : Target +- 10 Jam ⚠️
Tes : Belum dilakukan ⚠️
Hasil : Belum diketahui ⚠️

I see this uses a modified Server.js, and it seems to be online for quite a while, can you share the server.js script?

@Unicode Have you ever tried this one?

comment_77724
5 minutes ago, mdis said:

If without cronjob send messages per minute via API the connection is often lost and I have to restart my node.js
Is this happening because I am using shared hosting or is there an error in the script,
If anyone has a stable script please share it with me
thank you

Some shared hosting will disconected the socket, why? because it is considered an anomaly on their log. So the solution is you must setup the cronjob on periodik time (1 hour/ 30 minutes) to restart the node js.

Next you must upgrade to the VPS for stable the sockets (spesially whiskey/baileys). I have been connected with MPWA version for 3 weeks with VM, not shared hossting.

Maybe this help you.

comment_77725
4 minutes ago, MURASAKI. said:

Some shared hosting will disconected the socket, why? because it is considered an anomaly on their log. So the solution is you must setup the cronjob on periodik time (1 hour/ 30 minutes) to restart the node js.

Next you must upgrade to the VPS for stable the sockets (spesially whiskey/baileys). I have been connected with MPWA version for 3 weeks with VM, not shared hossting.

Maybe this help you.

Can you tell me, how is cronjob command for restart node js on shared hosting?

 

comment_77727
2 minutes ago, Unicode said:

Can you tell me, how is cronjob command for restart node js on shared hosting?

 

What panel do you using? Cpanel? aaPanel? or without panel?

comment_77729
11 minutes ago, mdis said:

I see this uses a modified Server.js, and it seems to be online for quite a while, can you share the server.js script?

@Unicode Have you ever tried this one?

Not yet bro

comment_77732

@Magd Almuntaser

I found an anomaly in the "LIST MESSAGE" feature in the auto-reply section. I've already set the "Only reply when sender is" to "All", but it's not working on Android when accessed via group. However, it works fine when accessed personally. The problem is only in the Group.

Could you please explain this?

  • Author
comment_77734
7 minutes ago, Ilhamstore said:

@Magd Almuntaser

I found an anomaly in the "LIST MESSAGE" feature in the auto-reply section. I've already set the "Only reply when sender is" to "All", but it's not working on Android when accessed via group. However, it works fine when accessed personally. The problem is only in the Group.

Could you please explain this?

Yes, the problem has been fixed in the next version. The reason is that WhatsApp has modified its encryption method for some numbers. It has been modified in the next version.

comment_77742
53 minutes ago, mdis said:

Can anyone tell me, how to use cronjob command to restart node.js on shared hosting?

This is how I use "Cron Jobs" settings on shared hosting:

  • /usr/local/bin/php /path-your-porject/artisan schedule:run >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porject/artisan start:blast >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porject/artisan subscription:check >/dev/null 2>&1

Please replace (/path-your-porject/) with your actual directory path. As long as I've been using this on shared hosting, everything has been running smoothly so far.

comment_77743
10 minutes ago, Ilhamstore said:

This is how I use "Cron Jobs" settings on shared hosting:

  • /usr/local/bin/php /path-your-porject/artisan schedule:run >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porject/artisan start:blast >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porject/artisan subscription:check >/dev/null 2>&1

Please replace (/path-your-porject/) with your actual directory path. As long as I've been using this on shared hosting, everything has been running smoothly so far.

  • /usr/local/bin/php /path-your-porject/artisan subscription:check >/dev/null 2>&1 . khusus ini utk apa ya om?
comment_77744
29 minutes ago, Ilhamstore said:

Berikut cara saya menggunakan pengaturan "Cron Jobs" pada shared hosting:

  • /usr/local/bin/php /path-your-porject/artisan jadwal: jalankan >/dev/null 2>&1
  • /usr/local/bin/php /path-proyek-anda/artisan mulai: blast >/dev/null 2>&1
  • /usr/local/bin/php /path-your-porje ct/langganan artisan: periksa >/dev/null 2>&1

Harap ganti (/path-your-porject/) dengan jalur direktori Anda yang sebenarnya. Selama saya menggunakan ini di shared hosting, semuanya berjalan lancar sejauh ini.

This is run every few minutes or hours ..?

Edited by mdis

comment_77754
3 hours ago, Enno The Explorer said:
  • /usr/local/bin/php /path-your-porject/artisan subscription:check >/dev/null 2>&1 . khusus ini utk apa ya om?

to check user subscriptions, whether they have expired or not..

comment_77762

Can status columns be made dynamic? So if the number is connected, the status is connected and if it is disconnected, the status changes (disconnected). 

I added 3 numbers, the status was all connected. but when I click QRCode, the device asks to Scan QRCode again

help Mr. @Magd Almuntaser

Thank You

image.png.6530971fe0a2bbbeb4833891cb0a33eb.pngimage.thumb.png.4ff73d3c14037df57e3f4be66f25b76d.png

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.

Latest Updated Files