feedscout 1.8.0 → 1.9.0

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 (236) hide show
  1. package/README.md +1 -1
  2. package/dist/blogrolls/defaults.cjs +16 -10
  3. package/dist/blogrolls/defaults.d.cts +1 -2
  4. package/dist/blogrolls/defaults.d.ts +1 -2
  5. package/dist/blogrolls/defaults.js +17 -10
  6. package/dist/blogrolls/extractors.cjs +2 -2
  7. package/dist/blogrolls/extractors.d.cts +2 -2
  8. package/dist/blogrolls/extractors.d.ts +2 -2
  9. package/dist/blogrolls/extractors.js +2 -2
  10. package/dist/blogrolls/index.cjs +9 -10
  11. package/dist/blogrolls/index.js +4 -5
  12. package/dist/blogrolls.cjs +1 -2
  13. package/dist/blogrolls.d.cts +3 -3
  14. package/dist/blogrolls.d.ts +3 -3
  15. package/dist/blogrolls.js +3 -3
  16. package/dist/common/discover/defaults.cjs +46 -0
  17. package/dist/common/discover/defaults.d.cts +6 -0
  18. package/dist/common/discover/defaults.d.ts +6 -0
  19. package/dist/common/discover/defaults.js +44 -0
  20. package/dist/common/discover/index.cjs +7 -7
  21. package/dist/common/discover/index.js +2 -2
  22. package/dist/common/discover/utils.cjs +0 -29
  23. package/dist/common/discover/utils.d.cts +1 -3
  24. package/dist/common/discover/utils.d.ts +1 -3
  25. package/dist/common/discover/utils.js +1 -28
  26. package/dist/common/locales.cjs +214 -10
  27. package/dist/common/locales.js +214 -10
  28. package/dist/common/types.d.cts +3 -2
  29. package/dist/common/types.d.ts +3 -2
  30. package/dist/common/uris/html/handlers.cjs +14 -0
  31. package/dist/common/uris/html/handlers.js +14 -0
  32. package/dist/common/uris/html/index.cjs +17 -1
  33. package/dist/common/uris/html/index.js +17 -1
  34. package/dist/common/uris/html/types.d.cts +5 -4
  35. package/dist/common/uris/html/types.d.ts +5 -4
  36. package/dist/common/utils.cjs +12 -11
  37. package/dist/common/utils.d.cts +6 -4
  38. package/dist/common/utils.d.ts +6 -4
  39. package/dist/common/utils.js +13 -11
  40. package/dist/favicons/extractors.cjs +2 -2
  41. package/dist/favicons/extractors.d.cts +2 -2
  42. package/dist/favicons/extractors.d.ts +2 -2
  43. package/dist/favicons/extractors.js +2 -2
  44. package/dist/favicons/index.cjs +11 -12
  45. package/dist/favicons/index.js +4 -5
  46. package/dist/favicons.cjs +1 -1
  47. package/dist/favicons.d.cts +2 -2
  48. package/dist/favicons.d.ts +2 -2
  49. package/dist/favicons.js +2 -2
  50. package/dist/feeds/defaults.cjs +121 -9
  51. package/dist/feeds/defaults.d.cts +4 -3
  52. package/dist/feeds/defaults.d.ts +4 -3
  53. package/dist/feeds/defaults.js +121 -10
  54. package/dist/feeds/extractors.cjs +6 -6
  55. package/dist/feeds/extractors.d.cts +2 -2
  56. package/dist/feeds/extractors.d.ts +2 -2
  57. package/dist/feeds/extractors.js +4 -4
  58. package/dist/feeds/index.cjs +9 -10
  59. package/dist/feeds/index.js +4 -5
  60. package/dist/feeds/platform/handlers/acast.cjs +26 -0
  61. package/dist/feeds/platform/handlers/acast.js +26 -0
  62. package/dist/feeds/platform/handlers/ameblo.cjs +36 -0
  63. package/dist/feeds/platform/handlers/ameblo.js +36 -0
  64. package/dist/feeds/platform/handlers/applePodcasts.cjs +1 -1
  65. package/dist/feeds/platform/handlers/applePodcasts.js +1 -1
  66. package/dist/feeds/platform/handlers/arena.cjs +42 -0
  67. package/dist/feeds/platform/handlers/arena.js +42 -0
  68. package/dist/feeds/platform/handlers/artstation.cjs +52 -0
  69. package/dist/feeds/platform/handlers/artstation.js +52 -0
  70. package/dist/feeds/platform/handlers/audioboom.cjs +23 -0
  71. package/dist/feeds/platform/handlers/audioboom.js +23 -0
  72. package/dist/feeds/platform/handlers/bearblog.cjs +45 -0
  73. package/dist/feeds/platform/handlers/bearblog.js +45 -0
  74. package/dist/feeds/platform/handlers/behance.cjs +7 -0
  75. package/dist/feeds/platform/handlers/behance.js +7 -0
  76. package/dist/feeds/platform/handlers/blogspot.cjs +38 -2
  77. package/dist/feeds/platform/handlers/blogspot.js +38 -2
  78. package/dist/feeds/platform/handlers/bookwyrm.cjs +48 -0
  79. package/dist/feeds/platform/handlers/bookwyrm.js +48 -0
  80. package/dist/feeds/platform/handlers/buttondown.cjs +43 -0
  81. package/dist/feeds/platform/handlers/buttondown.js +43 -0
  82. package/dist/feeds/platform/handlers/buzzsprout.cjs +22 -0
  83. package/dist/feeds/platform/handlers/buzzsprout.js +22 -0
  84. package/dist/feeds/platform/handlers/codeberg.cjs +5 -5
  85. package/dist/feeds/platform/handlers/codeberg.js +5 -5
  86. package/dist/feeds/platform/handlers/dailymotion.cjs +16 -0
  87. package/dist/feeds/platform/handlers/dailymotion.js +16 -0
  88. package/dist/feeds/platform/handlers/deviantart.cjs +25 -6
  89. package/dist/feeds/platform/handlers/deviantart.js +25 -6
  90. package/dist/feeds/platform/handlers/devto.cjs +8 -0
  91. package/dist/feeds/platform/handlers/devto.js +8 -0
  92. package/dist/feeds/platform/handlers/discourse.cjs +70 -0
  93. package/dist/feeds/platform/handlers/discourse.js +70 -0
  94. package/dist/feeds/platform/handlers/dreamwidth.cjs +48 -0
  95. package/dist/feeds/platform/handlers/dreamwidth.js +48 -0
  96. package/dist/feeds/platform/handlers/exblog.cjs +35 -0
  97. package/dist/feeds/platform/handlers/exblog.js +35 -0
  98. package/dist/feeds/platform/handlers/fireside.cjs +24 -0
  99. package/dist/feeds/platform/handlers/fireside.js +24 -0
  100. package/dist/feeds/platform/handlers/friendica.cjs +44 -0
  101. package/dist/feeds/platform/handlers/friendica.js +44 -0
  102. package/dist/feeds/platform/handlers/ghost.cjs +30 -0
  103. package/dist/feeds/platform/handlers/ghost.js +30 -0
  104. package/dist/feeds/platform/handlers/github.cjs +6 -0
  105. package/dist/feeds/platform/handlers/github.js +6 -0
  106. package/dist/feeds/platform/handlers/githubGist.cjs +16 -5
  107. package/dist/feeds/platform/handlers/githubGist.js +16 -5
  108. package/dist/feeds/platform/handlers/gitlab.cjs +31 -13
  109. package/dist/feeds/platform/handlers/gitlab.js +31 -13
  110. package/dist/feeds/platform/handlers/goodreads.cjs +18 -8
  111. package/dist/feeds/platform/handlers/goodreads.js +18 -8
  112. package/dist/feeds/platform/handlers/hackernews.cjs +21 -0
  113. package/dist/feeds/platform/handlers/hackernews.js +21 -0
  114. package/dist/feeds/platform/handlers/hashnode.cjs +1 -1
  115. package/dist/feeds/platform/handlers/hashnode.js +1 -1
  116. package/dist/feeds/platform/handlers/hatenablog.cjs +4 -1
  117. package/dist/feeds/platform/handlers/hatenablog.js +4 -1
  118. package/dist/feeds/platform/handlers/hearthis.cjs +32 -0
  119. package/dist/feeds/platform/handlers/hearthis.js +32 -0
  120. package/dist/feeds/platform/handlers/heyWorld.cjs +18 -0
  121. package/dist/feeds/platform/handlers/heyWorld.js +18 -0
  122. package/dist/feeds/platform/handlers/insanejournal.cjs +69 -0
  123. package/dist/feeds/platform/handlers/insanejournal.js +69 -0
  124. package/dist/feeds/platform/handlers/itchio.cjs +24 -1
  125. package/dist/feeds/platform/handlers/itchio.js +24 -1
  126. package/dist/feeds/platform/handlers/lemmy.cjs +46 -4
  127. package/dist/feeds/platform/handlers/lemmy.js +46 -4
  128. package/dist/feeds/platform/handlers/letterboxd.cjs +4 -0
  129. package/dist/feeds/platform/handlers/letterboxd.js +4 -0
  130. package/dist/feeds/platform/handlers/libsyn.cjs +25 -0
  131. package/dist/feeds/platform/handlers/libsyn.js +25 -0
  132. package/dist/feeds/platform/handlers/listed.cjs +20 -0
  133. package/dist/feeds/platform/handlers/listed.js +20 -0
  134. package/dist/feeds/platform/handlers/livejournal.cjs +68 -0
  135. package/dist/feeds/platform/handlers/livejournal.js +68 -0
  136. package/dist/feeds/platform/handlers/mastodon.cjs +32 -0
  137. package/dist/feeds/platform/handlers/mastodon.js +32 -0
  138. package/dist/feeds/platform/handlers/mataroa.cjs +16 -0
  139. package/dist/feeds/platform/handlers/mataroa.js +16 -0
  140. package/dist/feeds/platform/handlers/medium.cjs +2 -2
  141. package/dist/feeds/platform/handlers/medium.js +2 -2
  142. package/dist/feeds/platform/handlers/microblog.cjs +55 -0
  143. package/dist/feeds/platform/handlers/microblog.js +55 -0
  144. package/dist/feeds/platform/handlers/misskey.cjs +40 -0
  145. package/dist/feeds/platform/handlers/misskey.js +40 -0
  146. package/dist/feeds/platform/handlers/myanimelist.cjs +43 -0
  147. package/dist/feeds/platform/handlers/myanimelist.js +43 -0
  148. package/dist/feeds/platform/handlers/naverBlog.cjs +21 -0
  149. package/dist/feeds/platform/handlers/naverBlog.js +21 -0
  150. package/dist/feeds/platform/handlers/nebula.cjs +68 -0
  151. package/dist/feeds/platform/handlers/nebula.js +68 -0
  152. package/dist/feeds/platform/handlers/note.cjs +53 -0
  153. package/dist/feeds/platform/handlers/note.js +53 -0
  154. package/dist/feeds/platform/handlers/observable.cjs +34 -0
  155. package/dist/feeds/platform/handlers/observable.js +34 -0
  156. package/dist/feeds/platform/handlers/odysee.cjs +20 -0
  157. package/dist/feeds/platform/handlers/odysee.js +20 -0
  158. package/dist/feeds/platform/handlers/pagecord.cjs +16 -0
  159. package/dist/feeds/platform/handlers/pagecord.js +16 -0
  160. package/dist/feeds/platform/handlers/paragraph.cjs +1 -2
  161. package/dist/feeds/platform/handlers/paragraph.js +1 -2
  162. package/dist/feeds/platform/handlers/pika.cjs +35 -0
  163. package/dist/feeds/platform/handlers/pika.js +35 -0
  164. package/dist/feeds/platform/handlers/pinterest.cjs +13 -0
  165. package/dist/feeds/platform/handlers/pinterest.js +13 -0
  166. package/dist/feeds/platform/handlers/pixelfed.cjs +46 -0
  167. package/dist/feeds/platform/handlers/pixelfed.js +46 -0
  168. package/dist/feeds/platform/handlers/pleroma.cjs +34 -0
  169. package/dist/feeds/platform/handlers/pleroma.js +34 -0
  170. package/dist/feeds/platform/handlers/podbean.cjs +29 -0
  171. package/dist/feeds/platform/handlers/podbean.js +29 -0
  172. package/dist/feeds/platform/handlers/podigee.cjs +29 -0
  173. package/dist/feeds/platform/handlers/podigee.js +29 -0
  174. package/dist/feeds/platform/handlers/posthaven.cjs +24 -0
  175. package/dist/feeds/platform/handlers/posthaven.js +24 -0
  176. package/dist/feeds/platform/handlers/prose.cjs +26 -0
  177. package/dist/feeds/platform/handlers/prose.js +26 -0
  178. package/dist/feeds/platform/handlers/qiita.cjs +58 -0
  179. package/dist/feeds/platform/handlers/qiita.js +58 -0
  180. package/dist/feeds/platform/handlers/reddit.cjs +83 -9
  181. package/dist/feeds/platform/handlers/reddit.js +83 -9
  182. package/dist/feeds/platform/handlers/rssCom.cjs +20 -0
  183. package/dist/feeds/platform/handlers/rssCom.js +20 -0
  184. package/dist/feeds/platform/handlers/seesaa.cjs +22 -0
  185. package/dist/feeds/platform/handlers/seesaa.js +22 -0
  186. package/dist/feeds/platform/handlers/sourceforge.cjs +37 -4
  187. package/dist/feeds/platform/handlers/sourceforge.js +37 -4
  188. package/dist/feeds/platform/handlers/spreaker.cjs +21 -0
  189. package/dist/feeds/platform/handlers/spreaker.js +21 -0
  190. package/dist/feeds/platform/handlers/stackExchange.cjs +26 -2
  191. package/dist/feeds/platform/handlers/stackExchange.js +26 -2
  192. package/dist/feeds/platform/handlers/steam.cjs +7 -0
  193. package/dist/feeds/platform/handlers/steam.js +7 -0
  194. package/dist/feeds/platform/handlers/tildes.cjs +41 -0
  195. package/dist/feeds/platform/handlers/tildes.js +41 -0
  196. package/dist/feeds/platform/handlers/tistory.cjs +16 -0
  197. package/dist/feeds/platform/handlers/tistory.js +16 -0
  198. package/dist/feeds/platform/handlers/transistor.cjs +29 -0
  199. package/dist/feeds/platform/handlers/transistor.js +29 -0
  200. package/dist/feeds/platform/handlers/velog.cjs +24 -0
  201. package/dist/feeds/platform/handlers/velog.js +24 -0
  202. package/dist/feeds/platform/handlers/vimeo.cjs +6 -0
  203. package/dist/feeds/platform/handlers/vimeo.js +6 -0
  204. package/dist/feeds/platform/handlers/weblogLol.cjs +26 -0
  205. package/dist/feeds/platform/handlers/weblogLol.js +26 -0
  206. package/dist/feeds/platform/handlers/weebly.cjs +25 -0
  207. package/dist/feeds/platform/handlers/weebly.js +25 -0
  208. package/dist/feeds/platform/handlers/wordpress.cjs +173 -28
  209. package/dist/feeds/platform/handlers/wordpress.js +173 -28
  210. package/dist/feeds/platform/handlers/writeas.cjs +51 -0
  211. package/dist/feeds/platform/handlers/writeas.js +51 -0
  212. package/dist/feeds/platform/handlers/ximalaya.cjs +1 -1
  213. package/dist/feeds/platform/handlers/ximalaya.js +1 -1
  214. package/dist/feeds/platform/handlers/youtube.cjs +4 -1
  215. package/dist/feeds/platform/handlers/youtube.js +4 -1
  216. package/dist/feeds/platform/handlers/zenn.cjs +54 -0
  217. package/dist/feeds/platform/handlers/zenn.js +54 -0
  218. package/dist/feeds.cjs +2 -1
  219. package/dist/feeds.d.cts +3 -3
  220. package/dist/feeds.d.ts +3 -3
  221. package/dist/feeds.js +3 -3
  222. package/dist/hubs/discover/index.cjs +4 -4
  223. package/dist/hubs/discover/index.js +3 -3
  224. package/dist/hubs/feed/index.cjs +2 -2
  225. package/dist/hubs/feed/index.js +2 -2
  226. package/dist/hubs/headers/index.cjs +2 -2
  227. package/dist/hubs/headers/index.js +2 -2
  228. package/dist/hubs/html/index.cjs +2 -2
  229. package/dist/hubs/html/index.js +2 -2
  230. package/dist/index.cjs +2 -1
  231. package/dist/index.d.cts +2 -1
  232. package/dist/index.d.ts +2 -1
  233. package/dist/index.js +2 -1
  234. package/dist/utils.d.cts +2 -1
  235. package/dist/utils.d.ts +2 -1
  236. package/package.json +6 -7
