Modul:AutoRelated: Perbedaan antara revisi

Tidak ada ringkasan suntingan
Tidak ada ringkasan suntingan
 
Baris 10: Baris 10:
     -- Cari semua pola wikilink [[Judul Artikel]] di dalam wikitext
     -- Cari semua pola wikilink [[Judul Artikel]] di dalam wikitext
     for link in wikitext:gmatch("%[%[([^%]|#]+)%|?.-%]%]") do
     for link in wikitext:gmatch("%[%[([^%]|#]+)%|?.-%]%]") do
        -- Bersihkan spasi dan pastikan bukan halaman spesial atau halaman diri sendiri
         link = mw.text.trim(link)
         link = mw.text.trim(link)
         if link ~= title.text and not link:find(":") then
         if link ~= title.text and not link:find(":") then
             local targetTitle = mw.title.new(link)
             local targetTitle = mw.title.new(link)
              
              
             -- Validasi ketat:
             -- Validasi ketat: Halaman ada, bukan redirect, dan belum pernah dimasukkan
            -- 1. Halaman harus ada (exists)
            -- 2. Bukan halaman pengalihan (not isRedirect) -> Mencegah redirect page terpilih!
            -- 3. Belum pernah dimasukkan (not seen)
             if targetTitle and targetTitle.exists and not targetTitle.isRedirect and not seen[link] then
             if targetTitle and targetTitle.exists and not targetTitle.isRedirect and not seen[link] then
                 seen[link] = true
                 seen[link] = true
                 table.insert(validLinks, link)
                 table.insert(validLinks, link)
               
                -- OPTIMASI UTAMA: Berhenti mencari jika sudah terkumpul 10 link valid.
                -- Ini mencegah error "too many expensive function calls" pada artikel panjang.
                if #validLinks >= 5 then
                    break
                end
             end
             end
         end
         end