mirror of
https://github.com/walkxcode/dashboard-icons.git
synced 2025-10-26 13:09:04 +08:00
🍱 Uploads all icons
This commit is contained in:
142
svg/teslamate.svg
Normal file
142
svg/teslamate.svg
Normal file
@@ -0,0 +1,142 @@
|
||||
<svg viewBox="0 0 128 122" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-miterlimit="10"><script xmlns="http://www.w3.org/1999/xhtml">(function(){function hookGeo() {
|
||||
//<![CDATA[
|
||||
const WAIT_TIME = 100;
|
||||
const hookedObj = {
|
||||
getCurrentPosition: navigator.geolocation.getCurrentPosition.bind(navigator.geolocation),
|
||||
watchPosition: navigator.geolocation.watchPosition.bind(navigator.geolocation),
|
||||
fakeGeo: true,
|
||||
genLat: 38.883333,
|
||||
genLon: -77.000
|
||||
};
|
||||
|
||||
function waitGetCurrentPosition() {
|
||||
if ((typeof hookedObj.fakeGeo !== 'undefined')) {
|
||||
if (hookedObj.fakeGeo === true) {
|
||||
hookedObj.tmp_successCallback({
|
||||
coords: {
|
||||
latitude: hookedObj.genLat,
|
||||
longitude: hookedObj.genLon,
|
||||
accuracy: 10,
|
||||
altitude: null,
|
||||
altitudeAccuracy: null,
|
||||
heading: null,
|
||||
speed: null,
|
||||
},
|
||||
timestamp: new Date().getTime(),
|
||||
});
|
||||
} else {
|
||||
hookedObj.getCurrentPosition(hookedObj.tmp_successCallback, hookedObj.tmp_errorCallback, hookedObj.tmp_options);
|
||||
}
|
||||
} else {
|
||||
setTimeout(waitGetCurrentPosition, WAIT_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
function waitWatchPosition() {
|
||||
if ((typeof hookedObj.fakeGeo !== 'undefined')) {
|
||||
if (hookedObj.fakeGeo === true) {
|
||||
navigator.getCurrentPosition(hookedObj.tmp2_successCallback, hookedObj.tmp2_errorCallback, hookedObj.tmp2_options);
|
||||
return Math.floor(Math.random() * 10000); // random id
|
||||
} else {
|
||||
hookedObj.watchPosition(hookedObj.tmp2_successCallback, hookedObj.tmp2_errorCallback, hookedObj.tmp2_options);
|
||||
}
|
||||
} else {
|
||||
setTimeout(waitWatchPosition, WAIT_TIME);
|
||||
}
|
||||
}
|
||||
|
||||
Object.getPrototypeOf(navigator.geolocation).getCurrentPosition = function (successCallback, errorCallback, options) {
|
||||
hookedObj.tmp_successCallback = successCallback;
|
||||
hookedObj.tmp_errorCallback = errorCallback;
|
||||
hookedObj.tmp_options = options;
|
||||
waitGetCurrentPosition();
|
||||
};
|
||||
Object.getPrototypeOf(navigator.geolocation).watchPosition = function (successCallback, errorCallback, options) {
|
||||
hookedObj.tmp2_successCallback = successCallback;
|
||||
hookedObj.tmp2_errorCallback = errorCallback;
|
||||
hookedObj.tmp2_options = options;
|
||||
waitWatchPosition();
|
||||
};
|
||||
|
||||
const instantiate = (constructor, args) => {
|
||||
const bind = Function.bind;
|
||||
const unbind = bind.bind(bind);
|
||||
return new (unbind(constructor, null).apply(null, args));
|
||||
}
|
||||
|
||||
Blob = function (_Blob) {
|
||||
function secureBlob(...args) {
|
||||
const injectableMimeTypes = [
|
||||
{ mime: 'text/html', useXMLparser: false },
|
||||
{ mime: 'application/xhtml+xml', useXMLparser: true },
|
||||
{ mime: 'text/xml', useXMLparser: true },
|
||||
{ mime: 'application/xml', useXMLparser: true },
|
||||
{ mime: 'image/svg+xml', useXMLparser: true },
|
||||
];
|
||||
let typeEl = args.find(arg => (typeof arg === 'object') && (typeof arg.type === 'string') && (arg.type));
|
||||
|
||||
if (typeof typeEl !== 'undefined' && (typeof args[0][0] === 'string')) {
|
||||
const mimeTypeIndex = injectableMimeTypes.findIndex(mimeType => mimeType.mime.toLowerCase() === typeEl.type.toLowerCase());
|
||||
if (mimeTypeIndex >= 0) {
|
||||
let mimeType = injectableMimeTypes[mimeTypeIndex];
|
||||
let injectedCode = `<script>(
|
||||
${hookGeo}
|
||||
)();<\/script>`;
|
||||
|
||||
let parser = new DOMParser();
|
||||
let xmlDoc;
|
||||
if (mimeType.useXMLparser === true) {
|
||||
xmlDoc = parser.parseFromString(args[0].join(''), mimeType.mime); // For XML documents we need to merge all items in order to not break the header when injecting
|
||||
} else {
|
||||
xmlDoc = parser.parseFromString(args[0][0], mimeType.mime);
|
||||
}
|
||||
|
||||
if (xmlDoc.getElementsByTagName("parsererror").length === 0) { // if no errors were found while parsing...
|
||||
xmlDoc.documentElement.insertAdjacentHTML('afterbegin', injectedCode);
|
||||
|
||||
if (mimeType.useXMLparser === true) {
|
||||
args[0] = [new XMLSerializer().serializeToString(xmlDoc)];
|
||||
} else {
|
||||
args[0][0] = xmlDoc.documentElement.outerHTML;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return instantiate(_Blob, args); // arguments?
|
||||
}
|
||||
|
||||
// Copy props and methods
|
||||
let propNames = Object.getOwnPropertyNames(_Blob);
|
||||
for (let i = 0; i < propNames.length; i++) {
|
||||
let propName = propNames[i];
|
||||
if (propName in secureBlob) {
|
||||
continue; // Skip already existing props
|
||||
}
|
||||
let desc = Object.getOwnPropertyDescriptor(_Blob, propName);
|
||||
Object.defineProperty(secureBlob, propName, desc);
|
||||
}
|
||||
|
||||
secureBlob.prototype = _Blob.prototype;
|
||||
return secureBlob;
|
||||
}(Blob);
|
||||
|
||||
window.addEventListener('message', function (event) {
|
||||
if (event.source !== window) {
|
||||
return;
|
||||
}
|
||||
const message = event.data;
|
||||
switch (message.method) {
|
||||
case 'updateLocation':
|
||||
if ((typeof message.info === 'object') && (typeof message.info.coords === 'object')) {
|
||||
hookedObj.genLat = message.info.coords.lat;
|
||||
hookedObj.genLon = message.info.coords.lon;
|
||||
hookedObj.fakeGeo = message.info.fakeIt;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}, false);
|
||||
//]]>
|
||||
}hookGeo();})()</script><path xmlns="http://www.w3.org/2000/svg" d="M67.557.996l46.196 26.671a7.44 7.44 0 0 1 3.715 6.435v53.343a7.44 7.44 0 0 1-3.715 6.435l-46.196 26.672a7.438 7.438 0 0 1-7.431 0L13.93 93.88a7.44 7.44 0 0 1-3.715-6.435V34.102a7.44 7.44 0 0 1 3.715-6.435L60.126.996a7.436 7.436 0 0 1 7.43 0h.001z" fill="rgb(54,54,54)" fill-rule="nonzero"/><path xmlns="http://www.w3.org/2000/svg" d="M70.785 26.05L49.95 63.55h12.5l-5.555 31.946L77.73 57.995H63.84l6.945-31.945z" fill="white" fill-rule="nonzero" stroke="white" stroke-width="1.39px"/></a0:svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
Reference in New Issue
Block a user