@@ -8,35 +8,86 @@ const require_lobsters = require("./platform/handlers/lobsters.cjs");
8
8
  const require_reddit = require("./platform/handlers/reddit.cjs");
9
9
  const require_sourceforge = require("./platform/handlers/sourceforge.cjs");
10
10
  const require_tumblr = require("./platform/handlers/tumblr.cjs");
11
+ const require_acast = require("./platform/handlers/acast.cjs");
12
+ const require_ameblo = require("./platform/handlers/ameblo.cjs");
11
13
  const require_applePodcasts = require("./platform/handlers/applePodcasts.cjs");
14
+ const require_arena = require("./platform/handlers/arena.cjs");
15
+ const require_artstation = require("./platform/handlers/artstation.cjs");
16
+ const require_audioboom = require("./platform/handlers/audioboom.cjs");
17
+ const require_bearblog = require("./platform/handlers/bearblog.cjs");
12
18
  const require_behance = require("./platform/handlers/behance.cjs");
13
19
  const require_blogspot = require("./platform/handlers/blogspot.cjs");
14
20
  const require_bluesky = require("./platform/handlers/bluesky.cjs");
21
+ const require_bookwyrm = require("./platform/handlers/bookwyrm.cjs");
22
+ const require_buttondown = require("./platform/handlers/buttondown.cjs");
23
+ const require_buzzsprout = require("./platform/handlers/buzzsprout.cjs");
15
24
  const require_csdn = require("./platform/handlers/csdn.cjs");
