diff options
Diffstat (limited to 'cs.js')
-rw-r--r-- | cs.js | 43 |
1 files changed, 38 insertions, 5 deletions
@@ -1,4 +1,4 @@ -let base_url = "https://rb.marks.kitchen" +var base_url = undefined let formats = ["Atom", "Mrss", "Html"] let types = { 'application/rss+xml': "rss", @@ -56,7 +56,7 @@ async function get_insta(url) { let insta_url = url + "?__a=1" console.log("fetching") let res = await fetch(insta_url); - let json = await res.json(); + let json = await res.json(); let uid = json.graphql.user.id let feed_url = `${base_url}/?action=display&bridge=Instagram&context=Username&u=${uid}&media_type=all&format=`; return get_all_types(feed_url) @@ -65,13 +65,44 @@ async function get_insta(url) { function get_twitter(url) { let pattern = /twitter.com\/(\w+).*/ let match = url.match(pattern); - let twitter_handle = match[1] - let feed_url = `${base_url}/?action=display&bridge=Twitter&context=By+username&u=${twitter_handle}&format=` - return get_all_types(feed_url) + if (match) { + let twitter_handle = match[1] + let feed_url = `${base_url}/?action=display&bridge=Twitter&context=By+username&u=${twitter_handle}&format=` + return get_all_types(feed_url) + } + return [] } +async function get_youtube(url) { + let patternUser = /youtube.com\/user\/(\w+).*/ + let matchUser = url.match(patternUser) + + let patternChannel = /youtube.com\/channel\/(\w+).*/ + let matchChannel = url.match(patternChannel) + + let patternPlaylist = /youtube.com\/playlist\?list=(\w+)/ + let matchPlaylist = url.match(patternPlaylist) + if (matchUser) { + let user = matchUser[1]; + let feed_url = `${base_url}/?action=display&bridge=Youtube&context=By+username&u=${user}&duration_min=&duration_max=&format=` + return get_all_types(feed_url) + } else if (matchChannel) { + let channelId = matchChannel[1] + let feed_url = `${base_url}/?action=display&bridge=Youtube&context=By+channel+id&c=${channelId}&duration_min=&duration_max=&format=` + return get_all_types(feed_url) + } else if (matchPlaylist) { + let playlistId = matchPlaylist[1] + let native_url = `https://www.youtube.com/feeds/videos.xml?playlist_id=${playlistId}` + let feed_url = `${base_url}/?action=display&bridge=Youtube&context=By+playlist+Id&p=${playlistId}&duration_min=&duration_max=&format=` + let rb_feeds = get_all_types(feed_url) + return rb_feeds.concat([{ type: `native: Rss`, url: native_url }]) + } + return [] +} 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; //url = url.toLowerCase() @@ -79,6 +110,8 @@ async function get_feed_urls() { all_feed_urls = all_feed_urls.concat(await get_insta(url)) } else if (url.includes("twitter")) { all_feed_urls = all_feed_urls.concat(get_twitter(url)) + } else if (url.includes("youtube")) { + all_feed_urls = all_feed_urls.concat(await get_youtube(url)) } all_feed_urls = all_feed_urls.concat(find_links_in_page()) return all_feed_urls |