about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/assets/javascripts/services.js16
-rw-r--r--src/config/config.json10
-rw-r--r--src/pages/options/index.html10
3 files changed, 30 insertions, 6 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 944a6d30..98f17763 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -61,6 +61,7 @@ function regexArray(service, url, config) {
 }

 

 function redirect(url, type, initiator) {

+	if (type != "main_frame" && type != "sub_frame") return

 	let randomInstance

 	let frontend

 	for (const service in config.services) {

@@ -392,6 +393,9 @@ function redirect(url, type, initiator) {
 			else wiki = "/" + wiki

 			if (url.href.search(/Special:Search\?query/) > -1) return `${randomInstance}${wiki}${url.pathname}${url.search}`.replace(/Special:Search\?query/, "search?q").replace(/\/wiki/, "")

 			else return `${randomInstance}${wiki}${url.pathname}${url.search}`

+		case "rimgo":

+			if (url.href.search(/^https?:\/{2}(?:[im]\.)?stack\./) > -1) return `${randomInstance}/stack${url.pathname}${url.search}`

+			else return `${randomInstance}${url.pathname}${url.search}`

 		default:

 			return `${randomInstance}${url.pathname}${url.search}`

 	}

@@ -440,8 +444,16 @@ function switchInstance(url) {
 		for (const service in config.services) {

 			if (!all(service, null, options, config, redirects).includes(protocolHost)) continue

 

-			let instancesList = [...options[options[service].frontend][options.network].enabled, ...options[options[service].frontend][options.network].custom]

-			if (instancesList.length === 0 && options.networkFallback) instancesList = [...options[options[service].frontend].clearnet.enabled, ...options[options[service].frontend].clearnet.custom]

+			let instancesList

+			if (Object.keys(config.services[service].frontends).length == 1) {

+				const frontend = Object.keys(config.services[service].frontends)[0]

+				instancesList = [...options[frontend][options.network].enabled, ...options[frontend][options.network].custom]

+				if (instancesList.length === 0 && options.networkFallback) instancesList = [...options[frontend].clearnet.enabled, ...options[frontend].clearnet.custom]

+			} else {

+				const frontend = options[service].frontend

+				instancesList = [...options[frontend][options.network].enabled, ...options[frontend][options.network].custom]

+				if (instancesList.length === 0 && options.networkFallback) instancesList = [...options[frontend].clearnet.enabled, ...options[frontend].clearnet.custom]

+			}

 

 			let oldInstance

 			const i = instancesList.indexOf(protocolHost)

diff --git a/src/config/config.json b/src/config/config.json
index 61195830..97168263 100644
--- a/src/config/config.json
+++ b/src/config/config.json
@@ -254,14 +254,18 @@
 			"frontends": {

 				"rimgo": {

 					"name": "rimgo",

+					"embeddable": true,

 					"instanceList": true

 				}

 			},

-			"targets": ["^https?:\\/{2}([im]\\.)?imgur\\.(com|io)(\\/|$)"],

+			"targets": ["^https?:\\/{2}([im]\\.)?(stack\\.)?imgur\\.(com|io)(\\/|$)"],

 			"name": "Imgur",

-			"options": { "enabled": true },

+			"options": {

+				"enabled": true,

+				"redirectType": "both"

+			},

 			"imageType": "png",

-			"embeddable": false,

+			"embeddable": true,

 			"url": "https://imgur.com"

 		},

 		"wikipedia": {

diff --git a/src/pages/options/index.html b/src/pages/options/index.html
index faeb5124..597d7cb9 100644
--- a/src/pages/options/index.html
+++ b/src/pages/options/index.html
@@ -1574,7 +1574,15 @@
     <h4 data-localise="__MSG_enable__">Enable</h4>
     <input id="imgur-enabled" type="checkbox">
   </div>
-      <hr>
+      <div class="some-block option-block">
+    <h4 data-localise="__MSG_redirectType__">Redirect Type</h4>
+    <select id="imgur-redirectType">
+      <option value="both" data-localise="__MSG_both__">both</option>
+      <option value="sub_frame" data-localise="__MSG_onlyEmbedded__">Only Embedded</option>
+      <option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option>
+    </select>
+  </div>
+    <hr>
       <div id="rimgo">
         <div class="clearnet">
       <div class="some-block option-block">