16
25
  const require_dailymotion = require("./platform/handlers/dailymotion.cjs");
26
+ const require_discourse = require("./platform/handlers/discourse.cjs");
17
27
  const require_douban = require("./platform/handlers/douban.cjs");
28
+ const require_dreamwidth = require("./platform/handlers/dreamwidth.cjs");
29
+ const require_exblog = require("./platform/handlers/exblog.cjs");
30
+ const require_fireside = require("./platform/handlers/fireside.cjs");
31
+ const require_friendica = require("./platform/handlers/friendica.cjs");
32
+ const require_ghost = require("./platform/handlers/ghost.cjs");
18
33
  const require_goodreads = require("./platform/handlers/goodreads.cjs");
34
+ const require_hackernews = require("./platform/handlers/hackernews.cjs");
19
35
  const require_hashnode = require("./platform/handlers/hashnode.cjs");
20
36
  const require_hatenablog = require("./platform/handlers/hatenablog.cjs");
37
+ const require_hearthis = require("./platform/handlers/hearthis.cjs");
38
+ const require_heyWorld = require("./platform/handlers/heyWorld.cjs");
39
+ const require_insanejournal = require("./platform/handlers/insanejournal.cjs");
21
40
  const require_itchio = require("./platform/handlers/itchio.cjs");
22
41
  const require_kickstarter = require("./platform/handlers/kickstarter.cjs");
23
42
  const require_lemmy = require("./platform/handlers/lemmy.cjs");
24
43
  const require_letterboxd = require("./platform/handlers/letterboxd.cjs");
44
+ const require_libsyn = require("./platform/handlers/libsyn.cjs");
45
+ const require_listed = require("./platform/handlers/listed.cjs");
46
+ const require_livejournal = require("./platform/handlers/livejournal.cjs");
25
47
  const require_mastodon = require("./platform/handlers/mastodon.cjs");
48
+ const require_mataroa = require("./platform/handlers/mataroa.cjs");
26
49
  const require_medium = require("./platform/handlers/medium.cjs");
