// ==UserScript==
// @name Return Pagination to Google
// @description Makes Google searches break down into separate pages, rather than displaying as one continuous page. (Quick & Dirty)
// @namespace Violentmonkey Scripts
// @match https://www.google.com/search
// @grant none
// @version 1.0
// @author Jupiter Liar
// @license Attribution CC BY
// @description 6/10/2023, 6:48 AM
// @downloadURL none
// ==/UserScript==
// Check if the page has the required conditions
if (document.getElementById('botstuff') && !document.querySelector('table.AaVjTc')) {
// Create the table element
var table = document.createElement('table');
table.className = 'AaVjTc';
table.style.margin = 'auto';
table.style.marginBottom = '32px';
// Create a variable to store the page number
var pageNumber;
// Extract the page number from the URL
var startParam = "&start=";
var startIndex = window.location.href.indexOf(startParam);
if (startIndex === -1) {
pageNumber = 1;
} else {
var startValue = parseInt(window.location.href.substring(startIndex + startParam.length));
pageNumber = Math.floor(startValue / 10) + 1;
}
// Create the table columns
for (var i = 0; i < 11; i++) {
var column = document.createElement('td');
column.style.textAlign = 'center';
column.style.verticalAlign = 'baseline';
column.style.minWidth = '20px';
column.style.fontSize = '16pt';
// Add padding to middle columns
if (i > 0 && i < 10) {
column.style.padding = '0 8pt';
}
// Add padding to previous and next columns
if (i === 0 || i === 10) {
column.style.padding = '0 24pt';
}
// Add content to the columns
if (i === 0) {
if (pageNumber !== 1) {
var previousLink = document.createElement('a');
previousLink.href = window.location.href.replace(startParam + startValue, startParam + (startValue - 10));
previousLink.innerText = '< Previous';
column.appendChild(previousLink);
}
} else if (i === 10) {
var nextLink = document.createElement('a');
nextLink.href = window.location.href.replace(startParam + startValue, startParam + (startValue + 10));
nextLink.innerText = 'Next >';
column.appendChild(nextLink);
} else {
// Calculate the page number for the column
var columnNumber;
if (pageNumber < 5) {
columnNumber = i;
} else if (pageNumber >= 5) {
columnNumber = pageNumber - 5 + i;
}
if (columnNumber === pageNumber) {
// Add page number without link
column.innerText = columnNumber;
} else {
// Add page number with link
var newStartValue = (columnNumber - 1) * 10;
if (newStartValue === 0) {
newStartValue = "0";
}
if (startIndex === -1) {
column.innerHTML = `${columnNumber}`;
} else {
column.innerHTML = `${columnNumber}`;
}
}
}
// Append the column to the table
table.appendChild(column);
}
// Append the table to the 'botstuff' div
var botstuffDiv = document.getElementById('botstuff');
botstuffDiv.appendChild(table);
}