{"id":987,"date":"2025-08-17T07:06:20","date_gmt":"2025-08-17T07:06:20","guid":{"rendered":"https:\/\/abatablaster.xyz\/?page_id=987"},"modified":"2025-08-17T07:08:59","modified_gmt":"2025-08-17T07:08:59","slug":"grab-group-members","status":"publish","type":"page","link":"https:\/\/abatablaster.xyz\/index.php\/grab-group-members\/","title":{"rendered":"Grab Group Members"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"ms\">\n\n<head>\n    <meta charset=\"UTF-8\" \/>\n    <title>Grab Group Members \u2013 AbataBlaster<\/title>\n    <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/>\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/sweetalert2@11\"><\/script>\n    <style>\n        body {\n            background: #eef9f0;\n            font-family: system-ui, 'Segoe UI Emoji', 'Noto Color Emoji', sans-serif;\n            margin: 0;\n            padding: 0;\n        }\n\n        #wrap {\n            max-width: 780px;\n            margin: 26px auto;\n            padding: 22px 16px 26px;\n            background: #fff;\n            border-radius: 14px;\n            box-shadow: 0 4px 24px rgba(54, 196, 124, .07), 0 2px 10px rgba(0, 0, 0, .05);\n        }\n\n        h3 {\n            color: #2e7d32;\n            text-align: center;\n            margin: 8px 0 14px;\n        }\n\n        .form-label {\n            font-weight: 600;\n            margin-top: 14px;\n            display: block;\n            color: #226624;\n        }\n\n        .form-input,\n        select {\n            width: 100%;\n            padding: 9px 12px;\n            margin: 6px 0 8px 0;\n            border: 1.2px solid #cbe8d6;\n            border-radius: 7px;\n            background: #f9fff5;\n            font-size: 16px;\n            font-family: inherit;\n        }\n\n        .btn {\n            background: #2e7d32;\n            color: #fff;\n            padding: 10px 16px;\n            border: none;\n            border-radius: 7px;\n            cursor: pointer;\n            font-size: 15px;\n            font-weight: 600;\n            margin: 10px 10px 0 0;\n            transition: .15s;\n            box-shadow: 0 1.5px 4px rgba(54, 196, 124, .11);\n            display: inline-block;\n        }\n\n        .btn:hover,\n        .btn:focus {\n            background: #185734;\n        }\n\n        .btn.blue {\n            background: #1565c0;\n        }\n\n        .btn.gray {\n            background: #bdbdbd;\n            color: #333;\n        }\n\n        .btn.outline {\n            background: #fff;\n            color: #2e7d32;\n            border: 1px solid #2e7d32;\n        }\n\n        table {\n            width: 100%;\n            border-collapse: collapse;\n            font-size: 15px;\n            margin: 10px 0;\n        }\n\n        th,\n        td {\n            border: 1px solid #e0e0e0;\n            padding: 8px;\n            text-align: left;\n        }\n\n        th {\n            background: #f4faf7;\n        }\n\n        .muted {\n            color: #668d6b;\n            font-size: 13px;\n        }\n\n        .row-actions {\n            display: flex;\n            gap: 6px;\n            flex-wrap: wrap;\n        }\n\n        @media (max-width:600px) {\n            #wrap {\n                padding: 10px 8px 18px;\n            }\n\n            table,\n            th,\n            td {\n                font-size: 13px;\n            }\n\n            .btn {\n                font-size: 14px;\n                padding: 9px 10px;\n            }\n        }\n    <\/style>\n\n    <!-- Firebase SDK (Compat seperti reference) -->\n    <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.22.2\/firebase-app-compat.js\"><\/script>\n    <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.22.2\/firebase-auth-compat.js\"><\/script>\n    <script src=\"https:\/\/www.gstatic.com\/firebasejs\/9.22.2\/firebase-firestore-compat.js\"><\/script>\n<\/head>\n\n<body>\n    <div id=\"wrap\">\n        <div style=\"text-align:center;margin-bottom:10px;\">\n            <img decoding=\"async\" src=\"https:\/\/abatablaster.xyz\/wp-content\/uploads\/2025\/05\/photo_2024-05-16_15-47-59.jpg\" alt=\"Logo\"\n                style=\"max-height:86px;border-radius:14px;\">\n        <\/div>\n        <h3>\ud83d\udc65 Grab Group Members (Tanpa Simpan DB)<\/h3>\n\n        <!-- Pilih nombor -->\n        <label class=\"form-label\">\ud83d\udcf1 Pilih Nombor WhatsApp:<\/label>\n        <select id=\"nomborPengirim\" class=\"form-input\">\n            <option value=\"\">&#8212; Pilih Nombor WhatsApp &#8212;<\/option>\n        <\/select>\n\n        <!-- Extract groups -->\n        <div style=\"display:flex;gap:8px;align-items:center;flex-wrap:wrap;\">\n            <button id=\"btnExtractGroups\" class=\"btn blue\" disabled>\ud83d\udd0e Extract Groups<\/button>\n            <span id=\"extractStatus\" class=\"muted\"><\/span>\n        <\/div>\n\n        <!-- Manual Group ID -->\n        <div style=\"margin-top:8px;\">\n            <label class=\"form-label\">\ud83d\udd27 Grab terus guna Group ID (opsyenal):<\/label>\n            <div style=\"display:flex;gap:8px;flex-wrap:wrap;\">\n                <input id=\"manualGroupId\" class=\"form-input\"\n                    placeholder=\"Contoh: 1203630xxxxxxxx (tanpa @g.us pun boleh)\" style=\"flex:1;min-width:240px;\">\n                <button id=\"btnGrabManual\" class=\"btn\">\ud83d\udc65 Grab Ahli (Manual)<\/button>\n            <\/div>\n            <div class=\"muted\">* Gunakan ini jika anda dah tahu Group ID. Kalau tidak, klik \u201cExtract Groups\u201d.<\/div>\n        <\/div>\n\n        <!-- Senarai group -->\n        <div id=\"groupTableWrap\" style=\"display:none;margin-top:10px;\">\n            <div style=\"display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;\">\n                <label class=\"form-label\" style=\"margin:0;\">\ud83d\udcc2 Senarai Group Disertai:<\/label>\n                <div>\n                    <button id=\"btnGrabSelected\" class=\"btn outline\" title=\"Gabung nombor dari beberapa group\">\ud83d\udc65 Grab\n                        Ahli (Group Ditanda)<\/button>\n                    <button id=\"btnReset\" class=\"btn gray\">Reset<\/button>\n                <\/div>\n            <\/div>\n            <table id=\"groupTable\">\n                <thead>\n                    <tr>\n                        <th style=\"width:36px;\"><input type=\"checkbox\" id=\"selectAll\"><\/th>\n                        <th>Nama Group<\/th>\n                        <th>Ahli<\/th>\n                        <th>Group ID<\/th>\n                        <th style=\"width:210px;\">Tindakan<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody><!-- diisi JS --><\/tbody>\n            <\/table>\n            <div class=\"muted\" id=\"groupsHint\"><\/div>\n        <\/div>\n\n    <\/div>\n\n    <script type=\"module\" src=\"\/js\/grab-group-member.js\"><\/script>\n<\/body>\n\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Grab Group Members \u2013 AbataBlaster \ud83d\udc65 Grab Group Members (Tanpa Simpan DB) \ud83d\udcf1 Pilih Nombor WhatsApp: &#8212; Pilih Nombor WhatsApp &#8212; \ud83d\udd0e Extract Groups \ud83d\udd27 Grab terus guna Group ID (opsyenal): \ud83d\udc65 Grab Ahli (Manual) * Gunakan ini jika anda dah tahu Group ID. Kalau tidak, klik \u201cExtract Groups\u201d. \ud83d\udcc2 Senarai Group Disertai: \ud83d\udc65 Grab [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-987","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/pages\/987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=987"}],"version-history":[{"count":2,"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/pages\/987\/revisions"}],"predecessor-version":[{"id":989,"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/pages\/987\/revisions\/989"}],"wp:attachment":[{"href":"https:\/\/abatablaster.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}