MediaWiki:Common.js: Perbedaan antara revisi
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
||
| Baris 1.221: | Baris 1.221: | ||
var promoList = ['memang hebat', 'terpercaya sekali', 'terbaik di dunia', 'hubungi nomor kami', 'harga murah', 'kualitas terjamin', 'solusi terbaik']; | var promoList = ['memang hebat', 'terpercaya sekali', 'terbaik di dunia', 'hubungi nomor kami', 'harga murah', 'kualitas terjamin', 'solusi terbaik']; | ||
if (promoList.some(p => rawContent.toLowerCase().includes(p)) && !/\{\{Hapus/i.test(content)) { | if (promoList.some(p => rawContent.toLowerCase().includes(p)) && !/\{\{Hapus/i.test(content)) { | ||
content = '{{Hapus| | content = '{{Hapus|Deteksi kalimat promosi otomatis}}\n' + content; | ||
summaryParts.push('+Promo'); | summaryParts.push('+Promo'); | ||
} | } | ||
| Baris 1.302: | Baris 1.302: | ||
/* ========================================================== | /* ========================================================== | ||
💀 MIPPEDIA AUTO-REAPER SYSTEM (SEPARATE MODULE) | |||
Fungsi: Deteksi {{Hapus...}} -> Kunci Halaman -> Hapus Otomatis | |||
Hanya berfungsi jika dijalankan oleh akun ADMINISTRATOR. | |||
========================================================== */ | ========================================================== */ | ||
(function() { | (function() { | ||
// 1. Inisialisasi API | |||
var | var api = new mw.Api(); | ||
// Hanya | // 2. Fungsi Utama Pemantau | ||
if ( | function monitorRecentChanges() { | ||
api.get({ | |||
action: 'query', | |||
list: 'recentchanges', | |||
rcnamespace: 0, // Hanya artikel | |||
rclimit: 10, | |||
rcprop: 'title|ids' | |||
}).done(function(data) { | |||
var changes = data.query.recentchanges; | |||
changes.forEach(function(rc) { | |||
checkAndExecute(rc.title); | |||
}); | |||
}); | |||
} | |||
// 3. Cek Isi Artikel & Eksekusi | |||
function checkAndExecute(title) { | |||
api.get({ | |||
action: 'query', | |||
titles: title, | |||
prop: 'revisions', | |||
rvprop: 'content' | |||
}).done(function(res) { | |||
var pages = res.query.pages; | |||
var pageId = Object.keys(pages)[0]; | |||
if (pageId === "-1") return; // Halaman sudah tidak ada | |||
var content = pages[pageId].revisions[0]['*']; | |||
// CEK: Apakah ada template hapus spesifik? | |||
if (content.includes('{{Hapus|Deteksi kalimat promosi otomatis}}')) { | |||
console.log('💀 Target Terdeteksi: ' + title); | |||
// LANGKAH 1: Kunci Halaman (Protect) agar tidak bisa diedit orang lain | |||
api.postWithToken('csrf', { | |||
action: 'protect', | |||
title: title, | |||
protections: 'edit=sysop|move=sysop', | |||
expiry: 'infinite', | |||
reason: 'Mippedia Security: Mengunci artikel promosi untuk pemusnahan.' | |||
}).done(function() { | |||
console.log('🔒 Halaman Dikunci: ' + title); | |||
} | |||
// LANGKAH 2: Hitung Mundur 60 Detik (1 Menit) untuk Penghapusan Permanen | |||
setTimeout(function() { | |||
api.postWithToken('csrf', { | |||
action: 'delete', | |||
title: title, | |||
reason: 'Mippedia Auto-Reaper: Penghapusan otomatis artikel promosi terdeteksi sistem.' | |||
}).done(function() { | |||
console.log('🔥 Musnah Total: ' + title); | |||
}); | |||
}, 60000); // 60.000 ms = 1 menit | |||
}); | |||
} | } | ||
}); | }); | ||
}); | } | ||
// Jalankan pemantauan setiap 30 detik | |||
setInterval(monitorRecentChanges, 30000); | |||
console.log('🛡️ Mippedia Reaper System is Active...'); | |||
})(); | })(); | ||