Greasy Fork is available in English.
Restores normal thumbnails size
当前为
"use strict";
// ==UserScript==
// @name YouTube Normal Thumbnails
// @namespace http://greasyfork.org
// @version 0.6.0
// @description Restores normal thumbnails size
// @author NeoCortex
// @match *://www.youtube.com/*
// @run-at document-end
// @grant none
// ==/UserScript==
(function () {
var perRowProperty = '--ytd-rich-grid-items-per-row';
var styleContent = "\n ytd-rich-grid-video-renderer[mini-mode] #video-title.ytd-rich-grid-video-renderer {\n font-size: 1.4rem;\n font-weight: 500;\n line-height: 1.6rem;\n }\n\n #avatar-link.ytd-rich-grid-video-renderer {\n display: none !important;\n }\n ".trim();
var YoutubeThumbnailsFixer = /** @class */ (function () {
function YoutubeThumbnailsFixer() {
this.videoObserverConfig = {
attributes: true,
childList: false,
subtree: false
};
this.installContentObserver();
}
YoutubeThumbnailsFixer.prototype.installContentObserver = function () {
var _this = this;
this.observer = new MutationObserver(function (mutationsList, observer) {
var _a;
_this.target = document.querySelector('ytd-rich-grid-renderer');
if (null !== _this.target) {
(_a = _this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
_this.installStyle();
_this.updateRowsCount();
_this.installVideoGridObserver();
}
});
this.observer.observe(document.getElementById('content'), {
attributes: false,
childList: true,
subtree: true
});
};
YoutubeThumbnailsFixer.prototype.installVideoGridObserver = function () {
var _this = this;
var _a;
if (this.isNil(this.target)) {
return;
}
this.observer = new MutationObserver(function (mutationsList, observer) {
var _a, _b;
for (var _i = 0, mutationsList_1 = mutationsList; _i < mutationsList_1.length; _i++) {
var mutation = mutationsList_1[_i];
if (mutation.attributeName == 'style') {
(_a = _this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
_this.updateRowsCount();
(_b = _this.observer) === null || _b === void 0 ? void 0 : _b.observe(_this.target, _this.videoObserverConfig);
}
}
});
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.observe(this.target, this.videoObserverConfig);
console.info("[YouTube Normal Thumbnails] Changed to " + this.currentPerRow + " thumbnails per row instead of " + this.oldPerRow + ".");
};
YoutubeThumbnailsFixer.prototype.updateRowsCount = function () {
if (this.isNil(this.target)) {
return;
}
try {
if (this.oldPerRow === undefined || this.oldPerRow == this.currentPerRow || this.oldPerRow === 0) {
this.oldPerRow = this.currentPerRow;
this.currentPerRow += 1;
}
}
catch (e) {
console.warn("[YouTube Normal Thumbnails] Cannot update thumbnails count: " + e);
}
};
YoutubeThumbnailsFixer.prototype.installStyle = function () {
var style = document.createElement('style');
style.innerHTML = styleContent;
document.body.appendChild(style);
};
YoutubeThumbnailsFixer.prototype.isNil = function (item) {
return null === item || undefined === item;
};
Object.defineProperty(YoutubeThumbnailsFixer.prototype, "currentPerRow", {
get: function () {
if (this.isNil(this.target)) {
return 0;
}
return +this.target.style.getPropertyValue(perRowProperty);
},
set: function (value) {
var _a;
(_a = this.target) === null || _a === void 0 ? void 0 : _a.style.setProperty(perRowProperty, String(value));
},
enumerable: false,
configurable: true
});
return YoutubeThumbnailsFixer;
}());
new YoutubeThumbnailsFixer();
})();