span { margin: 3px -2px 0 }' // align Scheme status + '#scheme-settings-entry > span > svg {' // v-align/left-pad Scheme status icon + 'position: relative ; top: 2px ; margin-left: 4px }' + ( config.fgAnimationsDisabled ? '' // spin cycle arrows icon when scheme is Auto : ( '#scheme-settings-entry svg[class*=arrowsCyclic],' + '.chatgpt-notif svg[class*=arrowsCyclic] { animation: rotate 5s linear infinite }' )) + `#about-settings-entry span { color: ${ env.ui.app.scheme == 'dark' ? '#28ee28' : 'green' }}` + '#about-settings-entry > span {' // outer About status span + `width: ${ env.browser.isPortrait ? '15vw' : '95px' }; height: 20px ; overflow: hidden ;` + `${ env.browser.isPortrait ? 'position: relative ; bottom: 3px ;' : '' }` // v-align + `${ config.fgAnimationsDisabled ? '' : ( // fade edges 'mask-image: linear-gradient(' + 'to right, transparent, black 20%, black 89%, transparent) ;' + '-webkit-mask-image: linear-gradient(' + 'to right, transparent, black 20%, black 89%, transparent)' )}}` + '#about-settings-entry > span > div {' + `text-wrap: nowrap ; ${ config.fgAnimationsDisabled ? '' : 'animation: ticker linear 75s infinite' }}` + '@keyframes ticker { 0% { transform: translateX(100%) } 100% { transform: translateX(-2000%) }}' + `.about-em { color: ${ env.ui.app.scheme == 'dark' ? 'white' : 'green' } !important }` ) }, update: { width: 377, available() { // Show modal const updateAvailModal = modals.alert(`🚀 ${app.msgs.alert_updateAvail}!`, // title `${app.msgs.alert_newerVer} ${app.name} ` // msg + `(v${app.latestVer}) ${app.msgs.alert_isAvail}! ` + '${app.msgs.link_viewChanges}`, function update() { // button modals.safeWinOpen(`${app.urls.update.gm}?t=${Date.now()}`) }, '', modals.update.width ) // Localize button labels if needed if (!env.browser.language.startsWith('en')) { const updateBtns = updateAvailModal.querySelectorAll('button') updateBtns[1].textContent = app.msgs.btnLabel_update updateBtns[0].textContent = app.msgs.btnLabel_dismiss } return updateAvailModal }, unavailable() { return modals.alert(`${app.msgs.alert_upToDate}!`, // title `${app.name} (v${app.version}) ${app.msgs.alert_isUpToDate}!`, // msg '', '', modals.update.width ) } } } // Run MAIN routine menus.toolbar.register() if (/udm=2(?:&|$)/.test(location.search)) return log.debug('Exited from Google Images') // Init UI props env.ui = { app: { scheme: config.scheme || ui.getScheme() }, site: { hasSidebar: !!document.querySelector('[class*=kp-]'), scheme: ui.getScheme() } } // Create/ID/classify/listenerize/stylize APP container app.div = dom.create.elem('div', { id: app.slug, class: 'fade-in' }) themes.apply(config.theme) ; ui.addListeners.appDiv() ;['anchored', 'expanded', 'sticky', 'wider'].forEach(mode => (config[mode] || config[`${mode}Sidebar`]) && app.div.classList.add(mode)) update.appStyle() ;['rpg', 'rpw'].forEach(cssType => // rising particles document.head.append(dom.create.style(GM_getResourceText(`${cssType}CSS`)))) // Hide GF alert on GitHub if found if (location.host == 'github.com') { const gfAlert = [...document.querySelectorAll('.markdown-alert')] .find(alert => alert.textContent.includes('Greasy Fork')) return !gfAlert ? undefined : gfAlert.style.display = 'none' } // APPEND to Google app.centerCol = document.querySelector('#center_col') || document.querySelector('#main') const appDivParent = env.browser.isMobile ? app.centerCol : document.getElementById('rhs') // sidebar container if side snippets exist || (() => { // create new one if no side snippets exist const appDivParent = dom.create.elem('div') app.centerCol.insertAdjacentElement('afterend', appDivParent) return appDivParent })() appDivParent.prepend(app.div) setTimeout(() => app.div.classList.add('active'), 100) // fade in // ANCHOR GoogleGPT in Google AI Mode if (/udm=50(?:&|$)/.test(location.search)) { toggle.anchorMode('on') if (!env.browser.isMobile) { // hide Pin button + Anchor Mode setting dom.get.loadedElem(`#${app.slug}-pin-btn`).then(btn => btn.style.display = 'none') document.head.append(dom.create.style('li#anchored-settings-entry { display: none }')) } // Strip Google TRACKING } else document.addEventListener(inputEvents.down, event => { let a = event.target ; while (a && !a.href) a = a.parentElement ; if (!a) return // find closest ancestor href a.removeAttribute('ping') // prevent pingback on link click if (a.getAttribute('onmousedown')?.includes('rwt(')) { a.removeAttribute('onmousedown') if (env.browser.isChrome) event.stopImmediatePropagation() // since inline listener still runs } let realURL = getRealURL(a) if (realURL) { a.href = realURL realURL = getRealURL(a) ; if (realURL) a.href = realURL // do again for old mobile UA } function getRealURL(a) { if (!a.protocol.startsWith('http')) return let url if ((a.hostname.startsWith('www.google.') || a.hostname == location.hostname) && ['/url', // mobile: /url?q= '/local_url', // Maps/Dito: /local_url?q= '/searchurl/rr.html', '/linkredirect'].includes(a.pathname)) { url = /[?&](?:q|url|dest)=((?:https?|ftp)[%:][^&]+)/.exec(a.search) // HTTP/FTP URLs if (url) return decodeURIComponent(url[1]) url = /[?&](?:q|url)=((?:%2[Ff]|\/)[^&]+)/.exec(a.search) // help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...) if (url) return a.origin + decodeURIComponent(url[1]) url = /[#&]url=(https?[:%][^&]+)/.exec(a.hash) // Android intents (/searchurl/rr.html#...&url=...) if (url) return decodeURIComponent(url[1]) } if (a.hostname == 'googleweblight.com' && a.pathname == '/fp') { // Google Search w/ old mobile UA (e.g. Firefox 41) url = /[?&]u=((?:https?|ftp)[%:][^&]+)/.exec(a.search) if (url) return decodeURIComponent(url[1]) } } }, true) // invoke during capturing phase // REFERRALIZE links to support author setTimeout(() => document.querySelectorAll('a[href^="https://www.amazon."]').forEach(anchor => { const url = new URL(anchor.href) ; url.searchParams.set('tag', 'kudo-ai-20') anchor.href = url.toString() }), 1500) // Init footer CTA to share feedback app.footerContent = dom.create.anchor(app.urls.discuss, app.msgs.link_shareFeedback) // AUTO-GEN reply or show STANDBY mode app.msgChain = [] ; const searchQuery = new URL(location.href).searchParams.get('q') if (config.autoGet || config.autoSummarize // Auto-Gen on || (config.prefixEnabled || config.suffixEnabled) // or Manual-Gen on && [config.prefixEnabled && location.href.includes('q=%2F'), // prefix required/present config.suffixEnabled // suffix required/present && /q=.*?(?:%3F|?|%EF%BC%9F)(?:&|$)/.test(location.href) ].filter(Boolean).length == (config.prefixEnabled + config.suffixEnabled) // validate both Manual-Gen modes ) { // auto-gen reply app.msgChain.push({ time: Date.now(), role: 'user', content: config.autoSummarize ? prompts.create('summarizeResults') : searchQuery }) get.reply({ msgs: app.msgChain, src: 'query' }) } else { // show Standby mode show.reply({ standby: true }) if (!config.rqDisabled) get.related(searchQuery) .then(queries => show.related(queries)) .catch(err => { log.error(err.message) ; api.tryNew(get.related) }) } // Observe DOM for new sidebar div#rhs created by other extensions to INSERT GoogleGPT to visually co-exist const sidebarObserver = new MutationObserver(() => { const newSidebar = document.getElementById('rhs') if (newSidebar) { newSidebar.prepend(app.div) ; sidebarObserver.disconnect() } }) sidebarObserver.observe(document.body, { subtree: true, childList: true }) setTimeout(() => sidebarObserver.disconnect(), 5000) // don't observe forever })() ">

