feedscout 1.8.0 → 2.0.0-beta.1

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/extractors.d.ts +2 -2
  3. package/dist/blogrolls/extractors.js +2 -2
  4. package/dist/blogrolls/index.js +4 -5
  5. package/dist/blogrolls.d.ts +2 -2
  6. package/dist/blogrolls.js +2 -2
  7. package/dist/common/discover/defaults.d.ts +6 -0
  8. package/dist/common/discover/defaults.js +44 -0
  9. package/dist/common/discover/index.js +2 -2
  10. package/dist/common/discover/utils.d.ts +3 -6
  11. package/dist/common/discover/utils.js +1 -28
  12. package/dist/common/locales.js +214 -10
  13. package/dist/common/types.d.ts +3 -2
  14. package/dist/common/uris/feed/types.d.ts +2 -2
  15. package/dist/common/uris/html/types.d.ts +4 -4
  16. package/dist/common/utils.d.ts +6 -4
  17. package/dist/common/utils.js +13 -11
  18. package/dist/favicons/extractors.d.ts +2 -2
  19. package/dist/favicons/extractors.js +2 -2
  20. package/dist/favicons/index.js +4 -5
  21. package/dist/favicons.d.ts +2 -2
  22. package/dist/favicons.js +2 -2
  23. package/dist/feeds/defaults.d.ts +2 -1
  24. package/dist/feeds/defaults.js +116 -9
  25. package/dist/feeds/extractors.d.ts +2 -2
  26. package/dist/feeds/extractors.js +6 -6
  27. package/dist/feeds/index.js +4 -5
  28. package/dist/feeds/platform/handlers/acast.js +26 -0
  29. package/dist/feeds/platform/handlers/ameblo.js +36 -0
  30. package/dist/feeds/platform/handlers/applePodcasts.js +1 -1
  31. package/dist/feeds/platform/handlers/arena.js +42 -0
  32. package/dist/feeds/platform/handlers/artstation.js +52 -0
  33. package/dist/feeds/platform/handlers/audioboom.js +23 -0
  34. package/dist/feeds/platform/handlers/bearblog.js +45 -0
  35. package/dist/feeds/platform/handlers/behance.js +7 -0
  36. package/dist/feeds/platform/handlers/blogspot.js +38 -2
  37. package/dist/feeds/platform/handlers/bookwyrm.js +48 -0
  38. package/dist/feeds/platform/handlers/buttondown.js +43 -0
  39. package/dist/feeds/platform/handlers/buzzsprout.js +22 -0
  40. package/dist/feeds/platform/handlers/codeberg.js +5 -5
  41. package/dist/feeds/platform/handlers/dailymotion.js +16 -0
  42. package/dist/feeds/platform/handlers/deviantart.js +25 -6
  43. package/dist/feeds/platform/handlers/devto.js +8 -0
  44. package/dist/feeds/platform/handlers/discourse.js +70 -0
  45. package/dist/feeds/platform/handlers/dreamwidth.js +48 -0
  46. package/dist/feeds/platform/handlers/exblog.js +35 -0
  47. package/dist/feeds/platform/handlers/fireside.js +24 -0
  48. package/dist/feeds/platform/handlers/friendica.js +44 -0
  49. package/dist/feeds/platform/handlers/ghost.js +30 -0
  50. package/dist/feeds/platform/handlers/github.js +6 -0
  51. package/dist/feeds/platform/handlers/githubGist.js +16 -5
  52. package/dist/feeds/platform/handlers/gitlab.js +31 -13
  53. package/dist/feeds/platform/handlers/goodreads.js +18 -8
  54. package/dist/feeds/platform/handlers/hackernews.js +21 -0
  55. package/dist/feeds/platform/handlers/hashnode.js +1 -1
  56. package/dist/feeds/platform/handlers/hatenablog.js +4 -1
  57. package/dist/feeds/platform/handlers/hearthis.js +32 -0
  58. package/dist/feeds/platform/handlers/heyWorld.js +18 -0
  59. package/dist/feeds/platform/handlers/insanejournal.js +69 -0
  60. package/dist/feeds/platform/handlers/itchio.js +24 -1
  61. package/dist/feeds/platform/handlers/lemmy.js +46 -4
  62. package/dist/feeds/platform/handlers/letterboxd.js +4 -0
  63. package/dist/feeds/platform/handlers/libsyn.js +25 -0
  64. package/dist/feeds/platform/handlers/listed.js +20 -0
  65. package/dist/feeds/platform/handlers/livejournal.js +68 -0
  66. package/dist/feeds/platform/handlers/mastodon.js +32 -0
  67. package/dist/feeds/platform/handlers/mataroa.js +16 -0
  68. package/dist/feeds/platform/handlers/medium.js +2 -2
  69. package/dist/feeds/platform/handlers/microblog.js +55 -0
  70. package/dist/feeds/platform/handlers/misskey.js +40 -0
  71. package/dist/feeds/platform/handlers/myanimelist.js +43 -0
  72. package/dist/feeds/platform/handlers/naverBlog.js +21 -0
  73. package/dist/feeds/platform/handlers/nebula.js +68 -0
  74. package/dist/feeds/platform/handlers/note.js +53 -0
  75. package/dist/feeds/platform/handlers/observable.js +34 -0
  76. package/dist/feeds/platform/handlers/odysee.js +20 -0
  77. package/dist/feeds/platform/handlers/pagecord.js +16 -0
  78. package/dist/feeds/platform/handlers/paragraph.js +1 -2
  79. package/dist/feeds/platform/handlers/pika.js +35 -0
  80. package/dist/feeds/platform/handlers/pinterest.js +13 -0
  81. package/dist/feeds/platform/handlers/pixelfed.js +46 -0
  82. package/dist/feeds/platform/handlers/pleroma.js +34 -0
  83. package/dist/feeds/platform/handlers/podbean.js +29 -0
  84. package/dist/feeds/platform/handlers/podigee.js +29 -0
  85. package/dist/feeds/platform/handlers/posthaven.js +24 -0
  86. package/dist/feeds/platform/handlers/prose.js +26 -0
  87. package/dist/feeds/platform/handlers/qiita.js +58 -0
  88. package/dist/feeds/platform/handlers/reddit.js +83 -9
  89. package/dist/feeds/platform/handlers/rssCom.js +20 -0
  90. package/dist/feeds/platform/handlers/seesaa.js +22 -0
  91. package/dist/feeds/platform/handlers/sourceforge.js +37 -4
  92. package/dist/feeds/platform/handlers/spreaker.js +21 -0
  93. package/dist/feeds/platform/handlers/stackExchange.js +26 -2
  94. package/dist/feeds/platform/handlers/steam.js +7 -0
  95. package/dist/feeds/platform/handlers/tildes.js +41 -0
  96. package/dist/feeds/platform/handlers/tistory.js +16 -0
  97. package/dist/feeds/platform/handlers/transistor.js +29 -0
  98. package/dist/feeds/platform/handlers/velog.js +24 -0
  99. package/dist/feeds/platform/handlers/vimeo.js +6 -0
  100. package/dist/feeds/platform/handlers/weblogLol.js +26 -0
  101. package/dist/feeds/platform/handlers/weebly.js +25 -0
  102. package/dist/feeds/platform/handlers/wordpress.js +173 -28
  103. package/dist/feeds/platform/handlers/writeas.js +51 -0
  104. package/dist/feeds/platform/handlers/ximalaya.js +1 -1
  105. package/dist/feeds/platform/handlers/youtube.js +4 -1
  106. package/dist/feeds/platform/handlers/zenn.js +54 -0
  107. package/dist/feeds.d.ts +3 -3
  108. package/dist/feeds.js +3 -3
  109. package/dist/hubs/discover/index.js +3 -3
  110. package/dist/hubs/feed/index.js +2 -2
  111. package/dist/hubs/headers/index.js +2 -2
  112. package/dist/hubs/html/index.js +2 -2
  113. package/dist/index.d.ts +2 -1
  114. package/dist/index.js +2 -1
  115. package/dist/utils.d.ts +2 -1
  116. package/package.json +24 -64
  117. package/dist/blogrolls/defaults.cjs +0 -51
  118. package/dist/blogrolls/defaults.d.cts +0 -17
  119. package/dist/blogrolls/extractors.cjs +0 -21
  120. package/dist/blogrolls/extractors.d.cts +0 -7
  121. package/dist/blogrolls/index.cjs +0 -26
  122. package/dist/blogrolls/index.d.cts +0 -7
  123. package/dist/blogrolls/types.d.cts +0 -6
  124. package/dist/blogrolls.cjs +0 -13
  125. package/dist/blogrolls.d.cts +0 -4
  126. package/dist/common/discover/index.cjs +0 -105
  127. package/dist/common/discover/utils.cjs +0 -130
  128. package/dist/common/discover/utils.d.cts +0 -8
  129. package/dist/common/locales.cjs +0 -144
  130. package/dist/common/types.cjs +0 -10
  131. package/dist/common/types.d.cts +0 -89
  132. package/dist/common/uris/feed/index.cjs +0 -12
  133. package/dist/common/uris/feed/index.d.cts +0 -6
  134. package/dist/common/uris/feed/types.d.cts +0 -9
  135. package/dist/common/uris/guess/index.cjs +0 -8
  136. package/dist/common/uris/guess/index.d.cts +0 -7
  137. package/dist/common/uris/guess/types.d.cts +0 -10
  138. package/dist/common/uris/guess/utils.cjs +0 -42
  139. package/dist/common/uris/guess/utils.d.cts +0 -8
  140. package/dist/common/uris/headers/index.cjs +0 -26
  141. package/dist/common/uris/headers/index.d.cts +0 -6
  142. package/dist/common/uris/headers/types.d.cts +0 -9
  143. package/dist/common/uris/html/handlers.cjs +0 -45
  144. package/dist/common/uris/html/index.cjs +0 -19
  145. package/dist/common/uris/html/index.d.cts +0 -6
  146. package/dist/common/uris/html/types.d.cts +0 -12
  147. package/dist/common/uris/index.cjs +0 -32
  148. package/dist/common/uris/platform/index.cjs +0 -10
  149. package/dist/common/uris/platform/index.d.cts +0 -7
  150. package/dist/common/uris/platform/types.d.cts +0 -13
  151. package/dist/common/utils.cjs +0 -97
  152. package/dist/common/utils.d.cts +0 -10
  153. package/dist/favicons/defaults.cjs +0 -65
  154. package/dist/favicons/defaults.d.cts +0 -18
  155. package/dist/favicons/extractors.cjs +0 -25
  156. package/dist/favicons/extractors.d.cts +0 -7
  157. package/dist/favicons/index.cjs +0 -30
  158. package/dist/favicons/index.d.cts +0 -7
  159. package/dist/favicons/platform/handlers/bluesky.cjs +0 -27
  160. package/dist/favicons/platform/handlers/codeberg.cjs +0 -19
  161. package/dist/favicons/platform/handlers/deviantart.cjs +0 -29
  162. package/dist/favicons/platform/handlers/devto.cjs +0 -31
  163. package/dist/favicons/platform/handlers/github.cjs +0 -19
  164. package/dist/favicons/platform/handlers/githubGist.cjs +0 -19
  165. package/dist/favicons/platform/handlers/gitlab.cjs +0 -38
  166. package/dist/favicons/platform/handlers/lobsters.cjs +0 -21
  167. package/dist/favicons/platform/handlers/mastodon.cjs +0 -40
  168. package/dist/favicons/platform/handlers/reddit.cjs +0 -42
  169. package/dist/favicons/platform/handlers/sourceforge.cjs +0 -21
  170. package/dist/favicons/platform/handlers/tumblr.cjs +0 -16
  171. package/dist/favicons/types.d.cts +0 -4
  172. package/dist/favicons/utils.cjs +0 -10
  173. package/dist/favicons.cjs +0 -12
  174. package/dist/favicons.d.cts +0 -4
  175. package/dist/feeds/defaults.cjs +0 -178
  176. package/dist/feeds/defaults.d.cts +0 -20
  177. package/dist/feeds/extractors.cjs +0 -46
  178. package/dist/feeds/extractors.d.cts +0 -7
  179. package/dist/feeds/index.cjs +0 -27
  180. package/dist/feeds/index.d.cts +0 -7
  181. package/dist/feeds/platform/handlers/applePodcasts.cjs +0 -26
  182. package/dist/feeds/platform/handlers/behance.cjs +0 -49
  183. package/dist/feeds/platform/handlers/blogspot.cjs +0 -36
  184. package/dist/feeds/platform/handlers/bluesky.cjs +0 -20
  185. package/dist/feeds/platform/handlers/codeberg.cjs +0 -69
  186. package/dist/feeds/platform/handlers/csdn.cjs +0 -20
  187. package/dist/feeds/platform/handlers/dailymotion.cjs +0 -70
  188. package/dist/feeds/platform/handlers/deviantart.cjs +0 -66
  189. package/dist/feeds/platform/handlers/devto.cjs +0 -50
  190. package/dist/feeds/platform/handlers/douban.cjs +0 -56
  191. package/dist/feeds/platform/handlers/github.cjs +0 -116
  192. package/dist/feeds/platform/handlers/githubGist.cjs +0 -45
  193. package/dist/feeds/platform/handlers/gitlab.cjs +0 -80
  194. package/dist/feeds/platform/handlers/goodreads.cjs +0 -39
  195. package/dist/feeds/platform/handlers/hashnode.cjs +0 -16
  196. package/dist/feeds/platform/handlers/hatenablog.cjs +0 -53
  197. package/dist/feeds/platform/handlers/itchio.cjs +0 -88
  198. package/dist/feeds/platform/handlers/kickstarter.cjs +0 -22
  199. package/dist/feeds/platform/handlers/lemmy.cjs +0 -46
  200. package/dist/feeds/platform/handlers/letterboxd.cjs +0 -42
  201. package/dist/feeds/platform/handlers/lobsters.cjs +0 -57
  202. package/dist/feeds/platform/handlers/mastodon.cjs +0 -42
  203. package/dist/feeds/platform/handlers/medium.cjs +0 -68
  204. package/dist/feeds/platform/handlers/paragraph.cjs +0 -21
  205. package/dist/feeds/platform/handlers/pinterest.cjs +0 -44
  206. package/dist/feeds/platform/handlers/producthunt.cjs +0 -29
  207. package/dist/feeds/platform/handlers/reddit.cjs +0 -75
  208. package/dist/feeds/platform/handlers/soundcloud.cjs +0 -39
  209. package/dist/feeds/platform/handlers/sourceforge.cjs +0 -20
  210. package/dist/feeds/platform/handlers/stackExchange.cjs +0 -40
  211. package/dist/feeds/platform/handlers/steam.cjs +0 -28
  212. package/dist/feeds/platform/handlers/substack.cjs +0 -23
  213. package/dist/feeds/platform/handlers/tumblr.cjs +0 -24
  214. package/dist/feeds/platform/handlers/v2ex.cjs +0 -35
  215. package/dist/feeds/platform/handlers/vimeo.cjs +0 -69
  216. package/dist/feeds/platform/handlers/wordpress.cjs +0 -64
  217. package/dist/feeds/platform/handlers/wpengine.cjs +0 -10
  218. package/dist/feeds/platform/handlers/ximalaya.cjs +0 -20
  219. package/dist/feeds/platform/handlers/youtube.cjs +0 -94
  220. package/dist/feeds/types.d.cts +0 -9
  221. package/dist/feeds.cjs +0 -15
  222. package/dist/feeds.d.cts +0 -4
  223. package/dist/hubs/discover/index.cjs +0 -30
  224. package/dist/hubs/discover/index.d.cts +0 -7
  225. package/dist/hubs/discover/types.d.cts +0 -15
  226. package/dist/hubs/feed/index.cjs +0 -32
  227. package/dist/hubs/headers/index.cjs +0 -17
  228. package/dist/hubs/html/index.cjs +0 -28
  229. package/dist/hubs.cjs +0 -0
  230. package/dist/hubs.d.cts +0 -2
  231. package/dist/index.cjs +0 -12
  232. package/dist/index.d.cts +0 -7
  233. package/dist/methods.cjs +0 -15
  234. package/dist/methods.d.cts +0 -7
  235. package/dist/utils.cjs +0 -9
  236. package/dist/utils.d.cts +0 -2
