Recently Analyzed Sites
HypeStat’s "Recently Analyzed" page is a dynamic resource that keeps users informed about the latest analyzed websites and changes to website statistics. Whether you’re a webmaster, digital marketer, or just a curious web user, this feature is invaluable for tracking the latest movements in web traffic and site rankings.
- Destiny Knight - itch.io
itch.io - destiny-knight.itch.io - 5 days ago
- codewalker - itch.io
itch.io - codewalker.itch.io - 5 days ago
- claby2 - itch.io
itch.io - claby2.itch.io - 5 days ago
- Chiphead64 - itch.io
itch.io - chiphead64.itch.io - 5 days ago
- Ícaro Harry
icaro.io
Ícaro Harry's developer portfolio - 5 days ago
- www.isobit.io
isobit.io - 5 days ago
- andxet - itch.io
itch.io - andxet.itch.io - 5 days ago
- InvadingOctopus · GitHub
invadingoctopus.io
InvadingOctopus has 8 repositories available. Follow their code on GitHub. - 5 days ago
- Inventaire Query Service
inventaire.io - query.inventaire.io
you know, for SPARQL queries and stuff - 5 days ago
- Just a moment...
instantcms.io - demo.instantcms.io
demo open source content management system - 5 days ago
- Services - Kotzilla
insert-koin.io - support.insert-koin.io
Kotzilla Products: Koin, Official plugin for Koin DI, Console, Koin SDK - 5 days ago
- iLhub - Professional Elixir and Erlang development team | Intellectual Lads Hub
ilhub.io
High Traffic Systems, Distributed or Clustered Systems, Real Time Apps & Push Notifications, High Availability & Zero Downtime, Bots & Intelligent Systems, Large Enterprise Applications. We Are Intellectual Lads And we know how to make your software work great! - 5 days ago
- immudb webconsole
immudb.io - demo.immudb.io - 5 days ago
- ImAdam.io • Home
imadam.io
Hey I'm Adam I like to make cool web stuff. Come take a look! - 5 days ago
- Managed Dedicated Servers and VPS Hosting by M3Server.com
m3server.com
Managed dedicated servers, VPS and bare metal dedicated server hosting. Since 1996 M3Server.com has provided managed hosting on linux servers with excellent uptime, speed, and WordPress web hosting. - 5 days ago
- B.Lynnity - B.Lynnity
icp0.io - fxa77-fiaaa-aaaae-aaana-cai.raw.icp0.io - 5 days ago
- Hyunsu (Philip) Cho
hyunsu-cho.io
Hyunsu Cho's website - 5 days ago
- GitHub - Hotmoka/hotmoka: The Hotmoka project
hotmoka.io
The Hotmoka project. Contribute to Hotmoka/hotmoka development by creating an account on GitHub. - 5 days ago
- IBAX Do***entation
ibax.io - docs.ibax.io
A Decentralized Commercial Cross-Chain infrastructure Network - 5 days ago
- Dr Micah Wilson
humanfactors.io - michael.humanfactors.io - 5 days ago
- Hoo Logic : React + TypeScript
hoologic.io
Hoo Logic : React + TypeScript - 5 days ago
- Welcome! | hREA Developer Do***entation
hrea.io - docs.hrea.io - 5 days ago
- homebrew.io
afternic is a one-stop site to buy domains, sell domains, and park domains. experience the world's premiere domain marketplace and exchange reseller today. - 5 days ago
- Jakob Holderbaum
holderbaum.io
Ich schreibe über Company Building, Mindful Leadership und Personal Productivity. - 5 days ago
- Vizjer: Filmy i seriale na wyciągnięcie ręki - Oglądaj filmy i seriale.
vizjer.site
Oglądaj filmy i seriale. całe filmy z l***rem polskim lub napisami. Oglądaj seriale polskie i zagraniczne. - 5 days ago
- Hiten
hiten.io
Hiten Chowdhary's Portfolio - 5 days ago
- Hiew homepage
hiew.io - 5 days ago
- Heikki Stark
heke.io
My portfolio page - 5 days ago
- Heapy
heapy.io
Free and Open-Source software - 5 days ago
- HanLu
hanlu.io
A resume template for Jekyll and GitHub Pages sites. - 5 days ago
- Hamel’s Blog
hamel.io
A collection of technical blogs and talks on machine learning and data science. - 5 days ago
- hdoc: the modern C++ do***entation tool
hdoc.io - docs.hdoc.io
Autogenerated API do***entation. Integrated Markdown pages. Instant search. Create great C++ do***entation, painlessly. - 5 days ago
- halprin
halprin.io - 5 days ago
- Welcome to the HashLips Lab - HashLips Lab
hashlips.io - lab.hashlips.io - 5 days ago
-
Greg Virtucio
gvirtuc.io
I am Greg Virtucio. Also known as GV or gvirtucio. - 5 days ago
- Kevin Glover
glover.io
Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your do***ent head meta (for Google search results) and in your feed.xml site description. - 5 days ago
- Green Donut
greendonut.io
a port of facebook's dataloader utility, written in c# for .net core and .net framework. - 5 days ago
- Greppo
greppo.io - docs.greppo.io - 5 days ago
- ART UP MI
tilda.ws - artupmionline.tilda.ws - 5 days ago
- greghale.io - Home
greghale.io - blog.greghale.io - 5 days ago
- Go screencasts | free Golang videos
goscreencasts.io
Explorez Go (Golang) avec Kafka et Redis pour créer des microservices robustes. Découvrez patterns d'architecture, API, et systèmes distribués performants. - 5 days ago
- Rishi Goutam—Data Scientist & Software Engineer | goutam.io
goutam.io
My projects, blog, resume… - 5 days ago
- GrantShares
grantshares.io - docs.grantshares.io - 5 days ago
- googlegpt.io - github.googlegpt.io
- 5 days ago
- HOME | SWANFALL ART
swanfall.art
SWANFALL ART | Experience art, from imagination to creation, fantasy to reality, mind to mind - 5 days ago
- ([^ 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) do***ent.head.append(this.styles = dom.create.elem('style'))
this.styles.textContent = (
// Vars
`:root {
--modal-btn-***m: scale(1.055) ; --modal-btn-transition: transform 0.15s ease ;
--settings-li-transition: transform 0.1s ease ; /* for Settings entry hover-***m */
--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-***m-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: trans***(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: trans***(-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-***m) }`}
${ 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: trans***(100%) } 100% { transform: trans***(-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: !!do***ent.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()
;['anc***d', 'expanded', 'sticky', 'wider'].forEach(mode =>
(config[mode] || config[`${mode}Sidebar`]) && app.div.classList.add(mode))
update.appStyle()
;['rpg', 'rpw'].forEach(cssType => // rising particles
do***ent.head.append(dom.create.style(GM_getResourceText(`${cssType}CSS`))))
// Hide GF alert on GitHub if found
if (location.host == 'github.com') {
const gfAlert = [...do***ent.querySelectorAll('.markdown-alert')]
.find(alert => alert.textContent.includes('Greasy Fork'))
return !gfAlert ? undefined : gfAlert.style.display = 'none'
}
// APPEND to Google
app.centerCol = do***ent.querySelector('#center_col') || do***ent.querySelector('#main')
const appDivParent = env.browser.isMobile ? app.centerCol
: do***ent.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')
do***ent.head.append(dom.create.style('li#anc***d-settings-entry { display: none }'))
}
// Strip Google TRACKING
} else do***ent.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(() => do***ent.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 = do***ent.getElementById('rhs')
if (newSidebar) { newSidebar.prepend(app.div) ; sidebarObserver.disconnect() }
})
sidebarObserver.observe(do***ent.body, { subtree: true, childList: true })
setTimeout(() => sidebarObserver.disconnect(), 5000) // don't observe forever
})()
googlegpt.io - greasyfork.googlegpt.io - 5 days ago
- gluino.io
gluino.io
AI assistant - 5 days ago
- Golioth Firmware SDK: Golioth Firmware SDK
golioth.io - firmware-sdk-docs.golioth.io - 5 days ago
- GOLDFUND - Blockchain and Cryptocurrency Investment to fund Precious Metals Mining
goldfund.io - exchange.goldfund.io - 5 days ago
- Just a moment...
theopract.gitlab.io - 5 days ago