googlegpt.io Googlegpt.io - Greasyfork.googlegpt.io

   
([^ log.error('Failed to download chat:', err) }) } ] ) // Prefix icon to title const modalTitle = shareChatModal.querySelector('h2'), titleIcon = icons.create({ key: 'speechBalloons' }) titleIcon.style.cssText = 'height: 23px ; width: 23px ; position: relative ; top: 5px ; right: 8px ;' + `fill: ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' }` modalTitle.prepend(titleIcon) // Hide Dismiss button, localize other labels const modalBtns = shareChatModal.querySelectorAll('button') modalBtns[0].style.display = 'none' // hide Dismiss button if (!env.browser.language.startsWith('en')) // localize button labels modalBtns.forEach(btn => { if (/copy/i.test(btn.textContent)) btn.textContent = `${app.msgs.tooltip_copy} URL` else if (/visit/i.test(btn.textContent)) btn.textContent = app.msgs.btnLabel_visitPage else if (/download/i.test(btn.textContent)) btn.textContent = `${app.msgs.btnLabel_download} ${log.toTitleCase(app.msgs.btnLabel_convo)}` }) // Style elements shareChatModal.style.wordBreak = 'break-all' // since URL really long shareChatModal.querySelector('h2').style.justifySelf = 'center' shareChatModal.querySelector('p').style.cssText = 'text-align: center ; margin: 10px 0 -22px' shareChatModal.querySelector('.modal-buttons').style.cssText = 'justify-content: center' return shareChatModal }, stylize() { if (!this.styles) document.head.append(this.styles = dom.create.elem('style')) this.styles.textContent = ( // Vars `:root { --modal-btn-zoom: scale(1.055) ; --modal-btn-transition: transform 0.15s ease ; --settings-li-transition: transform 0.1s ease ; /* for Settings entry hover-zoom */ --fg-transition: opacity 0.65s cubic-bezier(0.165,0.84,0.44,1), /* fade-in */ transform 0.55s cubic-bezier(0.165,0.84,0.44,1) !important ; /* move-in */ --bg-transition: background-color 0.25s ease !important } /* dim */` // Main modal styles + '@keyframes modal-zoom-fade-out {' + '0% { opacity: 1 } 50% { opacity: 0.25 ; transform: scale(1.05) }' + '100% { opacity: 0 ; transform: scale(1.35) }}' + '.chatgpt-modal > div {' + 'padding: 17px 20px 24px 20px !important ;' // increase alert padding + 'background-color: white ; color: #202124 }' + '.chatgpt-modal p { margin: 14px 0 -29px 4px ; font-size: 1.28em ; line-height: 1.57 }' // pos/size modal msg + '.modal-buttons {' + `margin: 42px 4px ${ env.browser.isMobile ? '2px 4px' : '-3px -4px' } !important ; width: 100% }` + '.chatgpt-modal button {' // this.alert() buttons + `min-width: 113px ; padding: ${ env.browser.isMobile ? '5px' : '4px 15px' } !important ;` + 'cursor: pointer ; border-radius: 0 !important ; height: 39px ;' + 'border: 1px solid ' + ( env.ui.app.scheme == 'dark' ? 'white' : 'black' ) + ' !important }' + '.primary-modal-btn { background: black !important ; color: white !important }' + '.chatgpt-modal button:hover { background-color: #9cdaff !important ; color: black !important }' + ( env.ui.app.scheme == 'dark' ? // darkmode chatgpt.alert() styles ( '.chatgpt-modal > div, .chatgpt-modal button:not(.primary-modal-btn) {' + 'color: white !important }' + '.primary-modal-btn { background: hsl(186 100% 69%) !important ; color: black !important }' + '.chatgpt-modal a { color: #00cfff !important }' + '.chatgpt-modal button:hover {' + 'background-color: #00cfff !important ; color: black !important }' ) : '' ) + `.${modals.class} { display: grid ; place-items: center }` // for centered icon/logo + '[class*=modal-close-btn] {' + 'position: absolute !important ; float: right ; top: 14px !important ; right: 16px !important ;' + 'cursor: pointer ; width: 33px ; height: 33px ; border-radius: 20px }' + `[class*=modal-close-btn] path {${ env.ui.app.scheme == 'dark' ? 'stroke: white ; fill: white' : 'stroke: #9f9f9f ; fill: #9f9f9f' }}` + ( env.ui.app.scheme == 'dark' ? // invert dark mode hover paths '[class*=modal-close-btn]:hover path { stroke: black ; fill: black }' : '' ) + '[class*=modal-close-btn]:hover { background-color: #f2f2f2 }' // hover underlay + '[class*=modal-close-btn] svg { margin: 11.5px }' // center SVG for hover underlay + '[class*=-modal] h2 {' + 'font-size: 1.65rem ; line-height: 32px ; padding: 0 ; margin: 9px 0 -3px !important ;' + `${ env.browser.isMobile ? 'text-align: center' // center on mobile : 'justify-self: start' }}` // left-align on desktop + '[class*=-modal] p { justify-self: start ; font-size: 20px }' + `[class*=-modal] button { color: ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' }; font-size: 12px !important ; background: none }` + '[class*=-modal-bg] {' + 'pointer-events: auto ;' // override any disabling from site modals + 'position: fixed ; top: 0 ; left: 0 ; width: 100% ; height: 100% ;' // expand to full view-port + 'display: flex ; justify-content: center ; align-items: center ; z-index: 9999 ;' // align + `transition: var(--bg-transition) ; /* dim */ -webkit-transition: var(--bg-transition) ; -moz-transition: var(--bg-transition) ; -o-transition: var(--bg-transition) ; -ms-transition: var(--bg-transition) }` + '[class*=-modal-bg].animated > div {' + 'z-index: 13456 ; opacity: 0.98 ; transform: translateX(0) translateY(0) }' + '[class$=-modal] {' // native modals + chatgpt.alert()s + 'position: absolute ;' // to be click-draggable + 'opacity: 0 ;' // to fade-in + `background-image: linear-gradient(180deg, ${ env.ui.app.scheme == 'dark' ? '#99a8a6 -200px, black 200px' : '#b6ebff -296px, white 171px' }) ;` + `border: 1px solid ${ env.ui.app.scheme == 'dark' ? 'white' : '#b5b5b5' } !important ;` + `color: ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' };` + 'transform: translateX(-3px) translateY(7px) ;' // offset to move-in from + `transition: var(--fg-transition) ; /* fade-in + move-in */ -webkit-transition: var(--fg-transition) ; -moz-transition: var(--fg-transition) ; -o-transition: var(--fg-transition) ; -ms-transition: var(--fg-transition) } ${ env.browser.isMobile ? '' : `[class$=-modal] button:hover { transform: var(--modal-btn-zoom) }`} ${ config.fgAnimationsDisabled ? '' : `[class$=-modal] button { ${ env.browser.isMobile ? '' : 'will-change: transform ;' } transition: var(--modal-btn-transition) ; -webkit-transition: var(--modal-btn-transition) ; -moz-transition: var(--modal-btn-transition) ; -o-transition: var(--modal-btn-transition) ; -ms-transition: var(--modal-btn-transition) }`}` // Settings modal + `#${app.slug}-settings { min-width: ${ env.browser.isPortrait ? 288 : 698 }px ; max-width: 75vw ; word-wrap: break-word ; margin: 12px 23px ; border-radius: 15px ; ${ env.ui.app.scheme == 'dark' ? 'stroke: white ; fill: white' : 'stroke: black ; fill: black' }; --shadow: 0 30px 60px rgba(0,0,0,0.12) ; box-shadow: var(--shadow) ; -webkit-box-shadow: var(--shadow) ; -moz-box-shadow: var(--shadow) }` + `#${app.slug}-settings-title {` + 'font-weight: bold ; line-height: 19px ; text-align: center ;' + `margin: 0 -6px ${ env.browser.isPortrait ? 2 : -15 }px 0 }` + `#${app.slug}-settings-title h4 {` + `font-size: ${ env.browser.isPortrait ? 22 : 29 }px ; font-weight: bold ;` + `margin: 0 0 ${ env.browser.isPortrait ? 9 : 27 }px }` + `#${app.slug}-settings ul {` + 'list-style: none ; padding: 0 ; margin-bottom: 2px ;' // hide bullets, close bottom gap + `width: ${ env.browser.isPortrait ? 100 : 50 }% }` // set width based on column cnt + ( env.browser.isPhone ? '' : ( `#${app.slug}-settings ul:first-of-type {` // color desktop middle separator + `border-right: 1px dotted ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' }}` )) + `#${app.slug}-settings li {` + `color: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255,0.65)' : 'rgba(0,0,0,0.45)' };` // for text + `fill: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255,0.65)' : 'rgba(0,0,0,0.45)' };` // for icons + `stroke: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255,0.65)' : 'rgba(0,0,0,0.45)' };` // for icons + 'height: 24px ; padding: 6px 10px ; font-size: 13.5px ;' + `border-bottom: 1px dotted ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' };` // add separators + 'border-radius: 3px ;' // slightly round highlight strip + `${ config.fgAnimationsDisabled || env.browser.isMobile ? '' : `transition: var(--settings-li-transition) ; -webkit-transition: var(--settings-li-transition) ; -moz-transition: var(--settings-li-transition) ; -o-transition: var(--settings-li-transition) ; -ms-transition: var(--settings-li-transition)` }}` + `#${app.slug}-settings li.active {` + `color: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255)' : 'rgba(0,0,0)' };` // for text + `fill: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255)' : 'rgba(0,0,0)' };` // for icons + `stroke: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255)' : 'rgba(0,0,0)' }}` // for icons + `#${app.slug}-settings li label { padding-right: 20px }` // right-pad labels so toggles don't hug + `#${app.slug}-settings li:last-of-type { border-bottom: none }` // remove last bottom-border + `#${app.slug}-settings li, #${app.slug}-settings li label { cursor: pointer }` // add finger on hover + `#${app.slug}-settings li:hover {` + 'background: rgba(100,149,237,0.88) ; color: white ; fill: white ; stroke: white ;' + `${ env.browser.isMobile ? '' : 'transform: scale(1.15)' }}` + `#${app.slug}-settings li > input { float: right } /* pos toggles */ #${app.slug}-settings li > .track { position: relative ; left: -1px ; bottom: -5.5px ; float: right ; background-color: #ccc ; width: 26px ; height: 13px ; border-radius: 28px ; ${ config.fgAnimationsDisabled ? '' : `transition: 0.4s ; -webkit-transition: 0.4s ; -moz-transition: 0.4s ; -o-transition: 0.4s ; -ms-transition: 0.4s` }} #${app.slug}-settings li .*** { position: absolute ; left: 1px ; bottom: 1px ; content: "" ; background-color: white ; width: 11px ; height: 11px ; border-radius: 28px ; ${ config.fgAnimationsDisabled ? '' : `transition: 0.2s ; -webkit-transition: 0.2s ; -moz-transition: 0.2s ; -o-transition: 0.2s ; -ms-transition: 0.2s` }}` + '#scheme-settings-entry > span { margin: 3px -2px 0 }' // align Scheme status + '#scheme-settings-entry > span > svg {' // v-align/left-pad Scheme status icon + 'position: relative ; top: 2px ; margin-left: 4px }' + ( config.fgAnimationsDisabled ? '' // spin cycle arrows icon when scheme is Auto : ( '#scheme-settings-entry svg[class*=arrowsCyclic],' + '.chatgpt-notif svg[class*=arrowsCyclic] { animation: rotate 5s linear infinite }' )) + `#about-settings-entry span { color: ${ env.ui.app.scheme == 'dark' ? '#28ee28' : 'green' }}` + '#about-settings-entry > span {' // outer About status span + `width: ${ env.browser.isPortrait ? '15vw' : '95px' }; height: 20px ; overflow: hidden ;` + `${ env.browser.isPortrait ? 'position: relative ; bottom: 3px ;' : '' }` // v-align + `${ config.fgAnimationsDisabled ? '' : ( // fade edges 'mask-image: linear-gradient(' + 'to right, transparent, black 20%, black 89%, transparent) ;' + '-webkit-mask-image: linear-gradient(' + 'to right, transparent, black 20%, black 89%, transparent)' )}}` + '#about-settings-entry > span > div {' + `text-wrap: nowrap ; ${ config.fgAnimationsDisabled ? '' : 'animation: ticker linear 75s infinite' }}` + '@keyframes ticker { 0% { transform: translateX(100%) } 100% { transform: translateX(-2000%) }}' + `.about-em { color: ${ env.ui.app.scheme == 'dark' ? 'white' : 'green' } !important }` ) }, update: { width: 377, available() { // Show modal const updateAvailModal = modals.alert(`🚀 ${app.msgs.alert_updateAvail}!`, // title `${app.msgs.alert_newerVer} ${app.name} ` // msg + `(v${app.latestVer}) ${app.msgs.alert_isAvail}! ` + '${app.msgs.link_viewChanges}`, function update() { // button modals.safeWinOpen(`${app.urls.update.gm}?t=${Date.now()}`) }, '', modals.update.width ) // Localize button labels if needed if (!env.browser.language.startsWith('en')) { const updateBtns = updateAvailModal.querySelectorAll('button') updateBtns[1].textContent = app.msgs.btnLabel_update updateBtns[0].textContent = app.msgs.btnLabel_dismiss } return updateAvailModal }, unavailable() { return modals.alert(`${app.msgs.alert_upToDate}!`, // title `${app.name} (v${app.version}) ${app.msgs.alert_isUpToDate}!`, // msg '', '', modals.update.width ) } } } // Run MAIN routine menus.toolbar.register() if (/udm=2(?:&|$)/.test(location.search)) return log.debug('Exited from Google Images') // Init UI props env.ui = { app: { scheme: config.scheme || ui.getScheme() }, site: { hasSidebar: !!document.querySelector('[class*=kp-]'), scheme: ui.getScheme() } } // Create/ID/classify/listenerize/stylize APP container app.div = dom.create.elem('div', { id: app.slug, class: 'fade-in' }) themes.apply(config.theme) ; ui.addListeners.appDiv() ;['anchored', 'expanded', 'sticky', 'wider'].forEach(mode => (config[mode] || config[`${mode}Sidebar`]) && app.div.classList.add(mode)) update.appStyle() ;['rpg', 'rpw'].forEach(cssType => // rising particles document.head.append(dom.create.style(GM_getResourceText(`${cssType}CSS`)))) // Hide GF alert on GitHub if found if (location.host == 'github.com') { const gfAlert = [...document.querySelectorAll('.markdown-alert')] .find(alert => alert.textContent.includes('Greasy Fork')) return !gfAlert ? undefined : gfAlert.style.display = 'none' } // APPEND to Google app.centerCol = document.querySelector('#center_col') || document.querySelector('#main') const appDivParent = env.browser.isMobile ? app.centerCol : document.getElementById('rhs') // sidebar container if side snippets exist || (() => { // create new one if no side snippets exist const appDivParent = dom.create.elem('div') app.centerCol.insertAdjacentElement('afterend', appDivParent) return appDivParent })() appDivParent.prepend(app.div) setTimeout(() => app.div.classList.add('active'), 100) // fade in // ANCHOR GoogleGPT in Google AI Mode if (/udm=50(?:&|$)/.test(location.search)) { toggle.anchorMode('on') if (!env.browser.isMobile) { // hide Pin button + Anchor Mode setting dom.get.loadedElem(`#${app.slug}-pin-btn`).then(btn => btn.style.display = 'none') document.head.append(dom.create.style('li#anchored-settings-entry { display: none }')) } // Strip Google TRACKING } else document.addEventListener(inputEvents.down, event => { let a = event.target ; while (a && !a.href) a = a.parentElement ; if (!a) return // find closest ancestor href a.removeAttribute('ping') // prevent pingback on link click if (a.getAttribute('onmousedown')?.includes('rwt(')) { a.removeAttribute('onmousedown') if (env.browser.isChrome) event.stopImmediatePropagation() // since inline listener still runs } let realURL = getRealURL(a) if (realURL) { a.href = realURL realURL = getRealURL(a) ; if (realURL) a.href = realURL // do again for old mobile UA } function getRealURL(a) { if (!a.protocol.startsWith('http')) return let url if ((a.hostname.startsWith('www.google.') || a.hostname == location.hostname) && ['/url', // mobile: /url?q= '/local_url', // Maps/Dito: /local_url?q= '/searchurl/rr.html', '/linkredirect'].includes(a.pathname)) { url = /[?&](?:q|url|dest)=((?:https?|ftp)[%:][^&]+)/.exec(a.search) // HTTP/FTP URLs if (url) return decodeURIComponent(url[1]) url = /[?&](?:q|url)=((?:%2[Ff]|\/)[^&]+)/.exec(a.search) // help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...) if (url) return a.origin + decodeURIComponent(url[1]) url = /[#&]url=(https?[:%][^&]+)/.exec(a.hash) // Android intents (/searchurl/rr.html#...&url=...) if (url) return decodeURIComponent(url[1]) } if (a.hostname == 'googleweblight.com' && a.pathname == '/fp') { // Google Search w/ old mobile UA (e.g. Firefox 41) url = /[?&]u=((?:https?|ftp)[%:][^&]+)/.exec(a.search) if (url) return decodeURIComponent(url[1]) } } }, true) // invoke during capturing phase // REFERRALIZE links to support author setTimeout(() => document.querySelectorAll('a[href^="https://www.amazon."]').forEach(anchor => { const url = new URL(anchor.href) ; url.searchParams.set('tag', 'kudo-ai-20') anchor.href = url.toString() }), 1500) // Init footer CTA to share feedback app.footerContent = dom.create.anchor(app.urls.discuss, app.msgs.link_shareFeedback) // AUTO-GEN reply or show STANDBY mode app.msgChain = [] ; const searchQuery = new URL(location.href).searchParams.get('q') if (config.autoGet || config.autoSummarize // Auto-Gen on || (config.prefixEnabled || config.suffixEnabled) // or Manual-Gen on && [config.prefixEnabled && location.href.includes('q=%2F'), // prefix required/present config.suffixEnabled // suffix required/present && /q=.*?(?:%3F|?|%EF%BC%9F)(?:&|$)/.test(location.href) ].filter(Boolean).length == (config.prefixEnabled + config.suffixEnabled) // validate both Manual-Gen modes ) { // auto-gen reply app.msgChain.push({ time: Date.now(), role: 'user', content: config.autoSummarize ? prompts.create('summarizeResults') : searchQuery }) get.reply({ msgs: app.msgChain, src: 'query' }) } else { // show Standby mode show.reply({ standby: true }) if (!config.rqDisabled) get.related(searchQuery) .then(queries => show.related(queries)) .catch(err => { log.error(err.message) ; api.tryNew(get.related) }) } // Observe DOM for new sidebar div#rhs created by other extensions to INSERT GoogleGPT to visually co-exist const sidebarObserver = new MutationObserver(() => { const newSidebar = document.getElementById('rhs') if (newSidebar) { newSidebar.prepend(app.div) ; sidebarObserver.disconnect() } }) sidebarObserver.observe(document.body, { subtree: true, childList: true }) setTimeout(() => sidebarObserver.disconnect(), 5000) // don't observe forever })()

