@ecency/render-helper 2.5.7 → 2.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -504,9 +504,11 @@ function setProxyBase(p2) {
504
504
  function getProxyBase() {
505
505
  return proxyBase;
506
506
  }
507
+ var PROXY_P_PREFIXES = () => [`${proxyBase}/p/`, "https://images.ecency.com/p/"];
507
508
  function extractPHash(url) {
508
- if (url.startsWith(`${proxyBase}/p/`)) {
509
- const [hash] = url.split("/p/")[1].split("?");
509
+ const prefix = PROXY_P_PREFIXES().find((p2) => url.startsWith(p2));
510
+ if (prefix) {
511
+ const [hash] = url.slice(prefix.length).split("?");
510
512
  return hash.replace(/\.(webp|png)$/, "");
511
513
  }
512
514
  return null;
@@ -522,17 +524,18 @@ function getLatestUrl(str) {
522
524
  const [last] = [...str.replace(/https?:\/\//g, "\n$&").trim().split("\n")].reverse();
523
525
  return last;
524
526
  }
525
- function proxifyImageSrc(url, width = 0, height = 0, _format = "match") {
527
+ function proxifyImageSrc(url, width = 0, height = 0, _format = "match", opts = {}) {
526
528
  if (!url || typeof url !== "string" || !isValidUrl(url)) {
527
529
  return "";
528
530
  }
531
+ const routeThroughProxy = width > 0 || height > 0 || !!opts.blur || !!opts.forceProxy;
529
532
  if (url.indexOf("https://images.hive.blog/") === 0 && url.indexOf("https://images.hive.blog/D") !== 0) {
530
533
  return url.replace("https://images.hive.blog", proxyBase);
531
534
  }
532
535
  if (url.indexOf("https://steemitimages.com/") === 0 && url.indexOf("https://steemitimages.com/D") !== 0) {
533
536
  return url.replace("https://steemitimages.com", proxyBase);
534
537
  }
535
- if (url.indexOf("https://images.ecency.com/") === 0) {
538
+ if (url.indexOf("https://images.ecency.com/") === 0 && !routeThroughProxy) {
536
539
  return url.replace("https://images.ecency.com", proxyBase);
537
540
  }
538
541
  const realUrl = getLatestUrl(url);
@@ -547,6 +550,9 @@ function proxifyImageSrc(url, width = 0, height = 0, _format = "match") {
547
550
  if (height > 0) {
548
551
  options.height = height;
549
552
  }
553
+ if (opts.blur) {
554
+ options.blur = 1;
555
+ }
550
556
  const qs = querystring__default.default.stringify(options);
551
557
  if (pHash) {
552
558
  return `${proxyBase}/p/${pHash}?${qs}`;
@@ -607,7 +613,7 @@ function img(el, state) {
607
613
  const base = trimTrailingSlash(getProxyBase());
608
614
  const hasAlreadyProxied = src.startsWith(`${base}/p/`) || src.startsWith(`${base}/u/`) || new RegExp(`^${base.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}/\\d+x\\d+/`).test(src);
609
615
  if (shouldReplace && !hasAlreadyProxied) {
610
- const proxified = proxifyImageSrc(decodedSrc);
616
+ const proxified = proxifyImageSrc(decodedSrc, 0, 0, "match", { forceProxy: true });
611
617
  if (proxified) {
612
618
  el.setAttribute("src", proxified);
613
619
  const srcset = buildSrcSet(decodedSrc);
@@ -627,7 +633,7 @@ function img(el, state) {
627
633
  }
628
634
  }
629
635
  function createImageHTML(src, isLCP) {
630
- const proxified = proxifyImageSrc(src);
636
+ const proxified = proxifyImageSrc(src, 0, 0, "match", { forceProxy: true });
631
637
  if (!proxified) return "";
632
638
  const base = trimTrailingSlash(getProxyBase());
633
639
  const isAlreadyProxied = src.startsWith(`${base}/u/`) || new RegExp(`^${base.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}/\\d+x\\d+/`).test(src);