MCPcopy Create free account
hub / github.com/Useful-Scripts-Extension/useful-script / postOnClicked

Function postOnClicked

scripts/insta_injectDownloadBtn.js:398–441  ·  view source on GitHub ↗
(target)

Source from the content-addressed store, hash-verified

396 }
397
398 async function postOnClicked(target) {
399 try {
400 // extract url from target post and download or open it
401 let articleNode = postGetArticleNode(target);
402 let { url, mediaIndex } = await postGetUrl(target, articleNode);
403
404 // download or open media url
405 if (url.length > 0) {
406 // check url
407 if (target.getAttribute("class").includes("download-btn")) {
408 let mediaName = url
409 .split("?")[0]
410 .split("\\")
411 .pop()
412 .split("/")
413 .pop();
414 mediaName = mediaName.substring(0, mediaName.lastIndexOf("."));
415 let datetime = new Date(
416 articleNode.querySelector("time").getAttribute("datetime")
417 );
418 let posterName =
419 articleNode.querySelector("header a") ||
420 findPostName(articleNode);
421 posterName = posterName.getAttribute("href").replace(/\//g, "");
422 let postId = findPostId(articleNode);
423 let filename = filenameFormat(
424 postFilenameTemplate,
425 posterName,
426 datetime,
427 mediaName,
428 postId,
429 mediaIndex
430 );
431 downloadResource(url, filename);
432 } else {
433 // open url in new tab
434 openResource(url);
435 }
436 }
437 } catch (e) {
438 console.log(`Uncatched in postOnClicked(): ${e}\n${e.stack}`);
439 return null;
440 }
441 }
442
443 function postGetArticleNode(target) {
444 let articleNode = target;

Callers 1

onClickHandlerFunction · 0.85

Calls 8

postGetArticleNodeFunction · 0.85
postGetUrlFunction · 0.85
findPostNameFunction · 0.85
findPostIdFunction · 0.85
filenameFormatFunction · 0.85
downloadResourceFunction · 0.85
openResourceFunction · 0.85
replaceMethod · 0.80

Tested by

no test coverage detected