// ==UserScript==
// @name display_filename_on_image
// @name:ja display_filename_on_image
// @name:zh-TW display_filename_on_image
// @name:zh-CN display_filename_on_image
// @namespace display_filename_on_image
// @supportURL https://github.com/zhuzemin
// @description:zh-CN with custom position, size, color
// @description:zh-TW with custom position, size, color
// @description:ja with custom position, size, color
// @description with custom position, size, color
// @include https://*
// @include http://*
// @version 1.0
// @grant GM_xmlhttpRequest
// @grant GM_registerMenuCommand
// @grant GM_setValue
// @grant GM_getValue
// @run-at document-end
// @author zhuzemin
// @license Mozilla Public License 2.0; http://www.mozilla.org/MPL/2.0/
// @license CC Attribution-ShareAlike 4.0 International; http://creativecommons.org/licenses/by-sa/4.0/
// ==/UserScript==
let textPosition={
bottom_left:`
bottom: 8px;
left: 16px;
`,
top_left:`
top: 8px;
left: 16px;
`,
top_right:`
top: 8px;
right: 16px;
`,
bottom_right:`
bottom: 8px;
right: 16px;
`,
centered :`
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
`
}
var config = {
'debug': false,
'targetImgSize':['260x146','260x289'],
//'targetImgSize':['16x16','40x40','96x96'],
'color':'black',
'size':'100%',
'position':textPosition.centered
}
var debug = config.debug ? console.log.bind(console) : function () {
};
// setting User Preferences
function setUserPref(varName, defaultVal, menuText, promtText, sep){
GM_registerMenuCommand(menuText, function() {
var val = prompt(promtText, GM_getValue(varName, defaultVal));
if (val === null) { return; } // end execution if clicked CANCEL
// prepare string of variables separated by the separator
if (sep && val){
var pat1 = new RegExp('\\s*' + sep + '+\\s*', 'g'); // trim space/s around separator & trim repeated separator
var pat2 = new RegExp('(?:^' + sep + '+|' + sep + '+$)', 'g'); // trim starting & trailing separator
//val = val.replace(pat1, sep).replace(pat2, '');
}
//val = val.replace(/\s{2,}/g, ' ').trim(); // remove multiple spaces and trim
GM_setValue(varName, val);
// Apply changes (immediately if there are no existing highlights, or upon reload to clear the old ones)
//if(!document.body.querySelector(".THmo")) THmo_doHighlight(document.body);
//else location.reload();
});
}
// prepare UserPrefs
setUserPref(
'tags',
'chinese;',
'Set Highlight Tags',
`Set Highlight Tags, split with ";". Example: "mmf threesome; chinese"`,
','
);
var init = function () {
let imgList=document.querySelectorAll('img');
for(var img of imgList){
let imgSize=img.width+'x'+img.height;
debug('imgSize: '+imgSize);
if(config.targetImgSize.includes(imgSize)){
if(img.src!=null){
let filename=img.src.match(/([^/]*)$/)[1];
debug('filename: '+filename);
let div=document.createElement('div');
div.style=`
position: absolute;
font-size:`+config.size+`;
color:`+config.color+`;
`+config.position;
debug('div.style: '+div.style);
div.innerText=filename;
img.parentElement.style='position: relative!important;';
img.parentElement.insertBefore(div,null);
}
}
}
}
window.addEventListener('load', init);