// ==UserScript==
// @name Pet Preview
// @namespace https://www.marapets.com/
// @version 0.1
// @description Show a picture of your default pet on all pages
// @author Lily Skye
// @match *://*.marapets.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=marapets.com
// @grant none
// @license MIT
// ==/UserScript==
(function(global) {
function factory() {
var modules = {
/* --- src/pet-preview.tsx --- */
"src/pet-preview.tsx": (function (exports, _kame_require_, module, __filename, __dirname, _kame_dynamic_import_) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const _interop_require_wildcard = _kame_require_("node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs");
const _jsxdom = /*#__PURE__*/_interop_require_wildcard._(_kame_require_("node_modules/@suchipi/jsxdom/dist/jsxdom.umd.js"));
// Our compiler is configured to output 'React.createElement', so aliasing this
// to 'React' makes everything work properly
const React = _jsxdom;
(async function () {
if (location.href.match(/index\.php/)) {
console.info("Pet Preview UserScript: Caching pet image and link...");
// We're on the homepage! Scrape the default pet and save it to localStorage.
const defaultPetLink = document.querySelector(`a[href^="pets.php?id="]`);
const defaultPetImg = document.querySelector("img.defaultpet");
const linkHref = defaultPetLink?.getAttribute("href");
const imgSrc = defaultPetImg?.getAttribute("src");
if (linkHref == null) {
console.error("Pet Preview UserScript: Could not find default pet link");
}
if (imgSrc == null) {
console.error("Pet Preview UserScript: Could not find default pet image");
}
// the '1' is the schema version
localStorage.__userscript_suchipi_pet_preview_1 = JSON.stringify({
linkHref,
imgSrc
});
}
const savedJson = localStorage.__userscript_suchipi_pet_preview_1;
if (typeof savedJson !== "string") {
console.warn("Pet Preview UserScript: Pet not cached yet. Click the 'Marapets' logo to cache it!");
}
const {
linkHref,
imgSrc
} = JSON.parse(savedJson);
let eltoAppend = null;
if (linkHref != null && imgSrc != null) {
eltoAppend = /*#__PURE__*/React.createElement("a", {
href: linkHref
}, /*#__PURE__*/React.createElement("img", {
className: "defaultpet",
style: {
width: "75px",
height: "75px",
position: "fixed",
top: "30px",
zIndex: "1"
},
src: imgSrc
}));
} else if (imgSrc != null) {
eltoAppend = /*#__PURE__*/React.createElement("img", {
className: "defaultpet",
style: {
width: "75px",
height: "75px",
position: "fixed",
top: "30px",
zIndex: "1"
},
src: imgSrc
});
}
if (eltoAppend != null) {
document.body.appendChild(eltoAppend);
}
})();
}),
/* --- node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs --- */
"node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs": (function (exports, _kame_require_, module, __filename, __dirname, _kame_dynamic_import_) {
"use strict";
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function (nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
exports._ = exports._interop_require_wildcard = _interop_require_wildcard;
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) return obj;
if (obj === null || typeof obj !== "object" && typeof obj !== "function") return {
default: obj
};
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) return cache.get(obj);
var newObj = {};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for (var key in obj) {
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);else newObj[key] = obj[key];
}
}
newObj.default = obj;
if (cache) cache.set(obj, newObj);
return newObj;
}
}),
/* --- node_modules/@suchipi/jsxdom/dist/jsxdom.umd.js --- */
"node_modules/@suchipi/jsxdom/dist/jsxdom.umd.js": (function (exports, _kame_require_, module, __filename, __dirname, _kame_dynamic_import_) {
(function (e, l) {
typeof exports == "object" && typeof module != "undefined" ? l(exports) : typeof define == "function" && define.amd ? define(["exports"], l) : (e = typeof globalThis != "undefined" ? globalThis : e || self, l(e.JSXDOM = {}));
})(this, function (e) {
"use strict";
var h = Object.getOwnPropertySymbols;
var g = Object.prototype.hasOwnProperty,
E = Object.prototype.propertyIsEnumerable;
var p = (e, l) => {
var f = {};
for (var n in e) g.call(e, n) && l.indexOf(n) < 0 && (f[n] = e[n]);
if (e != null && h) for (var n of h(e)) l.indexOf(n) < 0 && E.call(e, n) && (f[n] = e[n]);
return f;
};
const l = Symbol("REF"),
f = (...t) => ({
[l]: !0,
current: t.length > 0 ? t[0] : null
}),
n = (t, c) => {
if (typeof t != "string") return document.createDocumentFragment();
const F = c,
{
style: u,
ref: o,
namespaceURI: r,
children: s,
tagName: d
} = F,
a = p(F, ["style", "ref", "namespaceURI", "children", "tagName"]);
let i;
return r ? i = document.createElementNS(r, t) : i = document.createElement(t), u != null && Object.assign(i.style, u), o != null && (typeof o == "function" ? o(i) : o.current = i), Object.assign(i, a), i;
};
let m = n;
const N = t => {
m = t;
},
y = (t, ...c) => {
let u = null,
o = null;
typeof c[0] == "object" && c[0] != null ? c[0] instanceof Node ? o = c : (u = c[0], o = c.slice(1)) : o = c, o = o.flat(1 / 0);
const r = u || {};
if (r.children = o, t === DocumentFragment || typeof t == "string") {
const s = m(t, r);
for (const d of o) if (d != null) if (typeof d == "object") s.appendChild(d);else {
const a = document.createTextNode(String(d));
s.appendChild(a);
}
return s;
} else return t(r);
},
b = y,
j = DocumentFragment;
e.Fragment = j, e.createElement = b, e.defaultNodeFactory = n, e.jsx = y, e.ref = f, e.setNodeFactory = N, Object.defineProperties(e, {
__esModule: {
value: !0
},
[Symbol.toStringTag]: {
value: "Module"
}
});
});
})
/* --- end of modules --- */};
var __kame__ = {
basedir: typeof __dirname === 'string' ? __dirname : "",
cache: {},
runModule: function runModule(name, isMain) {
var exports = {};
var module = {
id: name,
exports: exports,
};
__kame__.cache[name] = module;
var _kame_require_ = function require(id) {
if (__kame__.cache[id]) {
return __kame__.cache[id].exports;
} else {
__kame__.runModule(id, false);
return __kame__.cache[id].exports;
}
};
_kame_require_.cache = __kame__.cache;
if (isMain) {
_kame_require_.main = module;
}
var __filename = __kame__.basedir + "/" + name;
var __dirname = __kame__.basedir + "/" + name.split("/").slice(0, -1).join("/");
__kame__.modules[name](exports, _kame_require_, module, __filename, __dirname );
return module.exports;
},
modules: modules,
};
return __kame__.runModule("src/pet-preview.tsx", true);
}
if (typeof exports === 'object' && typeof module !== 'undefined') {
module.exports = factory();
} else if (typeof define === 'function' && define.amd) {
define([], factory);
} else {
factory()
}
})(
typeof global !== "undefined" ? global :
typeof window !== "undefined" ? window :
typeof self !== "undefined" ? self :
typeof this === "object" ? this :
new Function("return this")()
);