Auto All Page

Otomatis menampilkan semua halaman artikel berita dalam 1 page

As of 2020-12-31. See the latest version.

// ==UserScript==
// @name          Auto All Page
// @version       1.5.0
// @author        reforget-id
// @namespace     autoallpage
// @icon          https://www.iconsdb.com/icons/download/orange/pages-1-256.png
// @homepage      https://github.com/reforget-id/AutoAllPage
// @description   Otomatis menampilkan semua halaman artikel berita dalam 1 page
// @include       http*://*.detik.com/*
// @include       http*://*.kompas.com/*
// @include       http*://*.tribunnews.com/*
// @include       http*://*.merdeka.com/*
// @include       http*://*.suara.com/*
// @include       http*://*.matamata.com/*
// @include       http*://*.sindonews.com/*
// @include       http*://*.inews.id/*
// @include       http*://*.grid.id/*
// @include       http*://*.bolasport.com/*
// @include       http*://*.motorplus-online.com/*
// @include       http*://*.gridoto.com/*
// @include       http*://*.pikiran-rakyat.com/*
// @include       http*://*.kontan.co.id/*
// @include       http*://akurat.co/*
// @include       http*://m.akurat.co/*
// @run-at        document-start
// ==/UserScript==


function consts() {
    const data = {
        detikRegex : /(?<=^.+\.detik\.com\/[a-z-]+\/d-\d+\/.+)((?<!\?.*|\/\d*)|\?.*(?<!\?single=1)|\/\d*)$/,
        kompasRegex : /(?<=^.+\.kompas.com\/([a-z-]+\/|)read\/\d{4}\/\d{2}\/\d{2}\/\d+\/.+)((?<!\?.*|\/)|\?.*(?<!\?page=all(#page\d+|))|\/)$/,
        tribunRegex : /(?<=^.+.tribunnews.com\/([a-z-]+\/|)\d{4}\/\d{2}\/\d{2}\/.+)((?<!\?.*|\/)|\?.*(?<!\?page=all)|\/)$/,
        merdekaRegex : /(?<=^.+\.merdeka\.com\/[a-z-]+\/.+\.html)((?<!\?.*|\/)|\?.*(?<!\?page=all)|\/)$/,
        suaraRegex : /(?<=^.+\.(suara|matamata)\.com\/[a-z-]+\/\d{4}\/\d{2}\/\d{2}\/\d+\/.+)((?<!\?.*|\/)|\?.*(?<!\?page=all)|\/)$/,
        sindoRegex : /(?<=^.+\.sindonews\.com\/read\/\d+\/\d+\/.+)((?<!\?.*|\/)|\?.*(?<!\?showpage=all)|\/\d*)$/,
        inewsRegex : /(?<=^.+\.inews\.id\/(berita|[a-z-]+\/[a-z-]+)\/.+)((?<!\?.*|\/(all.*|\d*))|(\/all.+)|\/\d*|\?.*)$/,
        gridRegex : /(?<=^.+\.(grid\.id|(motorplus-online|gridoto|bolasport)\.com)\/read\/\d+\/.+)((?<!\?.*|\/)|\?.*(?<!\?page=all)|\/)$/,
        prRegex : /(?<=^.+\.pikiran-rakyat\.com\/[a-z-]+\/pr-\d+\/.+)((?<!\?.*|\/)|\?.*(?<!\?page=all)|\/)$/,
        kontanRegex : /(?<=^.+\.kontan\.co\.id\/news\/.+)((?<!\?.*|\/)|\?.*(?<!\?page=all)|\/)$/,
	akuratRegex : /(?<=^.+akurat\.co\/[a-z-]+\/id-\d{7}-.+)((?<!\?.*|\/)|\?.*(?<!\?page=all)|\/)$/,
	mAkuratRegex : /(?<=^.+m\.akurat\.co\/id-\d{7}-.+)((?<!\?.*|\/)|\?.*(?<!\?page=all)|\/)$/
    }

    return data
}


async function urlRedirect() {
    const url = window.location.href

    detikRedirect(url)
    kompasRedirect(url)
    tribunnewsRedirect(url)
    merdekaRedirect(url)
    suaraRedirect(url)
    sindonewsRedirect(url)
    inewsRedirect(url)
    gridRedirect(url)
    pikiranRakyatRedirect(url)
    kontanRedirect(url)
	akuratRedirect(url)
	mAkuratRedirect(url)
	
}

function redirectHelper(url, regex, replacer) {
    let matcher = url.match(regex)
    if (matcher) {
        let newUrl = url.replace(regex, replacer)
        console.log('EXECUTE REDIRECT')
        window.location.href = newUrl
        return
    }
}

/*
function ampRemover(a, ampRegex, replacer) {
	let url = a.getAttribute("href")
	let matcher = url.match(ampRegex)
	if (matcher) {
		let newUrl = url.replace(regex, replacer)
		a.setAttribute('href', newUrl)
	}
}
*/


function detikRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().detikRegex, '?single=1')
        console.log('detik redirect')
    })
}

function kompasRedirect(url) {
    new Promise(() => {
        //let ampRegex = /(^.+(amp(\/s\/\w+|)))(?<!\.kompas.com\/(\w*(\/|))read\/\d+\/\d+\/\d+\/\d+\/.+$)/
        //ampRemover(a, ampRegex, 'https://www')
        redirectHelper(url, consts().kompasRegex, '?page=all')
        console.log('kompas redirect')
    })
}

function tribunnewsRedirect(url) {
    new Promise(() => {
        //let ampRegex = /(^.+(amp\/s\/))(?<!\.tribunnews.com\/(\w*(\/|))\d+\/\d+\/\d+\/.+)/
        redirectHelper(url, consts().tribunRegex, '?page=all')
        console.log('tribun redirect')
    })
}

function merdekaRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().merdekaRegex, '?page=all')
        console.log('merdeka redirect')
    })
}

function suaraRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().suaraRegex, '?page=all')
        console.log('suara redirect')
    })
}

function sindonewsRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().sindoRegex, '?showpage=all')
        console.log('sindo redirect')
    })
}

function inewsRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().inewsRegex, '/all')
        console.log('inews redirect')
    })
}

function gridRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().gridRegex, '?page=all')
        console.log('grid redirect')
    })
}

function pikiranRakyatRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().prRegex, '?page=all')
        console.log('pikiran rakyat redirect')
    })
}

function kontanRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().kontanRegex, '?page=all')
        console.log('kontan redirect')
    })
}

function akuratRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().akuratRegex, '?page=all')
        console.log('akurat redirect')
    })
}

function mAkuratRedirect(url) {
    new Promise(() => {
        redirectHelper(url, consts().mAkuratRegex, '?page=all')
        console.log('m.akurat redirect')
    })
}


urlRedirect()