MCPcopy
hub / github.com/hoothin/UserScripts / loadImg

Function loadImg

Picviewer CE+/dist.user.js:16842–16903  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

16840 }
16841 };
16842 let loadImg = async() => {
16843 self.showTips("Loading image...");
16844
16845 let imgSrc = dataset(node, 'src');
16846 let mode = matchedRule.getMode(imgSrc);
16847 let media;
16848 let loaded = function() {
16849 media.play();
16850 self.showTips("");
16851 popupImgWin(this || media);
16852 media.removeEventListener('loadeddata', loaded);
16853 }
16854 switch (mode) {
16855 case "video":
16856 media = createVideo();
16857 media.style.width = 0;
16858 media.style.height = 0;
16859 media.controls = true;
16860 media.loop = true;
16861 media.autoplay = true;
16862 media.volume = matchedRule.mute ? 0 : 1;
16863 imgSrc = imgSrc.replace(/^video:/, "");
16864 if (imgSrc.indexOf('.mkv') !== -1) media.type = 'video/mp4';
16865 else if (imgSrc.indexOf('.m3u8') !== -1) {
16866 try {
16867 loaded();
16868 await initVideojs(media, imgSrc);
16869 imgSrc = "";
16870 } catch (error) {
16871 console.error('Failed to load or initialize Video.js player:', error);
16872 }
16873 }
16874 break;
16875 case "audio":
16876 media = document.createElement('audio');
16877 media.controls = true;
16878 media.autoplay = true;
16879 media.volume = matchedRule.mute ? 0 : 1;
16880 imgSrc = imgSrc.replace(/^audio:/, "");
16881 break;
16882 default:
16883 break;
16884 }
16885 if (media) {
16886 if (imgSrc) {
16887 media.src = imgSrc;
16888 media.addEventListener('loadeddata', loaded);
16889 media.load();
16890 }
16891 } else {
16892 imgReady(imgSrc, {
16893 ready: function() {
16894 self.showTips("");
16895 popupImgWin(this);
16896 },
16897 error:function(e){
16898 self.showTips("");
16899 loadError();

Callers 1

initFunction · 0.70

Calls 8

datasetFunction · 0.70
createVideoFunction · 0.70
loadedFunction · 0.70
initVideojsFunction · 0.70
imgReadyFunction · 0.70
popupImgWinFunction · 0.70
loadErrorFunction · 0.70
findPicFunction · 0.70

Tested by

no test coverage detected