package/dist/favicons.cjs DELETED
@@ -1,12 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_defaults = require("./favicons/defaults.cjs");
3
- const require_extractors = require("./favicons/extractors.cjs");
4
- exports.defaultExtractor = require_extractors.defaultExtractor;
5
- exports.defaultFeedOptions = require_defaults.defaultFeedOptions;
6
- exports.defaultGuessOptions = require_defaults.defaultGuessOptions;
7
- exports.defaultGuessPaths = require_defaults.defaultGuessPaths;
8
- exports.defaultHeadersOptions = require_defaults.defaultHeadersOptions;
9
- exports.defaultHtmlOptions = require_defaults.defaultHtmlOptions;
10
- exports.defaultIconRels = require_defaults.defaultIconRels;
11
- exports.defaultPlatformOptions = require_defaults.defaultPlatformOptions;
12
- exports.linkSelectors = require_defaults.linkSelectors;
@@ -1,4 +0,0 @@
1
- import { defaultFeedOptions, defaultGuessOptions, defaultGuessPaths, defaultHeadersOptions, defaultHtmlOptions, defaultIconRels, defaultPlatformOptions, linkSelectors } from "./favicons/defaults.cjs";
2
- import { FaviconResult } from "./favicons/types.cjs";
3
- import { defaultExtractor } from "./favicons/extractors.cjs";
4
- export { FaviconResult, defaultExtractor, defaultFeedOptions, defaultGuessOptions, defaultGuessPaths, defaultHeadersOptions, defaultHtmlOptions, defaultIconRels, defaultPlatformOptions, linkSelectors };
@@ -1,178 +0,0 @@
1
- const require_codeberg = require("./platform/handlers/codeberg.cjs");
2
- const require_deviantart = require("./platform/handlers/deviantart.cjs");
3
- const require_devto = require("./platform/handlers/devto.cjs");
4
- const require_github = require("./platform/handlers/github.cjs");
5
- const require_githubGist = require("./platform/handlers/githubGist.cjs");
6
- const require_gitlab = require("./platform/handlers/gitlab.cjs");
7
- const require_lobsters = require("./platform/handlers/lobsters.cjs");
8
- const require_reddit = require("./platform/handlers/reddit.cjs");
9
- const require_sourceforge = require("./platform/handlers/sourceforge.cjs");
10
- const require_tumblr = require("./platform/handlers/tumblr.cjs");
11
- const require_applePodcasts = require("./platform/handlers/applePodcasts.cjs");
12
- const require_behance = require("./platform/handlers/behance.cjs");
13
- const require_blogspot = require("./platform/handlers/blogspot.cjs");
14
- const require_bluesky = require("./platform/handlers/bluesky.cjs");
15
- const require_csdn = require("./platform/handlers/csdn.cjs");
16
- const require_dailymotion = require("./platform/handlers/dailymotion.cjs");
17
- const require_douban = require("./platform/handlers/douban.cjs");
18
- const require_goodreads = require("./platform/handlers/goodreads.cjs");
19
- const require_hashnode = require("./platform/handlers/hashnode.cjs");
20
- const require_hatenablog = require("./platform/handlers/hatenablog.cjs");
21
- const require_itchio = require("./platform/handlers/itchio.cjs");
22
- const require_kickstarter = require("./platform/handlers/kickstarter.cjs");
23
- const require_lemmy = require("./platform/handlers/lemmy.cjs");
24
- const require_letterboxd = require("./platform/handlers/letterboxd.cjs");
25
- const require_mastodon = require("./platform/handlers/mastodon.cjs");
26
- const require_medium = require("./platform/handlers/medium.cjs");
27
- const require_paragraph = require("./platform/handlers/paragraph.cjs");
28
- const require_pinterest = require("./platform/handlers/pinterest.cjs");
29
- const require_producthunt = require("./platform/handlers/producthunt.cjs");
30
- const require_soundcloud = require("./platform/handlers/soundcloud.cjs");
31
- const require_stackExchange = require("./platform/handlers/stackExchange.cjs");
32
- const require_steam = require("./platform/handlers/steam.cjs");
33
- const require_substack = require("./platform/handlers/substack.cjs");
34
- const require_v2ex = require("./platform/handlers/v2ex.cjs");
35
- const require_vimeo = require("./platform/handlers/vimeo.cjs");
36
- const require_wordpress = require("./platform/handlers/wordpress.cjs");
37
- const require_wpengine = require("./platform/handlers/wpengine.cjs");
38
- const require_ximalaya = require("./platform/handlers/ximalaya.cjs");
39
- const require_youtube = require("./platform/handlers/youtube.cjs");
40
- //#region src/feeds/defaults.ts
41
- const mimeTypes = [
42
- "application/rss+xml",
43
- "text/rss+xml",
44
- "application/x-rss+xml",
45
- "application/rss",
46
- "application/atom+xml",
47
- "text/atom+xml",
48
- "application/feed+json",
49
- "application/json",
50
- "application/rdf+xml",
51
- "text/rdf+xml",
52
- "application/atom",
53
- "application/xml",
54
- "text/xml"
55
- ];
56
- const urisMinimal = [
57
- "/feed",
58
- "/rss",
59
- "/atom.xml",
60
- "/feed.xml",
61
- "/rss.xml",
62
- "/index.xml"
63
- ];
64
- const urisBalanced = [
65
- ...urisMinimal,
66
- "/feed/",
67
- "/index.atom",
68
- "/index.rss",
69
- "/feed.json"
70
- ];
71
- const urisComprehensive = [
72
- ...urisBalanced,
73
- "/atom",
74
- "/rss/",
75
- "/rss2.xml",
76
- "/feed.rss",
77
- "/feed.atom",
78
- "/feed.rss.xml",
79
- "/feed.atom.xml",
80
- ["/feed/atom/", "?feed=atom"],
81
- ["/feed/rss/", "?feed=rss"],
82
- ["/feed/rss2/", "?feed=rss2"],
83
- ["/feed/rdf", "?feed=rdf"],
84
- ["/feed/rdf/", "?feed=rdf"],
85
- "/index.rss.xml",
86
- "/index.atom.xml",
87
- "?format=rss",
88
- "?format=atom",
89
- "?rss=1",
90
- "?atom=1",
91
- "/.rss",
92
- "/f.json",
93
- "/f.rss",
94
- "/json",
95
- "/.feed",
96
- ["/comments/feed", "?feed=comments-rss2"],
97
- ["/comments/feed/rss2/", "?feed=comments-rss2"],
98
- ["/comments/feed/rdf/", "?feed=comments-rdf"],
99
- ["/comments/feed/atom/", "?feed=comments-atom"],
100
- "/feeds/posts/default",
101
- "/feeds/posts/default?alt=rss",
102
- "/feeds/comments/default"
103
- ];
104
- const ignoredUris = ["wp-json/oembed/", "wp-json/wp/"];
105
- const anchorLabels = [
106
- "rss",
107
- "feed",
108
- "atom",
109
- "subscribe",
110
- "syndicate",
111
- "syndication",
112
- "json feed"
113
- ];
114
- const linkSelectors = [{
115
- rel: "alternate",
116
- types: mimeTypes
117
- }, { rel: "feed" }];
118
- const defaultHtmlOptions = {
119
- linkSelectors,
120
- anchorUris: urisComprehensive.flat(),
121
- anchorIgnoredUris: ignoredUris,
122
- anchorLabels
123
- };
124
- const defaultHeadersOptions = { linkSelectors };
125
- const defaultGuessOptions = { uris: urisBalanced };
126
- const defaultPlatformOptions = { handlers: [
127
- require_applePodcasts.applePodcastsHandler,
128
- require_behance.behanceHandler,
129
- require_blogspot.blogspotHandler,
130
- require_bluesky.blueskyHandler,
131
- require_csdn.csdnHandler,
132
- require_codeberg.codebergHandler,
133
- require_douban.doubanHandler,
134
- require_deviantart.deviantartHandler,
135
- require_dailymotion.dailymotionHandler,
136
- require_devto.devtoHandler,
137
- require_goodreads.goodreadsHandler,
138
- require_github.githubHandler,
139
- require_hashnode.hashnodeHandler,
140
- require_hatenablog.hatenablogHandler,
141
- require_githubGist.githubGistHandler,
142
- require_gitlab.gitlabHandler,
143
- require_itchio.itchioHandler,
144
- require_kickstarter.kickstarterHandler,
145
- require_lemmy.lemmyHandler,
146
- require_letterboxd.letterboxdHandler,
147
- require_lobsters.lobstersHandler,
148
- require_mastodon.mastodonHandler,
149
- require_medium.mediumHandler,
150
- require_paragraph.paragraphHandler,
151
- require_pinterest.pinterestHandler,
152
- require_producthunt.producthuntHandler,
153
- require_reddit.redditHandler,
154
- require_soundcloud.soundcloudHandler,
155
- require_sourceforge.sourceforgeHandler,
156
- require_stackExchange.stackExchangeHandler,
157
- require_steam.steamHandler,
158
- require_substack.substackHandler,
159
- require_tumblr.tumblrHandler,
160
- require_v2ex.v2exHandler,
161
- require_vimeo.vimeoHandler,
162
- require_wordpress.wordpressHandler,
163
- require_wpengine.wpengineHandler,
164
- require_ximalaya.ximalayaHandler,
165
- require_youtube.youtubeHandler
166
- ] };
167
- //#endregion
168
- exports.anchorLabels = anchorLabels;
169
- exports.defaultGuessOptions = defaultGuessOptions;
170
- exports.defaultHeadersOptions = defaultHeadersOptions;
171
- exports.defaultHtmlOptions = defaultHtmlOptions;
172
- exports.defaultPlatformOptions = defaultPlatformOptions;
173
- exports.ignoredUris = ignoredUris;
174
- exports.linkSelectors = linkSelectors;
175
- exports.mimeTypes = mimeTypes;
176
- exports.urisBalanced = urisBalanced;
177
- exports.urisComprehensive = urisComprehensive;
178
- exports.urisMinimal = urisMinimal;
@@ -1,20 +0,0 @@
1
- import { GuessMethodOptions } from "../common/uris/guess/types.cjs";
2
- import { HeadersMethodOptions } from "../common/uris/headers/types.cjs";
3
- import { HtmlMethodOptions } from "../common/uris/html/types.cjs";
4
- import { PlatformMethodOptions } from "../common/uris/platform/types.cjs";
5
- import { LinkSelector, UriEntry } from "../common/types.cjs";
6
-
7
- //#region src/feeds/defaults.d.ts
8
- declare const mimeTypes: string[];
9
- declare const urisMinimal: string[];
10
- declare const urisBalanced: string[];
11
- declare const urisComprehensive: Array<UriEntry>;
12
- declare const ignoredUris: string[];
13
- declare const anchorLabels: string[];
14
- declare const linkSelectors: Array<LinkSelector>;
15
- declare const defaultHtmlOptions: Omit<HtmlMethodOptions, 'baseUrl'>;
16
- declare const defaultHeadersOptions: Omit<HeadersMethodOptions, 'baseUrl'>;
17
- declare const defaultGuessOptions: Omit<GuessMethodOptions, 'baseUrl'>;
18
- declare const defaultPlatformOptions: Omit<PlatformMethodOptions, 'baseUrl'>;
19
- //#endregion
20
- export { anchorLabels, defaultGuessOptions, defaultHeadersOptions, defaultHtmlOptions, defaultPlatformOptions, ignoredUris, linkSelectors, mimeTypes, urisBalanced, urisComprehensive, urisMinimal };
@@ -1,46 +0,0 @@
1
- const require_utils = require("../common/utils.cjs");
2
- const require_utils$1 = require("../common/discover/utils.cjs");
3
- let feedsmith = require("feedsmith");
4
- //#region src/feeds/extractors.ts
5
- const defaultExtractor = ({ content, url }) => {
6
- if (!content) return {
7
- url,
8
- isValid: false
9
- };
10
- try {
11
- const parsed = (0, feedsmith.parseFeed)(content);
12
- const { format, feed } = parsed;
13
- const rawSiteUrl = require_utils$1.getFeedSiteUrl(parsed);
14
- const siteUrl = rawSiteUrl ? require_utils.resolveUrl(rawSiteUrl, url) : void 0;
15
- if (format === "rss" || format === "rdf") return {
16
- url,
17
- isValid: true,
18
- format,
19
- title: feed.title,
20
- description: feed.description,
21
- siteUrl
22
- };
23
- if (format === "atom") return {
24
- url,
25
- isValid: true,
26
- format,
27
- title: feed.title,
28
- description: feed.subtitle,
29
- siteUrl
30
- };
31
- if (format === "json") return {
32
- url,
33
- isValid: true,
34
- format,
35
- title: feed.title,
36
- description: feed.description,
37
- siteUrl
38
- };
39
- } catch {}
40
- return {
41
- url,
42
- isValid: false
43
- };
44
- };
45
- //#endregion
46
- exports.defaultExtractor = defaultExtractor;
@@ -1,7 +0,0 @@
1
- import { DiscoverExtractFn } from "../common/types.cjs";
2
- import { FeedResult } from "./types.cjs";
3
-
4
- //#region src/feeds/extractors.d.ts
5
- declare const defaultExtractor: DiscoverExtractFn<FeedResult>;
6
- //#endregion
7
- export { defaultExtractor };
@@ -1,27 +0,0 @@
1
- const require_utils = require("../common/utils.cjs");
2
- const require_utils$1 = require("../common/discover/utils.cjs");
3
- const require_index = require("../common/discover/index.cjs");
4
- const require_defaults = require("./defaults.cjs");
5
- const require_extractors = require("./extractors.cjs");
6
- //#region src/feeds/index.ts
7
- const discoverFeeds = (input, options = {}) => {
8
- return require_index.discover(input, {
9
- ...options,
10
- methods: options.methods ?? [
11
- "platform",
12
- "html",
13
- "headers",
14
- "guess"
15
- ],
16
- fetchFn: options.fetchFn ?? require_utils$1.defaultFetchFn,
17
- extractFn: options.extractFn ?? require_extractors.defaultExtractor,
18
- resolveUrlFn: options.resolveUrlFn ?? require_utils.resolveUrl
19
- }, {
20
- platform: require_defaults.defaultPlatformOptions,
21
- html: require_defaults.defaultHtmlOptions,
22
- headers: require_defaults.defaultHeadersOptions,
23
- guess: require_defaults.defaultGuessOptions
24
- });
25
- };
26
- //#endregion
27
- exports.discoverFeeds = discoverFeeds;
@@ -1,7 +0,0 @@
1
- import { DiscoverInput, DiscoverOptions, DiscoverResult } from "../common/types.cjs";
2
- import { FeedResult } from "./types.cjs";
3
-
4
- //#region src/feeds/index.d.ts
5
- declare const discoverFeeds: <TValid extends FeedResult = FeedResult>(input: DiscoverInput, options?: DiscoverOptions<TValid, "platform" | "html" | "headers" | "guess">) => Promise<Array<DiscoverResult<TValid>>>;
6
- //#endregion
7
- export { discoverFeeds };
@@ -1,26 +0,0 @@
1
- const require_utils = require("../../../common/utils.cjs");
2
- //#region src/feeds/platform/handlers/applePodcasts.ts
3
- const hosts = ["podcasts.apple.com"];
4
- const podcastRegex = /^\/[a-z]{2}\/podcast\/[^/]+\/id\d+/;
5
- const feedUrlRegex = /"feedUrl"\s*:\s*"([^"]+)"/;
6
- const extractFeedUrlFromContent = (content) => {
7
- return content.match(feedUrlRegex)?.[1];
8
- };
9
- const applePodcastsHandler = {
10
- match: (url) => {
11
- if (!require_utils.isHostOf(url, hosts)) return false;
12
- const { pathname } = new URL(url);
13
- return podcastRegex.test(pathname);
14
- },
15
- resolve: (_url, content) => {
16
- if (!content) return [];
17
- const feedUrl = extractFeedUrlFromContent(content);
18
- if (!feedUrl) return [];
19
- return [{
20
- uri: feedUrl,
21
- hint: require_utils.composeHint("apple-podcasts:podcast")
22
- }];
23
- }
24
- };
25
- //#endregion
26
- exports.applePodcastsHandler = applePodcastsHandler;
@@ -1,49 +0,0 @@
1
- const require_utils = require("../../../common/utils.cjs");
2
- //#region src/feeds/platform/handlers/behance.ts
3
- const hosts = ["behance.net", "www.behance.net"];
4
- const userRegex = /^\/([a-zA-Z0-9_-]+)(?:\/(appreciated))?\/?$/;
5
- const excludedPaths = [
6
- "search",
7
- "galleries",
8
- "curated",
9
- "features",
10
- "live",
11
- "joblist",
12
- "hire",
13
- "blog",
14
- "about",
15
- "privacy",
16
- "tos",
17
- "help",
18
- "onboarding",
19
- "settings",
20
- "notifications",
21
- "messages",
22
- "adobe"
23
- ];
24
- const behanceHandler = {
25
- match: (url) => {
26
- return require_utils.isHostOf(url, hosts);
27
- },
28
- resolve: (url) => {
29
- const { pathname } = new URL(url);
30
- const userMatch = pathname.match(userRegex);
31
- if (userMatch?.[1]) {
32
- const username = userMatch[1];
33
- const subpage = userMatch[2];
34
- if (!require_utils.isAnyOf(username, excludedPaths)) {
35
- if (subpage === "appreciated") return [{
36
- uri: `https://www.behance.net/feeds/user?username=${username}&content=appreciated`,
37
- hint: require_utils.composeHint("behance:appreciated")
38
- }];
39
- return [{
40
- uri: `https://www.behance.net/feeds/user?username=${username}`,
41
- hint: require_utils.composeHint("behance:portfolio")
42
- }];
43
- }
44
- }
45
- return [];
46
- }
47
- };
48
- //#endregion
49
- exports.behanceHandler = behanceHandler;
@@ -1,36 +0,0 @@
1
- const require_utils = require("../../../common/utils.cjs");
2
- //#region src/feeds/platform/handlers/blogspot.ts
3
- const blogspotDomainRegex = /^.+\.blogspot\.(?:com|co\.[a-z]{2}|com\.[a-z]{2}|[a-z]{2,3})$/;
4
- const labelRegex = /^\/search\/label\/([^/]+)/;
5
- const blogspotHandler = {
6
- match: (url) => {
7
- try {
8
- const hostname = new URL(url).hostname.toLowerCase();
9
- return blogspotDomainRegex.test(hostname);
10
- } catch {}
11
- return false;
12
- },
13
- resolve: (url) => {
14
- const { origin, pathname } = new URL(url);
15
- const uris = [];
16
- const labelMatch = pathname.match(labelRegex);
17
- if (labelMatch?.[1]) {
18
- const label = labelMatch[1];
19
- uris.push({
20
- uri: `${origin}/feeds/posts/default/-/${label}`,
21
- hint: require_utils.composeHint("blogspot:label")
22
- });
23
- }
24
- uris.push({
25
- uri: `${origin}/feeds/posts/default`,
26
- hint: require_utils.composeHint("blogspot:posts-atom")
27
- });
28
- uris.push({
29
- uri: `${origin}/feeds/posts/default?alt=rss`,
30
- hint: require_utils.composeHint("blogspot:posts-rss")
31
- });
32
- return uris;
33
- }
34
- };
35
- //#endregion
36
- exports.blogspotHandler = blogspotHandler;
@@ -1,20 +0,0 @@
1
- const require_utils = require("../../../common/utils.cjs");
2
- //#region src/feeds/platform/handlers/bluesky.ts
3
- const profileRegex = /^\/profile\/([^/]+)/;
4
- const hosts = ["bsky.app", "www.bsky.app"];
5
- const blueskyHandler = {
6
- match: (url) => {
7
- return require_utils.isHostOf(url, hosts);
8
- },
9
- resolve: (url) => {
10
- const { pathname } = new URL(url);
11
- const handle = pathname.match(profileRegex)?.[1];
12
- if (!handle) return [];
13
- return [{
14
- uri: `https://bsky.app/profile/${handle}/rss`,
15
- hint: require_utils.composeHint("bluesky:posts")
16
- }];
17
- }
18
- };
19
- //#endregion
20
- exports.blueskyHandler = blueskyHandler;
@@ -1,69 +0,0 @@
1
- const require_utils = require("../../../common/utils.cjs");
2
- //#region src/feeds/platform/handlers/codeberg.ts
3
- const hosts = [
4
- "codeberg.org",
5
- "www.codeberg.org",
6
- "gitea.com",
7
- "www.gitea.com"
8
- ];
9
- const excludedPaths = [
10
- "explore",
11
- "admin",
12
- "user",
13
- "assets",
14
- "api",
15
- "swagger.json",
16
- "robots.txt",
17
- "sitemap.xml",
18
- "-"
19
- ];
20
- const codebergHandler = {
21
- match: (url) => {
22
- return require_utils.isHostOf(url, hosts);
23
- },
24
- resolve: (url) => {
25
- const { origin, pathname } = new URL(url);
26
- const pathSegments = pathname.split("/").filter(Boolean);
27
- if (pathSegments.length === 1) {
28
- const user = pathSegments[0];
29
- if (!require_utils.isAnyOf(user, excludedPaths)) return [{
30
- uri: `${origin}/${user}.rss`,
31
- hint: require_utils.composeHint("codeberg:activity")
32
- }];
33
- }
34
- if (pathSegments.length >= 2) {
35
- const user = pathSegments[0];
36
- const repo = pathSegments[1];
37
- if (!require_utils.isAnyOf(user, excludedPaths)) {
38
- const feeds = [
39
- {
40
- uri: `${origin}/${user}/${repo}/releases.rss`,
41
- hint: require_utils.composeHint("codeberg:releases")
42
- },
43
- {
44
- uri: `${origin}/${user}/${repo}/tags.rss`,
45
- hint: require_utils.composeHint("codeberg:tags")
46
- },
47
- {
48
- uri: `${origin}/${user}/${repo}.rss`,
49
- hint: require_utils.composeHint("codeberg:activity")
50
- }
51
- ];
52
- if (pathSegments[2] === "src" && pathSegments[3] === "branch" && pathSegments[4]) {
53
- const branch = pathSegments[4];
54
- const filePath = pathSegments.slice(5).join("/");
55
- feeds.unshift({
56
- uri: `${origin}/${user}/${repo}/rss/branch/${branch}${filePath ? `/${filePath}` : ""}`,
57
- hint: require_utils.composeHint(filePath ? "codeberg:file-history" : "codeberg:branch-commits")
58
- });
59
- }
60
- return feeds;
61
- }
62
- }
63
- return [];
64
- }
65
- };
66
- //#endregion
67
- exports.codebergHandler = codebergHandler;
68
- exports.excludedPaths = excludedPaths;
69
- exports.hosts = hosts;
@@ -1,20 +0,0 @@
1
- const require_utils = require("../../../common/utils.cjs");
2
- //#region src/feeds/platform/handlers/csdn.ts
3
- const userRegex = /^\/([^/]+)/;
4
- const hosts = ["blog.csdn.net"];
5
- const csdnHandler = {
6
- match: (url) => {
7
- return require_utils.isHostOf(url, hosts);
8
- },
9
- resolve: (url) => {
10
- const { pathname } = new URL(url);
11
- const username = pathname.match(userRegex)?.[1];
12
- if (!username) return [];
13
- return [{
14
- uri: [`https://rss.csdn.net/${username}/rss/map`, `https://blog.csdn.net/${username}/rss/list`],
15
- hint: require_utils.composeHint("csdn:blog")
16
- }];
17
- }
18
- };
19
- //#endregion
20
- exports.csdnHandler = csdnHandler;
@@ -1,70 +0,0 @@
1
- const require_utils = require("../../../common/utils.cjs");
2
- //#region src/feeds/platform/handlers/dailymotion.ts
3
- const hosts = ["dailymotion.com", "www.dailymotion.com"];
4
- const userRegex = /^\/([a-zA-Z0-9_-]+)$/;
5
- const playlistRegex = /^\/playlist\/([a-zA-Z0-9_-]+)/;
6
- const excludedPaths = [
7
- "signin",
8
- "signout",
9
- "signup",
10
- "login",
11
- "logout",
12
- "register",
13
- "search",
14
- "legal",
15
- "about",
16
- "careers",
17
- "terms",
18
- "privacy",
19
- "feedback",
20
- "help",
21
- "settings",
22
- "upload",
23
- "partner",
24
- "monetize",
25
- "studio",
26
- "video",
27
- "live",
28
- "channels",
29
- "playlist",
30
- "topics",
31
- "trending",
32
- "dm",
33
- "creator",
34
- "premium",
35
- "explore",
36
- "following",
37
- "subscriptions",
38
- "notifications",
39
- "history",
40
- "watch",
41
- "contact",
42
- "ads",
43
- "dmca",
44
- "copyright",
45
- "community"
46
- ];
47
- const dailymotionHandler = {
48
- match: (url) => {
49
- return require_utils.isHostOf(url, hosts);
50
- },
51
- resolve: (url) => {
52
- const { pathname } = new URL(url);
53
- const playlistMatch = pathname.match(playlistRegex);
54
- if (playlistMatch?.[1]) return [{
55
- uri: `https://www.dailymotion.com/rss/playlist/${playlistMatch[1]}`,
56
- hint: require_utils.composeHint("dailymotion:playlist")
57
- }];
58
- const userMatch = pathname.match(userRegex);
59
- if (userMatch?.[1]) {
60
- const username = userMatch[1];
61
- if (!require_utils.isAnyOf(username, excludedPaths)) return [{
62
- uri: `https://www.dailymotion.com/rss/${username}`,
63
- hint: require_utils.composeHint("dailymotion:videos")
64
- }];
65
- }
66
- return [];
67
- }
68
- };
69
- //#endregion
70
- exports.dailymotionHandler = dailymotionHandler;
@@ -1,66 +0,0 @@
1
- const require_utils = require("../../../common/utils.cjs");
2
- //#region src/feeds/platform/handlers/deviantart.ts
3
- const tagRegex = /^\/tag\/([^/]+)/;
4
- const favouritesRegex = /^\/([a-zA-Z0-9_-]+)\/favourites\/?$/;
5
- const folderRegex = /^\/([a-zA-Z0-9_-]+)\/gallery\/(\d+)(?:\/|$)/;
6
- const profileRegex = /^\/([a-zA-Z0-9_-]+)(?:\/gallery(?:\/all)?)?(?:\/|$)/;
7
- const hosts = ["deviantart.com", "www.deviantart.com"];
8
- const feedBaseUrl = "https://backend.deviantart.com/rss.xml";
9
- const excludedPaths = [
10
- "about",
11
- "join",
12
- "search",
13
- "topic",
14
- "watch",
15
- "notifications",
16
- "settings",
17
- "submit",
18
- "shop",
19
- "core-membership",
20
- "team",
21
- "developers"
22
- ];
23
- const deviantartHandler = {
24
- match: (url) => {
25
- return require_utils.isHostOf(url, hosts);
26
- },
27
- resolve: (url) => {
28
- const { pathname } = new URL(url);
29
- const tagMatch = pathname.match(tagRegex);
30
- if (tagMatch?.[1]) {
31
- const tag = tagMatch[1];
32
- return [{
33
- uri: `${feedBaseUrl}?type=deviation&q=${encodeURIComponent(`tag:${tag}`)}`,
34
- hint: require_utils.composeHint("deviantart:tag")
35
- }];
36
- }
37
- const favMatch = pathname.match(favouritesRegex);
38
- if (favMatch?.[1]) {
39
- const username = favMatch[1];
40
- if (!require_utils.isAnyOf(username, excludedPaths)) return [{
41
- uri: `${feedBaseUrl}?type=deviation&q=${encodeURIComponent(`favby:${username}`)}`,
42
- hint: require_utils.composeHint("deviantart:favorites")
43
- }];
44
- }
45
- const folderMatch = pathname.match(folderRegex);
46
- if (folderMatch?.[1] && folderMatch?.[2]) {
47
- const username = folderMatch[1];
48
- const folderId = folderMatch[2];
49
- if (!require_utils.isAnyOf(username, excludedPaths)) return [{
50
- uri: `${feedBaseUrl}?type=deviation&q=${encodeURIComponent(`gallery:${username}/${folderId}`)}`,
51
- hint: require_utils.composeHint("deviantart:gallery")
52
- }];
53
- }
54
- const username = pathname.match(profileRegex)?.[1];
55
- if (!username || require_utils.isAnyOf(username, excludedPaths)) return [];
56
- const query = `by:${username} sort:time meta:all`;
57
- return [{
58
- uri: `${feedBaseUrl}?type=deviation&q=${encodeURIComponent(query)}`,
59
- hint: require_utils.composeHint("deviantart:deviations")
60
- }];
61
- }
62
- };
63
- //#endregion
64
- exports.deviantartHandler = deviantartHandler;
65
- exports.excludedPaths = excludedPaths;
66
- exports.hosts = hosts;