Domain Summary

What IP addresses does Greasyfork.googlegpt.io resolve to?

• Greasyfork.googlegpt.io resolves to the IP addresses 104.18.30.70.

greasyfork.googlegpt.io Profile

Title:([^ log.error('Failed to download chat:', err) }) } ] ) // Prefix icon to title const modalTitle = shareChatModal.querySelector('h2'), titleIcon = icons.create({ key: 'speechBalloons' }) titleIcon.style.cssText = 'height: 23px ; width: 23px ; position: relative ; top: 5px ; right: 8px ;' + `fill: ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' }` modalTitle.prepend(titleIcon) // Hide Dismiss button, localize other labels const modalBtns = shareChatModal.querySelectorAll('button') modalBtns[0].style.display = 'none' // hide Dismiss button if (!env.browser.language.startsWith('en')) // localize button labels modalBtns.forEach(btn => { if (/copy/i.test(btn.textContent)) btn.textContent = `${app.msgs.tooltip_copy} URL` else if (/visit/i.test(btn.textContent)) btn.textContent = app.msgs.btnLabel_visitPage else if (/download/i.test(btn.textContent)) btn.textContent = `${app.msgs.btnLabel_download} ${log.toTitleCase(app.msgs.btnLabel_convo)}` }) // Style elements shareChatModal.style.wordBreak = 'break-all' // since URL really long shareChatModal.querySelector('h2').style.justifySelf = 'center' shareChatModal.querySelector('p').style.cssText = 'text-align: center ; margin: 10px 0 -22px' shareChatModal.querySelector('.modal-buttons').style.cssText = 'justify-content: center' return shareChatModal }, stylize() { if (!this.styles) document.head.append(this.styles = dom.create.elem('style')) this.styles.textContent = ( // Vars `:root { --modal-btn-zoom: scale(1.055) ; --modal-btn-transition: transform 0.15s ease ; --settings-li-transition: transform 0.1s ease ; /* for Settings entry hover-zoom */ --fg-transition: opacity 0.65s cubic-bezier(0.165,0.84,0.44,1), /* fade-in */ transform 0.55s cubic-bezier(0.165,0.84,0.44,1) !important ; /* move-in */ --bg-transition: background-color 0.25s ease !important } /* dim */` // Main modal styles + '@keyframes modal-zoom-fade-out {' + '0% { opacity: 1 } 50% { opacity: 0.25 ; transform: scale(1.05) }' + '100% { opacity: 0 ; transform: scale(1.35) }}' + '.chatgpt-modal > div {' + 'padding: 17px 20px 24px 20px !important ;' // increase alert padding + 'background-color: white ; color: #202124 }' + '.chatgpt-modal p { margin: 14px 0 -29px 4px ; font-size: 1.28em ; line-height: 1.57 }' // pos/size modal msg + '.modal-buttons {' + `margin: 42px 4px ${ env.browser.isMobile ? '2px 4px' : '-3px -4px' } !important ; width: 100% }` + '.chatgpt-modal button {' // this.alert() buttons + `min-width: 113px ; padding: ${ env.browser.isMobile ? '5px' : '4px 15px' } !important ;` + 'cursor: pointer ; border-radius: 0 !important ; height: 39px ;' + 'border: 1px solid ' + ( env.ui.app.scheme == 'dark' ? 'white' : 'black' ) + ' !important }' + '.primary-modal-btn { background: black !important ; color: white !important }' + '.chatgpt-modal button:hover { background-color: #9cdaff !important ; color: black !important }' + ( env.ui.app.scheme == 'dark' ? // darkmode chatgpt.alert() styles ( '.chatgpt-modal > div, .chatgpt-modal button:not(.primary-modal-btn) {' + 'color: white !important }' + '.primary-modal-btn { background: hsl(186 100% 69%) !important ; color: black !important }' + '.chatgpt-modal a { color: #00cfff !important }' + '.chatgpt-modal button:hover {' + 'background-color: #00cfff !important ; color: black !important }' ) : '' ) + `.${modals.class} { display: grid ; place-items: center }` // for centered icon/logo + '[class*=modal-close-btn] {' + 'position: absolute !important ; float: right ; top: 14px !important ; right: 16px !important ;' + 'cursor: pointer ; width: 33px ; height: 33px ; border-radius: 20px }' + `[class*=modal-close-btn] path {${ env.ui.app.scheme == 'dark' ? 'stroke: white ; fill: white' : 'stroke: #9f9f9f ; fill: #9f9f9f' }}` + ( env.ui.app.scheme == 'dark' ? // invert dark mode hover paths '[class*=modal-close-btn]:hover path { stroke: black ; fill: black }' : '' ) + '[class*=modal-close-btn]:hover { background-color: #f2f2f2 }' // hover underlay + '[class*=modal-close-btn] svg { margin: 11.5px }' // center SVG for hover underlay + '[class*=-modal] h2 {' + 'font-size: 1.65rem ; line-height: 32px ; padding: 0 ; margin: 9px 0 -3px !important ;' + `${ env.browser.isMobile ? 'text-align: center' // center on mobile : 'justify-self: start' }}` // left-align on desktop + '[class*=-modal] p { justify-self: start ; font-size: 20px }' + `[class*=-modal] button { color: ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' }; font-size: 12px !important ; background: none }` + '[class*=-modal-bg] {' + 'pointer-events: auto ;' // override any disabling from site modals + 'position: fixed ; top: 0 ; left: 0 ; width: 100% ; height: 100% ;' // expand to full view-port + 'display: flex ; justify-content: center ; align-items: center ; z-index: 9999 ;' // align + `transition: var(--bg-transition) ; /* dim */ -webkit-transition: var(--bg-transition) ; -moz-transition: var(--bg-transition) ; -o-transition: var(--bg-transition) ; -ms-transition: var(--bg-transition) }` + '[class*=-modal-bg].animated > div {' + 'z-index: 13456 ; opacity: 0.98 ; transform: translateX(0) translateY(0) }' + '[class$=-modal] {' // native modals + chatgpt.alert()s + 'position: absolute ;' // to be click-draggable + 'opacity: 0 ;' // to fade-in + `background-image: linear-gradient(180deg, ${ env.ui.app.scheme == 'dark' ? '#99a8a6 -200px, black 200px' : '#b6ebff -296px, white 171px' }) ;` + `border: 1px solid ${ env.ui.app.scheme == 'dark' ? 'white' : '#b5b5b5' } !important ;` + `color: ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' };` + 'transform: translateX(-3px) translateY(7px) ;' // offset to move-in from + `transition: var(--fg-transition) ; /* fade-in + move-in */ -webkit-transition: var(--fg-transition) ; -moz-transition: var(--fg-transition) ; -o-transition: var(--fg-transition) ; -ms-transition: var(--fg-transition) } ${ env.browser.isMobile ? '' : `[class$=-modal] button:hover { transform: var(--modal-btn-zoom) }`} ${ config.fgAnimationsDisabled ? '' : `[class$=-modal] button { ${ env.browser.isMobile ? '' : 'will-change: transform ;' } transition: var(--modal-btn-transition) ; -webkit-transition: var(--modal-btn-transition) ; -moz-transition: var(--modal-btn-transition) ; -o-transition: var(--modal-btn-transition) ; -ms-transition: var(--modal-btn-transition) }`}` // Settings modal + `#${app.slug}-settings { min-width: ${ env.browser.isPortrait ? 288 : 698 }px ; max-width: 75vw ; word-wrap: break-word ; margin: 12px 23px ; border-radius: 15px ; ${ env.ui.app.scheme == 'dark' ? 'stroke: white ; fill: white' : 'stroke: black ; fill: black' }; --shadow: 0 30px 60px rgba(0,0,0,0.12) ; box-shadow: var(--shadow) ; -webkit-box-shadow: var(--shadow) ; -moz-box-shadow: var(--shadow) }` + `#${app.slug}-settings-title {` + 'font-weight: bold ; line-height: 19px ; text-align: center ;' + `margin: 0 -6px ${ env.browser.isPortrait ? 2 : -15 }px 0 }` + `#${app.slug}-settings-title h4 {` + `font-size: ${ env.browser.isPortrait ? 22 : 29 }px ; font-weight: bold ;` + `margin: 0 0 ${ env.browser.isPortrait ? 9 : 27 }px }` + `#${app.slug}-settings ul {` + 'list-style: none ; padding: 0 ; margin-bottom: 2px ;' // hide bullets, close bottom gap + `width: ${ env.browser.isPortrait ? 100 : 50 }% }` // set width based on column cnt + ( env.browser.isPhone ? '' : ( `#${app.slug}-settings ul:first-of-type {` // color desktop middle separator + `border-right: 1px dotted ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' }}` )) + `#${app.slug}-settings li {` + `color: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255,0.65)' : 'rgba(0,0,0,0.45)' };` // for text + `fill: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255,0.65)' : 'rgba(0,0,0,0.45)' };` // for icons + `stroke: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255,0.65)' : 'rgba(0,0,0,0.45)' };` // for icons + 'height: 24px ; padding: 6px 10px ; font-size: 13.5px ;' + `border-bottom: 1px dotted ${ env.ui.app.scheme == 'dark' ? 'white' : 'black' };` // add separators + 'border-radius: 3px ;' // slightly round highlight strip + `${ config.fgAnimationsDisabled || env.browser.isMobile ? '' : `transition: var(--settings-li-transition) ; -webkit-transition: var(--settings-li-transition) ; -moz-transition: var(--settings-li-transition) ; -o-transition: var(--settings-li-transition) ; -ms-transition: var(--settings-li-transition)` }}` + `#${app.slug}-settings li.active {` + `color: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255)' : 'rgba(0,0,0)' };` // for text + `fill: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255)' : 'rgba(0,0,0)' };` // for icons + `stroke: ${ env.ui.app.scheme == 'dark' ? 'rgb(255,255,255)' : 'rgba(0,0,0)' }}` // for icons + `#${app.slug}-settings li label { padding-right: 20px }` // right-pad labels so toggles don't hug + `#${app.slug}-settings li:last-of-type { border-bottom: none }` // remove last bottom-border + `#${app.slug}-settings li, #${app.slug}-settings li label { cursor: pointer }` // add finger on hover + `#${app.slug}-settings li:hover {` + 'background: rgba(100,149,237,0.88) ; color: white ; fill: white ; stroke: white ;' + `${ env.browser.isMobile ? '' : 'transform: scale(1.15)' }}` + `#${app.slug}-settings li > input { float: right } /* pos toggles */ #${app.slug}-settings li > .track { position: relative ; left: -1px ; bottom: -5.5px ; float: right ; background-color: #ccc ; width: 26px ; height: 13px ; border-radius: 28px ; ${ config.fgAnimationsDisabled ? '' : `transition: 0.4s ; -webkit-transition: 0.4s ; -moz-transition: 0.4s ; -o-transition: 0.4s ; -ms-transition: 0.4s` }} #${app.slug}-settings li .*** { position: absolute ; left: 1px ; bottom: 1px ; content: "" ; background-color: white ; width: 11px ; height: 11px ; border-radius: 28px ; ${ config.fgAnimationsDisabled ? '' : `transition: 0.2s ; -webkit-transition: 0.2s ; -moz-transition: 0.2s ; -o-transition: 0.2s ; -ms-transition: 0.2s` }}` + '#scheme-settings-entry > span { margin: 3px -2px 0 }' // align Scheme status + '#scheme-settings-entry > span > svg {' // v-align/left-pad Scheme status icon + 'position: relative ; top: 2px ; margin-left: 4px }' + ( config.fgAnimationsDisabled ? '' // spin cycle arrows icon when scheme is Auto : ( '#scheme-settings-entry svg[class*=arrowsCyclic],' + '.chatgpt-notif svg[class*=arrowsCyclic] { animation: rotate 5s linear infinite }' )) + `#about-settings-entry span { color: ${ env.ui.app.scheme == 'dark' ? '#28ee28' : 'green' }}` + '#about-settings-entry > span {' // outer About status span + `width: ${ env.browser.isPortrait ? '15vw' : '95px' }; height: 20px ; overflow: hidden ;` + `${ env.browser.isPortrait ? 'position: relative ; bottom: 3px ;' : '' }` // v-align + `${ config.fgAnimationsDisabled ? '' : ( // fade edges 'mask-image: linear-gradient(' + 'to right, transparent, black 20%, black 89%, transparent) ;' + '-webkit-mask-image: linear-gradient(' + 'to right, transparent, black 20%, black 89%, transparent)' )}}` + '#about-settings-entry > span > div {' + `text-wrap: nowrap ; ${ config.fgAnimationsDisabled ? '' : 'animation: ticker linear 75s infinite' }}` + '@keyframes ticker { 0% { transform: translateX(100%) } 100% { transform: translateX(-2000%) }}' + `.about-em { color: ${ env.ui.app.scheme == 'dark' ? 'white' : 'green' } !important }` ) }, update: { width: 377, available() { // Show modal const updateAvailModal = modals.alert(`🚀 ${app.msgs.alert_updateAvail}!`, // title `${app.msgs.alert_newerVer} ${app.name} ` // msg + `(v${app.latestVer}) ${app.msgs.alert_isAvail}! ` + '${app.msgs.link_viewChanges}`, function update() { // button modals.safeWinOpen(`${app.urls.update.gm}?t=${Date.now()}`) }, '', modals.update.width ) // Localize button labels if needed if (!env.browser.language.startsWith('en')) { const updateBtns = updateAvailModal.querySelectorAll('button') updateBtns[1].textContent = app.msgs.btnLabel_update updateBtns[0].textContent = app.msgs.btnLabel_dismiss } return updateAvailModal }, unavailable() { return modals.alert(`${app.msgs.alert_upToDate}!`, // title `${app.name} (v${app.version}) ${app.msgs.alert_isUpToDate}!`, // msg '', '', modals.update.width ) } } } // Run MAIN routine menus.toolbar.register() if (/udm=2(?:&|$)/.test(location.search)) return log.debug('Exited from Google Images') // Init UI props env.ui = { app: { scheme: config.scheme || ui.getScheme() }, site: { hasSidebar: !!document.querySelector('[class*=kp-]'), scheme: ui.getScheme() } } // Create/ID/classify/listenerize/stylize APP container app.div = dom.create.elem('div', { id: app.slug, class: 'fade-in' }) themes.apply(config.theme) ; ui.addListeners.appDiv() ;['anchored', 'expanded', 'sticky', 'wider'].forEach(mode => (config[mode] || config[`${mode}Sidebar`]) && app.div.classList.add(mode)) update.appStyle() ;['rpg', 'rpw'].forEach(cssType => // rising particles document.head.append(dom.create.style(GM_getResourceText(`${cssType}CSS`)))) // Hide GF alert on GitHub if found if (location.host == 'github.com') { const gfAlert = [...document.querySelectorAll('.markdown-alert')] .find(alert => alert.textContent.includes('Greasy Fork')) return !gfAlert ? undefined : gfAlert.style.display = 'none' } // APPEND to Google app.centerCol = document.querySelector('#center_col') || document.querySelector('#main') const appDivParent = env.browser.isMobile ? app.centerCol : document.getElementById('rhs') // sidebar container if side snippets exist || (() => { // create new one if no side snippets exist const appDivParent = dom.create.elem('div') app.centerCol.insertAdjacentElement('afterend', appDivParent) return appDivParent })() appDivParent.prepend(app.div) setTimeout(() => app.div.classList.add('active'), 100) // fade in // ANCHOR GoogleGPT in Google AI Mode if (/udm=50(?:&|$)/.test(location.search)) { toggle.anchorMode('on') if (!env.browser.isMobile) { // hide Pin button + Anchor Mode setting dom.get.loadedElem(`#${app.slug}-pin-btn`).then(btn => btn.style.display = 'none') document.head.append(dom.create.style('li#anchored-settings-entry { display: none }')) } // Strip Google TRACKING } else document.addEventListener(inputEvents.down, event => { let a = event.target ; while (a && !a.href) a = a.parentElement ; if (!a) return // find closest ancestor href a.removeAttribute('ping') // prevent pingback on link click if (a.getAttribute('onmousedown')?.includes('rwt(')) { a.removeAttribute('onmousedown') if (env.browser.isChrome) event.stopImmediatePropagation() // since inline listener still runs } let realURL = getRealURL(a) if (realURL) { a.href = realURL realURL = getRealURL(a) ; if (realURL) a.href = realURL // do again for old mobile UA } function getRealURL(a) { if (!a.protocol.startsWith('http')) return let url if ((a.hostname.startsWith('www.google.') || a.hostname == location.hostname) && ['/url', // mobile: /url?q= '/local_url', // Maps/Dito: /local_url?q= '/searchurl/rr.html', '/linkredirect'].includes(a.pathname)) { url = /[?&](?:q|url|dest)=((?:https?|ftp)[%:][^&]+)/.exec(a.search) // HTTP/FTP URLs if (url) return decodeURIComponent(url[1]) url = /[?&](?:q|url)=((?:%2[Ff]|\/)[^&]+)/.exec(a.search) // help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...) if (url) return a.origin + decodeURIComponent(url[1]) url = /[#&]url=(https?[:%][^&]+)/.exec(a.hash) // Android intents (/searchurl/rr.html#...&url=...) if (url) return decodeURIComponent(url[1]) } if (a.hostname == 'googleweblight.com' && a.pathname == '/fp') { // Google Search w/ old mobile UA (e.g. Firefox 41) url = /[?&]u=((?:https?|ftp)[%:][^&]+)/.exec(a.search) if (url) return decodeURIComponent(url[1]) } } }, true) // invoke during capturing phase // REFERRALIZE links to support author setTimeout(() => document.querySelectorAll('a[href^="https://www.amazon."]').forEach(anchor => { const url = new URL(anchor.href) ; url.searchParams.set('tag', 'kudo-ai-20') anchor.href = url.toString() }), 1500) // Init footer CTA to share feedback app.footerContent = dom.create.anchor(app.urls.discuss, app.msgs.link_shareFeedback) // AUTO-GEN reply or show STANDBY mode app.msgChain = [] ; const searchQuery = new URL(location.href).searchParams.get('q') if (config.autoGet || config.autoSummarize // Auto-Gen on || (config.prefixEnabled || config.suffixEnabled) // or Manual-Gen on && [config.prefixEnabled && location.href.includes('q=%2F'), // prefix required/present config.suffixEnabled // suffix required/present && /q=.*?(?:%3F|?|%EF%BC%9F)(?:&|$)/.test(location.href) ].filter(Boolean).length == (config.prefixEnabled + config.suffixEnabled) // validate both Manual-Gen modes ) { // auto-gen reply app.msgChain.push({ time: Date.now(), role: 'user', content: config.autoSummarize ? prompts.create('summarizeResults') : searchQuery }) get.reply({ msgs: app.msgChain, src: 'query' }) } else { // show Standby mode show.reply({ standby: true }) if (!config.rqDisabled) get.related(searchQuery) .then(queries => show.related(queries)) .catch(err => { log.error(err.message) ; api.tryNew(get.related) }) } // Observe DOM for new sidebar div#rhs created by other extensions to INSERT GoogleGPT to visually co-exist const sidebarObserver = new MutationObserver(() => { const newSidebar = document.getElementById('rhs') if (newSidebar) { newSidebar.prepend(app.div) ; sidebarObserver.disconnect() } }) sidebarObserver.observe(document.body, { subtree: true, childList: true }) setTimeout(() => sidebarObserver.disconnect(), 5000) // don't observe forever })()

