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/images/pixiv-icon.svg49
-rw-r--r--src/assets/javascripts/services.js17
-rw-r--r--src/config.json21
3 files changed, 83 insertions, 4 deletions
diff --git a/src/assets/images/pixiv-icon.svg b/src/assets/images/pixiv-icon.svg
new file mode 100644
index 00000000..9460979a
--- /dev/null
+++ b/src/assets/images/pixiv-icon.svg
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="64.622841mm"
+   height="62.355366mm"
+   viewBox="0 0 64.622841 62.355366"
+   version="1.1"
+   id="svg5"
+   xml:space="preserve"
+   inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+   sodipodi:docname="pixiv.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
+     id="namedview7"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:showpageshadow="2"
+     inkscape:pageopacity="0.0"
+     inkscape:pagecheckerboard="0"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showgrid="false"
+     inkscape:zoom="1.9603365"
+     inkscape:cx="47.950951"
+     inkscape:cy="158.64623"
+     inkscape:window-width="1888"
+     inkscape:window-height="1060"
+     inkscape:window-x="32"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1" /><defs
+     id="defs2" /><g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-38.311977,-85.637228)"><ellipse
+       style="fill:#0096fa;fill-opacity:1;fill-rule:evenodd;stroke-width:1.449;stroke-linecap:round;stroke-linejoin:bevel;stop-color:#000000"
+       id="path1217"
+       cx="70.623398"
+       cy="116.81491"
+       rx="32.31142"
+       ry="31.177683" /><path
+       style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583"
+       d="m 53.954644,137.20697 c 0,-0.34082 0.351116,-0.66494 1.058333,-0.97696 l 1.058334,-0.46694 v -15.29491 c 0,-8.4122 -0.05335,-15.29492 -0.118556,-15.29492 -0.437486,0 -3.422794,2.86126 -4.139781,3.96776 -0.710132,1.09592 -0.860136,1.5691 -0.801207,2.52738 0.05691,0.92543 -0.02798,1.21758 -0.394672,1.3583 -0.270002,0.1036 -0.511045,0.0477 -0.571119,-0.13257 -0.05717,-0.1715 -0.683125,-1.19904 -1.391012,-2.28342 l -1.287067,-1.97159 2.016494,-1.88318 c 4.601337,-4.29714 10.589157,-7.463208 17.00567,-8.991767 3.78782,-0.902344 8.737483,-0.865988 12.26499,0.09009 7.200255,1.951519 11.962535,6.599017 13.249598,12.930247 0.750554,3.69207 0.334849,7.2551 -1.203791,10.31772 -1.436886,2.86007 -5.197954,6.27581 -8.521792,7.73934 -5.0736,2.23398 -12.4865,2.38561 -19.257114,0.39391 -0.961575,-0.28287 -1.884309,-0.5143 -2.050521,-0.5143 -0.211551,0 -0.302204,1.06612 -0.302204,3.55405 0,3.45553 0.0165,3.55907 0.595313,3.73546 0.773381,0.23568 1.521354,0.89963 1.521354,1.35046 0,0.28372 -0.885039,0.35586 -4.365625,0.35586 -4.13462,0 -4.365625,-0.027 -4.365625,-0.51002 z m 21.897599,-9.58377 c 2.151661,-0.40773 4.766628,-1.85382 6.481035,-3.58404 3.107574,-3.13625 4.033012,-5.4392 4.019442,-10.00237 -0.01326,-4.45929 -1.042546,-7.28019 -3.70612,-10.15716 -1.649793,-1.78198 -3.361658,-2.86435 -5.937789,-3.75434 -2.264892,-0.782466 -6.660828,-0.843522 -9.370362,-0.130149 -1.977697,0.520689 -5.207577,1.785819 -6.171272,2.417259 l -0.59795,0.39179 v 11.51268 11.51268 l 1.20336,0.51582 c 3.637801,1.55934 9.693642,2.10895 14.079656,1.27783 z"
+       id="path402" /></g></svg>
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 22b73f57..412c044a 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -554,9 +554,6 @@ function redirect(url, type, initiator, forceRedirection) {
 			if (path == "/") path = ""
 			return `${randomInstance}/${url.hostname}${path}${url.search}`
 		}
-		default: {
-			return `${randomInstance}${url.pathname}${url.search}`
-		}
 		case "quetre": {
 			const regex = /([a-z]+)\.quora\.com/.exec(url.hostname)
 			console.log(regex)
@@ -567,6 +564,17 @@ function redirect(url, type, initiator, forceRedirection) {
 			}
 			return `${randomInstance}${url.pathname}${url.search}`
 		}
+		case "pixivFe": {
+			const regex = /\/[a-z]{1,3}\/(.*)/.exec(url.pathname)
+			if (regex) {
+				const path = regex[1]
+				return `${randomInstance}/${path}${url.search}`
+			}
+			return `${randomInstance}${url.pathname}${url.search}`
+		}
+		default: {
+			return `${randomInstance}${url.pathname}${url.search}`
+		}
 	}
 }
 
@@ -711,7 +719,8 @@ const defaultInstances = {
 	"laboratory": ['https://lab.vern.cc'],
 	"libreSpeed": ['https://librespeed.org'],
 	'jitsi': ['https://meet.jit.si', 'https://8x8.vc'],
-	'binternet': ['https://binternet.ahwx.org']
+	'binternet': ['https://binternet.ahwx.org'],
+	'pixivFe': ['https://pixivfe.exozy.me']
 }
 
 function initDefaults() {
diff --git a/src/config.json b/src/config.json
index a465f62e..878e9620 100644
--- a/src/config.json
+++ b/src/config.json
@@ -235,6 +235,27 @@
 			"embeddable": true,
 			"url": "https://imgur.com"
 		},
+		"pixiv": {
+			"name": "Pixiv",
+			"frontends": {
+				"pixivFe": {
+					"name": "PixivFE",
+					"instanceList": true,
+					"url": "https://codeberg.org/VnPower/pixivfe"
+				}
+			},
+			"targets": [
+				"^https?:\\/{2}(www\\.)?pixiv\\.net\\/"
+			],
+			"options": {
+				"enabled": false,
+				"unsupportedUrls": "bypass",
+				"frontend": "pixivFe"
+			},
+			"imageType": "svg",
+			"embeddable": false,
+			"url": "https://www.pixiv.net"
+		},
 		"medium": {
 			"frontends": {
 				"scribe": {