@ecency/render-helper 2.2.11 → 2.2.15

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.
Files changed (46) hide show
  1. package/lib/catch-post-image.js +7 -7
  2. package/lib/catch-post-image.js.map +1 -1
  3. package/lib/consts/allowed-attributes.const.js +1 -0
  4. package/lib/consts/allowed-attributes.const.js.map +1 -1
  5. package/lib/consts/regexes.const.d.ts +1 -0
  6. package/lib/consts/regexes.const.js +3 -2
  7. package/lib/consts/regexes.const.js.map +1 -1
  8. package/lib/helper.d.ts +1 -0
  9. package/lib/helper.js +14 -2
  10. package/lib/helper.js.map +1 -1
  11. package/lib/markdown-2-html.js +7 -7
  12. package/lib/markdown-2-html.js.map +1 -1
  13. package/lib/methods/a.method.js +72 -54
  14. package/lib/methods/a.method.js.map +1 -1
  15. package/lib/methods/clean-reply.method.js +2 -2
  16. package/lib/methods/iframe.method.js +5 -5
  17. package/lib/methods/iframe.method.js.map +1 -1
  18. package/lib/methods/img.method.js +1 -1
  19. package/lib/methods/img.method.js.map +1 -1
  20. package/lib/methods/linkify.method.js +10 -10
  21. package/lib/methods/linkify.method.js.map +1 -1
  22. package/lib/methods/markdown-to-html.method.js +5 -5
  23. package/lib/methods/markdown-to-html.method.js.map +1 -1
  24. package/lib/methods/sanitize-html.method.js +1 -1
  25. package/lib/methods/sanitize-html.method.js.map +1 -1
  26. package/lib/methods/text.method.js +16 -10
  27. package/lib/methods/text.method.js.map +1 -1
  28. package/lib/methods/traverse.method.js +4 -4
  29. package/lib/methods/traverse.method.js.map +1 -1
  30. package/lib/post-body-summary.js +6 -5
  31. package/lib/post-body-summary.js.map +1 -1
  32. package/lib/proxify-image-src.js +12 -8
  33. package/lib/proxify-image-src.js.map +1 -1
  34. package/lib/render-helper.js +1 -1
  35. package/package.json +1 -1
  36. package/src/consts/allowed-attributes.const.ts +1 -0
  37. package/src/consts/regexes.const.ts +2 -1
  38. package/src/helper.ts +11 -0
  39. package/src/markdown-2-html.spec.ts +39 -3
  40. package/src/methods/a.method.ts +40 -13
  41. package/src/methods/clean-reply.method.ts +2 -2
  42. package/src/methods/markdown-to-html.method.ts +2 -2
  43. package/src/methods/text.method.ts +7 -1
  44. package/src/post-body-summary.ts +3 -1
  45. package/src/test/data/legacy/23.json +1 -1
  46. package/src/test/data/legacy/27.JSON +1 -1
@@ -25,18 +25,18 @@ function getImage(entry, width, height, format) {
25
25
  }
26
26
  }
27
27
  if (meta && meta.image && !!meta.image.length && meta.image[0]) {
28
- return proxify_image_src_1.proxifyImageSrc(meta.image[0], width, height, format);
28
+ return (0, proxify_image_src_1.proxifyImageSrc)(meta.image[0], width, height, format);
29
29
  }
30
30
  // try to find first image from post body
31
- var html = markdown_2_html_1.markdown2Html(entry);
32
- var doc = helper_1.createDoc(html);
31
+ var html = (0, markdown_2_html_1.markdown2Html)(entry);
32
+ var doc = (0, helper_1.createDoc)(html);
33
33
  if (!doc) {
34
34
  return null;
35
35
  }
36
36
  var imgEls = doc.getElementsByTagName('img');
37
37
  if (imgEls.length >= 1) {
38
38
  var src = imgEls[0].getAttribute('src');
39
- return proxify_image_src_1.proxifyImageSrc(src, width, height, format);
39
+ return (0, proxify_image_src_1.proxifyImageSrc)(src, width, height, format);
40
40
  }
41
41
  return null;
42
42
  }
@@ -47,13 +47,13 @@ function catchPostImage(obj, width, height, format) {
47
47
  if (typeof obj === 'string') {
48
48
  return getImage(obj, width, height, format);
49
49
  }
50
- var key = helper_1.makeEntryCacheKey(obj) + "-" + width + "x" + height + "-" + format;
51
- var item = cache_1.cacheGet(key);
50
+ var key = "".concat((0, helper_1.makeEntryCacheKey)(obj), "-").concat(width, "x").concat(height, "-").concat(format);
51
+ var item = (0, cache_1.cacheGet)(key);
52
52
  if (item) {
53
53
  return item;
54
54
  }
55
55
  var res = getImage(obj, width, height, format);
56
- cache_1.cacheSet(key, res);
56
+ (0, cache_1.cacheSet)(key, res);
57
57
  return res;
58
58
  }
59
59
  exports.catchPostImage = catchPostImage;