What technologies does greasyfork.googlegpt.io use?

These are the technologies used at greasyfork.googlegpt.io. greasyfork.googlegpt.io has a total of 7 technologies installed in 4 different categories.

greasyfork.googlegpt.io Traffic Analysis

There's no enough data about greasyfork.googlegpt.io traffic.
Daily Visitors n/a
Monthly Visits n/a
Pages per Visit n/a
Visit duration n/a
Bounce Rate n/a
Is this your site?Verify your site's metrics.
Daily Unique Visitors:
 n/a
Monthly Visits:
n/a
Pages per Visit:
n/a
Daily Pageviews:
n/a
Avg. visit duration:
n/a
Bounce rate:
n/a
Global Reach:
 n/a
HypeRank:
n/a
*All traffic values are estimates only.
Last update was 2 hours ago
     
This can take up to 60 seconds. Please wait...

Update will be available in 22 hours
*HypeStat.com is not promoting or affiliated with googlegpt.io in any way. Only publicly available statistics data are displayed.

 

SEMrush is a complete on line advertising and marketing platform that gives a extensive variety of gear and functions to help companies and entrepreneurs in enhancing their on line visibility and optimizing their virtual advertising and marketing strategies.
SemRushSemRush
Domain:
  greasyfork.googlegpt.io
