All Analyzed Sites - 26.7M
- Just a moment...
aladine.gitlab.io
- 117 days ago
- Just a moment...
breizhcamp.gitlab.io
- 117 days ago
- Just a moment...
calconnect.gitlab.io
- 117 days ago
- Just a moment...
dotsquid.gitlab.io
- 117 days ago
- ethicallybound.com
*** *** toys products shipped discreetly quickly at low prices
- 117 days ago
- Just a moment...
eclufsc.gitlab.io
- 117 days ago
- Just a moment...
electrum-cash.gitlab.io
- 117 days ago
- janejupiter.com
- 117 days ago
- Full Stack Software Developer - Ishan K. Masdekar
imasdekar.gitlab.io
Resume- Full Stack Software Developer
- 117 days ago
- Distroware: Linux, BSD, OpenSolaris info archive
fabiololix.gitlab.io
None
- 117 days ago
- Likipiki
likipiki.gitlab.io
Likipiki blog
- 117 days ago
- Buy Viagra Original 100 mg online in South Africa over the counter
southafrica-ed.com
Viagra is a po***r brand of *** which treats ***ile dysfunction and this guide details everything you need to know about the drug.
- 117 days ago
- Just a moment...
patricioperpetua.gitlab.io
- 117 days ago
- Just a moment...
peaceiris.gitlab.io
- 117 days ago
- Just a moment...
pyaillet.gitlab.io
- 117 days ago
- Just a moment...
sidiousious.gitlab.io
- 117 days ago
- Just a moment...
devsecopsai.today
- 117 days ago
- Just a moment...
tndsite.gitlab.io
- 117 days ago
- Just a moment...
vidriotech.gitlab.io
- 117 days ago
- ActForest
actforest.glideapp.io
A curated overview of forest-saving projects. Donate and save our trees #action4amazon
- 117 days ago
- Nulookindia
nulookindia.com
Nulookindia.com - your source for trending Nulookindia viral video, breaking online buzz, and Indian viral content. Stay updated with the latest Nulook India viral video moments and social media trends in one place.
- 117 days ago
- Coming Soon
glados.io
- 117 days ago
- api.globalping.io
- 117 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
})()
gf.googlegpt.io
- 117 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
})()
gm.googlegpt.io
- 117 days ago
- The SOC Labs - #1 Cybersecurity News Platform
thesoclabs.com
#1 Cybersecurity News Platform
- 117 days ago
- Cybersecurity as a Service | Securing Startups
blackheathpoint.com
Cybersecurity as a service for startups, with flexible options like vCISO, ***sments, engineering, and advisory. We secure your product so that you can focus on growth.
- 117 days ago
- 500 Internal Server Error
audioc0re13944.gtsb.io
- 117 days ago
- 404
acessodigital.gupy.io
- 117 days ago
- 404
builders.gupy.io
a builders é um espaço para você gerar mudanças, se conectar com outras pessoas, aprender com os erros e absorver conhecimento. confira nossa página de carreiras e saiba mais sobre a nossa cultura, confira depoimentos de pessoas que fazem parte do nosso time e veja as nossas oportunidades em aberto.
- 117 days ago
- Andrea Giunio Bruni
giun.io
- 117 days ago
- Купить аккаунты с токенами для BongaCams и минуты CooMeet Premium – LEKSA-TOKENS
leksa-tokens.com
Купить аккаунты с токенами для BongaCams и минуты CooMeet Premium в магазине LEKSA-TOKENS. Быстрая доставка, круглосуточная поддержка и анонимность. Получите доступ к эксклюзивным функциям популярных платформ с нашими готовыми аккаунтами и услугами.
- 117 days ago
- Contact Support
ameliadivine.com
- 117 days ago
- TeagraCMGUI - Efficient TegraRCM Payload Injector Tool
tegrarcmgui.com
TegraRCMGUI - A user-friendly tool for injecting payloads into Tegra-powered devices, offering efficiency and ease of use. Download now!
- 117 days ago
- goci.io - Infrastrucutre Automation, Cloud Consulting and more
goci.io
We help to make informed decisions about Cloud setups and automate most of what we do, wherever possible
- 117 days ago
- gographs
gographs.io
Dependency graphs for Go packages.
- 117 days ago
- technologic
grba.io
It will eventually work.
- 117 days ago
- groundx.io
groundx.io
- 117 days ago
- stepfantasy***.com
stepfantasy*** offers you over 30.000 step fantasy *** videos for you to watch completely free of charge. new videos are added every day!
- 117 days ago
- Holographics Do***entation
docs.hologfx.io
- 117 days ago
- hogg.io
Harrison Hogg's portfolio website, showcases experience, projects and placements
- 117 days ago
- React App
iimu7-hiaaa-aaaak-qaata-cai.icp0.io
Web site created using create-react-app
- 117 days ago
- Hypernote
hypernote.io
- 117 days ago
- We've got some trouble | 500 - Internal Server Error
gwst.io
this is the professional website for greg westneat. you can find information about projects i've worked on and get in touch.
- 117 days ago
- GitHub - NodyHub/gurke.io
gurke.io
Contribute to NodyHub/gurke.io development by creating an account on GitHub.
- 117 days ago
- hexform.io
- 117 days ago
- Page not found · GitHub · GitHub
immutables.io
GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.
- 117 days ago
- Grow Up To 2" In Length & 1" In Girth In Just 91 Days
enlargementsecret.com
World-Renowned *** Enlargement Expert Unveils the Fastest Way to PERMANENTLY Increase Your *** Size! Results Are Guaranteed Or Your Money Back!
- 117 days ago
- My Portfolio
inder.io
- 117 days ago
- SpermX Pro – Official Website
spermxpro.com
- 117 days ago