diff options
Diffstat (limited to 'src/pages')
27 files changed, 2317 insertions, 174 deletions
diff --git a/src/pages/background/background.js b/src/pages/background/background.js index 31412117..7bf960c9 100644 --- a/src/pages/background/background.js +++ b/src/pages/background/background.js @@ -173,23 +173,14 @@ async function redirectOfflineInstance(url, tabId) { newUrl = youtubeHelper.switchInstance(url); if (!newUrl) newUrl = twitterHelper.switchInstance(url); - if (!newUrl) newUrl = instagramHelper.switchInstance(url); - if (!newUrl) newUrl = redditHelper.switchInstance(url); - if (!newUrl) newUrl = searchHelper.switchInstance(url); - if (!newUrl) newUrl = translateHelper.switchInstance(url); - if (!newUrl) newUrl = mediumHelper.switchInstance(url); - if (!newUrl) newUrl = imgurHelper.switchInstance(url); - if (!newUrl) newUrl = wikipediaHelper.switchInstance(url); - if (!newUrl) newUrl = peertubeHelper.switchInstance(url); - if (!newUrl) newUrl = lbryHelper.switchInstance(url); if (newUrl) { diff --git a/src/pages/options/general/general.pug b/src/pages/options/general/general.pug new file mode 100644 index 00000000..b5b46d5f --- /dev/null +++ b/src/pages/options/general/general.pug @@ -0,0 +1,183 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +body.option(dir="auto") + include ../../widgets/links.pug + +links('general') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_theme__") Theme + select#theme + option(value="DEFAULT" data-localise="__MSG_system__") System + option(value="light" data-localise="__MSG_light__") Light + option(value="dark" data-localise="__MSG_dark__") Dark + + .some-block.option-block + h4(data-localise="__MSG_applyTheme__") Apply Theme to sites + input#apply-theme-to-sites(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_alwaysPref__") Always use Preferred Instances + input#always-use-preferred(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_autoRedirect__") Auto Redirect of offline instances + input#auto-redirect(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_exceptions__") Exceptions + + form#custom-exceptions-instance-form + .some-block.option-block + .some-block(style="padding:0;") + input#exceptions-custom-instance(placeholder="https://www.google.com" type="url") + | + select#exceptions-custom-instance-type + option(value="url") URL + option(value="regex") Regex + | + button#exceptions-add-instance.add(type="submit") + svg(xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor") + path(d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z") + + #exceptions-custom-checklist.checklist + + .buttons.buttons-inline + a#update-instances.button.button-inline + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z") + x(data-localise="__MSG_updateInstances__") Update Instances + + | + + label.button.button-inline(for="import-settings") + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z") + | + x(data-localise="__MSG_importSettings__") Import Settings + input#import-settings.button.button-inline(type="file" style="display:none;") + + | + + a#export-settings.button.button-inline + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z") + | + x(data-localise="__MSG_exportSettings__") Export Settings + + | + + a#reset-settings.button.button-inline + svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M12,5V2L8,6l4,4V7c3.31,0,6,2.69,6,6c0,2.97-2.17,5.43-5,5.91v2.02c3.95-0.49,7-3.85,7-7.93C20,8.58,16.42,5,12,5z") + path(d="M6,13c0-1.65,0.67-3.15,1.76-4.24L6.34,7.34C4.9,8.79,4,10.79,4,13c0,4.08,3.05,7.44,7,7.93v-2.02 C8.17,18.43,6,15.97,6,13z") + x(data-localise="__MSG_resetSettings__") Reset Settings + hr + + .some-block.option-block + h4(data-localise="__MSG_customPopup__") Customize Popup + + #popup-frontends-checklist.checklist-popup + div + div + img(src="../../../assets/images/youtube-icon.png") + |YouTube + input#youtube(type="checkbox") + div + div + img(src="../../../assets/images/youtube-music-icon.png") + |YoutubeMusic + input#youtubeMusic(type="checkbox") + div + div + img(src="../../../assets/images/twitter-icon.png") + |Twitter + input#twitter(type="checkbox") + + div + div + img(src="../../../assets/images/instagram-icon.png") + |Instagram + input#instagram(type="checkbox") + + div + div + img(src="../../../assets/images/tiktok-icon.png") + |TikTok + input#tikTok(type="checkbox") + + div + div + img(src="../../../assets/images/imgur-icon.png") + |Imgur + input#imgur(type="checkbox") + + div + div + img(src="../../../assets/images/reddit-icon.png") + |Reddit + input#reddit(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") + path(d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z") + |Search + input#search(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") + path(d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z") + |Translate + input#translate(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") + path(d="M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z") + |Maps + input#maps(type="checkbox") + + div + div + img(src="../../../assets/images/wikipedia-icon.svg") + |Wikipedia + input#wikipedia(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor") + circle(cx="500" cy="500" r="500") + ellipse(ry="475" rx="250" cy="501" cx="1296") + ellipse(cx="1682" cy="502" rx="88" ry="424") + |Medium + input#medium(type="checkbox") + + div + div + img(src="../../../assets/images/peertube-icon.svg") + |Peertube + input#peertube(type="checkbox") + + div + div + img(src="../../../assets/images/lbry-icon.png") + |LBRY/Odysee + input#lbry(type="checkbox") + + div + div + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z") + |Send Files + input#sendTargets(type="checkbox") + + hr + + + script(type="module" src="../init.js") + script(type="module" src="./general.js") + script(type="module" src="../../../assets/javascripts/localise.js") \ No newline at end of file diff --git a/src/pages/options/imgur/imgur.pug b/src/pages/options/imgur/imgur.pug new file mode 100644 index 00000000..f195ca66 --- /dev/null +++ b/src/pages/options/imgur/imgur.pug @@ -0,0 +1,40 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('imgur') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-imgur(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + option(value="i2p" data-localise="__MSG_i2p__") I2P + + #rimgo + hr + .normal + include ../../widgets/instances.pug + +instances('https://rimgo.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://rimgo.onion') + + .i2p + include ../../widgets/instances.pug + +instances('https://rimgo.onion') + + + + script(type="module" src="../init.js") + script(type="module" src="./imgur.js") \ No newline at end of file diff --git a/src/pages/options/instagram/instagram.pug b/src/pages/options/instagram/instagram.pug new file mode 100644 index 00000000..6e1ef19a --- /dev/null +++ b/src/pages/options/instagram/instagram.pug @@ -0,0 +1,33 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('instagram') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-bibliogram(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #bibliogram + hr + .normal + include ../../widgets/instances.pug + +instances('https://bibliogram.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://bibliogram.onion') + + script(type="module" src="../init.js") + script(type="module" src="./instagram.js") \ No newline at end of file diff --git a/src/pages/options/lbry/lbry.pug b/src/pages/options/lbry/lbry.pug new file mode 100644 index 00000000..aca0d489 --- /dev/null +++ b/src/pages/options/lbry/lbry.pug @@ -0,0 +1,33 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('lbry') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-lbry(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #librarian + hr + .normal + include ../../widgets/instances.pug + +instances('https://librarian.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://librarian.onion') + + script(type="module" src="../init.js") + script(type="module" src="./lbry.js") \ No newline at end of file diff --git a/src/pages/options/maps/maps.pug b/src/pages/options/maps/maps.pug new file mode 100644 index 00000000..2da94a43 --- /dev/null +++ b/src/pages/options/maps/maps.pug @@ -0,0 +1,30 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('maps') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-osm(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#maps-frontend + option(value="osm") OpenStreetMap + option(value="facil") Facil Map + + #facil + hr + .normal + include ../../widgets/instances.pug + +instances('https://facilmap.com') + include ../../widgets/latency.pug + +latency() + + script(type="module" src="../init.js") + script(type="module" src="./maps.js") \ No newline at end of file diff --git a/src/pages/options/medium/medium.pug b/src/pages/options/medium/medium.pug new file mode 100644 index 00000000..f5b698d2 --- /dev/null +++ b/src/pages/options/medium/medium.pug @@ -0,0 +1,33 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('medium') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-medium(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #scribe + hr + .normal + include ../../widgets/instances.pug + +instances('https://scribe.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://scribe.onion') + + script(type="module" src="../init.js") + script(type="module" src="./medium.js") \ No newline at end of file diff --git a/src/pages/options/peertube/peertube.pug b/src/pages/options/peertube/peertube.pug new file mode 100644 index 00000000..d9b25bbc --- /dev/null +++ b/src/pages/options/peertube/peertube.pug @@ -0,0 +1,33 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('peertube') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-peertube(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #simpleertube + hr + .normal + include ../../widgets/instances.pug + +instances('https://simpleertube.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://simpleertube.onion') + + script(type="module" src="../init.js") + script(type="module" src="./peertube.js") \ No newline at end of file diff --git a/src/pages/options/reddit/reddit.html b/src/pages/options/reddit/reddit.html index 6fa9090d..e3fc40d9 100644 --- a/src/pages/options/reddit/reddit.html +++ b/src/pages/options/reddit/reddit.html @@ -78,92 +78,22 @@ <input id="bypass-watch-on-reddit" type="checkbox"> </div> <div id="libreddit"> + <hr> <div class="some-block option-block"> - <h4 data-localise="__MSG_enableCustomSettings__">Enable Custom Settings (will use cookies)</h4> - <input id="enable-libreddit-custom-settings" type="checkbox"> + <h4>Unify cookies across selected instances</h4> </div> - <hr> - <div class="custom-settings"> - <div class="some-block option-block"> - <h2>Appearance</h2> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_theme__">Theme</h4> - <select class="theme"> - <option value="system">System</option> - <option value="light">Light</option> - <option value="dark">Dark</option> - <option value="black">Black</option> - <option value="dracula">Dracula</option> - <option value="nord">Nord</option> - <option value="laserwave">Laserwave</option> - <option value="violet">Violet</option> - <option value="gold">Gold</option> - </select> - </div> - <div class="some-block option-block"> - <h2>Interface</h2> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_frontPage__">Front page</h4> - <select class="front_page"> - <option value="default">Default</option> - <option value="popular">Popular</option> - <option value="all">All</option> - </select> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_frontLayout__">Front Layout</h4> - <select class="layout"> - <option value="card">Card</option> - <option value="clean">Clean</option> - <option value="compact">Compact</option> - </select> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_wideUI__">Wide UI</h4> - <input class="wide" type="checkbox"> - </div> + <form> <div class="some-block option-block"> - <h2>Content</h2> + <input type="url" placeholder="https://libreddit.com"> + <button class="add" type="submit"> + <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> + <rect fill="none" height="24" width="24"></rect> + <path d="M18,2H9C7.9,2,7,2.9,7,4v12c0,1.1,0.9,2,2,2h9c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M18,16H9V4h9V16z M3,15v-2h2v2H3z M3,9.5h2v2H3V9.5z M10,20h2v2h-2V20z M3,18.5v-2h2v2H3z M5,22c-1.1,0-2-0.9-2-2h2V22z M8.5,22h-2v-2h2V22z M13.5,22L13.5,22l0-2h2 v0C15.5,21.1,14.6,22,13.5,22z M5,6L5,6l0,2H3v0C3,6.9,3.9,6,5,6z"></path> + </svg> + </button> </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_defaultSubredditPostSort__">Default subreddit post sort</h4> - <select class="post_sort"> - <option value="hot">Hot</option> - <option value="new">New</option> - <option value="top">Top</option> - <option value="rising">Rising</option> - <option value="controversial">Controversial</option> - </select> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_defaultCommentSort__">Default comment sort</h4> - <select class="comment_sort"> - <option value="confidence">Confidence</option> - <option value="top">Top</option> - <option value="new">New</option> - <option value="controversial">Controversial</option> - <option value="old">Old</option> - </select> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_showNsfwPosts__">Show NSFW posts</h4> - <input class="show_nsfw" type="checkbox"> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_autoplayVideos__">Autoplay videos</h4> - <input class="autoplay_videos" type="checkbox"> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_useHlsForVideos__">Use HLS for videos</h4> - <input class="use_hls" type="checkbox"> - </div> - <div class="some-block option-block"> - <h4 data-localise="__MSG_hideNotificationAboutPossibleHlsUsage__">Hide notification about possible HLS usage</h4> - <input class="hide_hls_notification" type="checkbox"> - </div> - </div> + </form> + <hr> <div class="normal"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> diff --git a/src/pages/options/reddit/reddit.js b/src/pages/options/reddit/reddit.js index 475f8b61..65ad284c 100644 --- a/src/pages/options/reddit/reddit.js +++ b/src/pages/options/reddit/reddit.js @@ -3,49 +3,31 @@ import commonHelper from "../../../assets/javascripts/helpers/common.js"; let libredditDivElement = document.getElementById("libreddit") let tedditDivElement = document.getElementById("teddit") -let enableLibredditSettingsElement = document.getElementById("enable-libreddit-custom-settings"); -let customSettingsDivElement = document.getElementsByClassName("custom-settings"); let disableRedditElement = document.getElementById("disable-reddit"); let redditFrontendElement = document.getElementById("reddit-frontend"); let protocolElement = document.getElementById("protocol") let bypassWatchOnRedditElement = document.getElementById("bypass-watch-on-reddit") -let theme = document.getElementById('libreddit').getElementsByClassName('theme')[0]; -let front_page = document.getElementById('libreddit').getElementsByClassName('front_page')[0]; -let layout = document.getElementById('libreddit').getElementsByClassName('layout')[0]; -let wide = document.getElementById('libreddit').getElementsByClassName('wide')[0]; -let post_sort = document.getElementById('libreddit').getElementsByClassName('post_sort')[0]; -let comment_sort = document.getElementById('libreddit').getElementsByClassName('comment_sort')[0]; -let show_nsfw = document.getElementById('libreddit').getElementsByClassName('show_nsfw')[0]; -let autoplay_videos = document.getElementById('libreddit').getElementsByClassName('autoplay_videos')[0]; -let use_hls = document.getElementById('libreddit').getElementsByClassName('use_hls')[0]; -let hide_hls_notification = document.getElementById('libreddit').getElementsByClassName('hide_hls_notification')[0]; - document.addEventListener("change", async () => { await browser.storage.local.set({ disableReddit: !disableRedditElement.checked, bypassWatchOnReddit: bypassWatchOnRedditElement.checked, redditProtocol: protocolElement.value, redditFrontend: redditFrontendElement.value, - - enableLibredditCustomSettings: enableLibredditSettingsElement.checked, - - redditTheme: theme.value, - redditFrontPage: front_page.value, - redditLayout: layout.value, - redditWide: wide.checked, - redditPostSort: post_sort.value, - redditCommentSort: comment_sort.value, - redditShowNsfw: show_nsfw.checked, - redditAutoplayVideos: autoplay_videos.checked, - redditUseHls: use_hls.checked, - redditHideHlsNotification: hide_hls_notification.checked, }); changeFrontendsSettings(redditFrontendElement.value); changeProtocolSettings(protocolElement.value); }) +const libredditForm = libredditDivElement.getElementsByTagName('form')[0]; +const libredditCookies = libredditForm.getElementsByTagName('input')[0]; +libredditForm.addEventListener('submit', async event => { + event.preventDefault(); + const url = new URL(libredditCookies.value); + redditHelper.initLibredditCookies(url); +}) + function changeProtocolSettings(protocol) { let normalLibredditDiv = libredditDivElement.getElementsByClassName("normal")[0]; let torLibredditDiv = libredditDivElement.getElementsByClassName("tor")[0]; @@ -64,10 +46,6 @@ function changeProtocolSettings(protocol) { torTedditDiv.style.display = 'block'; torLibredditDiv.style.display = 'block'; } - if (enableLibredditSettingsElement.checked) - for (const item of customSettingsDivElement) item.style.display = 'block'; - else - for (const item of customSettingsDivElement) item.style.display = 'none'; } function changeFrontendsSettings(frontend) { let frontendElement = document.getElementById("frontend"); @@ -96,37 +74,14 @@ browser.storage.local.get( "redditFrontend", "enableLibredditCustomSettings", - - "redditTheme", - "redditFrontPage", - "redditLayout", - "redditWide", - "redditPostSort", - "redditCommentSort", - "redditShowNsfw", - "redditAutoplayVideos", - "redditUseHls", - "redditHideHlsNotification", ], r => { disableRedditElement.checked = !r.disableReddit bypassWatchOnRedditElement.checked = r.bypassWatchOnReddit protocolElement.value = r.redditProtocol redditFrontendElement.value = r.redditFrontend - enableLibredditSettingsElement.checked = r.enableLibredditCustomSettings changeFrontendsSettings(r.redditFrontend); changeProtocolSettings(r.redditProtocol); - - theme.value = r.redditTheme; - front_page.value = r.redditFrontPage; - layout.value = r.redditLayout; - wide.checked = r.redditWide; - post_sort.value = r.redditPostSort; - comment_sort.value = r.redditCommentSort; - show_nsfw.checked = r.redditShowNsfw; - autoplay_videos.checked = r.redditAutoplayVideos; - use_hls.checked = r.redditUseHls; - hide_hls_notification.checked = r.redditHideHlsNotification; } ) @@ -172,9 +127,4 @@ latencyTedditElement.addEventListener("click", latencyTedditElement.removeEventListener("click", reloadWindow); }); } -); - -window.onblur = () => { - redditHelper.initLibredditCookies(); - redditHelper.initTedditCookies(); -} \ No newline at end of file +); \ No newline at end of file diff --git a/src/pages/options/reddit/reddit.pug b/src/pages/options/reddit/reddit.pug new file mode 100644 index 00000000..7262a7f4 --- /dev/null +++ b/src/pages/options/reddit/reddit.pug @@ -0,0 +1,65 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('reddit') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-reddit(type="checkbox") + + .some-block.option-block + h4#frontend(data-localise="__MSG_frontend__") Frontend + select#reddit-frontend + option(value="libreddit") Libreddit + option(value="teddit") Teddit + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + .some-block.option-block + h4(data-localise="__MSG_bypassReddit__") Bypass "Open in Reddit" + input#bypass-watch-on-reddit(type="checkbox") + + #libreddit + hr + .some-block.option-block + h4 Unify cookies across selected instances + form + .some-block.option-block + input(type="url" placeholder="https://libreddit.com") + button.add(type="submit") + svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + rect(fill="none" height="24" width="24") + path(d="M18,2H9C7.9,2,7,2.9,7,4v12c0,1.1,0.9,2,2,2h9c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2z M18,16H9V4h9V16z M3,15v-2h2v2H3z M3,9.5h2v2H3V9.5z M10,20h2v2h-2V20z M3,18.5v-2h2v2H3z M5,22c-1.1,0-2-0.9-2-2h2V22z M8.5,22h-2v-2h2V22z M13.5,22L13.5,22l0-2h2 v0C15.5,21.1,14.6,22,13.5,22z M5,6L5,6l0,2H3v0C3,6.9,3.9,6,5,6z") + + hr + + .normal + include ../../widgets/instances.pug + +instances('https://libreddit.com') + include ../../widgets/latency.pug + +latency('libreddit') + .tor + include ../../widgets/instances.pug + +instances('https://libreddit.onion') + + #teddit + hr + .normal + include ../../widgets/instances.pug + +instances('https://teddit.com') + +latency('teddit') + .tor + include ../../widgets/instances.pug + +instances('https://teddit.onion') + + script(type="module" src="../init.js") + script(type="module" src="./reddit.js") \ No newline at end of file diff --git a/src/pages/options/search/search.pug b/src/pages/options/search/search.pug new file mode 100644 index 00000000..78825611 --- /dev/null +++ b/src/pages/options/search/search.pug @@ -0,0 +1,408 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('search') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-search(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#search-frontend + option(value="searxng") SearXNG + option(value="searx") SearX + option(value="whoogle") Whoogle + + + #searx-whoogle + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + option(value="i2p" data-localise="__MSG_i2p__") I2P + + .some-block + h4(data-localise="__MSG_searchNote__") Note: To use Search to its full potential, make LibRedirect as the Default Search Engine + + #searx + hr + .normal + include ../../widgets/instances.pug + +instances('https://searx.com') + include ../../widgets/latency.pug + +latency('searx') + .tor + include ../../widgets/instances.pug + +instances('https://searx.onion') + .i2p + include ../../widgets/instances.pug + +instances('https://searx.i2p') + + #searxng + .some-block.option-block + h4(data-localise="__MSG_enableCustomSettings__") Enable Custom Settings (will use cookies) + input#enable-searxng-custom-settings(type="checkbox") + hr + .custom-settings + .some-block.option-block + h2 General + + .some-block.option-block + h4(data-localise="") Default categories + + .checklist-popup + div + div + svg(viewBox="0 0 512 512" aria-hidden="true") + path(d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32") + path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32" d="M338.29 338.29L448 448") + |General + input.category_general(type="checkbox") + + div + div + svg(viewBox="0 0 512 512" aria-hidden="true") + rect(x="48" y="80" width="416" height="352" rx="48" ry="48" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32") + circle(cx="336" cy="176" r="32" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32") + path(d="M304 335.79l-90.66-90.49a32 32 0 00-43.87-1.3L48 352M224 432l123.34-123.34a32 32 0 0143.11-2L464 368" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + |Images + + input.category_images(type="checkbox") + + div + div + svg(viewBox="0 0 512 512" aria-hidden="true") + path(d="M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32") + |Videos + input.category_videos(type="checkbox") + + div + div + svg(viewBox="0 0 512 512" aria-hidden="true") + path(d="M368 415.86V72a24.07 24.07 0 00-24-24H72a24.07 24.07 0 00-24 24v352a40.12 40.12 0 0040 40h328" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32") + path(d="M416 464h0a48 48 0 01-48-48V128h72a24 24 0 0124 24v264a48 48 0 01-48 48z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32") + path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M240 128h64M240 192h64M112 256h192M112 320h192M112 384h192") + path(d="M176 208h-64a16 16 0 01-16-16v-64a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16z") + |News + input.category_news(type="checkbox") + + div + div + svg(viewBox="0 0 512 512" aria-hidden="true") + path(d="M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + circle(cx="256" cy="192" r="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + |Maps + input.category_map(type="checkbox") + + div + div + svg(viewBox="0 0 512 512" aria-hidden="true") + path(d="M192 218v-6c0-14.84 10-27 24.24-30.59l174.59-46.68A20 20 0 01416 154v22" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + path(d="M416 295.94v80c0 13.91-8.93 25.59-22 30l-22 8c-25.9 8.72-52-10.42-52-38h0a33.37 33.37 0 0123-32l51-18.15c13.07-4.4 22-15.94 22-29.85V58a10 10 0 00-12.6-9.61L204 102a16.48 16.48 0 00-12 16v226c0 13.91-8.93 25.6-22 30l-52 18c-13.88 4.68-22 17.22-22 32h0c0 27.58 26.52 46.55 52 38l22-8c13.07-4.4 22-16.08 22-30v-80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + |Music + input.category_music(type="checkbox") + + div + div + svg(class="ion-icon-big" viewBox="0 0 512 512" aria-hidden="true") + path(d="M434.8 137.65l-149.36-68.1c-16.19-7.4-42.69-7.4-58.88 0L77.3 137.65c-17.6 8-17.6 21.09 0 29.09l148 67.5c16.89 7.7 44.69 7.7 61.58 0l148-67.5c17.52-8 17.52-21.1-.08-29.09zM160 308.52l-82.7 37.11c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.89 7.69 44.69 7.69 61.58 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-79.94-38.47" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + path(d="M160 204.48l-82.8 37.16c-17.6 8-17.6 21.1 0 29.1l148 67.49c16.89 7.7 44.69 7.7 61.58 0l148-67.49c17.7-8 17.7-21.1.1-29.1L352 204.48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + |It + input.category_it(type="checkbox") + + div + div + svg(class="ion-icon-big" viewBox="0 0 512 512" aria-hidden="true") + path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M32 192L256 64l224 128-224 128L32 192z") + path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M112 240v128l144 80 144-80V240M480 368V192M256 320v128") + |Science + input.category_science(type="checkbox") + + div + div + svg(viewBox="0 0 512 512" aria-hidden="true") + path(d="M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32") + path(fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="M48 272h144M320 272h144M192 272a64 64 0 00128 0M144 144h224M128 208h256") + |Files + input.category_files(type="checkbox") + + div + div + svg(viewBox="0 0 512 512" aria-hidden="true") + path(d="M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + path(d="M336 304c-65.17 0-127.84 32.37-143.54 95.41-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="32") + path(d="M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32") + path(d="M206 306c-18.05-8.27-37.93-11.45-59-11.45-52 0-102.1 25.85-114.65 76.2-1.65 6.66 2.53 13.25 9.37 13.25H154" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="32") + |Social Media + input.category_social_media(type="checkbox") + + .some-block.option-block + h4(data-localise="") Search language + select.language + option(value="all") Default language + option(value="af-ZA") 🇿🇦 Afrikaans (Suid-Afrika) + option(value="ca-ES") 🇪🇸 Català (Espanya) + option(value="da-DK") 🇩🇰 Dansk (Danmark) + option(value="de") 🌐 Deutsch + option(value="de-AT") 🇦🇹 Deutsch (Österreich) + option(value="de-CH") 🇨🇭 Deutsch (Schweiz) + option(value="de-DE") 🇩🇪 Deutsch (Deutschland) + option(value="et-EE") 🇪🇪 Eesti (Eesti) + option(value="en") 🌐 English + option(value="en-AU") 🇦🇺 English (Australia) + option(value="en-CA") 🇨🇦 English (Canada) + option(value="en-GB") 🇬🇧 English (United Kingdom) + option(value="en-IE") 🇮🇪 English (Ireland) + option(value="en-MY") 🇲🇾 English (Malaysia) + option(value="en-NZ") 🇳🇿 English (New Zealand) + option(value="en-US") 🇺🇸 English (United States) + option(value="es") 🌐 Español + option(value="es-AR") 🇦🇷 Español (Argentina) + option(value="es-CL") 🇨🇱 Español (Chile) + option(value="es-ES") 🇪🇸 Español (España) + option(value="es-MX") 🇲🇽 Español (México) + option(value="fil-PH") 🇵🇭 Filipino (Pilipinas) + option(value="fr") 🌐 Français + option(value="fr-BE") 🇧🇪 Français (Belgique) + option(value="fr-CA") 🇨🇦 Français (Canada) + option(value="fr-CH") 🇨🇭 Français (Suisse) + option(value="fr-FR") 🇫🇷 Français (France) + option(value="hr-HR") 🇭🇷 Hrvatski (Hrvatska) + option(value="id-ID") 🇮🇩 Indonesia (Indonesia) + option(value="it-IT") 🇮🇹 Italiano (Italia) + option(value="sw-TZ") 🇹🇿 Kiswahili (Tanzania) + option(value="lv-LV") 🇱🇻 Latviešu (Latvija) + option(value="lt-LT") 🇱🇹 Lietuvių (Lietuva) + option(value="hu-HU") 🇭🇺 Magyar (Magyarország) + option(value="nl") 🌐 Nederlands + option(value="nl-BE") 🇧🇪 Nederlands (België) + option(value="nl-NL") 🇳🇱 Nederlands (Nederland) + option(value="no-NO") 🇳🇴 Norsk + option(value="pl-PL") 🇵🇱 Polski (Polska) + option(value="pt") 🌐 Português + option(value="pt-BR") 🇧🇷 Português (Brasil) + option(value="pt-PT") 🇵🇹 Português (Portugal) + option(value="ro-RO") 🇷🇴 Română (România) + option(value="sk-SK") 🇸🇰 Slovenčina (Slovensko) + option(value="sl-SI") 🇸🇮 Slovenščina (Slovenija) + option(value="fi-FI") 🇫🇮 Suomi (Suomi) + option(value="sv-SE") 🇸🇪 Svenska (Sverige) + option(value="vi-VN") 🇻🇳 Tiếng Việt (Việt Nam) + option(value="tr-TR") 🇹🇷 Türkçe (Türkiye) + option(value="is-IS") 🇮🇸 Íslenska (Ísland) + option(value="cs-CZ") 🇨🇿 Čeština (Česko) + option(value="el-GR") 🇬🇷 Ελληνικά (Ελλάδα) + option(value="be-BY") 🇧🇾 Беларуская (Беларусь) + option(value="bg-BG") 🇧🇬 Български (България) + option(value="ru-RU") 🇷🇺 Русский (Россия) + option(value="sr-RS") 🇷🇸 Српски (Србија) + option(value="uk-UA") 🇺🇦 Українська (Україна) + option(value="he-IL") 🇮🇱 עברית (ישראל) + option(value="ar-EG") 🇪🇬 العربية (مصر) + option(value="fa-IR") 🇮🇷 فارسی (ایران) + option(value="hi-IN") 🇮🇳 हिन्दी (भारत) + option(value="th-TH") 🇹🇭 ไทย (ไทย) + option(value="zh") 🌐 中文 + option(value="zh-CN") 🇨🇳 中文 (中国) + option(value="zh-HK") 🇭🇰 中文 (中國香港) + option(value="zh-TW") 🇹🇼 中文 (台灣) + option(value="ja-JP") 🇯🇵 日本語 (日本) + option(value="ko-KR") 🇰🇷 한국어 (대한민국) + + .some-block.option-block + h4(data-localise="") Autocomplete + select.autocomplete + option(value="") - + option(value="dbpedia") dbpedia + option(value="duckduckgo") duckduckgo + option(value="google") google + option(value="seznam") seznam + option(value="startpage") startpage + option(value="swisscows") swisscows + option(value="qwant") qwant + option(value="wikipedia") wikipedia + option(value="brave") brave + + .some-block.option-block + h4(data-localise="") SafeSearch + select.safesearch + option(value="2") Strict + option(value="1") Moderate + option(value="0") None + + .some-block.option-block + h4(data-localise="") Hostname replace + input.hostname_replace(type="checkbox") + + .some-block.option-block + h4(data-localise="") Open Access DOI rewrite + input.oa_doi_rewrite(type="checkbox") + + .some-block.option-block + h4(data-localise="") Open Access DOI resolver + select.doi_resolver + option(value="oadoi.org") oadoi.org - https://oadoi.org/ + option(value="doi.org") doi.org - https://doi.org/ + option(value="doai.io") doai.io - https://dissem.in/ + option(value="sci-hub.se") sci-hub.se - https://sci-hub.se/ + option(value="sci-hub.do") sci-hub.do - https://sci-hub.do/ + option(value="scihubtw.tw") scihubtw.tw - https://scihubtw.tw/ + option(value="sci-hub.st") sci-hub.st - https://sci-hub.st/ + option(value="sci-hub.bar") sci-hub.bar - https://sci-hub.bar/ + option(value="sci-hub.it.nf") sci-hub.it.nf - https://sci-hub.it.nf/ + + .some-block.option-block + h4(data-localise="") Engine tokens + input.tokens(type="text") + + hr + + .some-block.option-block + h2 User Interface + + .some-block.option-block + h4(data-localise="") Interface language + select.locale + option(value="ar") العربية (Arabic) + option(value="bg") Български (Bulgarian) + option(value="bo") བོད་སྐད་ (Tibetan) + option(value="ca") Català (Catalan) + option(value="cs") Čeština (Czech) + option(value="cy") Cymraeg (Welsh) + option(value="da") Dansk (Danish) + option(value="de") Deutsch (German) + option(value="el-GR") Ελληνικά, Ελλάδα (Greek, Greece) + option(value="en" selected="selected") English + option(value="eo") Esperanto + option(value="es") Español (Spanish) + option(value="et") Eesti (Estonian) + option(value="eu") Euskara (Basque) + option(value="fa-IR") فارسی, ایران (Persian, Iran) + option(value="fi") Suomi (Finnish) + option(value="fil") Filipino + option(value="fr") Français (French) + option(value="gl") Galego (Galician) + option(value="he") עברית (Hebrew) + option(value="hr") Hrvatski (Croatian) + option(value="hu") Magyar (Hungarian) + option(value="ia") Interlingua + option(value="id") Indonesia (Indonesian) + option(value="it") Italiano (Italian) + option(value="ja") 日本語 (Japanese) + option(value="ko") 한국어 (Korean) + option(value="lt") Lietuvių (Lithuanian) + option(value="nb-NO") Norsk bokmål, Norge (Norwegian bokmål, Norway) + option(value="nl") Nederlands (Dutch) + option(value="nl-BE") Vlaams (Dutch, Belgium) + option(value="oc") Occitan + option(value="pl") Polski (Polish) + option(value="pt") Português (Portuguese) + option(value="pt-BR") Português, Brasil (Portuguese, Brazil) + option(value="ro") Română (Romanian) + option(value="ru") Русский (Russian) + option(value="sk") Slovenčina (Slovak) + option(value="sl") Slovenščina (Slovenian) + option(value="sr") Српски (Serbian) + option(value="sv") Svenska (Swedish) + option(value="ta") தமிழ் (Tamil) + option(value="te") తెలుగు (Telugu) + option(value="tr") Türkçe (Turkish) + option(value="uk") Українська (Ukrainian) + option(value="vi") Tiếng việt (Vietnamese) + option(value="zh-Hans-CN") 中文, 中国 (Chinese, China) + option(value="zh-Hant-TW") 中文, 台灣 (Chinese, Taiwan) + + .some-block.option-block + h4(data-localise="") Theme + select.theme + option(value="simple") simple + + .some-block.option-block + h4(data-localise="") Theme style + select.simple_style + option(value="auto") auto + option(value="light") light + option(value="dark") dark + + .some-block.option-block + h4(data-localise="") Results on new tabs + select.results_on_new_tab + option(value="1") On + option(value="0") Off + + .some-block.option-block + h4(data-localise="") Infinite scroll + select.infinite_scroll + option(value="1") On + option(value="0") Off + + .some-block.option-block + h4(data-localise="") Search on category select + input.search_on_category_select(type="checkbox") + + .some-block.option-block + h4(data-localise="") Vim-like hotkeys + input.vim_hotkeys(type="checkbox") + + hr + + .some-block.option-block + h2 Privacy + + .some-block.option-block + h4(data-localise="") HTTP Method + select.method + option(value="POST") POST + option(value="GET") GET + + .some-block.option-block + h4(data-localise="") Image proxy + select.image_proxy + option(value="1") Enabled + option(value="0") Disabled + + .some-block.option-block + h4(data-localise="") Query in the page's title + select.query_in_title + option(value="1") Enabled + option(value="") Disabled + + .some-block.option-block + h4(data-localise="") Tracker URL remover + input.tracker_url_remover(type="checkbox") + + hr + + .normal + include ../../widgets/instances.pug + +instances('https://searxng.com') + +latency('searxng') + .tor + include ../../widgets/instances.pug + +instances('https://searxng.onion') + .i2p + include ../../widgets/instances.pug + +instances('https://searxng.i2p') + + #whoogle + hr + .normal + include ../../widgets/instances.pug + +instances('https://whoogle.com') + +latency('whoogle') + .tor + include ../../widgets/instances.pug + +instances('https://whoogle.onion') + .i2p + include ../../widgets/instances.pug + +instances('https://whoogle.i2p') + + script(type="module" src="../init.js") + script(type="module" src="./search.js") \ No newline at end of file diff --git a/src/pages/options/sendTargets/sendTargets.pug b/src/pages/options/sendTargets/sendTargets.pug new file mode 100644 index 00000000..3017fa87 --- /dev/null +++ b/src/pages/options/sendTargets/sendTargets.pug @@ -0,0 +1,33 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('sendTargets') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-sendTargets(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + #send + hr + .normal + include ../../widgets/instances.pug + +instances('https://send.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://send.onion') + + script(type="module" src="../init.js") + script(type="module" src="./sendTargets.js") \ No newline at end of file diff --git a/src/pages/options/tiktok/tiktok.pug b/src/pages/options/tiktok/tiktok.pug new file mode 100644 index 00000000..31ae18df --- /dev/null +++ b/src/pages/options/tiktok/tiktok.pug @@ -0,0 +1,54 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('tiktok') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-tiktok(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + .some-block.option-block + h4(data-localise="__MSG_enableCustomSettings__") Enable Custom Settings (will use cookies) + input#enable-custom-settings(type="checkbox") + + #proxiTok + hr + .custom-settings + .some-block.option-block + h2 General + .some-block.option-block + h4(data-localise="__MSG_theme__") Theme + select.theme + option(value="default") Default + option(value="card") Card + + .some-block.option-block + h2 Api + .some-block.option-block + h4(data-localise="__MSG_legacyMode__") Legacy mode + select.api-legacy + option(value="on") On + option(value="off") Off + + .normal + include ../../widgets/instances.pug + +instances('https://proxitok.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://proxitok.onion') + + script(type="module" src="../init.js") + script(type="module" src="./tiktok.js") diff --git a/src/pages/options/translate/translate.pug b/src/pages/options/translate/translate.pug new file mode 100644 index 00000000..f6a192c4 --- /dev/null +++ b/src/pages/options/translate/translate.pug @@ -0,0 +1,70 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('translate') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-simplyTranslate(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#translate-frontend + option(value="simplyTranslate") SimplyTranslate + option(value="lingva") Lingva + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + hr + + #simplyTranslate + .some-block.option-block + h4(data-localise="__MSG_from__") From + select.from + option(value="auto") Auto + include ../../widgets/from-to.pug + + .some-block.option-block + h4(data-localise="__MSG_to__") To + select.to + include ../../widgets/from-to.pug + + .some-block.option-block + h4(data-localise="__MSG_engine__") Engine + select.engine + option(value="google") Google + option(value="libre") Libre + option(value="deepl") Deepl + option(value="iciba") ICIBA + option(value="reverso") Reverso + + .normal + include ../../widgets/instances.pug + +instances('https://simplytranslate.org') + include ../../widgets/latency.pug + +latency('simplyTranslate') + .tor + include ../../widgets/instances.pug + +instances('http://hxecvvetgrznmprg.onion') + + #lingva + + .normal + include ../../widgets/instances.pug + +instances('https://lingvatranslate.com') + +latency('lingva') + .tor + include ../../widgets/instances.pug + +instances('http://tyzxppdeoojdnaux.onion') + + script(type="module" src="../init.js") + script(type="module" src="./translate.js") diff --git a/src/pages/options/twitter/twitter.pug b/src/pages/options/twitter/twitter.pug new file mode 100644 index 00000000..230aefd1 --- /dev/null +++ b/src/pages/options/twitter/twitter.pug @@ -0,0 +1,118 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title General +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('twitter') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-nitter(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + option(value="i2p" data-localise="__MSG_i2p__") I2P + + .some-block.option-block + h4(data-localise="__MSG_bypassTwitter__") Bypass "Open in Twitter" + input#bypass-watch-on-twitter(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_enableCustomNitter__") Enable Custom Settings (will use cookies) + input#enable-twitter-custom-settings(type="checkbox") + + #nitter + .custom-settings + .some-block.option-block + h2 Display + + .some-block.option-block + h4(data-localise="__MSG_theme__") Theme + select.theme + option(value="Auto") Auto + option(value="Auto (Twitter)") Auto (Twitter) + option(value="Black") Black + option(value="Mastodon") Mastodon + option(value="Nitter") Nitter + option(value="Pleroma") Pleroma + option(value="Twitter") Twitter + option(value="Twitter Dark") Twitter Dark + + .some-block.option-block + h4(data-localise="__MSG_infiniteScroll__") Infinite scrolling (experimental, requires JavaScript) + input.infiniteScroll(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_stickyProfile__") Make profile sidebar stick to top + input.stickyProfile(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_bidiSupport__") Support bidirectional text (makes clicking on tweets harder) + input.bidiSupport(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_hideTweetStats__") Hide tweet stats (replies, retweets, likes) + input.hideTweetStats(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_hideBanner__") Hide profile banner + input.hideBanner(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_hidePins__") Hide pinned tweets + input.hidePins(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_hideReplies__") Hide tweet replies + input.hideReplies(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_squareAvatars__") Square profile pictures + input.squareAvatars(type="checkbox") + + hr + + .some-block.option-block + h2 Media + + .some-block.option-block + h4(data-localise="__MSG_mp4Playback__") Enable mp4 video playback (only for gifs) + input.mp4Playback(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_hlsPlayback__") Enable hls video streaming (requires JavaScript) + input.hlsPlayback(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_proxyVideos__") Proxy video streaming through the server (might be slow) + input.proxyVideos(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_muteVideos__") Mute videos by default + input.muteVideos(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_autoplayGifs__") Autoplay gifs + input.autoplayGifs(type="checkbox") + + .normal + include ../../widgets/instances.pug + +instances('https://nitter.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://nitter.onion') + .i2p + include ../../widgets/instances.pug + +instances('https://nitter.i2p') + + + script(type="module" src="../init.js") + script(type="module" src="./twitter.js") diff --git a/src/pages/options/wikipedia/wikipedia.pug b/src/pages/options/wikipedia/wikipedia.pug new file mode 100644 index 00000000..54ca8730 --- /dev/null +++ b/src/pages/options/wikipedia/wikipedia.pug @@ -0,0 +1,38 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title Wikipedia +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('wikipedia') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-wikipedia(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + option(value="i2p" data-localise="__MSG_i2p__") I2P + + #wikiless + hr + .normal + include ../../widgets/instances.pug + +instances('https://wikiless.com') + include ../../widgets/latency.pug + +latency() + .tor + include ../../widgets/instances.pug + +instances('https://wikiless.onion') + + .i2p + include ../../widgets/instances.pug + +instances('https://wikiless.i2p') + + script(type="module" src="../init.js") + script(type="module" src="./wikipedia.js") diff --git a/src/pages/options/youtube/youtube.pug b/src/pages/options/youtube/youtube.pug new file mode 100644 index 00000000..be88aac8 --- /dev/null +++ b/src/pages/options/youtube/youtube.pug @@ -0,0 +1,730 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title Document +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('youtube') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-invidious(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_frontend__") Frontend + select#youtube-frontend + option(value="invidious") Invidious + option(value="piped") Piped + option(value="pipedMaterial") Piped-Material + option(value="freetube") FreeTube + option(value="yatte") Yattee + + hr + + #freetube-yatte + .some-block.option-block + h4(data-localise="__MSG_embeddedVids__") Embedded Videos Frontend + select#youtube-embed-frontend + option(value="invidious") Invidious + option(value="piped") Piped + option(value="pipedMaterial") Piped-Material + option(value="youtube") Youtube + hr + + #invidious-piped-pipedMaterial + .some-block.option-block + h4(data-localise="__MSG_protocol__") Protocol + select#protocol + option(value="normal" data-localise="__MSG_normal__") Normal + option(value="tor" data-localise="__MSG_tor__") Tor + + .some-block.option-block + h4(data-localise="__MSG_redirectType") Redirect Type + select#only-embed + option(value="both" data-localise="__MSG_both__") both + option(value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__") Only Embedded + option(value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__") Only Not Embedded + + .some-block.option-block + h4(data-localise="__MSG_bypassYoutube__") Bypass "Watch On YouTube" + input#bypass-watch-on-youtube(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_enableCustom__") Enable Custom Settings (will use cookies and localStorage) + input#enable-youtube-custom-settings(type="checkbox") + + #invidious + .custom-settings + hr + .some-block.option-block + h4(data-localise="__MSG_alwaysLoop__") Always loop + input.video_loop(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_autoplayVid__") Autoplay Video + input.youtubeAutoplay(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_playNext__") Play next by default + input.continue(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_autoplayNext__") Autoplay next video + input.continue_autoplay(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_alwaysProxy__") Always proxy videos + input.local(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_listenByDefault__") Listen by default + input.listen(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_defaultSpeed__") Default speed + select.speed + option 2.0 + option 1.75 + option 1.5 + option 1.25 + option 1.0 + option 0.75 + option 0.5 + option 0.25 + + .some-block.option-block + h4(data-localise="__MSG_prefQuality__") Preferred video quality + select.quality + option(value="hd720") 720p + option(value="medium") 480p + option(value="dash" data-localise="__MSG_dash__") DASH (adaptive quality) + + .some-block.option-block + h4(data-localise="__MSG_prefDashQuality__") Preferred DASH video quality + select.quality_dash + option(value="auto" data-localise="__MSG_auto__") Auto + option(value="best" data-localise="__MSG_best__") Best + option(value="4320p") 4320p + option(value="2160p") 2160p + option(value="1440p") 1440p + option(value="1080p") 1080p + option(value="720p") 720p + option(value="480p") 480p + option(value="360p") 360p + option(value="240p") 240p + option(value="144p") 144p + option(value="worst" data-localise="__MSG_worst__") Worst + + .some-block.option-block + h4 + x(data-localise="__MSG_volume__") Volume: + span.volume-value --% + input.volume(type="range" min="0" max="100" step="1") + + .some-block.option-block + h4(data-localise="__MSG_defaultComments__") Default comments + select(class="comments[0]") + option(value="" data-localise="__MSG_none__") none + option(value="youtube") YouTube + option(value="reddit") Reddit + .some-block.option-block + h4 + select(class="comments[1]") + option(value="" data-localise="__MSG_none__") none + option(value="youtube") YouTube + option(value="reddit") Reddit + + .some-block.option-block + h4(data-localise="__MSG_defaultCaptions__") Default captions + select(class="captions[0]") + include ../../widgets/captions_options.pug + + .some-block.option-block + h4 + select(class="captions[1]") + include ../../widgets/captions_options.pug + + .some-block.option-block + h4 + select(class="captions[2]") + include ../../widgets/captions_options.pug + + .some-block.option-block + h4(data-localise="__MSG_showRelated__") Show related videos + input.related_videos(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_showAnnotations__") Show annotations by default + input.annotations(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_autoExtendDesc__") Automatically extend video description + input.extend_desc(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_interactive360__") Interactive 360 degree videos (requires WebGL) + input.vr_mode(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_savePlaybackPos__") Save playback position + input.save_player_pos(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_region__") Select country + select.region + option(value="AE") AE + option(value="AR") AR + option(value="AT") AT + option(value="AU") AU + option(value="AZ") AZ + option(value="BA") BA + option(value="BD") BD + option(value="BE") BE + option(value="BG") BG + option(value="BH") BH + option(value="BO") BO + option(value="BR") BR + option(value="BY") BY + option(value="CA") CA + option(value="CH") CH + option(value="CL") CL + option(value="CO") CO + option(value="CR") CR + option(value="CY") CY + option(value="CZ") CZ + option(value="DE") DE + option(value="DK") DK + option(value="DO") DO + option(value="DZ") DZ + option(value="EC") EC + option(value="EE") EE + option(value="EG") EG + option(value="ES") ES + option(value="FI") FI + option(value="FR") FR + option(value="GB") GB + option(value="GE") GE + option(value="GH") GH + option(value="GR") GR + option(value="GT") GT + option(value="HK") HK + option(value="HN") HN + option(value="HR") HR + option(value="HU") HU + option(value="ID") ID + option(value="IE") IE + option(value="IL") IL + option(value="IN") IN + option(value="IQ") IQ + option(value="IS") IS + option(value="IT") IT + option(value="JM") JM + option(value="JO") JO + option(value="JP") JP + option(value="KE") KE + option(value="KR") KR + option(value="KW") KW + option(value="KZ") KZ + option(value="LB") LB + option(value="LI") LI + option(value="LK") LK + option(value="LT") LT + option(value="LU") LU + option(value="LV") LV + option(value="LY") LY + option(value="MA") MA + option(value="ME") ME + option(value="MK") MK + option(value="MT") MT + option(value="MX") MX + option(value="MY") MY + option(value="NG") NG + option(value="NI") NI + option(value="NL") NL + option(value="NO") NO + option(value="NP") NP + option(value="NZ") NZ + option(value="OM") OM + option(value="PA") PA + option(value="PE") PE + option(value="PG") PG + option(value="PH") PH + option(value="PK") PK + option(value="PL") PL + option(value="PR") PR + option(value="PT") PT + option(value="PY") PY + option(value="QA") QA + option(value="RO") RO + option(value="RS") RS + option(value="RU") RU + option(value="SA") SA + option(value="SE") SE + option(value="SG") SG + option(value="SI") SI + option(value="SK") SK + option(value="SN") SN + option(value="SV") SV + option(value="TH") TH + option(value="TN") TN + option(value="TR") TR + option(value="TW") TW + option(value="TZ") TZ + option(value="UA") UA + option(value="UG") UG + option(value="US") US + option(value="UY") UY + option(value="VE") VE + option(value="VN") VN + option(value="YE") YE + option(value="ZA") ZA + option(value="ZW") ZW + + .some-block.option-block + h4(data-localise="__MSG_playerStyle__") Player Style + select.player_style + option(value="invidious" data-localise="__MSG_invidious__") Invidious + option(value="youtube" data-localise="__MSG_youtube__") YouTube + + .some-block.option-block + h4(data-localise="__MSG_theme__") Theme + select.dark_mode + option(value="") auto + option(value="light") light + option(value="dark") dark + + .some-block.option-block + h4(data-localise="__MSG_thin_mode__") Thin mode + input.thin_mode(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_default_home__") Default homepage + select.default_home + option(value="") Search + option(value="Popular") Popular + option(value="Trending") Trending + + .some-block.option-block + h4(data-localise="__MSG_feedMenu__") Feed menu + select(class="feed_menu[0]") + option(value="") Search + option(value="Popular") Popular + option(value="Trending") Trending + + | + + select(class="feed_menu[1]") + option(value="") Search + option(value="Popular") Popular + option(value="Trending") Trending + hr + .normal + include ../../widgets/instances.pug + +instances('https://invidious.com') + include ../../widgets/latency.pug + +latency('invidious') + .tor + include ../../widgets/instances.pug + +instances('https://invidious.onion') + + #piped + hr + .custom-settings + hr + .some-block.option-block + h4 + x(data-localise="__MSG_volume__") Volume: + span.volume-value --% + input.volume(type="range" min="0" max="100" step="1") + + .some-block.option-block + h4(data-localise="__MSG_enableSponsorBlock__") Enable Sponsorblock + input.sponsorblock(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipSponsors__") Skip Sponsors + input.selectedSkip-sponsor(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipIntermission__") Skip Intermission/Intro Animation + input.selectedSkip-intro(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skripEndcars__") Skip Endcards/Credits + input.selectedSkip-outro(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skripPreview__") Skip Preview/Recap + input.selectedSkip-preview(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipReminder__") Skip Interaction Reminder (Subscribe) + input.selectedSkip-interaction(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipUnpaidPromo__") Skip Unpaid/Self Promotion(Subscribe) + input.selectedSkip-selfpromo(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipMusic__") Skip Music: Non-Music Section(Subscribe) + input.selectedSkip-music_offtopic(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipHighlight__") Skip Highlight(Subscribe) + input.selectedSkip-poi_highlight(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipFiller__") Skip Filler Tangent + input.selectedSkip-filler(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_theme__") Theme + select.ddlTheme + option(value="auto") Auto + option(value="dark") Dark + option(value="light") Light + + .some-block.option-block + h4(data-localise="__MSG_autoplayVid__") Autoplay Video + input.youtubeAutoplay(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_audioOnly__") Audio Only + input.listen(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_defaultQuality__") Default Quality + select.quality + option(value="0") Auto + option(value="144") 144p + option(value="240") 240p + option(value="360") 360p + option(value="480") 480p + option(value="720") 720p + option(value="1080") 1080p + option(value="1440") 1440p + option(value="2160") 2160p + option(value="4320") 4320p + + .some-block.option-block + h4(data-localise="__MSG_bufferingGoal__") Buffering Goal (in seconds) + input.bufferGoal(type="number" min="10") + + .some-block.option-block + h4(data-localise="__MSG_countrySelection__") Country Selection + select.region + option(value="AF") Afghanistan + option(value="AL") Albania + option(value="DZ") Algeria + option(value="AD") Andorra + option(value="AO") Angola + option(value="AG") Antigua and Barbuda + option(value="AR") Argentina + option(value="AM") Armenia + option(value="AU") Australia + option(value="AT") Austria + option(value="AZ") Azerbaijan + option(value="BS") Bahamas + option(value="BH") Bahrain + option(value="BD") Bangladesh + option(value="BB") Barbados + option(value="BY") Belarus + option(value="BE") Belgium + option(value="BZ") Belize + option(value="BJ") Benin + option(value="BT") Bhutan + option(value="BO") Bolivia (Plurinational State of) + option(value="BA") Bosnia and Herzegovina + option(value="BW") Botswana + option(value="BR") Brazil + option(value="BN") Brunei Darussalam + option(value="BG") Bulgaria + option(value="BF") Burkina Faso + option(value="BI") Burundi + option(value="CV") Cabo Verde + option(value="KH") Cambodia + option(value="CM") Cameroon + option(value="CA") Canada + option(value="CF") Central African Republic + option(value="TD") Chad + option(value="CL") Chile + option(value="CN") China + option(value="CO") Colombia + option(value="KM") Comoros + option(value="CG") Congo + option(value="CD") Congo, Democratic Republic of the + option(value="CR") Costa Rica + option(value="CI") Côte d'Ivoire + option(value="HR") Croatia + option(value="CU") Cuba + option(value="CY") Cyprus + option(value="CZ") Czechia + option(value="DK") Denmark + option(value="DJ") Djibouti + option(value="DM") Dominica + option(value="DO") Dominican Republic + option(value="EC") Ecuador + option(value="EG") Egypt + option(value="SV") El Salvador + option(value="GQ") Equatorial Guinea + option(value="ER") Eritrea + option(value="EE") Estonia + option(value="SZ") Eswatini + option(value="ET") Ethiopia + option(value="FJ") Fiji + option(value="FI") Finland + option(value="FR") France + option(value="GA") Gabon + option(value="GM") Gambia + option(value="GE") Georgia + option(value="DE") Germany + option(value="GH") Ghana + option(value="GR") Greece + option(value="GD") Grenada + option(value="GT") Guatemala + option(value="GN") Guinea + option(value="GW") Guinea-Bissau + option(value="GY") Guyana + option(value="HT") Haiti + option(value="HN") Honduras + option(value="HU") Hungary + option(value="IS") Iceland + option(value="IN") India + option(value="ID") Indonesia + option(value="IR") Iran (Islamic Republic of) + option(value="IQ") Iraq + option(value="IE") Ireland + option(value="IL") Israel + option(value="IT") Italy + option(value="JM") Jamaica + option(value="JP") Japan + option(value="JO") Jordan + option(value="KZ") Kazakhstan + option(value="KE") Kenya + option(value="KI") Kiribati + option(value="KP") Korea (Democratic People's Republic of) + option(value="KR") Korea, Republic of + option(value="KW") Kuwait + option(value="KG") Kyrgyzstan + option(value="LA") Lao People's Democratic Republic + option(value="LV") Latvia + option(value="LB") Lebanon + option(value="LS") Lesotho + option(value="LR") Liberia + option(value="LY") Libya + option(value="LI") Liechtenstein + option(value="LT") Lithuania + option(value="LU") Luxembourg + option(value="MG") Madagascar + option(value="MW") Malawi + option(value="MY") Malaysia + option(value="MV") Maldives + option(value="ML") Mali + option(value="MT") Malta + option(value="MH") Marshall Islands + option(value="MR") Mauritania + option(value="MU") Mauritius + option(value="MX") Mexico + option(value="FM") Micronesia (Federated States of) + option(value="MD") Moldova, Republic of + option(value="MC") Monaco + option(value="MN") Mongolia + option(value="ME") Montenegro + option(value="MA") Morocco + option(value="MZ") Mozambique + option(value="MM") Myanmar + option(value="NA") Namibia + option(value="NR") Nauru + option(value="NP") Nepal + option(value="NL") Netherlands + option(value="NZ") New Zealand + option(value="NI") Nicaragua + option(value="NE") Niger + option(value="NG") Nigeria + option(value="MK") North Macedonia + option(value="NO") Norway + option(value="OM") Oman + option(value="PK") Pakistan + option(value="PW") Palau + option(value="PA") Panama + option(value="PG") Papua New Guinea + option(value="PY") Paraguay + option(value="PE") Peru + option(value="PH") Philippines + option(value="PL") Poland + option(value="PT") Portugal + option(value="QA") Qatar + option(value="RO") Romania + option(value="RU") Russian Federation + option(value="RW") Rwanda + option(value="KN") Saint Kitts and Nevis + option(value="LC") Saint Lucia + option(value="VC") Saint Vincent and the Grenadines + option(value="WS") Samoa + option(value="SM") San Marino + option(value="ST") Sao Tome and Principe + option(value="SA") Saudi Arabia + option(value="SN") Senegal + option(value="RS") Serbia + option(value="SC") Seychelles + option(value="SL") Sierra Leone + option(value="SG") Singapore + option(value="SK") Slovakia + option(value="SI") Slovenia + option(value="SB") Solomon Islands + option(value="SO") Somalia + option(value="ZA") South Africa + option(value="SS") South Sudan + option(value="ES") Spain + option(value="LK") Sri Lanka + option(value="SD") Sudan + option(value="SR") Suriname + option(value="SE") Sweden + option(value="CH") Switzerland + option(value="SY") Syrian Arab Republic + option(value="TJ") Tajikistan + option(value="TZ") Tanzania, United Republic of + option(value="TH") Thailand + option(value="TL") Timor-Leste + option(value="TG") Togo + option(value="TO") Tonga + option(value="TT") Trinidad and Tobago + option(value="TN") Tunisia + option(value="TR") Turkey + option(value="TM") Turkmenistan + option(value="TV") Tuvalu + option(value="UG") Uganda + option(value="UA") Ukraine + option(value="AE") United Arab Emirates + option(value="GB") United Kingdom of Great Britain and Northern Ireland + option(value="US") United States of America + option(value="UY") Uruguay + option(value="UZ") Uzbekistan + option(value="VU") Vanuatu + option(value="VE") Venezuela (Bolivarian Republic of) + option(value="VN") Viet Nam + option(value="YE") Yemen + option(value="ZM") Zambia + option(value="ZW") Zimbabwe + + .some-block.option-block + h4(data-localise="__MSG_defaultHomepage__") Default Homepage + select.homepage + option(value="trending" data-localise="__MSG_trending__") Trending + option(value="feed" data-localise="__MSG_feed__") Feed + + .some-block.option-block + h4(data-localise="__MSG_showComments__") Show Comments + input.comments(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_minimizeDesc__") Minimize Description by default + input.minimizeDescription(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_storeHistory__") Store Watch History + input.watchHistory(type="checkbox") + + + .some-block.option-block + h4(data-localise="__MSG_enabledCodecs__") Enabled Codecs (Multiple) + select.enabledCodecs + option(value="av1") AV1 + option(value="vp9") VP9 + option(value="avc") AVC (h.264) + + .some-block.option-block + h4(data-localise="__MSG_disableLBRY__") Disable LBRY for Streaming + input.disableLBRY(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_enableProxyLBRY__") Enable Proxy for LBRY + input.proxyLBRY(type="checkbox") + + .normal + include ../../widgets/instances.pug + +instances('https://piped.com') + +latency('piped') + .tor + include ../../widgets/instances.pug + +instances('https://piped.onion') + + #pipedMaterial + hr + .custom-settings + .some-block.option-block + h4(data-localise="__MSG_autoplayVid__") Autoplay Video + input.youtubeAutoplay(type="checkbox") + + .some-block.option-block + h4 + x(data-localise="__MSG_volume__") Volume: + span.volume-value --% + input.volume(type="range" min="0" max="100" step="1") + + .some-block.option-block + h4(data-localise="__MSG_audioOnly__") Audio Only + input.listen(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_disableLBRY__") Disable LBRY + input.disableLBRY(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_proxyLBRY__") Proxy LBRY videos + input.proxyLBRY(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_enableSponsorBlock__") Enable Sponsorblock + input.sponsorblock(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipNote__") Skip to the last watched point when encountering a video already seen + input.skipToLastPoint(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipSponsors__") Skip Sponsors + input.selectedSkip-sponsor(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipIntermission__") Skip Intermission/Intro Animation + input.selectedSkip-intro(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skripEndcars__") Skip Endcards/Credits + input.selectedSkip-outro(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skripPreview__") Skip Preview/Recap + input.selectedSkip-preview(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipReminder__") Skip Interaction Reminder (Subscribe) + input.selectedSkip-interaction(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipUnpaidPromo__") Skip Unpaid/Self Promotion + input.selectedSkip-selfpromo(type="checkbox") + + .some-block.option-block + h4(data-localise="__MSG_skipMusic__") Skip Music: Non-Music Section + input.selectedSkip-music_offtopic(type="checkbox") + + hr + + .normal + include ../../widgets/instances.pug + +instances('https://piped-material.com') + +latency('pipedMaterial') + .tor + include ../../widgets/instances.pug + +instances('https://piped-material.onion') + + + script(type="module" src="../init.js") + script(type="module" src="./youtube.js") + script(type="module" src="./invidious.js") + script(type="module" src="./piped.js") + script(type="module" src="./pipedMaterial.js") diff --git a/src/pages/options/youtubeMusic/youtubeMusic.pug b/src/pages/options/youtubeMusic/youtubeMusic.pug new file mode 100644 index 00000000..10d2deef --- /dev/null +++ b/src/pages/options/youtubeMusic/youtubeMusic.pug @@ -0,0 +1,24 @@ +doctype html +html(lang="en") + include ../../widgets/head.pug + title Document +script(type="module" src="../../../assets/javascripts/localise.js") +body.option(dir="auto") + include ../../widgets/links.pug + +links('youtubeMusic') + + section.option-block + .some-block.option-block + h4(data-localise="__MSG_enable__") Enable + input#disable-beatbump(type="checkbox") + + #beatbump + hr + .normal + include ../../widgets/instances.pug + +instances('https://beatbump.wewe') + include ../../widgets/latency.pug + +latency() + + script(type="module" src="../init.js") + script(type="module" src="./youtubeMusic.js") diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js index f6dab091..e3f52baf 100644 --- a/src/pages/popup/popup.js +++ b/src/pages/popup/popup.js @@ -104,7 +104,7 @@ document.getElementById("more-options").addEventListener("click", ); function switchInstance() { - browser.tabs.query({ active: true, currentWindow: true }, function (tabs) { + browser.tabs.query({ active: true, currentWindow: true }, async tabs => { let currTab = tabs[0]; if (currTab) { let url = currTab.url; @@ -113,29 +113,18 @@ function switchInstance() { catch (_) { return false; } let newUrl; - newUrl = youtubeHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = twitterHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = instagramHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = redditHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = searchHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = translateHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = mediumHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = sendTargetsHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = peertubeHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = lbryHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = imgurHelper.switchInstance(tabUrl); - - if (!newUrl) newUrl = wikipediaHelper.switchInstance(tabUrl); + // newUrl = youtubeHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = twitterHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = instagramHelper.switchInstance(tabUrl); + if (!newUrl) newUrl = await redditHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = searchHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = translateHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = mediumHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = sendTargetsHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = peertubeHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = lbryHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = imgurHelper.switchInstance(tabUrl); + // if (!newUrl) newUrl = wikipediaHelper.switchInstance(tabUrl); if (newUrl) { browser.tabs.update({ url: newUrl }); diff --git a/src/pages/stylesheets/styles.css b/src/pages/stylesheets/styles.css index 8b2718cd..c1c2a53f 100644 --- a/src/pages/stylesheets/styles.css +++ b/src/pages/stylesheets/styles.css @@ -444,4 +444,15 @@ section.general div { #customize-popup { width: 250px; +} + +button { + background-color:transparent; + color: var(--text); + border: none; + padding: 10px 5px; + text-decoration: none; + display: inline-block; + cursor: pointer; + border-radius: 5px; } \ No newline at end of file diff --git a/src/pages/widgets/captions_options.pug b/src/pages/widgets/captions_options.pug new file mode 100644 index 00000000..51d18d62 --- /dev/null +++ b/src/pages/widgets/captions_options.pug @@ -0,0 +1,130 @@ +option(value="" data-localise="__MSG_none__") none +option(value="English") English +option(value="English (auto-generated)") English (auto-generated) +option(value="English (United Kingdom)") English (United Kingdom) +option(value="English (United States)") English (United States) +option(value="Afrikaans") Afrikaans +option(value="Albanian") Albanian +option(value="Amharic") Amharic +option(value="Arabic") Arabic +option(value="Armenian") Armenian +option(value="Azerbaijani") Azerbaijani +option(value="Bangla") Bangla +option(value="Basque") Basque +option(value="Belarusian") Belarusian +option(value="Bosnian") Bosnian +option(value="Bulgarian") Bulgarian +option(value="Burmese") Burmese +option(value="Cantonese (Hong Kong)") Cantonese (Hong Kong) +option(value="Catalan") Catalan +option(value="Cebuano") Cebuano +option(value="Chinese") Chinese +option(value="Chinese (China)") Chinese (China) +option(value="Chinese (Hong Kong)") Chinese (Hong Kong) +option(value="Chinese (Simplified)") Chinese (Simplified) +option(value="Chinese (Taiwan)") Chinese (Taiwan) +option(value="Chinese (Traditional)") Chinese (Traditional) +option(value="Corsican") Corsican +option(value="Croatian") Croatian +option(value="Czech") Czech +option(value="Danish") Danish +option(value="Dutch") Dutch +option(value="Dutch (auto-generated)") Dutch (auto-generated) +option(value="Esperanto") Esperanto +option(value="Estonian") Estonian +option(value="Filipino") Filipino +option(value="Finnish") Finnish +option(value="French") French +option(value="French (auto-generated)") French (auto-generated) +option(value="Galician") Galician +option(value="Georgian") Georgian +option(value="German") German +option(value="German (auto-generated)") German (auto-generated) +option(value="Greek") Greek +option(value="Gujarati") Gujarati +option(value="Haitian Creole") Haitian Creole +option(value="Hausa") Hausa +option(value="Hawaiian") Hawaiian +option(value="Hebrew") Hebrew +option(value="Hindi") Hindi +option(value="Hmong") Hmong +option(value="Hungarian") Hungarian +option(value="Icelandic") Icelandic +option(value="Igbo") Igbo +option(value="Indonesian") Indonesian +option(value="Indonesian (auto-generated)") Indonesian (auto-generated) +option(value="Interlingue") Interlingue +option(value="Irish") Irish +option(value="Italian") Italian +option(value="Italian (auto-generated)") Italian (auto-generated) +option(value="Japanese") Japanese +option(value="Japanese (auto-generated)") Japanese (auto-generated) +option(value="Javanese") Javanese +option(value="Kannada") Kannada +option(value="Kazakh") Kazakh +option(value="Khmer") Khmer +option(value="Korean") Korean +option(value="Korean (auto-generated)") Korean (auto-generated) +option(value="Kurdish") Kurdish +option(value="Kyrgyz") Kyrgyz +option(value="Lao") Lao +option(value="Latin") Latin +option(value="Latvian") Latvian +option(value="Lithuanian") Lithuanian +option(value="Luxembourgish") Luxembourgish +option(value="Macedonian") Macedonian +option(value="Malagasy") Malagasy +option(value="Malay") Malay +option(value="Malayalam") Malayalam +option(value="Maltese") Maltese +option(value="Maori") Maori +option(value="Marathi") Marathi +option(value="Mongolian") Mongolian +option(value="Nepali") Nepali +option(value="Norwegian Bokmål") Norwegian Bokmål +option(value="Nyanja") Nyanja +option(value="Pashto") Pashto +option(value="Persian") Persian +option(value="Polish") Polish +option(value="Portuguese") Portuguese +option(value="Portuguese (auto-generated)") Portuguese (auto-generated) +option(value="Portuguese (Brazil)") Portuguese (Brazil) +option(value="Punjabi") Punjabi +option(value="Romanian") Romanian +option(value="Russian") Russian +option(value="Russian (auto-generated)") Russian (auto-generated) +option(value="Samoan") Samoan +option(value="Scottish Gaelic") Scottish Gaelic +option(value="Serbian") Serbian +option(value="Shona") Shona +option(value="Sindhi") Sindhi +option(value="Sinhala") Sinhala +option(value="Slovak") Slovak +option(value="Slovenian") Slovenian +option(value="Somali") Somali +option(value="Southern Sotho") Southern Sotho +option(value="Spanish") Spanish +option(value="Spanish (auto-generated)") Spanish (auto-generated) +option(value="Spanish (Latin America)") Spanish (Latin America) +option(value="Spanish (Mexico)") Spanish (Mexico) +option(value="Spanish (Spain)") Spanish (Spain) +option(value="Sundanese") Sundanese +option(value="Swahili") Swahili +option(value="Swedish") Swedish +option(value="Tajik") Tajik +option(value="Tamil") Tamil +option(value="Telugu") Telugu +option(value="Thai") Thai +option(value="Turkish") Turkish +option(value="Turkish (auto-generated)") Turkish (auto-generated) +option(value="Ukrainian") Ukrainian +option(value="Urdu") Urdu +option(value="Uzbek") Uzbek +option(value="Vietnamese") Vietnamese +option(value="Vietnamese (auto-generated)") Vietnamese (auto-generated) +option(value="Welsh") Welsh +option(value="Western Frisian") Western Frisian +option(value="Xhosa") Xhosa +option(value="Yiddish") Yiddish +option(value="Yoruba") Yoruba +option(value="Zulu") Zulu \ No newline at end of file diff --git a/src/pages/widgets/from-to.pug b/src/pages/widgets/from-to.pug new file mode 100644 index 00000000..9140e094 --- /dev/null +++ b/src/pages/widgets/from-to.pug @@ -0,0 +1,108 @@ +option(value="af") Afrikaans +option(value="sq") Albanian +option(value="am") Amharic +option(value="ar") Arabic +option(value="hy") Armenian +option(value="az") Azerbaijani +option(value="eu") Basque +option(value="be") Belarusian +option(value="bn") Bengali +option(value="bs") Bosnian +option(value="bg") Bulgarian +option(value="ca") Catalan +option(value="ceb") Cebuano +option(value="ny") Chichewa +option(value="zh-CN") Chinese +option(value="co") Corsican +option(value="hr") Croatian +option(value="cs") Czech +option(value="da") Danish +option(value="nl") Dutch +option(value="en") English +option(value="eo") Esperanto +option(value="et") Estonian +option(value="tl") Filipino +option(value="fi") Finnish +option(value="fr") French +option(value="fy") Frisian +option(value="gl") Galician +option(value="ka") Georgian +option(value="de") German +option(value="el") Greek +option(value="gu") Gujarati +option(value="ht") Haitian Creole +option(value="ha") Hausa +option(value="haw") Hawaiian +option(value="iw") Hebrew +option(value="hi") Hindi +option(value="hmn") Hmong +option(value="hu") Hungarian +option(value="is") Icelandic +option(value="ig") Igbo +option(value="id") Indonesian +option(value="ga") Irish +option(value="it") Italian +option(value="ja") Japanese +option(value="jw") Javanese +option(value="kn") Kannada +option(value="kk") Kazakh +option(value="km") Khmer +option(value="rw") Kinyarwanda +option(value="ko") Korean +option(value="ku") Kurdish (Kurmanji) +option(value="ky") Kyrgyz +option(value="lo") Lao +option(value="la") Latin +option(value="lv") Latvian +option(value="lt") Lithuanian +option(value="lb") Luxembourgish +option(value="mk") Macedonian +option(value="mg") Malagasy +option(value="ms") Malay +option(value="ml") Malayalam +option(value="mt") Maltese +option(value="mi") Maori +option(value="mr") Marathi +option(value="mn") Mongolian +option(value="my") Myanmar (Burmese) +option(value="ne") Nepali +option(value="no") Norwegian +option(value="or") Odia (Oriya) +option(value="ps") Pashto +option(value="fa") Persian +option(value="pl") Polish +option(value="pt") Portuguese +option(value="pa") Punjabi +option(value="ro") Romanian +option(value="ru") Russian +option(value="sm") Samoan +option(value="gd") Scots Gaelic +option(value="sr") Serbian +option(value="st") Sesotho +option(value="sn") Shona +option(value="sd") Sindhi +option(value="si") Sinhala +option(value="sk") Slovak +option(value="sl") Slovenian +option(value="so") Somali +option(value="es") Spanish +option(value="su") Sundanese +option(value="sw") Swahili +option(value="sv") Swedish +option(value="tg") Tajik +option(value="ta") Tamil +option(value="tt") Tatar +option(value="te") Telugu +option(value="th") Thai +option(value="tr") Turkish +option(value="tk") Turkmen +option(value="uk") Ukrainian +option(value="ur") Urdu +option(value="ug") Uyghur +option(value="uz") Uzbek +option(value="vi") Vietnamese +option(value="cy") Welsh +option(value="xh") Xhosa +option(value="yi") Yiddish +option(value="yo") Yoruba +option(value="zu") Zulu \ No newline at end of file diff --git a/src/pages/widgets/head.pug b/src/pages/widgets/head.pug new file mode 100644 index 00000000..53de42d3 --- /dev/null +++ b/src/pages/widgets/head.pug @@ -0,0 +1,5 @@ +head + meta(charset='utf-8') + meta(name="viewport" content="width=device-width, initial-scale=1") + link(rel="icon" type="image/x-icon" href="../../../assets/images/libredirect.svg") + link(href="../../stylesheets/styles.css" rel="stylesheet") \ No newline at end of file diff --git a/src/pages/widgets/instances.pug b/src/pages/widgets/instances.pug new file mode 100644 index 00000000..950bd46b --- /dev/null +++ b/src/pages/widgets/instances.pug @@ -0,0 +1,15 @@ +mixin instances(myPlaceholder) + .some-block.option-block + h4(data-localise="__MSG_defaultInstances__") Default Instances + + .checklist + hr + .some-block.option-block + h4(data-localise="__MSG_customInstances__") Custom Instances + form.custom-instance-form + .some-block.option-block + input.custom-instance(placeholder=myPlaceholder type="url") + button.add.add-instance(type="submit") + svg(xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor") + path(d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z") + .checklist.custom-checklist \ No newline at end of file diff --git a/src/pages/widgets/latency.pug b/src/pages/widgets/latency.pug new file mode 100644 index 00000000..0069ca74 --- /dev/null +++ b/src/pages/widgets/latency.pug @@ -0,0 +1,13 @@ +mixin latency(service) + - var latencyVal + if (service) + - latencyVal = `latency-${service}` + else + - latencyVal = `latency` + + label.button.button-inline(id=`${latencyVal}-label` for=latencyVal) + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z") + | + x(data-localise="__MSG_testInstancesLatency__") Test Instances Latency + input.button.button-inline(id=latencyVal style="display:none;") \ No newline at end of file diff --git a/src/pages/widgets/links.pug b/src/pages/widgets/links.pug new file mode 100644 index 00000000..8daf48ba --- /dev/null +++ b/src/pages/widgets/links.pug @@ -0,0 +1,76 @@ +mixin links(service) + section.links + .title + svg(xmlns="http://www.w3.org/2000/svg" + enable-background="new 0 0 24 24" + height="26px" viewBox="0 0 24 24" + width="26px" fill="currentColor") + path(d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z") + a(href="../general/general.html" data-localise="__MSG_general__" class=service == "general" ? "selected" : "") General + + .title + img(src="../../../assets/images/youtube-icon.png") + a(href="../youtube/youtube.html" data-localise="__MSG_youtube__" class=service == "youtube" ? "selected" : "") YouTube + + .title + img(src="../../../assets/images/youtube-music-icon.png") + a(href="../youtubeMusic/youtubeMusic.html" data-localise="__MSG_ytmusic__" class=service == "youtubeMusic" ? "selected" : "") YT Music + + .title + img(src="../../../assets/images/twitter-icon.png") + a(href="../twitter/twitter.html" class=service == "twitter" ? "selected" : "" data-localise="__MSG_twitter__") Twitter + + .title + img(src="../../../assets/images/instagram-icon.png") + a(href="../instagram/instagram.html" data-localise="__MSG_instagram__" class=service == "instagram" ? "selected" : "") Instagram + + .title + img(src="../../../assets/images/tiktok-icon.png") + a(href="../tiktok/tiktok.html" data-localise="__MSG_tiktok__" class=service == "tiktok" ? "selected" : "") TikTok + + .title + img(src="../../../assets/images/reddit-icon.png") + a(href="../reddit/reddit.html" data-localise="__MSG_reddit__" class=service == "reddit" ? "selected" : "") Reddit + + .title + img(src="../../../assets/images/imgur-icon.png") + a(href="../imgur/imgur.html" data-localise="__MSG_imgur__" class=service == "imgur" ? "selected" : "") Imgur + + .title + img(src="../../../assets/images/wikipedia-icon.svg") + a(href="../wikipedia/wikipedia.html" data-localise="__MSG_wikipedia__" class=service == "wikipedia" ? "selected" : "") Wikipedia + + .title + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1770 1000" fill="currentColor") + circle(cx="500" cy="500" r="500") + ellipse(ry="475" rx="250" cy="501" cx="1296") + ellipse(cx="1682" cy="502" rx="88" ry="424") + a(href="../medium/medium.html" data-localise="__MSG_medium__" class=service == "medium" ? "selected" : "") Medium + + .title + img(src="../../../assets/images/peertube-icon.svg") + a(href="../peertube/peertube.html" data-localise="__MSG_peertube__" class=service == "peertube" ? "selected" : "") Peertube + + .title + img(src="../../../assets/images/lbry-icon.png") + a(href="../lbry/lbry.html" data-localise="__MSG_lbry__" class=service == "lbry" ? "selected" : "") LBRY/Odysee + + .title + svg(xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor") + path(d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z") + a(href="../search/search.html" data-localise="__MSG_search__" class=service == "search" ? "selected" : "") Search + + .title + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z") + a(href="../translate/translate.html" data-localise="__MSG_translate__" class=service == "translate" ? "selected" : "") Translate + + .title + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z") + a(href="../maps/maps.html" data-localise="__MSG_maps__" class=service == "maps" ? "selected" : "") Maps + + .title + svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") + path(d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z") + a(href="../sendTargets/sendTargets.html" data-localise="__MSG_sendFiles__" class=service == "sendTargets" ? "selected" : "") Send Files \ No newline at end of file |