aboutsummaryrefslogtreecommitdiff
path: root/cs.js
diff options
context:
space:
mode:
Diffstat (limited to 'cs.js')
-rw-r--r--cs.js36
1 files changed, 20 insertions, 16 deletions
diff --git a/cs.js b/cs.js
index 2bb7b12..e57176b 100644
--- a/cs.js
+++ b/cs.js
@@ -15,13 +15,6 @@ let types = {
'text/rdf': "rdf"
}
-function normalize_feed_url(feed_url) {
- if (feed_url.startsWith('/')) {
- let url = window.location.href
- feed_url = url.split('/')[0] + '//' + url.split('/')[2] + feed_url;
- }
- return feed_url
-}
function find_links_in_page() {
let links = document.querySelectorAll('link[type]');
@@ -29,7 +22,8 @@ function find_links_in_page() {
for (let i = 0; i < links.length; i++) {
if (links[i].hasAttribute('type') && links[i].getAttribute('type') in types) {
let title = links[i].getAttribute('title')
- let feed_url = normalize_feed_url(links[i].getAttribute('href'));
+ let href = links[i].getAttribute('href')
+ let feed_url = new URL(href, window.location.href).href
let type = types[links[i].getAttribute('type')]
let feed = {
type: `native: ${title || type}`,
@@ -59,24 +53,34 @@ function get_all_types(feed_url, note) {
return feeds;
}
+let objs = []
+
async function get_feed_urls() {
let settings = await browser.storage.sync.get("rb");
base_url = settings.rb;
let all_feed_urls = []
- let url = window.location.href;
let host = window.location.host;
- //url = url.toLowerCase()
- if (host.includes("instagram")) {
- all_feed_urls = all_feed_urls.concat(await get_insta(url))
- } else if (host.includes("twitter")) {
- all_feed_urls = all_feed_urls.concat(get_twitter(url))
- } else if (host.includes("youtube")) {
- all_feed_urls = all_feed_urls.concat(await get_youtube(url))
+ for (const obj of objs) {
+ for (const obj_host of obj.hosts) {
+ if (host.includes(obj_host)) {
+ result = await obj.callback()
+ all_feed_urls = all_feed_urls.concat(result)
+ break
+ }
+ }
}
all_feed_urls = all_feed_urls.concat(find_links_in_page())
return all_feed_urls
}
+function register(hosts, callback) {
+ objs.push({hosts, callback})
+}
+
+register(["instagram"], get_insta)
+register(["twitter"], get_twitter)
+register(["youtube"], get_youtube)
+
browser.runtime.onMessage.addListener(function (msg, sender) {
return Promise.resolve(get_feed_urls());
})