@@ -1 +1 @@
1
- {"version":3,"file":"catch-post-image.js","sourceRoot":"","sources":["../src/catch-post-image.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,qDAAiD;AACjD,mCAAuD;AACvD,iCAA4C;AAG5C,SAAS,QAAQ,CAAC,KAAY,EAAE,KAAS,EAAE,MAAU,EAAE,MAAgB;IAAvC,sBAAA,EAAA,SAAS;IAAE,uBAAA,EAAA,UAAU;IAAE,uBAAA,EAAA,gBAAgB;IACrE;;QAEI;IACJ,IAAI,IAAmC,CAAA;IAEvC,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;QAC3C,IAAI,GAAG,KAAK,CAAC,aAAa,CAAA;KAC3B;SAAM;QACL,IAAI;YACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAuB,CAAC,CAAA;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,GAAG,IAAI,CAAA;SACZ;KACF;IAED,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC9D,OAAO,mCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAC7D;IAED,yCAAyC;IACzC,IAAM,IAAI,GAAG,+BAAa,CAAC,KAAK,CAAC,CAAA;IACjC,IAAM,GAAG,GAAG,kBAAS,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;QACtB,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACzC,OAAO,mCAAe,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KACnD;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,cAAc,CAAC,GAAmB,EAAE,KAAS,EAAE,MAAU,EAAE,MAAgB;IAAvC,sBAAA,EAAA,SAAS;IAAE,uBAAA,EAAA,UAAU;IAAE,uBAAA,EAAA,gBAAgB;IACzF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,QAAQ,CAAC,GAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KACnD;IACD,IAAM,GAAG,GAAM,0BAAiB,CAAC,GAAG,CAAC,SAAI,KAAK,SAAI,MAAM,SAAI,MAAQ,CAAA;IAEpE,IAAM,IAAI,GAAG,gBAAQ,CAAS,GAAG,CAAC,CAAA;IAClC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,gBAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAfD,wCAeC"}
1
+ {"version":3,"file":"catch-post-image.js","sourceRoot":"","sources":["../src/catch-post-image.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AACrD,qDAAiD;AACjD,mCAAuD;AACvD,iCAA4C;AAG5C,SAAS,QAAQ,CAAC,KAAY,EAAE,KAAS,EAAE,MAAU,EAAE,MAAgB;IAAvC,sBAAA,EAAA,SAAS;IAAE,uBAAA,EAAA,UAAU;IAAE,uBAAA,EAAA,gBAAgB;IACrE;;QAEI;IACJ,IAAI,IAAmC,CAAA;IAEvC,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE;QAC3C,IAAI,GAAG,KAAK,CAAC,aAAa,CAAA;KAC3B;SAAM;QACL,IAAI;YACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAuB,CAAC,CAAA;SACjD;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,GAAG,IAAI,CAAA;SACZ;KACF;IAED,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC9D,OAAO,IAAA,mCAAe,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KAC7D;IAED,yCAAyC;IACzC,IAAM,IAAI,GAAG,IAAA,+BAAa,EAAC,KAAK,CAAC,CAAA;IACjC,IAAM,GAAG,GAAG,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;QACtB,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACzC,OAAO,IAAA,mCAAe,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KACnD;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,cAAc,CAAC,GAAmB,EAAE,KAAS,EAAE,MAAU,EAAE,MAAgB;IAAvC,sBAAA,EAAA,SAAS;IAAE,uBAAA,EAAA,UAAU;IAAE,uBAAA,EAAA,gBAAgB;IACzF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,OAAO,QAAQ,CAAC,GAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;KACnD;IACD,IAAM,GAAG,GAAG,UAAG,IAAA,0BAAiB,EAAC,GAAG,CAAC,cAAI,KAAK,cAAI,MAAM,cAAI,MAAM,CAAE,CAAA;IAEpE,IAAM,IAAI,GAAG,IAAA,gBAAQ,EAAS,GAAG,CAAC,CAAA;IAClC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,IAAA,gBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAfD,wCAeC"}
@@ -14,6 +14,7 @@ exports.ALLOWED_ATTRIBUTES = {
14
14
  'data-filter',
15
15
  'data-embed-src',
16
16
  'data-youtube',
17
+ 'data-start-time',
17
18
  'data-video-href',
18
19
  'data-proposal',
19
20
  'class',
@@ -1 +1 @@
1
- {"version":3,"file":"allowed-attributes.const.js","sourceRoot":"","sources":["../../src/consts/allowed-attributes.const.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAiB;IAC9C,GAAG,EAAE;QACH,MAAM;QACN,QAAQ;QACR,KAAK;QACL,eAAe;QACf,UAAU;QACV,aAAa;QACb,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,eAAe;QACf,OAAO;QACP,OAAO;QACP,SAAS;KACV;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,SAAS,CAAC;IACtH,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAA"}
1
+ {"version":3,"file":"allowed-attributes.const.js","sourceRoot":"","sources":["../../src/consts/allowed-attributes.const.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAiB;IAC9C,GAAG,EAAE;QACH,MAAM;QACN,QAAQ;QACR,KAAK;QACL,eAAe;QACf,UAAU;QACV,aAAa;QACb,WAAW;QACX,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,eAAe;QACf,OAAO;QACP,OAAO;QACP,SAAS;KACV;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,CAAC,OAAO,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,SAAS,CAAC;IACtH,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;CACV,CAAA"}
@@ -38,3 +38,4 @@ export declare const BRAND_NEW_TUBE_REGEX: RegExp;
38
38
  export declare const LOOM_REGEX: RegExp;
39
39
  export declare const LOOM_EMBED_REGEX: RegExp;
40
40
  export declare const AUREAL_EMBED_REGEX: RegExp;
41
+ export declare const ENTITY_REGEX: RegExp;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AUREAL_EMBED_REGEX = exports.LOOM_EMBED_REGEX = exports.LOOM_REGEX = exports.BRAND_NEW_TUBE_REGEX = exports.TWITCH_EMBED_REGEX = exports.SOUNDCLOUD_EMBED_REGEX = exports.SPOTIFY_EMBED_REGEX = exports.VIMM_EMBED_REGEX = exports.BRIGHTEON_REGEX = exports.RUMBLE_REGEX = exports.SPOTIFY_REGEX = exports.TWITTER_REGEX = exports.SPEAK_EMBED_REGEX = exports.SPEAK_REGEX = exports.ARCH_REGEX = exports.ODYSEE_REGEX = exports.LBRY_REGEX = exports.TRUVVL_REGEX = exports.DAPPLR_REGEX = exports.TWITCH_REGEX = exports.D_TUBE_EMBED_REGEX = exports.D_TUBE_REGEX2 = exports.D_TUBE_REGEX = exports.BITCHUTE_REGEX = exports.VIMEO_EMBED_REGEX = exports.VIMEO_REGEX = exports.YOUTUBE_EMBED_REGEX = exports.YOUTUBE_REGEX = exports.CUSTOM_COMMUNITY_REGEX = exports.INTERNAL_POST_REGEX = exports.INTERNAL_POST_TAG_REGEX = exports.INTERNAL_TOPIC_REGEX = exports.INTERNAL_MENTION_REGEX = exports.TOPIC_REGEX = exports.MENTION_REGEX = exports.CCC_REGEX = exports.POST_REGEX = exports.IPFS_REGEX = exports.IMG_REGEX = exports.URL_REGEX = void 0;
3
+ exports.ENTITY_REGEX = exports.AUREAL_EMBED_REGEX = exports.LOOM_EMBED_REGEX = exports.LOOM_REGEX = exports.BRAND_NEW_TUBE_REGEX = exports.TWITCH_EMBED_REGEX = exports.SOUNDCLOUD_EMBED_REGEX = exports.SPOTIFY_EMBED_REGEX = exports.VIMM_EMBED_REGEX = exports.BRIGHTEON_REGEX = exports.RUMBLE_REGEX = exports.SPOTIFY_REGEX = exports.TWITTER_REGEX = exports.SPEAK_EMBED_REGEX = exports.SPEAK_REGEX = exports.ARCH_REGEX = exports.ODYSEE_REGEX = exports.LBRY_REGEX = exports.TRUVVL_REGEX = exports.DAPPLR_REGEX = exports.TWITCH_REGEX = exports.D_TUBE_EMBED_REGEX = exports.D_TUBE_REGEX2 = exports.D_TUBE_REGEX = exports.BITCHUTE_REGEX = exports.VIMEO_EMBED_REGEX = exports.VIMEO_REGEX = exports.YOUTUBE_EMBED_REGEX = exports.YOUTUBE_REGEX = exports.CUSTOM_COMMUNITY_REGEX = exports.INTERNAL_POST_REGEX = exports.INTERNAL_POST_TAG_REGEX = exports.INTERNAL_TOPIC_REGEX = exports.INTERNAL_MENTION_REGEX = exports.TOPIC_REGEX = exports.MENTION_REGEX = exports.CCC_REGEX = exports.POST_REGEX = exports.IPFS_REGEX = exports.IMG_REGEX = exports.URL_REGEX = void 0;
4
4
  // link regex
5
5
  exports.URL_REGEX = /(https?:\/\/[^\s]+)/g;
6
6
  exports.IMG_REGEX = /(https?:\/\/.*\.(?:tiff?|jpe?g|gif|png|svg|ico|heic|webp))(.*)/gim;
@@ -14,7 +14,7 @@ exports.INTERNAL_TOPIC_REGEX = /^\/(trending|hot|created|promoted|muted|payout)\
14
14
  exports.INTERNAL_POST_TAG_REGEX = /\/(.*)\/(@[\w.\d-]+)\/(.*)/i;
15
15
  exports.INTERNAL_POST_REGEX = /^\/(@[\w.\d-]+)\/(.*)$/i;
16
16
  exports.CUSTOM_COMMUNITY_REGEX = /^https?:\/\/(.*)\/c\/(hive-\d+)(.*)/i;
17
- exports.YOUTUBE_REGEX = /(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([^& \n<]+)(?:[^ \n<]+)?/g;
17
+ exports.YOUTUBE_REGEX = /(?:youtube.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu.be\/)([^"&?\/\s]{11})/g;
18
18
  exports.YOUTUBE_EMBED_REGEX = /^(https?:)?\/\/www.youtube.com\/(embed|shorts)\/.*/i;
19
19
  exports.VIMEO_REGEX = /(https?:\/\/)?(www\.)?(?:vimeo)\.com.*(?:videos|video|channels|)\/([\d]+)/i;
20
20
  exports.VIMEO_EMBED_REGEX = /https:\/\/player\.vimeo\.com\/video\/([0-9]+)/;
@@ -42,4 +42,5 @@ exports.BRAND_NEW_TUBE_REGEX = /^https:\/\/brandnewtube\.com\/embed\/[a-z0-9]+$/
42
42
  exports.LOOM_REGEX = /^(https?:)?\/\/www.loom.com\/share\/(.*)/i;
43
43
  exports.LOOM_EMBED_REGEX = /^(https?:)?\/\/www.loom.com\/embed\/(.*)/i;
44
44
  exports.AUREAL_EMBED_REGEX = /^(https?:\/\/)?(www\.)?(?:aureal-embed)\.web\.app\/([0-9]+)/i;
45
+ exports.ENTITY_REGEX = /&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-fA-F]{1,6});/ig;
45
46
  //# sourceMappingURL=regexes.const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"regexes.const.js","sourceRoot":"","sources":["../../src/consts/regexes.const.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACA,QAAA,SAAS,GAAG,sBAAsB,CAAA;AAClC,QAAA,SAAS,GAAG,mEAAmE,CAAA;AAC/E,QAAA,UAAU,GAAG,4CAA4C,CAAA;AACzD,QAAA,UAAU,GAAG,6CAA6C,CAAA;AAC1D,QAAA,SAAS,GAAG,2CAA2C,CAAA;AACvD,QAAA,aAAa,GAAG,kCAAkC,CAAA;AAClD,QAAA,WAAW,GAAG,wEAAwE,CAAA;AACtF,QAAA,sBAAsB,GAAG,iBAAiB,CAAA;AAC1C,QAAA,oBAAoB,GAAG,yDAAyD,CAAA;AAChF,QAAA,uBAAuB,GAAG,6BAA6B,CAAA;AACvD,QAAA,mBAAmB,GAAG,yBAAyB,CAAA;AAC/C,QAAA,sBAAsB,GAAG,sCAAsC,CAAA;AAC/D,QAAA,aAAa,GAAG,4FAA4F,CAAA;AAC5G,QAAA,mBAAmB,GAAG,qDAAqD,CAAA;AAC3E,QAAA,WAAW,GAAG,4EAA4E,CAAA;AAC1F,QAAA,iBAAiB,GAAG,+CAA+C,CAAA;AACnE,QAAA,cAAc,GAAG,wEAAwE,CAAA;AACzF,QAAA,YAAY,GAAG,0CAA0C,CAAA;AACzD,QAAA,aAAa,GAAG,uCAAuC,CAAA;AACvD,QAAA,kBAAkB,GAAG,4BAA4B,CAAA;AACjD,QAAA,YAAY,GAAG,wEAAwE,CAAA;AACvF,QAAA,YAAY,GAAG,4DAA4D,CAAA;AAC3E,QAAA,YAAY,GAAG,mDAAmD,CAAA;AAClE,QAAA,UAAU,GAAG,wCAAwC,CAAA;AACrD,QAAA,YAAY,GAAG,2CAA2C,CAAA;AAC1D,QAAA,UAAU,GAAG,wCAAwC,CAAA;AACrD,QAAA,WAAW,GAAG,2GAA2G,CAAA;AACzH,QAAA,iBAAiB,GAAG,4CAA4C,CAAA;AAChE,QAAA,aAAa,GAAG,4DAA4D,CAAA;AAC5E,QAAA,aAAa,GAAG,mDAAmD,CAAA;AACnE,QAAA,YAAY,GAAI,wDAAwD,CAAA;AACxE,QAAA,eAAe,GAAG,8DAA8D,CAAA;AAChF,QAAA,gBAAgB,GAAG,6BAA6B,CAAA;AAChD,QAAA,mBAAmB,GAAG,kGAAkG,CAAA;AACxH,QAAA,sBAAsB,GAAG,0CAA0C,CAAA;AACnE,QAAA,kBAAkB,GAAG,sCAAsC,CAAA;AAC3D,QAAA,oBAAoB,GAAG,kDAAkD,CAAA;AACzE,QAAA,UAAU,GAAG,2CAA2C,CAAA;AACxD,QAAA,gBAAgB,GAAG,2CAA2C,CAAA;AAC9D,QAAA,kBAAkB,GAAG,8DAA8D,CAAA"}
1
+ {"version":3,"file":"regexes.const.js","sourceRoot":"","sources":["../../src/consts/regexes.const.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACA,QAAA,SAAS,GAAG,sBAAsB,CAAA;AAClC,QAAA,SAAS,GAAG,mEAAmE,CAAA;AAC/E,QAAA,UAAU,GAAG,4CAA4C,CAAA;AACzD,QAAA,UAAU,GAAG,6CAA6C,CAAA;AAC1D,QAAA,SAAS,GAAG,2CAA2C,CAAA;AACvD,QAAA,aAAa,GAAG,kCAAkC,CAAA;AAClD,QAAA,WAAW,GAAG,wEAAwE,CAAA;AACtF,QAAA,sBAAsB,GAAG,iBAAiB,CAAA;AAC1C,QAAA,oBAAoB,GAAG,yDAAyD,CAAA;AAChF,QAAA,uBAAuB,GAAG,6BAA6B,CAAA;AACvD,QAAA,mBAAmB,GAAG,yBAAyB,CAAA;AAC/C,QAAA,sBAAsB,GAAG,sCAAsC,CAAA;AAC/D,QAAA,aAAa,GAAG,2FAA2F,CAAA;AAC3G,QAAA,mBAAmB,GAAG,qDAAqD,CAAA;AAC3E,QAAA,WAAW,GAAG,4EAA4E,CAAA;AAC1F,QAAA,iBAAiB,GAAG,+CAA+C,CAAA;AACnE,QAAA,cAAc,GAAG,wEAAwE,CAAA;AACzF,QAAA,YAAY,GAAG,0CAA0C,CAAA;AACzD,QAAA,aAAa,GAAG,uCAAuC,CAAA;AACvD,QAAA,kBAAkB,GAAG,4BAA4B,CAAA;AACjD,QAAA,YAAY,GAAG,wEAAwE,CAAA;AACvF,QAAA,YAAY,GAAG,4DAA4D,CAAA;AAC3E,QAAA,YAAY,GAAG,mDAAmD,CAAA;AAClE,QAAA,UAAU,GAAG,wCAAwC,CAAA;AACrD,QAAA,YAAY,GAAG,2CAA2C,CAAA;AAC1D,QAAA,UAAU,GAAG,wCAAwC,CAAA;AACrD,QAAA,WAAW,GAAG,2GAA2G,CAAA;AACzH,QAAA,iBAAiB,GAAG,4CAA4C,CAAA;AAChE,QAAA,aAAa,GAAG,4DAA4D,CAAA;AAC5E,QAAA,aAAa,GAAG,mDAAmD,CAAA;AACnE,QAAA,YAAY,GAAI,wDAAwD,CAAA;AACxE,QAAA,eAAe,GAAG,8DAA8D,CAAA;AAChF,QAAA,gBAAgB,GAAG,6BAA6B,CAAA;AAChD,QAAA,mBAAmB,GAAG,kGAAkG,CAAA;AACxH,QAAA,sBAAsB,GAAG,0CAA0C,CAAA;AACnE,QAAA,kBAAkB,GAAG,sCAAsC,CAAA;AAC3D,QAAA,oBAAoB,GAAG,kDAAkD,CAAA;AACzE,QAAA,UAAU,GAAG,2CAA2C,CAAA;AACxD,QAAA,gBAAgB,GAAG,2CAA2C,CAAA;AAC9D,QAAA,kBAAkB,GAAG,8DAA8D,CAAA;AACnF,QAAA,YAAY,GAAG,gDAAgD,CAAC"}
package/lib/helper.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare function createDoc(html: string): Document | null;
2
2
  export declare function makeEntryCacheKey(entry: any): string;
3
+ export declare function extractYtStartTime(url: string): string;
package/lib/helper.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeEntryCacheKey = exports.createDoc = void 0;
3
+ exports.extractYtStartTime = exports.makeEntryCacheKey = exports.createDoc = void 0;
4
4
  var consts_1 = require("./consts");
5
5
  function createDoc(html) {
6
6
  if (html.trim() === '') {
@@ -11,7 +11,19 @@ function createDoc(html) {
11
11
  }
12
12
  exports.createDoc = createDoc;
13
13
  function makeEntryCacheKey(entry) {
14
- return entry.author + "-" + entry.permlink + "-" + entry.last_update;
14
+ return "".concat(entry.author, "-").concat(entry.permlink, "-").concat(entry.last_update);
15
15
  }
16
16
  exports.makeEntryCacheKey = makeEntryCacheKey;
17
+ function extractYtStartTime(url) {
18
+ var urlObj = new URL(url);
19
+ var params = new URLSearchParams(urlObj.search);
20
+ if (params.has('t')) {
21
+ return '' + parseInt(params.get('t')); //parsing is important as sometimes t is famated '123s';
22
+ }
23
+ else if (params.has('start')) {
24
+ return params.get('start');
25
+ }
26
+ return '';
27
+ }
28
+ exports.extractYtStartTime = extractYtStartTime;
17
29
  //# sourceMappingURL=helper.js.map
package/lib/helper.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,kBAAS,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAExD,OAAO,GAAG,CAAA;AACZ,CAAC;AARD,8BAQC;AAED,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,OAAU,KAAK,CAAC,MAAM,SAAI,KAAK,CAAC,QAAQ,SAAI,KAAK,CAAC,WAAa,CAAA;AACjE,CAAC;AAFD,8CAEC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAEpC,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,IAAI,CAAA;KACZ;IAED,IAAM,GAAG,GAAG,kBAAS,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAExD,OAAO,GAAG,CAAA;AACZ,CAAC;AARD,8BAQC;AAED,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,OAAO,UAAG,KAAK,CAAC,MAAM,cAAI,KAAK,CAAC,QAAQ,cAAI,KAAK,CAAC,WAAW,CAAE,CAAA;AACjE,CAAC;AAFD,8CAEC;AAED,SAAgB,kBAAkB,CAAC,GAAU;IAC3C,IAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,IAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC;QACjB,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wDAAwD;KAChG;SAAK,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC5B;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAVD,gDAUC"}
@@ -8,17 +8,17 @@ function markdown2Html(obj, forApp, webp) {
8
8
  if (forApp === void 0) { forApp = true; }
9
9
  if (webp === void 0) { webp = false; }
10
10
  if (typeof obj === 'string') {
11
- obj = methods_1.cleanReply(obj);
12
- return methods_1.markdownToHTML(obj, forApp, webp);
11
+ obj = (0, methods_1.cleanReply)(obj);
12
+ return (0, methods_1.markdownToHTML)(obj, forApp, webp);
13
13
  }
14
- var key = helper_1.makeEntryCacheKey(obj) + "-md" + (webp ? '-webp' : '');
15
- var item = cache_1.cacheGet(key);
14
+ var key = "".concat((0, helper_1.makeEntryCacheKey)(obj), "-md").concat(webp ? '-webp' : '');
15
+ var item = (0, cache_1.cacheGet)(key);
16
16
  if (item) {
17
17
  return item;
18
18
  }
19
- obj.body = methods_1.cleanReply(obj.body);
20
- var res = methods_1.markdownToHTML(obj.body, forApp, webp);
21
- cache_1.cacheSet(key, res);
19
+ obj.body = (0, methods_1.cleanReply)(obj.body);
20
+ var res = (0, methods_1.markdownToHTML)(obj.body, forApp, webp);
21
+ (0, cache_1.cacheSet)(key, res);
22
22
  return res;
23
23
  }
24
24
  exports.markdown2Html = markdown2Html;
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-2-html.js","sourceRoot":"","sources":["../src/markdown-2-html.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAC5C,qCAAsD;AACtD,iCAA4C;AAG5C,SAAgB,aAAa,CAAC,GAAmB,EAAE,MAAa,EAAE,IAAY;IAA3B,uBAAA,EAAA,aAAa;IAAE,qBAAA,EAAA,YAAY;IAC5E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,oBAAU,CAAC,GAAG,CAAC,CAAA;QACrB,OAAO,wBAAc,CAAC,GAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;KACnD;IAED,IAAM,GAAG,GAAM,0BAAiB,CAAC,GAAG,CAAC,YAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,CAAA;IAEhE,IAAM,IAAI,GAAG,gBAAQ,CAAS,GAAG,CAAC,CAAA;IAClC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,GAAG,CAAC,IAAI,GAAG,oBAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE/B,IAAM,GAAG,GAAG,wBAAc,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAClD,gBAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAnBD,sCAmBC"}
1
+ {"version":3,"file":"markdown-2-html.js","sourceRoot":"","sources":["../src/markdown-2-html.ts"],"names":[],"mappings":";;;AAAA,mCAA4C;AAC5C,qCAAsD;AACtD,iCAA4C;AAG5C,SAAgB,aAAa,CAAC,GAAmB,EAAE,MAAa,EAAE,IAAY;IAA3B,uBAAA,EAAA,aAAa;IAAE,qBAAA,EAAA,YAAY;IAC5E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,CAAA;QACrB,OAAO,IAAA,wBAAc,EAAC,GAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;KACnD;IAED,IAAM,GAAG,GAAG,UAAG,IAAA,0BAAiB,EAAC,GAAG,CAAC,gBAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,CAAA;IAEhE,IAAM,IAAI,GAAG,IAAA,gBAAQ,EAAS,GAAG,CAAC,CAAA;IAClC,IAAI,IAAI,EAAE;QACR,OAAO,IAAI,CAAA;KACZ;IAED,GAAG,CAAC,IAAI,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAE/B,IAAM,GAAG,GAAG,IAAA,wBAAc,EAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAClD,IAAA,gBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAElB,OAAO,GAAG,CAAA;AACZ,CAAC;AAnBD,sCAmBC"}
@@ -5,6 +5,7 @@ var consts_1 = require("../consts");
5
5
  var get_inner_html_method_1 = require("./get-inner-html.method");
6
6
  var proxify_image_src_1 = require("../proxify-image-src");
7
7
  var remove_child_nodes_method_1 = require("./remove-child-nodes.method");
8
+ var helper_1 = require("../helper");
8
9
  function a(el, forApp, webp) {
9
10
  var href = el.getAttribute('href');
10
11
  // Continue if href has no value
@@ -25,22 +26,22 @@ function a(el, forApp, webp) {
25
26
  // & => &amp; can break equality
26
27
  if (href.match(consts_1.IMG_REGEX) &&
27
28
  href.trim().replace(/&amp;/g, '&') ===
28
- get_inner_html_method_1.getSerializedInnerHTML(el).trim().replace(/&amp;/g, '&')) {
29
- var attrs = forApp ? "data-href=\"" + href + "\" class=\"markdown-img-link\" src=\"" + proxify_image_src_1.proxifyImageSrc(href, 0, 0, webp ? 'webp' : 'match') + "\"" : "class=\"markdown-img-link\" src=\"" + proxify_image_src_1.proxifyImageSrc(href, 0, 0, webp ? 'webp' : 'match') + "\"";
30
- var replaceNode = consts_1.DOMParser.parseFromString("<img " + attrs + "/>");
29
+ (0, get_inner_html_method_1.getSerializedInnerHTML)(el).trim().replace(/&amp;/g, '&')) {
30
+ var attrs = forApp ? "data-href=\"".concat(href, "\" class=\"markdown-img-link\" src=\"").concat((0, proxify_image_src_1.proxifyImageSrc)(href, 0, 0, webp ? 'webp' : 'match'), "\"") : "class=\"markdown-img-link\" src=\"".concat((0, proxify_image_src_1.proxifyImageSrc)(href, 0, 0, webp ? 'webp' : 'match'), "\"");
31
+ var replaceNode = consts_1.DOMParser.parseFromString("<img ".concat(attrs, "/>"));
31
32
  el.parentNode.replaceChild(replaceNode, el);
32
33
  return;
33
34
  }
34
35
  if (href.match(consts_1.IPFS_REGEX) &&
35
36
  href.trim().replace(/&amp;/g, '&') ===
36
- get_inner_html_method_1.getSerializedInnerHTML(el).trim().replace(/&amp;/g, '&') &&
37
+ (0, get_inner_html_method_1.getSerializedInnerHTML)(el).trim().replace(/&amp;/g, '&') &&
37
38
  href.indexOf('#') === -1) {
38
39
  if (forApp) {
39
40
  el.setAttribute('data-href', href);
40
41
  el.removeAttribute('href');
41
42
  }
42
43
  el.setAttribute('class', 'markdown-img-link');
43
- remove_child_nodes_method_1.removeChildNodes(el);
44
+ (0, remove_child_nodes_method_1.removeChildNodes)(el);
44
45
  var img = el.ownerDocument.createElement('img');
45
46
  img.setAttribute('src', href);
46
47
  el.appendChild(img);
@@ -54,7 +55,7 @@ function a(el, forApp, webp) {
54
55
  var author = postMatch[3].replace('@', '');
55
56
  var permlink = postMatch[4];
56
57
  if (el.textContent === href) {
57
- el.textContent = "@" + author + "/" + permlink;
58
+ el.textContent = "@".concat(author, "/").concat(permlink);
58
59
  }
59
60
  if (forApp) {
60
61
  el.removeAttribute('href');
@@ -63,7 +64,7 @@ function a(el, forApp, webp) {
63
64
  el.setAttribute('data-permlink', permlink);
64
65
  }
65
66
  else {
66
- var h = "/" + tag + "/@" + author + "/" + permlink;
67
+ var h = "/".concat(tag, "/@").concat(author, "/").concat(permlink);
67
68
  el.setAttribute('href', h);
68
69
  }
69
70
  return;
@@ -75,14 +76,14 @@ function a(el, forApp, webp) {
75
76
  var author = mentionMatch[2].replace('@', '').toLowerCase();
76
77
  if (author.indexOf('/') === -1) {
77
78
  if (el.textContent === href) {
78
- el.textContent = "@" + author;
79
+ el.textContent = "@".concat(author);
79
80
  }
80
81
  if (forApp) {
81
82
  el.removeAttribute('href');
82
83
  el.setAttribute('data-author', author);
83
84
  }
84
85
  else {
85
- var h = "/@" + author;
86
+ var h = "/@".concat(author);
86
87
  el.setAttribute('href', h);
87
88
  }
88
89
  }
@@ -96,14 +97,14 @@ function a(el, forApp, webp) {
96
97
  var author = tpostMatch[2].replace('@', '').toLowerCase();
97
98
  var section = tpostMatch[3];
98
99
  if (el.textContent === href) {
99
- el.textContent = "@" + author + "/" + section;
100
+ el.textContent = "@".concat(author, "/").concat(section);
100
101
  }
101
102
  if (forApp) {
102
- var ha = "https://ecency.com/@" + author + "/" + section;
103
+ var ha = "https://ecency.com/@".concat(author, "/").concat(section);
103
104
  el.setAttribute('href', ha);
104
105
  }
105
106
  else {
106
- var h = "/@" + author + "/" + section;
107
+ var h = "/@".concat(author, "/").concat(section);
107
108
  el.setAttribute('href', h);
108
109
  }
109
110
  return;
@@ -117,7 +118,7 @@ function a(el, forApp, webp) {
117
118
  var author = tpostMatch[2].replace('@', '');
118
119
  var permlink = tpostMatch[3];
119
120
  if (el.textContent === href) {
120
- el.textContent = "@" + author + "/" + permlink;
121
+ el.textContent = "@".concat(author, "/").concat(permlink);
121
122
  }
122
123
  if (forApp) {
123
124
  el.removeAttribute('href');
@@ -126,7 +127,7 @@ function a(el, forApp, webp) {
126
127
  el.setAttribute('data-permlink', permlink);
127
128
  }
128
129
  else {
129
- var h = "/" + tag + "/@" + author + "/" + permlink;
130
+ var h = "/".concat(tag, "/@").concat(author, "/").concat(permlink);
130
131
  el.setAttribute('href', h);
131
132
  }
132
133
  return;
@@ -139,14 +140,14 @@ function a(el, forApp, webp) {
139
140
  var author = imentionMatch[0].replace('/@', '').toLowerCase();
140
141
  if (author.indexOf('/') === -1) {
141
142
  if (el.textContent === href) {
142
- el.textContent = "@" + author;
143
+ el.textContent = "@".concat(author);
143
144
  }
144
145
  if (forApp) {
145
146
  el.removeAttribute('href');
146
147
  el.setAttribute('data-author', author);
147
148
  }
148
149
  else {
149
- var h = "/@" + author;
150
+ var h = "/@".concat(author);
150
151
  el.setAttribute('href', h);
151
152
  }
152
153
  }
@@ -160,14 +161,14 @@ function a(el, forApp, webp) {
160
161
  var author = cpostMatch[1].replace('@', '').toLowerCase();
161
162
  var section = cpostMatch[2];
162
163
  if (el.textContent === href) {
163
- el.textContent = "@" + author + "/" + section;
164
+ el.textContent = "@".concat(author, "/").concat(section);
164
165
  }
165
166
  if (forApp) {
166
- var ha = "https://ecency.com/@" + author + "/" + section;
167
+ var ha = "https://ecency.com/@".concat(author, "/").concat(section);
167
168
  el.setAttribute('href', ha);
168
169
  }
169
170
  else {
170
- var h = "/@" + author + "/" + section;
171
+ var h = "/@".concat(author, "/").concat(section);
171
172
  el.setAttribute('href', h);
172
173
  }
173
174
  return;
@@ -178,7 +179,7 @@ function a(el, forApp, webp) {
178
179
  var author = cpostMatch[1].replace('@', '');
179
180
  var permlink = cpostMatch[2];
180
181
  if (el.textContent === href) {
181
- el.textContent = "@" + author + "/" + permlink;
182
+ el.textContent = "@".concat(author, "/").concat(permlink);
182
183
  }
183
184
  if (forApp) {
184
185
  el.removeAttribute('href');
@@ -187,7 +188,7 @@ function a(el, forApp, webp) {
187
188
  el.setAttribute('data-permlink', permlink);
188
189
  }
189
190
  else {
190
- var h = "/" + tag + "/@" + author + "/" + permlink;
191
+ var h = "/".concat(tag, "/@").concat(author, "/").concat(permlink);
191
192
  el.setAttribute('href', h);
192
193
  }
193
194
  return;
@@ -200,7 +201,7 @@ function a(el, forApp, webp) {
200
201
  var filter = topicMatch[2];
201
202
  var tag = topicMatch[3];
202
203
  if (el.textContent === href) {
203
- el.textContent = "/" + filter + "/" + tag;
204
+ el.textContent = "/".concat(filter, "/").concat(tag);
204
205
  }
205
206
  if (forApp) {
206
207
  el.removeAttribute('href');
@@ -208,7 +209,7 @@ function a(el, forApp, webp) {
208
209
  el.setAttribute('data-tag', tag);
209
210
  }
210
211
  else {
211
- var h = "/" + filter + "/" + tag;
212
+ var h = "/".concat(filter, "/").concat(tag);
212
213
  el.setAttribute('href', h);
213
214
  }
214
215
  return;
@@ -220,7 +221,7 @@ function a(el, forApp, webp) {
220
221
  var filter = itopicMatch[1];
221
222
  var tag = itopicMatch[2];
222
223
  if (el.textContent === href) {
223
- el.textContent = "/" + filter + "/" + tag;
224
+ el.textContent = "/".concat(filter, "/").concat(tag);
224
225
  }
225
226
  if (forApp) {
226
227
  el.removeAttribute('href');
@@ -228,7 +229,7 @@ function a(el, forApp, webp) {
228
229
  el.setAttribute('data-tag', tag);
229
230
  }
230
231
  else {
231
- var h = "/" + filter + "/" + tag;
232
+ var h = "/".concat(filter, "/").concat(tag);
232
233
  el.setAttribute('href', h);
233
234
  }
234
235
  return;
@@ -245,7 +246,7 @@ function a(el, forApp, webp) {
245
246
  filter = 'created';
246
247
  }
247
248
  if (el.textContent === href) {
248
- el.textContent = filter + "/" + community;
249
+ el.textContent = "".concat(filter, "/").concat(community);
249
250
  }
250
251
  if (forApp) {
251
252
  el.removeAttribute('href');
@@ -253,7 +254,7 @@ function a(el, forApp, webp) {
253
254
  el.setAttribute('data-filter', filter);
254
255
  }
255
256
  else {
256
- var h = "/" + filter + "/" + community;
257
+ var h = "/".concat(filter, "/").concat(community);
257
258
  el.setAttribute('href', h);
258
259
  }
259
260
  return;
@@ -266,7 +267,7 @@ function a(el, forApp, webp) {
266
267
  var author = cccMatch[2].replace('@', '');
267
268
  var permlink = cccMatch[3];
268
269
  if (el.textContent === href) {
269
- el.textContent = "@" + author + "/" + permlink;
270
+ el.textContent = "@".concat(author, "/").concat(permlink);
270
271
  }
271
272
  if (forApp) {
272
273
  el.removeAttribute('href');
@@ -275,7 +276,7 @@ function a(el, forApp, webp) {
275
276
  el.setAttribute('data-permlink', permlink);
276
277
  }
277
278
  else {
278
- var h = "/" + tag + "/@" + author + "/" + permlink;
279
+ var h = "/".concat(tag, "/@").concat(author, "/").concat(permlink);
279
280
  el.setAttribute('href', h);
280
281
  }
281
282
  return;
@@ -286,7 +287,7 @@ function a(el, forApp, webp) {
286
287
  var vid = e[1];
287
288
  el.setAttribute('class', 'markdown-video-link');
288
289
  el.removeAttribute('href');
289
- var embedSrc = "https://www.bitchute.com/embed/" + vid + "/";
290
+ var embedSrc = "https://www.bitchute.com/embed/".concat(vid, "/");
290
291
  el.textContent = '';
291
292
  el.setAttribute('data-embed-src', embedSrc);
292
293
  var play = el.ownerDocument.createElement('span');
@@ -299,7 +300,7 @@ function a(el, forApp, webp) {
299
300
  var e = consts_1.RUMBLE_REGEX.exec(href);
300
301
  if (e[1]) {
301
302
  var vid = e[1];
302
- var embedSrc = "https://www.rumble.com/embed/" + vid + "/?pub=4";
303
+ var embedSrc = "https://www.rumble.com/embed/".concat(vid, "/?pub=4");
303
304
  el.setAttribute('class', 'markdown-video-link');
304
305
  el.removeAttribute('href');
305
306
  el.textContent = '';
@@ -315,7 +316,7 @@ function a(el, forApp, webp) {
315
316
  var e = consts_1.BRIGHTEON_REGEX.exec(href);
316
317
  if (e[2]) {
317
318
  var vid = e[2];
318
- var embedSrc = "https://www.brighteon.com/embed/" + vid;
319
+ var embedSrc = "https://www.brighteon.com/embed/".concat(vid);
319
320
  el.setAttribute('class', 'markdown-video-link');
320
321
  el.removeAttribute('href');
321
322
  el.textContent = '';
@@ -334,11 +335,16 @@ function a(el, forApp, webp) {
334
335
  el.setAttribute('class', 'markdown-video-link markdown-video-link-youtube');
335
336
  el.removeAttribute('href');
336
337
  var vid = e[1];
337
- var thumbnail = proxify_image_src_1.proxifyImageSrc("https://img.youtube.com/vi/" + vid.split('?')[0] + "/hqdefault.jpg", 0, 0, webp ? 'webp' : 'match');
338
- var embedSrc = "https://www.youtube.com/embed/" + vid + "?autoplay=1";
338
+ var thumbnail = (0, proxify_image_src_1.proxifyImageSrc)("https://img.youtube.com/vi/".concat(vid.split('?')[0], "/hqdefault.jpg"), 0, 0, webp ? 'webp' : 'match');
339
+ var embedSrc = "https://www.youtube.com/embed/".concat(vid, "?autoplay=1");
339
340
  el.textContent = '';
340
341
  el.setAttribute('data-embed-src', embedSrc);
341
342
  el.setAttribute('data-youtube', vid);
343
+ //extract start time if available
344
+ var startTime = (0, helper_1.extractYtStartTime)(href);
345
+ if (startTime) {
346
+ el.setAttribute('data-start-time', startTime);
347
+ }
342
348
  var thumbImg = el.ownerDocument.createElement('img');
343
349
  thumbImg.setAttribute('class', 'no-replace video-thumbnail');
344
350
  thumbImg.setAttribute('itemprop', 'thumbnailUrl');
@@ -357,7 +363,7 @@ function a(el, forApp, webp) {
357
363
  if (e[3]) {
358
364
  el.setAttribute('class', 'markdown-video-link markdown-video-link-vimeo');
359
365
  el.removeAttribute('href');
360
- var embedSrc = "https://player.vimeo.com/video/" + e[3];
366
+ var embedSrc = "https://player.vimeo.com/video/".concat(e[3]);
361
367
  el.textContent = '';
362
368
  var ifr = el.ownerDocument.createElement('iframe');
363
369
  ifr.setAttribute('frameborder', '0');
@@ -376,10 +382,10 @@ function a(el, forApp, webp) {
376
382
  el.removeAttribute('href');
377
383
  var embedSrc = '';
378
384
  if (e[1] === undefined) {
379
- embedSrc = "https://player.twitch.tv/?channel=" + e[2];
385
+ embedSrc = "https://player.twitch.tv/?channel=".concat(e[2]);
380
386
  }
381
387
  else {
382
- embedSrc = "https://player.twitch.tv/?video=" + e[1];
388
+ embedSrc = "https://player.twitch.tv/?video=".concat(e[1]);
383
389
  }
384
390
  el.textContent = '';
385
391
  var ifr = el.ownerDocument.createElement('iframe');
@@ -397,7 +403,7 @@ function a(el, forApp, webp) {
397
403
  if (e[1]) {
398
404
  el.setAttribute('class', 'markdown-audio-link markdown-audio-link-spotify');
399
405
  el.removeAttribute('href');
400
- var embedSrc = "https://open.spotify.com/embed/playlist/" + e[1];
406
+ var embedSrc = "https://open.spotify.com/embed/playlist/".concat(e[1]);
401
407
  el.textContent = '';
402
408
  var ifr = el.ownerDocument.createElement('iframe');
403
409
  ifr.setAttribute('frameborder', '0');
@@ -415,7 +421,7 @@ function a(el, forApp, webp) {
415
421
  if (e[2]) {
416
422
  el.setAttribute('class', 'markdown-video-link markdown-video-link-loom');
417
423
  el.removeAttribute('href');
418
- var embedSrc = "https://www.loom.com/embed/" + e[2];
424
+ var embedSrc = "https://www.loom.com/embed/".concat(e[2]);
419
425
  el.textContent = '';
420
426
  var ifr = el.ownerDocument.createElement('iframe');
421
427
  ifr.setAttribute('frameborder', '0');
@@ -431,26 +437,32 @@ function a(el, forApp, webp) {
431
437
  if (match) {
432
438
  // Only d.tube links contains an image
433
439
  var imgEls = el.getElementsByTagName('img');
434
- if (imgEls.length === 1) {
440
+ if (imgEls.length === 1 || el.textContent.trim() === href) {
435
441
  var e = consts_1.D_TUBE_REGEX.exec(href);
436
442
  // e[2] = username, e[3] object id
437
443
  if (e[2] && e[3]) {
438
444
  el.setAttribute('class', 'markdown-video-link markdown-video-link-dtube');
439
445
  el.removeAttribute('href');
440
- var thumbnail = proxify_image_src_1.proxifyImageSrc(imgEls[0].getAttribute('src').replace(/\s+/g, ''), 0, 0, webp ? 'webp' : 'match');
441
- var videoHref = "https://emb.d.tube/#!/" + e[2] + "/" + e[3];
446
+ var videoHref = "https://emb.d.tube/#!/".concat(e[2], "/").concat(e[3]);
442
447
  // el.setAttribute('data-video-href', videoHref)
443
448
  el.setAttribute('data-embed-src', videoHref);
444
- var thumbImg = el.ownerDocument.createElement('img');
445
- thumbImg.setAttribute('class', 'no-replace video-thumbnail');
446
- thumbImg.setAttribute('itemprop', 'thumbnailUrl');
447
- thumbImg.setAttribute('src', thumbnail);
449
+ //process thumb img element
450
+ if (imgEls.length === 1) {
451
+ var thumbnail = (0, proxify_image_src_1.proxifyImageSrc)(imgEls[0].getAttribute('src').replace(/\s+/g, ''), 0, 0, webp ? 'webp' : 'match');
452
+ var thumbImg = el.ownerDocument.createElement('img');
453
+ thumbImg.setAttribute('class', 'no-replace video-thumbnail');
454
+ thumbImg.setAttribute('itemprop', 'thumbnailUrl');
455
+ thumbImg.setAttribute('src', thumbnail);
456
+ el.appendChild(thumbImg);
457
+ // Remove image.
458
+ el.removeChild(imgEls[0]);
459
+ }
460
+ else {
461
+ el.textContent = '';
462
+ }
448
463
  var play = el.ownerDocument.createElement('span');
449
464
  play.setAttribute('class', 'markdown-video-play');
450
- el.appendChild(thumbImg);
451
465
  el.appendChild(play);
452
- // Remove image.
453
- el.removeChild(imgEls[0]);
454
466
  return;
455
467
  }
456
468
  }
@@ -462,7 +474,8 @@ function a(el, forApp, webp) {
462
474
  if (e[2] && e[3]) {
463
475
  el.setAttribute('class', 'markdown-video-link markdown-video-link-dtube');
464
476
  el.removeAttribute('href');
465
- var videoHref = "https://emb.d.tube/#!/" + e[2] + "/" + e[3];
477
+ el.textContent = '';
478
+ var videoHref = "https://emb.d.tube/#!/".concat(e[2], "/").concat(e[3]);
466
479
  // el.setAttribute('data-video-href', videoHref);
467
480
  el.setAttribute('data-embed-src', videoHref);
468
481
  var play = el.ownerDocument.createElement('span');
@@ -479,7 +492,7 @@ function a(el, forApp, webp) {
479
492
  var e = consts_1.SPEAK_REGEX.exec(href);
480
493
  // e[1] = tld , e[3] = embed address
481
494
  if (e[1] && e[3]) {
482
- var videoHref = "https://3speak." + e[1] + "/embed?v=" + e[3];
495
+ var videoHref = "https://3speak.".concat(e[1], "/embed?v=").concat(e[3]);
483
496
  el.setAttribute('class', 'markdown-video-link markdown-video-link-speak');
484
497
  el.removeAttribute('href');
485
498
  el.setAttribute('data-embed-src', videoHref);
@@ -487,7 +500,7 @@ function a(el, forApp, webp) {
487
500
  el.textContent = '';
488
501
  }
489
502
  if (imgEls.length === 1) {
490
- var thumbnail = proxify_image_src_1.proxifyImageSrc(imgEls[0].getAttribute('src').replace(/\s+/g, ''), 0, 0, webp ? 'webp' : 'match');
503
+ var thumbnail = (0, proxify_image_src_1.proxifyImageSrc)(imgEls[0].getAttribute('src').replace(/\s+/g, ''), 0, 0, webp ? 'webp' : 'match');
491
504
  var thumbImg = el.ownerDocument.createElement('img');
492
505
  thumbImg.setAttribute('class', 'no-replace video-thumbnail');
493
506
  thumbImg.setAttribute('itemprop', 'thumbnailUrl');
@@ -510,7 +523,7 @@ function a(el, forApp, webp) {
510
523
  if (e) {
511
524
  var url = e[0].replace(/(<([^>]+)>)/gi, '');
512
525
  var author = e[1].replace(/(<([^>]+)>)/gi, '');
513
- var twitterCode = "<blockquote class=\"twitter-tweet\"><p>" + url + "</p>- <a href=\"" + url + "\">" + author + "</a></blockquote>";
526
+ var twitterCode = "<blockquote class=\"twitter-tweet\"><p>".concat(url, "</p>- <a href=\"").concat(url, "\">").concat(author, "</a></blockquote>");
514
527
  var replaceNode = consts_1.DOMParser.parseFromString(twitterCode);
515
528
  el.parentNode.replaceChild(replaceNode, el);
516
529
  return;
@@ -536,7 +549,7 @@ function a(el, forApp, webp) {
536
549
  el.setAttribute('class', 'markdown-external-link');
537
550
  // Prepend https if no scheme provided
538
551
  if (!(/^((#)|(mailto:)|(\/(?!\/))|(((steem|hive|esteem|ecency|https?):)?\/\/))/.test(href))) {
539
- href = "https://" + href;
552
+ href = "https://".concat(href);
540
553
  }
541
554
  if (forApp) {
542
555
  el.setAttribute('data-href', href);
@@ -546,6 +559,11 @@ function a(el, forApp, webp) {
546
559
  if (e[1]) {
547
560
  var vid = e[1];
548
561
  el.setAttribute('data-youtube', vid);
562
+ //extract start time if available
563
+ var startTime = (0, helper_1.extractYtStartTime)(href);
564
+ if (startTime) {
565
+ el.setAttribute('data-start-time', startTime);
566
+ }
549
567
  }
550
568
  }
551
569
  el.removeAttribute('href');