50
+ const require_microblog = require("./platform/handlers/microblog.cjs");
51
+ const require_misskey = require("./platform/handlers/misskey.cjs");
52
+ const require_myanimelist = require("./platform/handlers/myanimelist.cjs");
53
+ const require_naverBlog = require("./platform/handlers/naverBlog.cjs");
54
+ const require_nebula = require("./platform/handlers/nebula.cjs");
55
+ const require_note = require("./platform/handlers/note.cjs");
56
+ const require_observable = require("./platform/handlers/observable.cjs");
57
+ const require_odysee = require("./platform/handlers/odysee.cjs");
58
+ const require_pagecord = require("./platform/handlers/pagecord.cjs");
27
59
  const require_paragraph = require("./platform/handlers/paragraph.cjs");
60
+ const require_pika = require("./platform/handlers/pika.cjs");
28
61
  const require_pinterest = require("./platform/handlers/pinterest.cjs");
62
+ const require_pixelfed = require("./platform/handlers/pixelfed.cjs");
63
+ const require_pleroma = require("./platform/handlers/pleroma.cjs");
64
+ const require_podbean = require("./platform/handlers/podbean.cjs");
65
+ const require_podigee = require("./platform/handlers/podigee.cjs");
66
+ const require_posthaven = require("./platform/handlers/posthaven.cjs");
29
67
  const require_producthunt = require("./platform/handlers/producthunt.cjs");
68
+ const require_prose = require("./platform/handlers/prose.cjs");
69
+ const require_qiita = require("./platform/handlers/qiita.cjs");
70
+ const require_rssCom = require("./platform/handlers/rssCom.cjs");
71
+ const require_seesaa = require("./platform/handlers/seesaa.cjs");
30
72
  const require_soundcloud = require("./platform/handlers/soundcloud.cjs");
73
+ const require_spreaker = require("./platform/handlers/spreaker.cjs");
31
74
  const require_stackExchange = require("./platform/handlers/stackExchange.cjs");
32
75
  const require_steam = require("./platform/handlers/steam.cjs");
33
76
  const require_substack = require("./platform/handlers/substack.cjs");
77
+ const require_tildes = require("./platform/handlers/tildes.cjs");
78
+ const require_tistory = require("./platform/handlers/tistory.cjs");
79
+ const require_transistor = require("./platform/handlers/transistor.cjs");
34
80
  const require_v2ex = require("./platform/handlers/v2ex.cjs");
81
+ const require_velog = require("./platform/handlers/velog.cjs");
35
82
  const require_vimeo = require("./platform/handlers/vimeo.cjs");
83
+ const require_weblogLol = require("./platform/handlers/weblogLol.cjs");
84
+ const require_weebly = require("./platform/handlers/weebly.cjs");
36
85
  const require_wordpress = require("./platform/handlers/wordpress.cjs");
37
86
  const require_wpengine = require("./platform/handlers/wpengine.cjs");
87
+ const require_writeas = require("./platform/handlers/writeas.cjs");
38
88
  const require_ximalaya = require("./platform/handlers/ximalaya.cjs");
39
89
  const require_youtube = require("./platform/handlers/youtube.cjs");
90
+ const require_zenn = require("./platform/handlers/zenn.cjs");
40
91
  //#region src/feeds/defaults.ts