Rank:
(Rank based on keywords, cost and organic traffic)
  n/a
Organic Keywords:
(Number of keywords in top 20 Google SERP)
  0
Organic Traffic:
(Number of visitors coming from top 20 search results)
  0
Organic Cost:
((How much need to spend if get same number of visitors from Google Adwords)
  $0.00

Ad Experience Report

Summary of the ad experience rating of a website for a specific platform.

Mobile summary

Root domain:
googlegpt.io
Ad filtering:
(Chrome is not filtering ads on your site.)
Off
Status:
(The status of the site that is reviewed for the Better Ads Standards.)
Not reviewed

Desktop summary

Root domain:
googlegpt.io
Ad filtering:
(Chrome is not filtering ads on your site.)
Off
Status:
(The status of the site that is reviewed for the Better Ads Standards.)
Not reviewed

Abusive Experience Report

Summary of the abusive experience rating of a website.
Root domain:
googlegpt.io
Enforcement:
(Chrome is not preventing your site from opening new windows or tabs.)
Off
Status:
(The status of the site reviewed for the abusive experiences.)
Not reviewed

Where is greasyfork.googlegpt.io hosted?

Greasyfork.googlegpt.io may be hosted in multiple data centers distributed in different locations around the world. This is probably just one of them.
Server IP:
104.18.30.70
ASN:
AS13335 
ISP:
Cloudflare Inc 
Server Location:


 

Other sites hosted on 104.18.30.70

There are no other sites hosted on this IP

How fast does greasyfork.googlegpt.io load?

The average loading time of greasyfork.googlegpt.io is 182 ms.
Average Load Time:
182 ms

Does greasyfork.googlegpt.io use compression?

Website compression is the process of reducing the size of website files, such as HTML, CSS, JavaScript, and image files, to improve website performance and load times. Compressing website files can significantly reduce the amount of data that needs to be transferred from the server to the user's browser, resulting in faster page load times and improved user experience. Files on greasyfork.googlegpt.io are reduced by 76%.
greasyfork.googlegpt.io use gzip compression.
Original size: 198.67 KB
Compressed size: 46.74 KB
File reduced by: 151.94 KB (76%)

Google Safe Browsing

Google Safe Browsing is a service provided by Google that helps protect users from visiting websites that may contain malicious or harmful content, such as malware, phishing attempts, or deceptive software.
This site is not currently listed as suspicious

SSL Checker - SSL Certificate Verify

An SSL (Secure Sockets Layer) certificate is a digital certificate that establishes a secure encrypted connection between a web server and a user's web browser. It provides authentication and encryption, ensuring that data transmitted between the server and the browser remains private and protected. greasyfork.googlegpt.io supports HTTPS.
 greasyfork.googlegpt.io supports HTTPS
     
Verifying SSL Support. Please wait...
Common Name: *.github.io
Organization:
Location:
Issuer: Sectigo RSA Domain Validation Secure Server CA
Valid from: Mar 7 00:00:00 2025 GMT
Valid until: Mar 7 23:59:59 2026 GMT
Authority: CA:FALSE
Keysize: 2048 Bits
Common Name: Sectigo RSA Domain Validation Secure Server CA
Organization: Sectigo Limited
Location: Salford, Greater Manchester, GB
Issuer: USERTrust RSA Certification Authority
Valid from: Nov 2 00:00:00 2018 GMT
Valid until: Dec 31 23:59:59 2030 GMT
Authority: CA:TRUE
Keysize: 2048 Bits
Common Name: USERTrust RSA Certification Authority
Organization: The USERTRUST Network
Location: Jersey City, New Jersey, US
Issuer: AAA Certificate Services
Valid from: Mar 12 00:00:00 2019 GMT
Valid until: Dec 31 23:59:59 2028 GMT
Authority: CA:TRUE
Keysize: 4096 Bits

Verify HTTP/2 Support

HTTP/2 (Hypertext Transfer Protocol version 2) is a major revision of the HTTP protocol, which is the foundation of data communication on the World Wide Web. It was developed as an improvement over the previous HTTP/1.1 version to enhance web performance and efficiency.
 greasyfork.googlegpt.io supports HTTP/2
     
Verifying HTTP/2.0 Support. Please wait...

Http Header

HTTP headers are extra portions of records despatched among a consumer (which include an internet browser) and a server at some stage in an HTTP request or response. They offer instructions, metadata, or manipulate parameters for the conversation among the consumer and server.
date: Sat, 21 Jun 2025 14:32:42 GMT
content-type: text/html
content-length: 167
location: https://github.com/KudoAI/googlegpt/raw/refs/heads/main/greasemonkey/googlegpt.user.js
cache-control: max-age=3600
expires: Sat, 21 Jun 2025 15:32:42 GMT
vary: Accept-Encoding
server: cloudflare
cf-ray: 953437805a91901e-FRA

HTTP/2 302 
date: Sat, 21 Jun 2025 14:32:41 GMT
content-type: text/html; charset=utf-8
content-length: 0
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
access-control-allow-origin: 
location: https://raw.githubusercontent.com/KudoAI/googlegpt/refs/heads/main/greasemonkey/googlegpt.user.js
cache-control: no-cache
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
x-github-request-id: C118:3E576C:5BF44E8:5ED747A:6856C28A

HTTP/2 200 
cache-control: max-age=300
content-security-policy: default-src 'none'; style-src 'unsafe-inline'; sandbox
content-type: text/plain; charset=utf-8
etag: W/"6e0022847063276a691a40f5734df7d199804c050f330e866048df3c58a36a41"
strict-transport-security: max-age=31536000
x-content-type-options: nosniff
x-frame-options: deny
x-xss-protection: 1; mode=block
x-github-request-id: AEC3:3E5911:FD4F73:120F625:6856B934
content-encoding: gzip
accept-ranges: bytes
date: Sat, 21 Jun 2025 14:32:42 GMT
via: 1.1 varnish
x-served-by: cache-fra-eddf8230109-FRA
x-cache: HIT
x-cache-hits: 0
x-timer: S1750516362.355836,VS0,VE94
vary: Authorization,Accept-Encoding
access-control-allow-origin: *
cross-origin-resource-policy: cross-origin
x-fastly-request-id: f95b83e4188bd212395c082487c88ac763106d21
expires: Sat, 21 Jun 2025 14:37:42 GMT
source-age: 0
content-length: 47860

DNS Lookup

DNS entries (Domain Name System) are a critical component of the Internet infrastructure. They act as directories that translate human-readable domain names (such as example.com) to machine-readable IP addresses. DNS records are stored on DNS servers and help forward internet traffic efficiently.
Type Ip Target/Txt TTL
HINFO 3600