old-twitter-image-search/dist/otis.user.js

33 lines
51 KiB
JavaScript

// ==UserScript==
// @name Old Twitter Image Search
// @namespace vite-plugin-monkey
// @version 1.1.5
// @author SoberOatmeal
// @description otis
// @license MIT
// @match https://twitter.com/*
// @connect donmai.us
// @connect saucenao.com
// @connect twimg.com
// @connect api.twitter.com
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.xmlHttpRequest
// @grant GM_addStyle
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// @inject-into page
// @run-at document-start
// ==/UserScript==
(t=>{if(typeof GM_addStyle=="function"){GM_addStyle(t);return}const i=document.createElement("style");i.textContent=t,document.head.append(i)})(' .otis-icon{width:16px;vertical-align:middle;margin-right:20px;margin-left:6px;margin-bottom:4px}.otis-icon:hover{opacity:.8}.otis-icon-loading{opacity:.6!important;animation-name:icon-spin;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:linear}.otis-icon-noresult{opacity:.3!important}.otis-danbo-icon{width:18px;vertical-align:middle;margin-bottom:2px}.danbo-text-link{color:var(--light-gray);font-weight:700;font-size:12px}.danbo-more-results{margin-left:250px}.danbo-item>img,.danbo-item>div{vertical-align:middle;display:inline-block}.danbo-item>div{margin-left:10px}.danbo-artist-name{font-size:13px;bottom:3px;position:relative;font-weight:700;display:inline-block;cursor:pointer}.danbo-artist-name>a{color:var(--light-gray)}.danbo-artist-banned{color:#f91880!important;text-decoration:line-through}.danbo-artist-name>img:hover{opacity:.8}.danbo-artist-name-tweetpage{display:block;width:fit-content;bottom:unset}.tweet-time:after{color:var(--light-gray)!important;content:"\xB7";margin:0 3px}@keyframes icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}} ');
(function () {
'use strict';
const ye=(e,A)=>e===A,Te=Symbol("solid-track"),E={equals:ye};let xe=ue;const Y=1,k=2,re={owned:null,cleanups:null,context:null,owner:null};var b=null;let Q=null,m=null,z=null,X=null,F=0;function B(e,A){const t=m,n=b,s=e.length===0,o=A===void 0?n:A,l=s?re:{owned:null,cleanups:null,context:o?o.context:null,owner:o},i=s?e:()=>e(()=>U(()=>C(l)));b=l,m=null;try{return W(i,!0)}finally{m=t,b=n;}}function L(e,A){A=A?Object.assign({},E,A):E;const t={value:e,observers:null,observerSlots:null,comparator:A.equals||void 0},n=s=>(typeof s=="function"&&(s=s(t.value)),ae(t,s));return [le.bind(t),n]}function N(e,A,t){const n=fe(e,A,!1,Y);G(n);}function _(e,A,t){t=t?Object.assign({},E,t):E;const n=fe(e,A,!0,0);return n.observers=null,n.observerSlots=null,n.comparator=t.equals||void 0,G(n),le.bind(n)}function U(e){if(m===null)return e();const A=m;m=null;try{return e()}finally{m=A;}}function oe(e){return b===null||(b.cleanups===null?b.cleanups=[e]:b.cleanups.push(e)),e}function le(){if(this.sources&&this.state)if(this.state===Y)G(this);else {const e=z;z=null,W(()=>Z(this),!1),z=e;}if(m){const e=this.observers?this.observers.length:0;m.sources?(m.sources.push(this),m.sourceSlots.push(e)):(m.sources=[this],m.sourceSlots=[e]),this.observers?(this.observers.push(m),this.observerSlots.push(m.sources.length-1)):(this.observers=[m],this.observerSlots=[m.sources.length-1]);}return this.value}function ae(e,A,t){let n=e.value;return (!e.comparator||!e.comparator(n,A))&&(e.value=A,e.observers&&e.observers.length&&W(()=>{for(let s=0;s<e.observers.length;s+=1){const o=e.observers[s],l=Q&&Q.running;l&&Q.disposed.has(o),(l?!o.tState:!o.state)&&(o.pure?z.push(o):X.push(o),o.observers&&ve(o)),l||(o.state=Y);}if(z.length>1e6)throw z=[],new Error},!1)),A}function G(e){if(!e.fn)return;C(e);const A=F;Ve(e,e.value,A);}function Ve(e,A,t){let n;const s=b,o=m;m=b=e;try{n=e.fn(A);}catch(l){return e.pure&&(e.state=Y,e.owned&&e.owned.forEach(C),e.owned=null),e.updatedAt=t+1,de(l)}finally{m=o,b=s;}(!e.updatedAt||e.updatedAt<=t)&&(e.updatedAt!=null&&"observers"in e?ae(e,n):e.value=n,e.updatedAt=t);}function fe(e,A,t,n=Y,s){const o={fn:e,state:n,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:A,owner:b,context:b?b.context:null,pure:t};return b===null||b!==re&&(b.owned?b.owned.push(o):b.owned=[o]),o}function ce(e){if(e.state===0)return;if(e.state===k)return Z(e);if(e.suspense&&U(e.suspense.inFallback))return e.suspense.effects.push(e);const A=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<F);)e.state&&A.push(e);for(let t=A.length-1;t>=0;t--)if(e=A[t],e.state===Y)G(e);else if(e.state===k){const n=z;z=null,W(()=>Z(e,A[0]),!1),z=n;}}function W(e,A){if(z)return e();let t=!1;A||(z=[]),X?t=!0:X=[],F++;try{const n=e();return Se(t),n}catch(n){t||(X=null),z=null,de(n);}}function Se(e){if(z&&(ue(z),z=null),e)return;const A=X;X=null,A.length&&W(()=>xe(A),!1);}function ue(e){for(let A=0;A<e.length;A++)ce(e[A]);}function Z(e,A){e.state=0;for(let t=0;t<e.sources.length;t+=1){const n=e.sources[t];if(n.sources){const s=n.state;s===Y?n!==A&&(!n.updatedAt||n.updatedAt<F)&&ce(n):s===k&&Z(n,A);}}}function ve(e){for(let A=0;A<e.observers.length;A+=1){const t=e.observers[A];t.state||(t.state=k,t.pure?z.push(t):X.push(t),t.observers&&ve(t));}}function C(e){let A;if(e.sources)for(;e.sources.length;){const t=e.sources.pop(),n=e.sourceSlots.pop(),s=t.observers;if(s&&s.length){const o=s.pop(),l=t.observerSlots.pop();n<s.length&&(o.sourceSlots[l]=n,s[n]=o,t.observerSlots[n]=l);}}if(e.owned){for(A=e.owned.length-1;A>=0;A--)C(e.owned[A]);e.owned=null;}if(e.cleanups){for(A=e.cleanups.length-1;A>=0;A--)e.cleanups[A]();e.cleanups=null;}e.state=0;}function Ne(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function de(e,A=b){throw Ne(e)}const je=Symbol("fallback");function ne(e){for(let A=0;A<e.length;A++)e[A]();}function Le(e,A,t={}){let n=[],s=[],o=[],l=0,i=A.length>1?[]:null;return oe(()=>ne(o)),()=>{let f=e()||[],a,r;return f[Te],U(()=>{let d=f.length,u,v,P,V,x,p,g,y,w;if(d===0)l!==0&&(ne(o),o=[],n=[],s=[],l=0,i&&(i=[])),t.fallback&&(n=[je],s[0]=B(O=>(o[0]=O,t.fallback())),l=1);else if(l===0){for(s=new Array(d),r=0;r<d;r++)n[r]=f[r],s[r]=B(c);l=d;}else {for(P=new Array(d),V=new Array(d),i&&(x=new Array(d)),p=0,g=Math.min(l,d);p<g&&n[p]===f[p];p++);for(g=l-1,y=d-1;g>=p&&y>=p&&n[g]===f[y];g--,y--)P[y]=s[g],V[y]=o[g],i&&(x[y]=i[g]);for(u=new Map,v=new Array(y+1),r=y;r>=p;r--)w=f[r],a=u.get(w),v[r]=a===void 0?-1:a,u.set(w,r);for(a=p;a<=g;a++)w=n[a],r=u.get(w),r!==void 0&&r!==-1?(P[r]=s[a],V[r]=o[a],i&&(x[r]=i[a]),r=v[r],u.set(w,r)):o[a]();for(r=p;r<d;r++)r in P?(s[r]=P[r],o[r]=V[r],i&&(i[r]=x[r],i[r](r))):s[r]=B(c);s=s.slice(0,l=d),n=f.slice(0);}return s});function c(d){if(o[r]=d,i){const[u,v]=L(r);return i[r]=v,A(f[r],u)}return A(f[r])}}}function T(e,A){return U(()=>e(A||{}))}const Xe=e=>`Stale read from <${e}>.`;function Pe(e){const A="fallback"in e&&{fallback:()=>e.fallback};return _(Le(()=>e.each,e.children,A||void 0))}function me(e){const A=e.keyed,t=_(()=>e.when,void 0,{equals:(n,s)=>A?n===s:!n==!s});return _(()=>{const n=t();if(n){const s=e.children;return typeof s=="function"&&s.length>0?U(()=>s(A?n:()=>{if(!U(t))throw Xe("Show");return e.when})):s}return e.fallback},void 0,void 0)}function De(e,A,t){let n=t.length,s=A.length,o=n,l=0,i=0,f=A[s-1].nextSibling,a=null;for(;l<s||i<o;){if(A[l]===t[i]){l++,i++;continue}for(;A[s-1]===t[o-1];)s--,o--;if(s===l){const r=o<n?i?t[i-1].nextSibling:t[o-i]:f;for(;i<o;)e.insertBefore(t[i++],r);}else if(o===i)for(;l<s;)(!a||!a.has(A[l]))&&A[l].remove(),l++;else if(A[l]===t[o-1]&&t[i]===A[s-1]){const r=A[--s].nextSibling;e.insertBefore(t[i++],A[l++].nextSibling),e.insertBefore(t[--o],r),A[s]=t[o];}else {if(!a){a=new Map;let c=i;for(;c<o;)a.set(t[c],c++);}const r=a.get(A[l]);if(r!=null)if(i<r&&r<o){let c=l,d=1,u;for(;++c<s&&c<o&&!((u=a.get(A[c]))==null||u!==r+d);)d++;if(d>r-i){const v=A[l];for(;i<r;)e.insertBefore(t[i++],v);}else e.replaceChild(t[i++],A[l++]);}else l++;else A[l++].remove();}}}const se="_$DX_DELEGATE";function h(e,A,t){let n;const s=()=>{const l=document.createElement("template");return l.innerHTML=e,t?l.content.firstChild.firstChild:l.content.firstChild},o=A?()=>U(()=>document.importNode(n||(n=s()),!0)):()=>(n||(n=s())).cloneNode(!0);return o.cloneNode=o,o}function J(e,A=window.document){const t=A[se]||(A[se]=new Set);for(let n=0,s=e.length;n<s;n++){const o=e[n];t.has(o)||(t.add(o),A.addEventListener(o,Ye));}}function j(e,A,t){t==null?e.removeAttribute(A):e.setAttribute(A,t);}function q(e,A,t,n){if(n)Array.isArray(t)?(e[`$$${A}`]=t[0],e[`$$${A}Data`]=t[1]):e[`$$${A}`]=t;else if(Array.isArray(t)){const s=t[0];e.addEventListener(A,t[0]=o=>s.call(e,t[1],o));}else e.addEventListener(A,t);}function ee(e,A,t){return U(()=>e(A,t))}function S(e,A,t,n){if(t!==void 0&&!n&&(n=[]),typeof A!="function")return I(e,A,n,t);N(s=>I(e,A(),s,t),n);}function Ye(e){const A=`$$${e.type}`;let t=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==t&&Object.defineProperty(e,"target",{configurable:!0,value:t}),Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}});t;){const n=t[A];if(n&&!t.disabled){const s=t[`${A}Data`];if(s!==void 0?n.call(t,s,e):n.call(t,e),e.cancelBubble)return}t=t._$host||t.parentNode||t.host;}}function I(e,A,t,n,s){for(;typeof t=="function";)t=t();if(A===t)return t;const o=typeof A,l=n!==void 0;if(e=l&&t[0]&&t[0].parentNode||e,o==="string"||o==="number")if(o==="number"&&(A=A.toString()),l){let i=t[0];i&&i.nodeType===3?i.data!==A&&(i.data=A):i=document.createTextNode(A),t=R(e,t,n,i);}else t!==""&&typeof t=="string"?t=e.firstChild.data=A:t=e.textContent=A;else if(A==null||o==="boolean")t=R(e,t,n);else {if(o==="function")return N(()=>{let i=A();for(;typeof i=="function";)i=i();t=I(e,i,t,n);}),()=>t;if(Array.isArray(A)){const i=[],f=t&&Array.isArray(t);if($(i,A,t,s))return N(()=>t=I(e,i,t,n,!0)),()=>t;if(i.length===0){if(t=R(e,t,n),l)return t}else f?t.length===0?ie(e,i,n):De(e,t,i):(t&&R(e),ie(e,i));t=i;}else if(A.nodeType){if(Array.isArray(t)){if(l)return t=R(e,t,n,A);R(e,t,null,A);}else t==null||t===""||!e.firstChild?e.appendChild(A):e.replaceChild(A,e.firstChild);t=A;}}return t}function $(e,A,t,n){let s=!1;for(let o=0,l=A.length;o<l;o++){let i=A[o],f=t&&t[o],a;if(!(i==null||i===!0||i===!1))if((a=typeof i)=="object"&&i.nodeType)e.push(i);else if(Array.isArray(i))s=$(e,i,f)||s;else if(a==="function")if(n){for(;typeof i=="function";)i=i();s=$(e,Array.isArray(i)?i:[i],Array.isArray(f)?f:[f])||s;}else e.push(i),s=!0;else {const r=String(i);f&&f.nodeType===3&&f.data===r?e.push(f):e.push(document.createTextNode(r));}}return s}function ie(e,A,t=null){for(let n=0,s=A.length;n<s;n++)e.insertBefore(A[n],t);}function R(e,A,t,n){if(t===void 0)return e.textContent="";const s=n||document.createTextNode("");if(A.length){let o=!1;for(let l=A.length-1;l>=0;l--){const i=A[l];if(s!==i){const f=i.parentNode===e;!o&&!l?f?e.replaceChild(s,i):e.insertBefore(s,t):f&&i.remove();}else o=!0;}}else e.insertBefore(s,t);return [s]}var Oe=(()=>typeof GM_addStyle<"u"?GM_addStyle:void 0)(),be=(()=>typeof GM_getValue<"u"?GM_getValue:void 0)(),Re=(()=>typeof GM_setValue<"u"?GM_setValue:void 0)(),K=(()=>typeof GM_xmlhttpRequest<"u"?GM_xmlhttpRequest:void 0)(),He=h("<hr>"),We=h("<h1>Old Twitter Image Search Settings"),H=h("<br>"),Me=h("<span> Userscript made by SoberOatmeal "),Ee=h("<span> SauceNAO API Key "),ke=h("<span>Can be acquired by signing up to SauceNAO then go to <b>Account > api </b> and then grab the generated api key."),Ze=h('<div class=setting><input type=text placeholder="Put SauceNAO API key here">');function Ie(){const A=document.getElementById("settings").getElementsByTagName("hr").item(0),t=()=>{const[n,s]=L(be("DunkOatmeal_SNKey",""));return [He(),We(),H(),Me(),H(),H(),Ee(),H(),ke(),(()=>{var o=Ze(),l=o.firstChild;return l.$$input=i=>Re("DunkOatmeal_SNKey",i.target.value),l.style.setProperty("height","25px"),l.style.setProperty("width","550px"),N(()=>l.value=n()),o})(),H()]};A.before(...T(t,{}));}J(["input"]);const D="https://danbooru.donmai.us";async function Fe(e,A){const t=`${D}/posts.json`,n=`https://twitter.com/${A}/status/${e}`,s=new URL(t);s.searchParams.append("tags",`status:any source:${n}`),s.searchParams.append("limit","5");const l=await new Promise((a,r)=>{K({url:s.toString(),method:"GET",responseType:"json",anonymous:!0,onload:c=>a(c.responseText),onerror:c=>r(c)});});return JSON.parse(l).map(a=>{var d;const r=(d=a.media_asset.variants)==null?void 0:d.find(u=>u.type=="preview"||u.type=="180x180"),c=new URL(a.source).hostname;return {id:a.id,timestamp:a.created_at,source_domain:c,thumbnail:r==null?void 0:r.url,img_width:a.image_width,img_height:a.image_height}})}async function Ge(e){const A=`${D}/iqdb_queries.json`,t=new URL(A);t.searchParams.append("url",e),t.searchParams.append("similarity","80"),t.searchParams.append("limit","5");const s=await new Promise((i,f)=>{K({url:t.toString(),method:"GET",responseType:"json",anonymous:!0,onload:a=>i(a.responseText),onerror:a=>f(a)});});return JSON.parse(s).map(i=>{var c;const f=i.post,a=(c=f.media_asset.variants)==null?void 0:c.find(d=>d.type=="preview"||d.type=="180x180"),r=new URL(f.source).hostname;return {id:f.id,timestamp:f.created_at,source_domain:r,thumbnail:a==null?void 0:a.url,img_width:f.image_width,img_height:f.image_height}})}async function Ce(e){const A=be("DunkOatmeal_SNKey","");if(!A)return alert(`SauceNAO API required.
Go to Profile Menu > Settings to add it.`),[];const n=512,s=80,o="http://saucenao.com/search.php",l=new URL(o);l.searchParams.append("numres","5"),l.searchParams.append("output_type","2"),l.searchParams.append("dbmask",String(n)),l.searchParams.append("api_key",A),l.searchParams.append("url",e);const f=await new Promise((c,d)=>{K({url:l.toString(),method:"GET",responseType:"json",anonymous:!0,onload:u=>c(u.responseText),onerror:u=>d(u)});});return JSON.parse(f).results.filter(c=>Number(c.header.similarity)>=s).map(c=>{const d=c.data,u=c.header.thumbnail,v=new URL(d.source).hostname;return {id:d.danbooru_id,timestamp:"",source_domain:v,thumbnail:u,img_width:-1,img_height:-1}})}async function Je(e){const A=`${D}/artists.json`,t=`https://twitter.com/${e}`,n=new URL(A);n.searchParams.append("search[url_matches]",t),n.searchParams.append("only","id,name,urls,is_banned");const o=await new Promise((f,a)=>{K({url:n.toString(),method:"GET",responseType:"json",anonymous:!0,onload:r=>f(r.responseText),onerror:r=>a(r)});});let i=JSON.parse(o).shift();return i&&(i.urls=i.urls.filter(f=>f.is_active&&!(f.url.includes("twitter.com/intent/")||f.url.includes("pixiv.net/stacc/")))),i}const qe="data:image/x-icon;base64,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NP+Nnaz/zeT+/8zj/f/K4P7/xdv9/7/U/P+ow/r/haj4/3uh9v99o/f/nrz6/77T9f9iW7X/enDs/4yI8P+YmfP/lpfy/4OUzv/J4f3/oLPL/7zT8v+AmcH/eJ3e/4my+f+Ls/n/i7T6/463+v87RU//REtd/05Sav84Y4n/R6X4/0Wl+P88g8L/MjtI/zI7SP81PUz/TVFu/3R8sf9fZY7/T1h5/zM4SP85SF7/O0hd/5G5+v+Tu/r/e4ud/42drv/N4/3/zeP9/8zi/f/I3/3/xNr8/77S/P+cufn/f6T3/3yi9/9/pPf/sMn7/8PZ/P+CjLP/dmzh/21j0v9lYbb/g4y5/8bb9v/M4v7/kqS6/3qZzP+LtPn/irP6/32i4v+Mtfr/jrb6/422+P9ASVb/U1dw/zg/S/8/e7D/Sab5/0el+P89hMH/MzxJ/zM8Sv9KT2n/XmSK/2dtmf9KUGv/TVV1/zI+VP8tNUL/bou6/5G5+v9zjbX/KjI7/7rQ7P/O4/7/zeT+/8zi/v/I3v7/w9j8/77S/P+xyPv/lLP4/5e1+f+sxPr/n7nk/8HX/P/F3Pv/nrHH/7HH3v/J4vz/yuP9/8vi/v/L4v7/h5/B/4+4+f+KtPr/eaDf/2SBtP+Otvr/j7f6/4Kq3/9TWHH/REpa/0hPY/9Ch8P/Sqb5/0mm+f8/hsX/ND1K/0RLYP9RVXL/Vlx8/05Sbv9bYYb/OkRZ/zE4Rv9RXnn/kLj6/3GPvv8tNUP/UF94/7XO8P/O4/7/zeP+/8zi/v/I3f3/wtj8/77T/P+5zvz/tcv7/7XL+/+wxvT/pLzn/8DV/P/E2v3/x9/+/8ri/v/K4/3/yuP9/8rj/f/K4/3/hZq1/5S7+v92m9f/LDpP/4Ot8f+Nt/r/hq/r/5S67v9YXHb/Vlp1/0dOYP9Dicf/S6f4/0un+P9Dj9L/OkJQ/1JWc/9NUmz/REpf/1FVcv9QV3T/O0hb/z1EV/+HqeP/aISx/y43RP87QVb/f5zK/3N/jf/O4/7/zuP+/8zi/v/J3v7/xNr8/8DV/P+70Pz/uM37/7jM+/+5zfv/ssr7/7DK+/+70/z/xdv8/8ff/v/L4f7/yuL+/8rj/f/L5P3/ZV1b/3KFn/8kLT//YH6u/4i0+/95ntv/kbjr/1Numf9bX3v/U1hw/0tSZv9Dhr//S6j3/0un+P9Ppu3/SExh/09Ubv87Q1P/UFVw/09UcP9FUGf/REhe/2iHvP9VbJL/LjdD/0BGXf9VY4L/YnSL/3F8jv/P5P7/zuP+/83j/v/K4P3/xt39/8PZ/P+/1Pz/u9H8/7rQ+/+60Pv/kbP5/4Wr+P+Zufn/wtj8/8Xc/f/H3/3/yuD+/8zj/v+/0+n/Pzk6/ycvQv9LXYL/gqrr/0Zcfv95ndf/aYi6/yYuQv9aXnn/U1lw/0RMW/9DfrH/Tan4/0uo9/9eu/v/QlJr/zpDUf9LUGj/U1d0/0tQaf9NUWv/UWOH/0BQaP8yO0j/Q0lg/0tQaf9VYnP/OT9S/6W2yv/P5f7/z+X+/83k/v/M4v7/yd/9/8bd/f/D2fz/wtT0/4eVrv99jKf/tMz6/5+++v+zzPv/wtj8/8Ta/f/G3f3/yN/+/9nq/v+Uoa//MThR/zM7U/9HXX7/KTJG/2SDtP9zls//JjBE/0JQcf9aX3n/VVpz/z5HVP9Fcpz/Tan4/06q+P9vzP3/PWGC/0hPY/9VWXb/VFh1/05Sa/9DUGj/P05j/zU8Sf9TWXj/TlJu/zA2Qv84QFD/XmZ6/8/l/v/P5f7/z+X+/8/l/v/N5P7/zOL9/83h+v+IkqD/JFFw/xmEv/87kL3/Q2F8/7LG5//C2Pz/w9n9/8Xb/f/G3f3/0eT+/+71/v9eaXn/JS8//ygwQv82PVj/aoi7/3me2f8pNEj/MjdS/2mJvf9dYnz/TFNl/1BXbP9UbYv/T6n4/1Sw+f920/7/TYSw/1dceP9WWnf/S1Bm/zQ7Rf88RFP/WmSG/2xyn/9XXHz/NjtK/zhAUP9MUGn/ssTZ/8/l/v/P5f7/z+X+/8/l/v/F2vH/h4aK/0hKUv8UIzb/E0Rn/x9IXP81iKP/OrXh/yVJYv+ru9X/0Njj/8bc+//N4f3/5Ov2/9DZ5P8rMkL/MTlP/yUrO/8tO0//JzNF/xoiLv82O1b/Iic3/xUbJf9eYn3/VFpv/11hfP9UWnH/V6/x/2zI/P930/7/YbLg/1JWbv9PVWz/TVNp/1NYcv9XW3r/foa8/4GJwv9FTGH/PURV/05Tbv+Fkab/xt/9/6vJ9v+myPz/zeP+/8/l/v9icIH/LzAz/5eaoP86QEn/FBoi/xMYIf8SGSP/isjg/0qby/9WY2//5Ojy/+Lm6v/s8/7/s7i+/1Vc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c/9YdIj/es71/3bO/f9sw/v/c8Tq/1lxiP9dYXv/XWF8/1VZcf9LUGL/UVhu/213nv9/h7j/VFhy/0RKWv9XX3z/YWmM/1VZdv8+RFP/PURU/0xRa/9MUWr/TlFs/zY8Sv87QlT/P0JW/z9Scf86erX/OYnP/zqM0/84hMj/M2uf/ztNaf9UYIP/WGWL/1dojf9keqL/dImp/2+NqP9pbYb/aGyF/2drhP9na4T/ZmqD/2Vpgv9laYL/ZGiB/2Rogf9jZ4D/X3OK/3bE6P950f3/Z7/7/3HJ+v9jmLT/VWF3/1pfeP9cYHz/W197/1ldef9eY4H/hIu//3yEtP9hZoj/TVFm/0lOYf9SV3H/VFh1/1RYdP9KTmb/QEVY/0NJX/82U3L/PH+8/0Oi9v9Co/f/QaP3/0Gj+P8/nvL/NoDB/2CHt/+Pt/b/iK3p/2+WzP9ak8n/O4G+/5240/9kaH3/am6H/2lthv9maoL/Z2uE/2drhP9maoP/ZWmC/2Rogf9gZHv/WV5x/1Jaav9ZhJ7/VZPB/0yEtv9NfaT/RWiJ/0BIUv9RVGf/ZmyN/3h+qv+Di77/c3mi/2hukv9pbpP/bXOa/3F3of9fZIX/Vlp2/1VZdv9MUmv/PFBq/zZtm/87gb3/PYjJ/zyIy/89is//OoXH/zyS2/83gL//OIXI/z2Q1v86icz/OpDc/z6g9/8/l+H/nbXO/87j/v90cHz/am6H/2puh/9hZ3z/aGyF/2drhP9na4T/ZmqD/2Vpgv9laIL/Y2eA/15jef9YXnH/U1pr/1FYaf9PVmf/UFZo/1JYbP9VWnD/UlVp/1VZcP9dYn7/aG6R/3F3oP98hLP/fIOy/2Noiv9OU2v/SV9//0t/q/9QpOX/U7D6/1Ot8v9Jmdn/P4rL/0OPzf9Kls3/SZbO/zh8t/9IqPX/UJ/Q/2PE/P9fw/z/Urb7/2DD/f9yobv/zuP+/87j/v+Yion/a2+I/2puh/9hZnr/ZmqC/2hshf9obIX/Z2uE/2drhP9maoP/ZWmC/2Rogf9kaIH/Y2eA/2Jmf/9hZYH/YWV//2Bkfv9fY37/XmJ+/1tfeP9RVGj/SExb/0tRY/9DSVf/OEBL/0Ruiv9JeJP/R36l/1ykzP9rveT/dNH9/3HP/v9pyPz/bs79/3DR/f9w0f7/ZMT8/0Sk+P9Lk8H/ZrPV/2q+5f9ryvj/asz6/12r0P+lv97/uNX8/8Pc/P/Suq//aGyC/2tviP9nbIP/XGNz/2puh/9pbYb/aGyF/2drhP9na4T/ZmqD/2Vpgv9kaIH/Y2eA/1xfdP9XWm7/Vlls/1JWZ/9MUV//RkxY/0RLVv9MWGr/XmyI/11og/9QV2z/Vlt1/0Z2o/9Mn+f/PnGd/0SIxP9HmN7/R5DL/1Cazf9Xos//Yq7U/5TY9v+l4v3/a8f8/0CLzP8zRVX/MjpG/zpAUv8/Q1j/Qkhf/0ZVbP9uh6z/j6nO/56/8P/Pysf/h4eS/2xwiP9rb4j/V19t/2lthf9qbof/aW2G/2hshf9na4T/Z2uE/2Zqg/9laYL/ZWmC/2Rogf9kaIH/YWV9/2Jmf/9iZYD/YWV//2Bkff9fY37/YGSB/2twk/9tc5j/Vl52/0dTZf9HhLv/T6f3/0SJxP9AeKn/Q4jD/0mh7f9Lp/j/S6X1/0eR0/9bnM7/UZrJ/z5mjf9ES2P/P0Za/zc/T/8wOEX/LDM9/0NRZ/9WaYj/bomw/42kx/+TlqH/0NHT/2tvhv9tcYn/X2Z3/15ldv9qbof/am6H/2puh/9ma4P/aGyF/2drhP9na4T/ZmqD/2Vpgv9kaIH/ZGiA/1xfdP9TVmb/S1Bd/0lPW/9HTVn/Q0pV/0FHUf9KVGP/X2uH/2l1mP9fZoT/SHCa/1u09f9WpNz/S42+/0KCuf9Disb/S6f4/0un+P9Lp/j/Sqb5/0im+f8/h8f/OEBP/0ZMYv9LT2n/SE1n/0lRa/9SW3v/OD5P/0NKWv9nbH3/5OXm/42Qmv9tcYr/aW6E/1NcZ/9obYT/a2+H/2puh/9kaX//X2V4/2hshf9na4T/Z2uE/2Zqg/9kaIH/XWF2/2NngP9kaIH/Y2eA/19je/9gZX//b3WY/4GItv95gKr/aG2O/1lddP9LT2D/PUJM/0dldP91z/n/d9P+/2Wx1f9Kh7P/QH6z/0qk8/9Lp/j/R5jf/0OIwP8/dqP/R01k/ztDU/8uNT7/YnaZ/4mXtf+Ej6j/f4uh/4mXrP9kaXX/m56p/+Dg4f9tcYb/bnKK/1xjcv9cY3L/bHCI/2tviP9qbof/WmBx/1ZaaP9maoP/aGyF/2drhP9qbon/aW6K/1xjd/9VXW7/WWF0/2VtiP9vdpf/Z22K/1VZbf9JTVv/QUZP/z5ETP8/Rk//QUhT/0hQYP9WeZD/d9P9/3fT/v920/3/Y6rN/0h3lP9Disj/RI3N/125+/83VXD/QEVW/09Tbv9JUmv/RFJm/5Oy4//I4P3/z+X+/87j/v+ztbj/cHeN/9fS0v+jlpb/b3OL/2puhP9VXmj/Zmt//2xwiP9rb4j/am6H/11jdf9PVV//Wl5v/2drg/9obIb/cXaV/3uBpv+BiLL/fYeu/2Vvif9TWmv/UVho/1BXZ/9PV2f/UVhp/1NZbP9YXXT/XWF8/11ifP9VWG//WYmg/3jT/v951P7/ktz+/4rY/f9Ro+L/V7P5/1GWw/8+Z43/P0VV/3CJsf9VXnn/YWqQ/z5JWv9+msb/vNj8/87j/v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",Ke="data:image/x-icon;base64,Qk02AwAAAAAAADYAAAAoAAAAEAAAABAAAAABABgAAAAAAAADAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////AAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAA////AAAA////////AAAAAAAAAAAAAAAAAAAAAAAA////////AAAA////AAAAAAAAAAAAAAAA////////////AAAAAAAAAAAAAAAA////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AAAAAAAA////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AAAAAAAA////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AAAAAAAAAAAAAAAA////////////AAAAAAAAAAAAAAAA////AAAA////////AAAAAAAAAAAAAAAAAAAAAAAA////////AAAA////AAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAA////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",Qe="data:image/png;base64,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",Be="data:image/png;base64,UklGRkgDAABXRUJQVlA4WAoAAAAQAAAAXwAAXwAAQUxQSC4AAAABDzD/ERECTSSp+RkEIAnrSEIAJFUqrkoV0f8JEOl92ramqAuR9x9xQYQotI0TVlA4IPQCAAAwGwCdASpgAGAAAAAAJYwDQFcD+k/jNt2fd/xA/IDkwu++840v/Jfyc/ru8Af1X7RuEB+gH8r9rDpAP6r/APU8/nfWAfpX6Dv+w/0fwj+gb+jH/R1jTy7/Sfwi/RT+Kfk4mzhm4gHswfQB/AK//0/0Tn+k6uj+ifgnyAHwAIn56AK4Ax4C8Nbq5KG6JLjN2dCB0Cot5bIh0jB3mKg8kvOCrgVqWcXENUemgUKGhZOoChhuwKLDmT7JlieTrTsuQMWHg6B/dTygFoUUC6XJl4V5/IDLWcYcGB+fm5TBzQkXsnEAAP7/3t0Uf+HR//pd6v9U91+l/9HrPPdc3//OZoyGl2sChOzeKf//5wX6DVMWAanet5+MwFJaYpt/RRcjyP/3/0u9X/FaH+o5v2s98GQzdFhTjdoryChWWGMOC4/xD/X7vyb/6gyqLL3/6+BsJ8ehd8U/XB3DFl8RwTxpDSqzDIuPz+FZ1Xxyy/MwzLb9i+JRJNKUYM7xHyYlD+pnP2pZ9Et02TVVNaytC7Zf6lIzT/92e/93ZjDzY2HXLG83xZOxxmaJCZ5MFk1H/sXMBHecqL/jBpxDOMMLv1hmL4VsnBs6S8jgcdvKyl67v62fcarL2dAZD9A3/a5m41SpuVOrsxrhKXyGfkSd07RIOsKz+Pn19/3oIow6YbHgYXZWrXA6ke5ZROMD308wNO9oNwLdxxiBfGE30Ixfb3lxoeagTdGF2DMxpilpEjNWVqc103bGQgB02y6c1bzRFyROks+wde2zZSWG+9mRuwihJO2JXp/FuoA3ERDhqTeg9xm+y+iPM59Kmzoqw7LJ0D2CuXa9/1RnY/JN//8DlLO6YfJjj4j+aX3M//EyEYXIMn02hq2rcV7c93Y0DdS6go32KbGZroTe0X/6WnwfnOXiIWvPbIlcsoeIMeOxAyrE13hFvDNqctyEKjAR9kBgOmB2CrID/0tZohex6Ilc1SsqLhRh1v6fxNufEBtNLt6Vf/vlCAAAAAA=";var _e=h('<img class=otis-icon title="Tweet Search">'),$e=h('<img class=otis-icon title="Danbooru IQDB Search">'),eA=h('<img class=otis-icon title="SauceNAO Search">'),AA=h("<img class=otis-danbo-icon>");const tA=({onClick:e})=>(()=>{var A=_e();return q(A,"click",e,!0),j(A,"src",Qe),A.style.setProperty("width","20px"),A.style.setProperty("margin-bottom","2px"),A})(),nA=({onClick:e})=>(()=>{var A=$e();return q(A,"click",e,!0),j(A,"src",qe),A})(),sA=({onClick:e})=>(()=>{var A=eA();return q(A,"click",e,!0),j(A,"src",Ke),A.style.setProperty("margin-right","unset"),A})(),he=({onClick:e,title:A="",ref:t})=>(()=>{var n=AA(),s=t;return typeof s=="function"?ee(s,n):t=n,q(n,"click",e,!0),j(n,"src",Be),j(n,"title",A),n})();J(["click"]);function pe(e,A){const t=n=>{var s;return !e.contains(n.target)&&((s=A())==null?void 0:s())};document.body.addEventListener("click",t),oe(()=>document.body.removeEventListener("click",t));}const iA=e=>new Promise(A=>setTimeout(A,e));var rA=h("<a rel=noopener target=_blank class=danbo-text-link>"),oA=h("<span class=tweet-button>"),lA=h('<div class="dropdown-menu danbo-more-results">'),aA=h("<span class=danbo-item><img width=80px><div><div> #<!> </div><div> <!> </div><div> <!> ");const fA=pe;function cA({media_url:e,id:A,username:t}){const[n,s]=L(!1),[o,l]=L(!1);L(0);const[i,f]=L([]),a=async u=>{const v=u.target;v.classList.add("otis-icon-loading"),v.classList.remove("otis-icon-noresult");const P=await Fe(A,t);if(v.classList.remove("otis-icon-loading"),P.length==0){v.classList.add("otis-icon-noresult"),v.title="Can't find any post based on Tweet ID.";return}f(P),P.length===1?l(!0):s(!0);},r=async u=>{const v=u.target;v.classList.add("otis-icon-loading"),v.classList.remove("otis-icon-noresult");const P=await Ge(e[0]);if(v.classList.remove("otis-icon-loading"),P.length==0){v.classList.add("otis-icon-noresult"),v.title="No relevant image search results from IQDB";return}f(P),P.length===1?l(!0):s(!0);},c=async u=>{const v=u.target;v.classList.add("otis-icon-loading"),v.classList.remove("otis-icon-noresult");const P=await Ce(e[0]);if(v.classList.remove("otis-icon-loading"),P.length==0){v.classList.add("otis-icon-noresult"),v.title="No relevant image search results from IQDB";return}f(P),P.length===1?l(!0):s(!0);},d=()=>[T(he,{}),(()=>{var u=rA();return u.$$mouseover=()=>s(!0),S(u,()=>{var v;return `#${(v=i()[0])==null?void 0:v.id}`}),N(()=>{var v;return j(u,"href",`${D}/posts/${(v=i()[0])==null?void 0:v.id}`)}),u})()];return [(()=>{var u=oA();return S(u,T(me,{get when(){return !o()},get fallback(){return T(d,{})},get children(){return [T(tA,{onClick:a}),T(nA,{onClick:r}),T(sA,{onClick:c})]}})),u})(),(()=>{var u=lA();return ee(fA,u,()=>()=>s(!1)),S(u,T(Pe,{get each(){return i()},children:v=>(()=>{var P=aA(),V=P.firstChild,x=V.nextSibling,p=x.firstChild,g=p.firstChild,y=g.nextSibling;y.nextSibling;var w=p.nextSibling,O=w.firstChild,M=O.nextSibling;M.nextSibling;var Ae=w.nextSibling,ge=Ae.firstChild,te=ge.nextSibling;return te.nextSibling,P.$$click=()=>window.open(`${D}/posts/${v.id}`,"_blank"),S(p,()=>v.id,y),S(w,()=>v.source_domain,M),S(Ae,()=>v.img_width>=0?`${v.img_width} x ${v.img_height}`:"",te),N(()=>j(V,"src",v.thumbnail)),P})()})),N(()=>u.hidden=!n()),u})()]}J(["mouseover","click"]);const uA=`.otis-icon{width:16px;vertical-align:middle;margin-right:20px;margin-left:6px;margin-bottom:4px}.otis-icon:hover{opacity:.8}.otis-icon-loading{opacity:.6!important;animation-name:icon-spin;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:linear}.otis-icon-noresult{opacity:.3!important}.otis-danbo-icon{width:18px;vertical-align:middle;margin-bottom:2px}.danbo-text-link{color:var(--light-gray);font-weight:700;font-size:12px}.danbo-more-results{margin-left:250px}.danbo-item>img,.danbo-item>div{vertical-align:middle;display:inline-block}.danbo-item>div{margin-left:10px}.danbo-artist-name{font-size:13px;bottom:3px;position:relative;font-weight:700;display:inline-block;cursor:pointer}.danbo-artist-name>a{color:var(--light-gray)}.danbo-artist-banned{color:#f91880!important;text-decoration:line-through}.danbo-artist-name>img:hover{opacity:.8}.danbo-artist-name-tweetpage{display:block;width:fit-content;bottom:unset}.tweet-time:after{color:var(--light-gray)!important;content:"·";margin:0 3px}@keyframes icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
`;var vA=h("<a target=_blank>"),dA=h("<div class=dropdown-menu>"),PA=h('<span class="danbo-artist-name tweet-button">'),mA=h("<a target=_blank> <!> ");const bA=pe;function hA({username:e,user_id:A,is_tweet_page:t}){let n;const[s,o]=L(),[l,i]=L(!1),f=async a=>{const r=n;r.classList.add("otis-icon-loading"),r.classList.remove("otis-icon-noresult");const c=await Je(e);if(r.classList.remove("otis-icon-loading"),!c){r.classList.add("otis-icon-noresult"),r.title="No artist tag found on Danbooru";return}o(c),c.urls.length>=1&&i(!0);};return (()=>{var a=PA();return a.$$click=f,a.classList.toggle("danbo-artist-name-tweetpage",!!t),S(a,T(he,{ref(r){var c=n;typeof c=="function"?c(r):n=r;},title:"Perform manual artist search on Danbooru"}),null),S(a,T(me,{get when(){return s()},fallback:t?"Artist Search":"",get children(){return [(()=>{var r=vA();return r.$$mouseover=()=>i(!0),S(r,()=>s().name),N(c=>{var d=s().is_banned?`${D}/artists/${s().id}`:`${D}/posts?tags=${s().name}`,u=!!s().is_banned;return d!==c.e&&j(r,"href",c.e=d),u!==c.t&&r.classList.toggle("danbo-artist-banned",c.t=u),c},{e:void 0,t:void 0}),r})(),(()=>{var r=dA();return ee(bA,r,()=>()=>i(!1)),r.addEventListener("mouseleave",()=>i(!1)),S(r,T(Pe,{get each(){return s().urls},children:({url:c})=>(()=>{var d=mA(),u=d.firstChild,v=u.nextSibling;return v.nextSibling,j(d,"href",c),S(d,c,v),d})()})),N(()=>r.hidden=!l()),r})()]}}),null),a})()}async function pA(){if(document.URL.endsWith("/old/settings"))return Ie();const A=(o,l)=>{for(const i of o){if(i.type!=="childList")return;i.addedNodes.forEach(f=>{const a=f,r=a.getElementsByClassName("tweet-media").item(0);if(!r)return;const c=r.getElementsByTagName("img");if(!c||r.getElementsByTagName("video").length)return;const u=a.getElementsByClassName("tweet-interact").item(0),v=a.getElementsByClassName("tweet-avatar-link").item(0),P=u==null?void 0:u.getElementsByClassName("tweet-interact-more").item(0),V=a.getElementsByClassName("tweet-time").item(0),x=a.getElementsByClassName("tweet-body-main").item(0),p=a.dataset.tweetId||"0",g=v.href.split("/").pop()||"*";let y=[];for(const M of c)y.push(M.src);const w=()=>T(cA,{media_url:y,id:p,username:g}),O=()=>T(hA,{username:g,user_id:p,get is_tweet_page(){return !!x}});x?x==null||x.prepend(O()):V==null||V.after(O()),P==null||P.before(...w());});}},t=new MutationObserver(A),n=document.getElementById("timeline");if(!n)return;const s={subtree:!1,childList:!0,attributes:!1};t.observe(n,s);}const ze=async(e=0)=>e>=5?void 0:document.getElementById("center-cell")?(Oe(uA),pA()):(await iA(1e3),ze(e+=1));ze();J(["click","mouseover"]);
})();