41
92
  const mimeTypes = [
42
93
  "application/rss+xml",
@@ -101,12 +152,15 @@ const urisComprehensive = [
101
152
  "/feeds/posts/default?alt=rss",
102
153
  "/feeds/comments/default"
103
154
  ];
104
- const ignoredUris = ["wp-json/oembed/", "wp-json/wp/"];
155
+ const ignoredUris = [
156
+ "wp-json/oembed/",
157
+ "wp-json/wp/",
158
+ /[?&][^=&]*=(https?:|https?%3a|aHR0c)/i
159
+ ];
105
160
  const anchorLabels = [
106
161
  "rss",
107
162
  "feed",
108
163
  "atom",
109
- "subscribe",
110
164
  "syndicate",
111
165
  "syndication",
112
166
  "json feed"
@@ -115,57 +169,115 @@ const linkSelectors = [{
115
169
  rel: "alternate",
116
170
  types: mimeTypes
117
171
  }, { rel: "feed" }];
172
+ const anchorPathSegments = [
173
+ /\/rss\//,
174
+ /\/atom\//,
175
+ /\/feed\//
176
+ ];
118
177
  const defaultHtmlOptions = {
119
178
  linkSelectors,
120
179
  anchorUris: urisComprehensive.flat(),
180
+ anchorPathSegments,
121
181
  anchorIgnoredUris: ignoredUris,
122
182
  anchorLabels
123
183
  };
124
184
  const defaultHeadersOptions = { linkSelectors };
125
185
  const defaultGuessOptions = { uris: urisBalanced };
126
186
  const defaultPlatformOptions = { handlers: [
187
+ require_acast.acastHandler,
188
+ require_ameblo.amebloHandler,
127
189
  require_applePodcasts.applePodcastsHandler,
190
+ require_arena.arenaHandler,
191
+ require_artstation.artstationHandler,
192
+ require_audioboom.audioboomHandler,
193
+ require_bearblog.bearblogHandler,
128
194
  require_behance.behanceHandler,
129
195
  require_blogspot.blogspotHandler,
130
196
  require_bluesky.blueskyHandler,
131
- require_csdn.csdnHandler,
197
+ require_bookwyrm.bookwyrmHandler,
198
+ require_buttondown.buttondownHandler,
199
+ require_buzzsprout.buzzsproutHandler,
132
200
  require_codeberg.codebergHandler,
133
- require_douban.doubanHandler,
134
- require_deviantart.deviantartHandler,
201
+ require_csdn.csdnHandler,
135
202
  require_dailymotion.dailymotionHandler,
203
+ require_deviantart.deviantartHandler,
136
204
  require_devto.devtoHandler,
137
- require_goodreads.goodreadsHandler,
205
+ require_discourse.discourseHandler,
206
+ require_douban.doubanHandler,
207
+ require_dreamwidth.dreamwidthHandler,
208
+ require_exblog.exblogHandler,
209
+ require_fireside.firesideHandler,
210
+ require_friendica.friendicaHandler,
211
+ require_ghost.ghostHandler,
138
212
  require_github.githubHandler,
139
- require_hashnode.hashnodeHandler,
140
- require_hatenablog.hatenablogHandler,
141
213
  require_githubGist.githubGistHandler,
142
214
  require_gitlab.gitlabHandler,
215
+ require_goodreads.goodreadsHandler,
216
+ require_hackernews.hackernewsHandler,
217
+ require_hashnode.hashnodeHandler,
218
+ require_hatenablog.hatenablogHandler,
219
+ require_hearthis.hearthisHandler,
220
+ require_heyWorld.heyWorldHandler,
221
+ require_insanejournal.insanejournalHandler,
143
222
  require_itchio.itchioHandler,
144
223
  require_kickstarter.kickstarterHandler,
145
224
  require_lemmy.lemmyHandler,
146
225
  require_letterboxd.letterboxdHandler,
226
+ require_libsyn.libsynHandler,
227
+ require_listed.listedHandler,
228
+ require_livejournal.livejournalHandler,
147
229
  require_lobsters.lobstersHandler,
148
230
  require_mastodon.mastodonHandler,
231
+ require_mataroa.mataroaHandler,
149
232
  require_medium.mediumHandler,
233
+ require_microblog.microblogHandler,
234
+ require_misskey.misskeyHandler,
235
+ require_myanimelist.myanimelistHandler,
236
+ require_naverBlog.naverBlogHandler,
237
+ require_nebula.nebulaHandler,
238
+ require_note.noteHandler,
239
+ require_observable.observableHandler,
240
+ require_odysee.odyseeHandler,
241
+ require_pagecord.pagecordHandler,
150
242
  require_paragraph.paragraphHandler,
243
+ require_pika.pikaHandler,
151
244
  require_pinterest.pinterestHandler,
245
+ require_pixelfed.pixelfedHandler,
246
+ require_pleroma.pleromaHandler,
247
+ require_podbean.podbeanHandler,
248
+ require_podigee.podigeeHandler,
249
+ require_posthaven.posthavenHandler,
152
250
  require_producthunt.producthuntHandler,
251
+ require_prose.proseHandler,
252
+ require_qiita.qiitaHandler,
153
253
  require_reddit.redditHandler,
254
+ require_rssCom.rssComHandler,
255
+ require_seesaa.seesaaHandler,
154
256
  require_soundcloud.soundcloudHandler,
155
257
  require_sourceforge.sourceforgeHandler,
258
+ require_spreaker.spreakerHandler,
156
259
  require_stackExchange.stackExchangeHandler,
157
260
  require_steam.steamHandler,
158
261
  require_substack.substackHandler,
262
+ require_tildes.tildesHandler,
263
+ require_tistory.tistoryHandler,
264
+ require_transistor.transistorHandler,
159
265
  require_tumblr.tumblrHandler,
160
266
  require_v2ex.v2exHandler,
267
+ require_velog.velogHandler,
161
268
  require_vimeo.vimeoHandler,
269
+ require_weblogLol.weblogLolHandler,
270
+ require_weebly.weeblyHandler,
162
271
  require_wordpress.wordpressHandler,
163
272
  require_wpengine.wpengineHandler,
273
+ require_writeas.writeasHandler,
164
274
  require_ximalaya.ximalayaHandler,
165
- require_youtube.youtubeHandler
275
+ require_youtube.youtubeHandler,
276
+ require_zenn.zennHandler
166
277
  ] };
167
278
  //#endregion
168
279
  exports.anchorLabels = anchorLabels;
280
+ exports.anchorPathSegments = anchorPathSegments;
169
281
  exports.defaultGuessOptions = defaultGuessOptions;
170
282
  exports.defaultHeadersOptions = defaultHeadersOptions;
171
283
  exports.defaultHtmlOptions = defaultHtmlOptions;
@@ -2,19 +2,20 @@ import { GuessMethodOptions } from "../common/uris/guess/types.cjs";
2
2
  import { HeadersMethodOptions } from "../common/uris/headers/types.cjs";
3
3
  import { HtmlMethodOptions } from "../common/uris/html/types.cjs";
4
4
  import { PlatformMethodOptions } from "../common/uris/platform/types.cjs";
5
- import { LinkSelector, UriEntry } from "../common/types.cjs";
5
+ import { LinkSelector, Pattern, UriEntry } from "../common/types.cjs";
6
6
 
7
7
  //#region src/feeds/defaults.d.ts
8
8
  declare const mimeTypes: string[];
9
9
  declare const urisMinimal: string[];
10
10
  declare const urisBalanced: string[];
11
11
  declare const urisComprehensive: Array<UriEntry>;
12
- declare const ignoredUris: string[];
12
+ declare const ignoredUris: Array<Pattern>;
13
13
  declare const anchorLabels: string[];
14
14
  declare const linkSelectors: Array<LinkSelector>;
15
+ declare const anchorPathSegments: RegExp[];
15
16
  declare const defaultHtmlOptions: Omit<HtmlMethodOptions, 'baseUrl'>;
16
17
  declare const defaultHeadersOptions: Omit<HeadersMethodOptions, 'baseUrl'>;
17
18
  declare const defaultGuessOptions: Omit<GuessMethodOptions, 'baseUrl'>;
18
19
  declare const defaultPlatformOptions: Omit<PlatformMethodOptions, 'baseUrl'>;
19
20
  //#endregion
20
- export { anchorLabels, defaultGuessOptions, defaultHeadersOptions, defaultHtmlOptions, defaultPlatformOptions, ignoredUris, linkSelectors, mimeTypes, urisBalanced, urisComprehensive, urisMinimal };
21
+ export { anchorLabels, anchorPathSegments, defaultGuessOptions, defaultHeadersOptions, defaultHtmlOptions, defaultPlatformOptions, ignoredUris, linkSelectors, mimeTypes, urisBalanced, urisComprehensive, urisMinimal };
@@ -2,19 +2,20 @@ import { GuessMethodOptions } from "../common/uris/guess/types.js";
2
2
  import { HeadersMethodOptions } from "../common/uris/headers/types.js";
3
3
  import { HtmlMethodOptions } from "../common/uris/html/types.js";
4
4
  import { PlatformMethodOptions } from "../common/uris/platform/types.js";
5
- import { LinkSelector, UriEntry } from "../common/types.js";
5
+ import { LinkSelector, Pattern, UriEntry } from "../common/types.js";
6
6
 
7
7
  //#region src/feeds/defaults.d.ts
8
8
  declare const mimeTypes: string[];
9
9
  declare const urisMinimal: string[];
10
10
  declare const urisBalanced: string[];
11
11
  declare const urisComprehensive: Array<UriEntry>;
12
- declare const ignoredUris: string[];
12
+ declare const ignoredUris: Array<Pattern>;
13
13
  declare const anchorLabels: string[];
14
14
  declare const linkSelectors: Array<LinkSelector>;
15
+ declare const anchorPathSegments: RegExp[];
15
16
  declare const defaultHtmlOptions: Omit<HtmlMethodOptions, 'baseUrl'>;
16
17
  declare const defaultHeadersOptions: Omit<HeadersMethodOptions, 'baseUrl'>;
17
18
  declare const defaultGuessOptions: Omit<GuessMethodOptions, 'baseUrl'>;
18
19
  declare const defaultPlatformOptions: Omit<PlatformMethodOptions, 'baseUrl'>;
19
20
  //#endregion
20
- export { anchorLabels, defaultGuessOptions, defaultHeadersOptions, defaultHtmlOptions, defaultPlatformOptions, ignoredUris, linkSelectors, mimeTypes, urisBalanced, urisComprehensive, urisMinimal };
21
+ export { anchorLabels, anchorPathSegments, defaultGuessOptions, defaultHeadersOptions, defaultHtmlOptions, defaultPlatformOptions, ignoredUris, linkSelectors, mimeTypes, urisBalanced, urisComprehensive, urisMinimal };
@@ -8,35 +8,86 @@ import { lobstersHandler } from "./platform/handlers/lobsters.js";
8
8
  import { redditHandler } from "./platform/handlers/reddit.js";
9
9
  import { sourceforgeHandler } from "./platform/handlers/sourceforge.js";
10
10
  import { tumblrHandler } from "./platform/handlers/tumblr.js";
11
+ import { acastHandler } from "./platform/handlers/acast.js";
12
+ import { amebloHandler } from "./platform/handlers/ameblo.js";
11
13
  import { applePodcastsHandler } from "./platform/handlers/applePodcasts.js";
14
+ import { arenaHandler } from "./platform/handlers/arena.js";
15
+ import { artstationHandler } from "./platform/handlers/artstation.js";
16
+ import { audioboomHandler } from "./platform/handlers/audioboom.js";
17
+ import { bearblogHandler } from "./platform/handlers/bearblog.js";
12
18
  import { behanceHandler } from "./platform/handlers/behance.js";
13
19
  import { blogspotHandler } from "./platform/handlers/blogspot.js";
14
20
  import { blueskyHandler } from "./platform/handlers/bluesky.js";
21
+ import { bookwyrmHandler } from "./platform/handlers/bookwyrm.js";
22
+ import { buttondownHandler } from "./platform/handlers/buttondown.js";
23
+ import { buzzsproutHandler } from "./platform/handlers/buzzsprout.js";
15
24
  import { csdnHandler } from "./platform/handlers/csdn.js";
16
25
  import { dailymotionHandler } from "./platform/handlers/dailymotion.js";
26
+ import { discourseHandler } from "./platform/handlers/discourse.js";
17
27
  import { doubanHandler } from "./platform/handlers/douban.js";
28
+ import { dreamwidthHandler } from "./platform/handlers/dreamwidth.js";
29
+ import { exblogHandler } from "./platform/handlers/exblog.js";
30
+ import { firesideHandler } from "./platform/handlers/fireside.js";
31
+ import { friendicaHandler } from "./platform/handlers/friendica.js";
32
+ import { ghostHandler } from "./platform/handlers/ghost.js";
18
33
  import { goodreadsHandler } from "./platform/handlers/goodreads.js";
34
+ import { hackernewsHandler } from "./platform/handlers/hackernews.js";
19
35
  import { hashnodeHandler } from "./platform/handlers/hashnode.js";
20
36
  import { hatenablogHandler } from "./platform/handlers/hatenablog.js";
37
+ import { hearthisHandler } from "./platform/handlers/hearthis.js";
38
+ import { heyWorldHandler } from "./platform/handlers/heyWorld.js";
39
+ import { insanejournalHandler } from "./platform/handlers/insanejournal.js";
21
40
  import { itchioHandler } from "./platform/handlers/itchio.js";
22
41
  import { kickstarterHandler } from "./platform/handlers/kickstarter.js";
23
42
  import { lemmyHandler } from "./platform/handlers/lemmy.js";
24
43
  import { letterboxdHandler } from "./platform/handlers/letterboxd.js";
44
+ import { libsynHandler } from "./platform/handlers/libsyn.js";
45
+ import { listedHandler } from "./platform/handlers/listed.js";
46
+ import { livejournalHandler } from "./platform/handlers/livejournal.js";
25
47
  import { mastodonHandler } from "./platform/handlers/mastodon.js";
48
+ import { mataroaHandler } from "./platform/handlers/mataroa.js";
26
49
  import { mediumHandler } from "./platform/handlers/medium.js";
50
+ import { microblogHandler } from "./platform/handlers/microblog.js";
51
+ import { misskeyHandler } from "./platform/handlers/misskey.js";
52
+ import { myanimelistHandler } from "./platform/handlers/myanimelist.js";
53
+ import { naverBlogHandler } from "./platform/handlers/naverBlog.js";
54
+ import { nebulaHandler } from "./platform/handlers/nebula.js";
55
+ import { noteHandler } from "./platform/handlers/note.js";
56
+ import { observableHandler } from "./platform/handlers/observable.js";
57
+ import { odyseeHandler } from "./platform/handlers/odysee.js";
58
+ import { pagecordHandler } from "./platform/handlers/pagecord.js";
27
59
  import { paragraphHandler } from "./platform/handlers/paragraph.js";
60
+ import { pikaHandler } from "./platform/handlers/pika.js";
28
61
  import { pinterestHandler } from "./platform/handlers/pinterest.js";
62
+ import { pixelfedHandler } from "./platform/handlers/pixelfed.js";
63
+ import { pleromaHandler } from "./platform/handlers/pleroma.js";
64
+ import { podbeanHandler } from "./platform/handlers/podbean.js";
65
+ import { podigeeHandler } from "./platform/handlers/podigee.js";
66
+ import { posthavenHandler } from "./platform/handlers/posthaven.js";
29
67
  import { producthuntHandler } from "./platform/handlers/producthunt.js";
68
+ import { proseHandler } from "./platform/handlers/prose.js";
69
+ import { qiitaHandler } from "./platform/handlers/qiita.js";
70
+ import { rssComHandler } from "./platform/handlers/rssCom.js";
71
+ import { seesaaHandler } from "./platform/handlers/seesaa.js";
30
72
  import { soundcloudHandler } from "./platform/handlers/soundcloud.js";
73
+ import { spreakerHandler } from "./platform/handlers/spreaker.js";
31
74
  import { stackExchangeHandler } from "./platform/handlers/stackExchange.js";
32
75
  import { steamHandler } from "./platform/handlers/steam.js";
33
76
  import { substackHandler } from "./platform/handlers/substack.js";
77
+ import { tildesHandler } from "./platform/handlers/tildes.js";
78
+ import { tistoryHandler } from "./platform/handlers/tistory.js";
79
+ import { transistorHandler } from "./platform/handlers/transistor.js";
34
80
  import { v2exHandler } from "./platform/handlers/v2ex.js";
81
+ import { velogHandler } from "./platform/handlers/velog.js";
35
82
  import { vimeoHandler } from "./platform/handlers/vimeo.js";
83
+ import { weblogLolHandler } from "./platform/handlers/weblogLol.js";
84
+ import { weeblyHandler } from "./platform/handlers/weebly.js";
36
85
  import { wordpressHandler } from "./platform/handlers/wordpress.js";
37
86
  import { wpengineHandler } from "./platform/handlers/wpengine.js";
87
+ import { writeasHandler } from "./platform/handlers/writeas.js";
38
88
  import { ximalayaHandler } from "./platform/handlers/ximalaya.js";
39
89
  import { youtubeHandler } from "./platform/handlers/youtube.js";
90
+ import { zennHandler } from "./platform/handlers/zenn.js";
40
91
  //#region src/feeds/defaults.ts
41
92
  const mimeTypes = [
42
93
  "application/rss+xml",
@@ -101,12 +152,15 @@ const urisComprehensive = [
101
152
  "/feeds/posts/default?alt=rss",
102
153
  "/feeds/comments/default"
103
154
  ];
104
- const ignoredUris = ["wp-json/oembed/", "wp-json/wp/"];
155
+ const ignoredUris = [
156
+ "wp-json/oembed/",
157
+ "wp-json/wp/",
158
+ /[?&][^=&]*=(https?:|https?%3a|aHR0c)/i
159
+ ];
105
160
  const anchorLabels = [
106
161
  "rss",
107
162
  "feed",
108
163
  "atom",
109
- "subscribe",
110
164
  "syndicate",
111
165
  "syndication",
112
166
  "json feed"
@@ -115,54 +169,111 @@ const linkSelectors = [{
115
169
  rel: "alternate",
116
170
  types: mimeTypes
117
171
  }, { rel: "feed" }];
172
+ const anchorPathSegments = [
173
+ /\/rss\//,
174
+ /\/atom\//,
175
+ /\/feed\//
176
+ ];
118
177
  const defaultHtmlOptions = {
119
178
  linkSelectors,
120
179
  anchorUris: urisComprehensive.flat(),
180
+ anchorPathSegments,
121
181
  anchorIgnoredUris: ignoredUris,
122
182
  anchorLabels
123
183
  };
124
184
  const defaultHeadersOptions = { linkSelectors };
125
185
  const defaultGuessOptions = { uris: urisBalanced };
126
186
  const defaultPlatformOptions = { handlers: [
187
+ acastHandler,
188
+ amebloHandler,
127
189
  applePodcastsHandler,
190
+ arenaHandler,
191
+ artstationHandler,
192
+ audioboomHandler,
193
+ bearblogHandler,
128
194
  behanceHandler,
129
195
  blogspotHandler,
130
196
  blueskyHandler,
131
- csdnHandler,
197
+ bookwyrmHandler,
198
+ buttondownHandler,
199
+ buzzsproutHandler,
132
200
  codebergHandler,
133
- doubanHandler,
134
- deviantartHandler,
201
+ csdnHandler,
135
202
  dailymotionHandler,
203
+ deviantartHandler,
136
204
  devtoHandler,
137
- goodreadsHandler,
205
+ discourseHandler,
206
+ doubanHandler,
207
+ dreamwidthHandler,
208
+ exblogHandler,
209
+ firesideHandler,
210
+ friendicaHandler,
211
+ ghostHandler,
138
212
  githubHandler,
139
- hashnodeHandler,
140
- hatenablogHandler,
141
213
  githubGistHandler,
142
214
  gitlabHandler,
215
+ goodreadsHandler,
216
+ hackernewsHandler,
217
+ hashnodeHandler,
218
+ hatenablogHandler,
219
+ hearthisHandler,
220
+ heyWorldHandler,
221
+ insanejournalHandler,
143
222
  itchioHandler,
144
223
  kickstarterHandler,
145
224
  lemmyHandler,
146
225
  letterboxdHandler,
226
+ libsynHandler,
227
+ listedHandler,
228
+ livejournalHandler,
147
229
  lobstersHandler,
148
230
  mastodonHandler,
231
+ mataroaHandler,
149
232
  mediumHandler,
233
+ microblogHandler,
234
+ misskeyHandler,
235
+ myanimelistHandler,
236
+ naverBlogHandler,
237
+ nebulaHandler,
238
+ noteHandler,
239
+ observableHandler,
240
+ odyseeHandler,
241
+ pagecordHandler,
150
242
  paragraphHandler,
243
+ pikaHandler,
151
244
  pinterestHandler,
245
+ pixelfedHandler,
246
+ pleromaHandler,
247
+ podbeanHandler,
248
+ podigeeHandler,
249
+ posthavenHandler,
152
250
  producthuntHandler,
251
+ proseHandler,
252
+ qiitaHandler,
153
253
  redditHandler,
254
+ rssComHandler,
255
+ seesaaHandler,
154
256
  soundcloudHandler,
155
257
  sourceforgeHandler,
258
+ spreakerHandler,
156
259
  stackExchangeHandler,
157
260
  steamHandler,
158
261
  substackHandler,
262
+ tildesHandler,
263
+ tistoryHandler,
264
+ transistorHandler,
159
265
  tumblrHandler,
160
266
  v2exHandler,
267
+ velogHandler,
161
268
  vimeoHandler,
269
+ weblogLolHandler,
270
+ weeblyHandler,
162
271
  wordpressHandler,
163
272
  wpengineHandler,
273
+ writeasHandler,
164
274
  ximalayaHandler,
165
- youtubeHandler
275
+ youtubeHandler,
276
+ zennHandler
166
277
  ] };
167
278
  //#endregion
168
- export { anchorLabels, defaultGuessOptions, defaultHeadersOptions, defaultHtmlOptions, defaultPlatformOptions, ignoredUris, linkSelectors, mimeTypes, urisBalanced, urisComprehensive, urisMinimal };
279
+ export { anchorLabels, anchorPathSegments, defaultGuessOptions, defaultHeadersOptions, defaultHtmlOptions, defaultPlatformOptions, ignoredUris, linkSelectors, mimeTypes, urisBalanced, urisComprehensive, urisMinimal };
@@ -1,8 +1,8 @@
1
- const require_utils = require("../common/utils.cjs");
2
- const require_utils$1 = require("../common/discover/utils.cjs");
1
+ const require_utils = require("../common/discover/utils.cjs");
2
+ const require_defaults = require("../common/discover/defaults.cjs");
3
3
  let feedsmith = require("feedsmith");
4
4
  //#region src/feeds/extractors.ts
5
- const defaultExtractor = ({ content, url }) => {
5
+ const defaultExtractFn = ({ content, url }) => {
6
6
  if (!content) return {
7
7
  url,
8
8
  isValid: false
@@ -10,8 +10,8 @@ const defaultExtractor = ({ content, url }) => {
10
10
  try {
11
11
  const parsed = (0, feedsmith.parseFeed)(content);
12
12
  const { format, feed } = parsed;
13
- const rawSiteUrl = require_utils$1.getFeedSiteUrl(parsed);
14
- const siteUrl = rawSiteUrl ? require_utils.resolveUrl(rawSiteUrl, url) : void 0;
13
+ const rawSiteUrl = require_utils.getFeedSiteUrl(parsed);
14
+ const siteUrl = rawSiteUrl ? require_defaults.defaultResolveUrlFn(rawSiteUrl, url) : void 0;
15
15
  if (format === "rss" || format === "rdf") return {
16
16
  url,
17
17
  isValid: true,
@@ -43,4 +43,4 @@ const defaultExtractor = ({ content, url }) => {
43
43
  };
44
44
  };
45
45
  //#endregion
46
- exports.defaultExtractor = defaultExtractor;
46
+ exports.defaultExtractFn = defaultExtractFn;
@@ -2,6 +2,6 @@ import { DiscoverExtractFn } from "../common/types.cjs";
2
2
  import { FeedResult } from "./types.cjs";
3
3
 
4
4
  //#region src/feeds/extractors.d.ts
5
- declare const defaultExtractor: DiscoverExtractFn<FeedResult>;
5
+ declare const defaultExtractFn: DiscoverExtractFn<FeedResult>;
6
6
  //#endregion
7
- export { defaultExtractor };
7
+ export { defaultExtractFn };
@@ -2,6 +2,6 @@ import { DiscoverExtractFn } from "../common/types.js";
2
2
  import { FeedResult } from "./types.js";
3
3
 
4
4
  //#region src/feeds/extractors.d.ts
5
- declare const defaultExtractor: DiscoverExtractFn<FeedResult>;
5
+ declare const defaultExtractFn: DiscoverExtractFn<FeedResult>;
6
6
  //#endregion
7
- export { defaultExtractor };
7
+ export { defaultExtractFn };
@@ -1,8 +1,8 @@
1
- import { resolveUrl } from "../common/utils.js";
2
1
  import { getFeedSiteUrl } from "../common/discover/utils.js";
2
+ import { defaultResolveUrlFn } from "../common/discover/defaults.js";
3
3
  import { parseFeed } from "feedsmith";
4
4
  //#region src/feeds/extractors.ts
5
- const defaultExtractor = ({ content, url }) => {
5
+ const defaultExtractFn = ({ content, url }) => {
6
6
  if (!content) return {
7
7
  url,
8
8
  isValid: false
@@ -11,7 +11,7 @@ const defaultExtractor = ({ content, url }) => {
11
11
  const parsed = parseFeed(content);
12
12
  const { format, feed } = parsed;
13
13
  const rawSiteUrl = getFeedSiteUrl(parsed);
14
- const siteUrl = rawSiteUrl ? resolveUrl(rawSiteUrl, url) : void 0;
14
+ const siteUrl = rawSiteUrl ? defaultResolveUrlFn(rawSiteUrl, url) : void 0;
15
15
  if (format === "rss" || format === "rdf") return {
16
16
  url,
17
17
  isValid: true,
@@ -43,4 +43,4 @@ const defaultExtractor = ({ content, url }) => {
43
43
  };
44
44
  };
45
45
  //#endregion
46
- export { defaultExtractor };
46
+ export { defaultExtractFn };
@@ -1,7 +1,6 @@
1
- const require_utils = require("../common/utils.cjs");
2
- const require_utils$1 = require("../common/discover/utils.cjs");
1
+ const require_defaults = require("../common/discover/defaults.cjs");
3
2
  const require_index = require("../common/discover/index.cjs");
4
- const require_defaults = require("./defaults.cjs");
3
+ const require_defaults$1 = require("./defaults.cjs");
5
4
  const require_extractors = require("./extractors.cjs");
6
5
  //#region src/feeds/index.ts
7
6
  const discoverFeeds = (input, options = {}) => {
@@ -13,14 +12,14 @@ const discoverFeeds = (input, options = {}) => {
13
12
  "headers",
14
13
  "guess"
15
14
  ],
16
- fetchFn: options.fetchFn ?? require_utils$1.defaultFetchFn,
17
- extractFn: options.extractFn ?? require_extractors.defaultExtractor,
18
- resolveUrlFn: options.resolveUrlFn ?? require_utils.resolveUrl
15
+ fetchFn: options.fetchFn ?? require_defaults.defaultFetchFn,
16
+ extractFn: options.extractFn ?? require_extractors.defaultExtractFn,
17
+ resolveUrlFn: options.resolveUrlFn ?? require_defaults.defaultResolveUrlFn
19
18
  }, {
20
- platform: require_defaults.defaultPlatformOptions,
21
- html: require_defaults.defaultHtmlOptions,
22
- headers: require_defaults.defaultHeadersOptions,
23
- guess: require_defaults.defaultGuessOptions
19
+ platform: require_defaults$1.defaultPlatformOptions,
20
+ html: require_defaults$1.defaultHtmlOptions,
21
+ headers: require_defaults$1.defaultHeadersOptions,
22
+ guess: require_defaults$1.defaultGuessOptions
24
23
  });
25
24
  };
26
25
  //#endregion
@@ -1,8 +1,7 @@
1
- import { resolveUrl } from "../common/utils.js";
2
- import { defaultFetchFn } from "../common/discover/utils.js";
1
+ import { defaultFetchFn, defaultResolveUrlFn } from "../common/discover/defaults.js";
3
2
  import { discover } from "../common/discover/index.js";
4
3
  import { defaultGuessOptions, defaultHeadersOptions, defaultHtmlOptions, defaultPlatformOptions } from "./defaults.js";
5
- import { defaultExtractor } from "./extractors.js";
4
+ import { defaultExtractFn } from "./extractors.js";
6
5
  //#region src/feeds/index.ts
7
6
  const discoverFeeds = (input, options = {}) => {
8
7
  return discover(input, {
@@ -14,8 +13,8 @@ const discoverFeeds = (input, options = {}) => {
14
13
  "guess"
15
14
  ],
16
15
  fetchFn: options.fetchFn ?? defaultFetchFn,
17
- extractFn: options.extractFn ?? defaultExtractor,
18
- resolveUrlFn: options.resolveUrlFn ?? resolveUrl
16
+ extractFn: options.extractFn ?? defaultExtractFn,
17
+ resolveUrlFn: options.resolveUrlFn ?? defaultResolveUrlFn
19
18
  }, {
20
19
  platform: defaultPlatformOptions,
21
20
  html: defaultHtmlOptions,
@@ -0,0 +1,26 @@
1
+ const require_utils = require("../../../common/utils.cjs");
2
+ //#region src/feeds/platform/handlers/acast.ts
3
+ const hosts = [
4
+ "shows.acast.com",
5
+ "play.acast.com",
6
+ "embed.acast.com"
7
+ ];
8
+ const excludedPaths = ["discover"];
9
+ const acastHandler = {
10
+ match: (url) => {
11
+ return require_utils.isHostOf(url, hosts);
12
+ },
13
+ resolve: (url) => {
14
+ const { hostname, pathname } = new URL(url);
15
+ const pathSegments = pathname.split("/").filter(Boolean);
16
+ if (pathSegments.length === 0) return [];
17
+ const slug = pathSegments[hostname.toLowerCase() === "play.acast.com" ? 1 : 0];
18
+ if (!slug || require_utils.isAnyOf(slug, excludedPaths)) return [];
19
+ return [{
20
+ uri: `https://feeds.acast.com/public/shows/${slug}`,
21
+ hint: require_utils.composeHint("acast:podcast")
22
+ }];
23
+ }
24
+ };
25
+ //#endregion
26
+ exports.acastHandler = acastHandler;