1<!doctype html> 2<html lang="en-GB"> 3<head> 4<meta name="viewport" content="initial-scale=1, width=device-width"> 5<meta charset="UTF-8"> 6<meta name="author" content="soe.fm"> 7<meta name="copyright" content="Copyright (c)2026 soe.fm"> 8<meta name="generator" content="soe.media"> 9<meta name="keywords" content="Artists, Sound of Eastside"> 10<link rel="profile" href="http://gmpg.org/xfn/11"> 11<meta name="description" content="Here you will find the Sound of Eastside artists."> 12<title>Artists - Sound of Eastside</title> 13<meta property="fb:app_id" content="1075777299150306"> 14<meta property="og:image:width" content="1200"> 15<meta property="og:image:height" content="627"> 16<meta property="og:title" content="Artists"> 17<meta property="og:description" content="Here you will find the Sound of Eastside artists."> 18<meta property="og:type" content="website"> 19<meta property="og:url" content="https://soe.fm/artists/"> 20<meta property="og:image" content="https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/images/generic/generic_ogimg.jpg"> 21<meta name="twitter:card" content="summary"> 22<meta name="twitter:domain" content="https://soe.fm"> 23<meta name="twitter:url" content="https://soe.fm/artists/"> 24<meta name="twitter:title" content="Artists"> 25<meta name="twitter:description" content="Here you will find the Sound of Eastside artists."> 26<meta name="twitter:image:src" content="https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/images/generic/generic_ogimg.jpg"> 27<meta name='robots' content='max-image-preview:large' /> 28<link rel="alternate" type="application/rss+xml" title="Sound of Eastside » Feed" href="https://soe.fm/feed/" /> 29<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://soe.fm/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsoe.fm%2Fartists%2F" /> 30<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://soe.fm/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fsoe.fm%2Fartists%2F&format=xml" /> 31<style id="wp-img-auto-sizes-contain-inline-css"> 32img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 33/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 34</style> 35 36<style id="global-styles-inline-css"> 37:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
37--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
37.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 38/*# sourceURL=global-styles-inline-css */ 39</style> 40 41<link rel='stylesheet' id='bootstrap-4-css' href='https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/bootstrap/css/bootstrap.min.css?ver=v4.6' media='all' /> 42<link rel='stylesheet' id='fontawesome-css-css' href='https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/fonts/fontawesome/css/all.min.css?ver=v5.7.2' media='all' /> 43<link rel='stylesheet' id='lity-style-css' href='https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/lity/lity.min.css' media='all' /> 44<link rel='stylesheet' id='parent-style-css' href='https://soe.fm/wp-content/themes/wp-bootstrap-4/style.css' media='all' /> 45<link rel='stylesheet' id='wp-bootstrap-4-style-css' href='https://soe.fm/wp-content/themes/wp-bootstrap-4-child/style.css?ver=1.0.2' media='all' /> 46<link rel="https://api.w.org/" href="https://soe.fm/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://soe.fm/wp-json/wp/v2/pages/81" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://soe.fm/xmlrpc.php?rsd" /> 47<link rel="canonical" href="https://soe.fm/artists/" /> 48<link rel='shortlink' href='https://soe.fm/?p=81' /> 49<meta name="og:url" content="https://soe.fm/artists/" /><link rel="icon" href="https://soe.fm/wp-content/uploads/2020/03/cropped-index-32x32.png" sizes="32x32" /> 50<link rel="icon" href="https://soe.fm/wp-content/uploads/2020/03/cropped-index-192x192.png" sizes="192x192" /> 51<link rel="apple-touch-icon" href="https://soe.fm/wp-content/uploads/2020/03/cropped-index-180x180.png" /> 52<meta name="msapplication-TileImage" content="https://soe.fm/wp-content/uploads/2020/03/cropped-index-270x270.png" /> 53</head> 54<body class="wp-singular page-template-default page page-id-81 wp-theme-wp-bootstrap-4 wp-child-theme-wp-bootstrap-4-child bg-white header-top slug-artists"> 55 56<div id="page" class="site"> 57 <a class="skip-link screen-reader-text" href="#content">Skip to content</a> 58 59 <header id="masthead" class="site-header fixed-top"> 60 <nav id="site-navigation" class="main-navigation navbar navbar-expand-lg navbar-dark bg-dark"> 61 <div class="container"> 62 <div class="site-branding-text"> 63 <div class="site-title h3 mb-0"><a href="https://soe.fm/" rel="home" class="navbar-brand mb-0"> 64 Sound of Eastside</a></div> 65 </div> 66 <button class="navbar-toggler" id="animated-toggler" type="button" data-toggle="collapse" data-target="#primary-menu-wrap" aria-controls="primary-menu-wrap" aria-expanded="false" aria-label="Toggle navigation"> 67 <span></span> 68 <span></span> 69 <span></span> 70 </button> 71 <div id="primary-menu-wrap" class="collapse navbar-collapse offcanvas-collapse mt-2 mt-lg-0"><ul id="primary-menu" class="navbar-nav ml-auto"><li class="nav-item active menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-81 current_page_item"><a href="https://soe.fm/artists/" class="nav-link">Artists</a></li> 72<li class="nav-item menu-item menu-item-type-custom menu-item-object-custom"><a href="/podcasts" class="nav-link">Podcasts</a></li> 73<li class="nav-item menu-item menu-item-type-custom menu-item-object-custom"><a href="/guests" class="nav-link">Guests</a></li> 74<li class="nav-item menu-item menu-item-type-custom menu-item-object-custom"><a href="/events" class="nav-link">Events</a></li> 75</ul></div> </div><!-- /.container --> </nav><!-- #site-navigation --> 76 </header><!-- #masthead --> 77
78 <div id="content" class="site-content"> 79<div class="container mt-30"> 80<main id="main" class="site-main"> 81<h1 class="text-center text-uppercase font-weight-300 line-behind mb-30"><span class="bg-white px-4">Artists</span></h1> 82<div class="row"> 83<div class="col-sm-12 col-md-6 col-lg-4 mb-30"> 84<a class="d-block card text-reset text-decoration-none shadow-sm featured-thumb h-100 artist-card" href="https://soe.fm/ronny-gee/" title="Ronny Gee"> 85<div class="overflow-hidden"> 86<img src="https://soe.fm/wp-content/uploads/2020/03/Ronny-Gee-800x800.jpg" class="img-fluid w-100" alt="Artist-Image: Ronny Gee"> 87</div> 88<div class="card-body text-center"> 89<h3 class="card-title h4 font-eurostile mb-0">Ronny Gee</h3> 90</div> 91</a> 92</div> 93<div class="col-sm-12 col-md-6 col-lg-4 mb-30"> 94<a class="d-block card text-reset text-decoration-none shadow-sm featured-thumb h-100 artist-card" href="https://soe.fm/dextar/" title="Dextar"> 95<div class="overflow-hidden"> 96<img src="https://soe.fm/wp-content/uploads/2023/07/dextar-800x800.jpg" class="img-fluid w-100" alt="Artist-Image: Dextar"> 97</div> 98<div class="card-body text-center"> 99<h3 class="card-title h4 font-eurostile mb-0">Dextar</h3> 100</div> 101</a> 102</div> 103<div class="col-sm-12 col-md-6 col-lg-4 mb-30"> 104<a class="d-block card text-reset text-decoration-none shadow-sm featured-thumb h-100 artist-card" href="https://soe.fm/death-mode/" title="Death Mode"> 105<div class="overflow-hidden"> 106<img src="https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/images/generic/generic_1000x1000.jpg" class="img-fluid w-100" alt="Generic Artist-Image"> 107</div> 108<div class="card-body text-center"> 109<h3 class="card-title h4 font-eurostile mb-0">Death Mode</h3> 110</div> 111</a> 112</div> 113</div> 114</main> 115</div> 116 117 </div><!-- #content --> 118 119 <footer id="colophon" class="site-footer border-top bg-white mt-4 text-muted"> 120 121<section class="footer-widgets text-left"> 122<div class="container"> 123<div class="row"> 124<div class="col-md-12 col-lg-6"> 125<aside class="widget-area footer-1-area mb-2"> 126<section id="text-5" class="widget wp-bp-footer-widget widget_text"><h5 class="widget-title">About</h5> <div class="textwidget"><p class="footer-contact">Sound of Eastside is not a style, it is rather a brand. It reflects the experience of more than 25 years of two DJs who always are looking for new and fresh sounds, ranging from Electronica to Techno – seasoned with a propensity for a healthy Underground attitude, but without losing themselves. It offers an alternative for the older generation with a careful selection of the best club sounds and artists.</p> 127</div> 128 </section></aside> 129</div> 130<div class="col-md-12 col-lg-6"> 131<aside class="widget-area footer-2-area mb-2"> 132<section id="search-3" class="widget wp-bp-footer-widget widget_search"><h5 class="widget-title">Search</h5><form role="search" method="get" class="searchform wp-bootstrap-4-searchform" action="https://soe.fm/"> 133 <div class="form-group mb-0"> 134 <label class="sr-only" for="mainsearch">Search</label> 135 <div class="input-group"> 136 <input type="text" class="form-control rounded-0 s" name="s" id="mainsearch" placeholder="Type…" value="" > 137 <div class="input-group-append"> 138 <button class="btn btn-outline-secondary rounded-0" type="submit"><i class="fas fa-search" aria-hidden="true"></i><span class="sr-only">Search</span></button> 139 </div> 140 </div> 141 </div> 142</form> 143</section><section id="contact-4" class="widget wp-bp-footer-widget widget_contact"><h5 class="widget-title">Contact</h5><div class="row mb-30"> 144<div class="col-md-3"> 145<a href="https://www.facebook.com/soundofeastside" target="_blank" class="media py-2 text-decoration-none" title="Facebook"> 146 <i class="fab fa-facebook-square fa-2x fa-fw align-self-start mr-1 text-muted" aria-hidden="true"></i> 147 <div class="media-body align-self-center"> 148 <p class="h6 mb-0">Facebook</p> 149 </div> 150</a> 151</div> 152<div class="col-md-3"> 153<a href="mailto:[email protected]" target="_blank" class="media py-2 text-decoration-none" title="E-Mail"> 154 <i class="fas fa-at fa-2x fa-fw align-self-start mr-1 text-muted" aria-hidden="true"></i> 155 <div class="media-body align-self-center"> 156 <p class="h6 mb-0">E-Mail</p> 157 </div> 158</a> 159</div> 160</div> 161</section></aside> 162</div> 163</div> 164</div> 165</section> 166 <div class="container text-center"> 167 <div class="site-info small"> 168 <p class="m-0"><a href="/imprint">Imprint</a> <span class="sep"> | </span> <a href="/privacy-policy">Privacy Policy</a></p> 169 © 2026 soe.fm 170 </div><!-- .site-info --> 171 </div> 172 <!-- /.container --> 173 </footer><!-- #colophon --> 174</div><!-- #page --> 175
176<script type="speculationrules"> 177{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/wp-bootstrap-4-child/*","/wp-content/themes/wp-bootstrap-4/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 178</script>
178 179
179<script id="independent-analytics-script" > 180 // Do not change this comment line otherwise Speed Optimizer won't be able to detect this script 181 182 (function () { 183 function sendRequest(url, body) { 184 if(!window.fetch) { 185 const xhr = new XMLHttpRequest(); 186 xhr.open("POST", url, true); 187 xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 188 xhr.send(JSON.stringify(body)) 189 return 190 } 191 192 const request = fetch(url, { 193 method: 'POST', 194 body: JSON.stringify(body), 195 keepalive: true, 196 headers: { 197 'Content-Type': 'application/json;charset=UTF-8' 198 } 199 }); 200 } 201 const calculateParentDistance = (child, parent) => { 202 let count = 0; 203 let currentElement = child; 204 205 // Traverse up the DOM tree until we reach parent or the top of the DOM 206 while (currentElement && currentElement !== parent) { 207 currentElement = currentElement.parentNode; 208 count++; 209 } 210 211 // If parent was not found in the hierarchy, return -1 212 if (!currentElement) { 213 return -1; // Indicates parent is not an ancestor of element 214 } 215 216 return count; // Number of layers between element and parent 217 } 218 const isMatchingClass = (linkRule, href, classes, ids) => { 219 return classes.includes(linkRule.value) 220 } 221 const isMatchingId = (linkRule, href, classes, ids) => { 222 return ids.includes(linkRule.value) 223 } 224 const isMatchingDomain = (linkRule, href, classes, ids) => { 225 if(!URL.canParse(href)) { 226 return false 227 } 228 229 const url = new URL(href) 230 const host = url.host 231 const hostsToMatch = [host] 232 233 if(host.startsWith('www.')) { 234 hostsToMatch.push(host.substring(4)) 235 } else { 236 hostsToMatch.push('www.' + host) 237 } 238 239 return hostsToMatch.includes(linkRule.value) 240 } 241 const isMatchingExtension = (linkRule, href, classes, ids) => { 242 if(!URL.canParse(href)) { 243 return false 244 } 245 246 const url = new URL(href) 247 248 return url.pathname.endsWith('.' + linkRule.value) 249 } 250 const isMatchingSubdirectory = (linkRule, href, classes, ids) => { 251 if(!URL.canParse(href)) { 252 return false 253 } 254 255 const url = new URL(href) 256 257 return url.pathname.startsWith('/' + linkRule.value + '/') 258 } 259 const isMatchingProtocol = (linkRule, href, classes, ids) => { 260 if(!URL.canParse(href)) { 261 return false 262 } 263 264 const url = new URL(href) 265 266 return url.protocol === linkRule.value + ':' 267 } 268 const isMatchingExternal = (linkRule, href, classes, ids) => { 269 if(!URL.canParse(href) || !URL.canParse(document.location.href)) { 270 return false 271 } 272 273 const matchingProtocols = ['http:', 'https:'] 274 const siteUrl = new URL(document.location.href) 275 const linkUrl = new URL(href) 276 277 // Links to subdomains will appear to be external matches according to JavaScript, 278 // but the PHP rules will filter those events out. 279 return matchingProtocols.includes(linkUrl.protocol) && siteUrl.host !== linkUrl.host 280 } 281 const isMatch = (linkRule, href, classes, ids) => { 282 switch (linkRule.type) { 283 case 'class': 284 return isMatchingClass(linkRule, href, classes, ids) 285 case 'id': 286 return isMatchingId(linkRule, href, classes, ids) 287 case 'domain': 288 return isMatchingDomain(linkRule, href, classes, ids) 289 case 'extension': 290 return isMatchingExtension(linkRule, href, classes, ids) 291 case 'subdirectory': 292 return isMatchingSubdirectory(linkRule, href, classes, ids) 293 case 'protocol': 294 return isMatchingProtocol(linkRule, href, classes, ids) 295 case 'external': 296 return isMatchingExternal(linkRule, href, classes, ids) 297 default: 298 return false;
299 } 300 } 301 const track = (element) => { 302 const href = element.href ?? null 303 const classes = Array.from(element.classList) 304 const ids = [element.id] 305 const linkRules = [{"type":"extension","value":"pdf"},{"type":"extension","value":"zip"},{"type":"protocol","value":"mailto"},{"type":"protocol","value":"tel"}] 306 if(linkRules.length === 0) { 307 return 308 } 309 310 // For link rules that target an id, we need to allow that id to appear 311 // in any ancestor up to the 7th ancestor. This loop looks for those matches 312 // and counts them. 313 linkRules.forEach((linkRule) => { 314 if(linkRule.type !== 'id') { 315 return; 316 } 317 318 const matchingAncestor = element.closest('#' + linkRule.value) 319 320 if(!matchingAncestor || matchingAncestor.matches('html, body')) { 321 return; 322 } 323 324 const depth = calculateParentDistance(element, matchingAncestor) 325 326 if(depth < 7) { 327 ids.push(linkRule.value) 328 } 329 }); 330 331 // For link rules that target a class, we need to allow that class to appear 332 // in any ancestor up to the 7th ancestor. This loop looks for those matches 333 // and counts them. 334 linkRules.forEach((linkRule) => { 335 if(linkRule.type !== 'class') { 336 return; 337 } 338 339 const matchingAncestor = element.closest('.' + linkRule.value) 340 341 if(!matchingAncestor || matchingAncestor.matches('html, body')) { 342 return; 343 } 344 345 const depth = calculateParentDistance(element, matchingAncestor) 346 347 if(depth < 7) { 348 classes.push(linkRule.value) 349 } 350 }); 351 352 const hasMatch = linkRules.some((linkRule) => { 353 return isMatch(linkRule, href, classes, ids) 354 }) 355 356 if(!hasMatch) { 357 return 358 } 359 360 const url = "https://soe.fm/wp-content/plugins/independent-analytics-pro/iawp-click-endpoint.php"; 361 const siteId = ""; 362 const body = { 363 href: href, 364 classes: classes.join(' '), 365 ids: ids.join(' '), 366 siteId: siteId, 367 ...{"payload":{"resource":"singular","singular_id":81,"page":1},"signature":"7bcf2dcf3038522c757a4391f8c56468"} }; 368 369 sendRequest(url, body) 370 } 371 let hasSearched = false; 372 function search() { 373 if(hasSearched) { 374 return; 375 } 376 hasSearched = true; 377 378 if (document.hasOwnProperty("visibilityState") && document.visibilityState === "prerender") { 379 return; 380 } 381 382 if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) { 383 return; 384 } 385 386 let referrer_url = null; 387 388 if (typeof document.referrer === 'string' && document.referrer.length > 0) { 389 referrer_url = document.referrer; 390 } 391 392 const params = location.search.slice(1).split('&').reduce((acc, s) => { 393 const [k, v] = s.split('='); 394 return Object.assign(acc, {[k]: v}); 395 }, {}); 396 397 const url = "https://soe.fm/wp-json/iawp/search"; 398 const body = { 399 referrer_url, 400 utm_source: params.utm_source, 401 utm_medium: params.utm_medium, 402 utm_campaign: params.utm_campaign, 403 utm_term: params.utm_term,
404 utm_content: params.utm_content, 405 gclid: params.gclid, 406 ...{"payload":{"resource":"singular","singular_id":81,"page":1},"signature":"7bcf2dcf3038522c757a4391f8c56468"} }; 407 408 sendRequest(url, body) 409 } 410 document.addEventListener('mousedown', function (event) { 411 if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) { 412 return; 413 } 414 415 const element = event.target.closest('a') 416 417 if(!element) { 418 return 419 } 420 421 const isPro = true 422 if(!isPro) { 423 return 424 } 425 426 // Don't track left clicks with this event. The click event is used for that. 427 if(event.button === 0) { 428 return 429 } 430 431 track(element) 432 }) 433 document.addEventListener('click', function (event) { 434 if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) { 435 return; 436 } 437 438 const element = event.target.closest('a, button, input[type="submit"], input[type="button"]') 439 440 if(!element) { 441 return 442 } 443 444 const isPro = true 445 if(!isPro) { 446 return 447 } 448 449 track(element) 450 }) 451 document.addEventListener('play', function (event) { 452 if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) { 453 return; 454 } 455 456 const element = event.target.closest('audio, video') 457 458 if(!element) { 459 return 460 } 461 462 const isPro = true 463 if(!isPro) { 464 return 465 } 466 467 track(element) 468 }, true) 469 document.addEventListener("DOMContentLoaded", function (e) { 470 search(); 471 }); 472 document.addEventListener("iawpSearch", function (e) { 473 search(); 474 }); 475 })(); 476 </script>
476 477
477<script id='kirki-viewport-lists'>var kirkiViewports = {"md":{"value":1200,"scale":1,"minWidth":1200,"maxWidth":1200,"title":"Desktop","icon":"desktop","activeIcon":"desktop-hover","details":"Styles added here will be applied globally.","guides":null,"id":"md","type":"max"},"tablet":{"value":991,"scale":1,"minWidth":991,"maxWidth":991,"title":"Tablet","icon":"tablet-default","activeIcon":"tablet-hover","details":"Styles added here will apply at 991px and below.","guides":null,"type":"max","id":"tablet"},"mobileLandscape":{"value":767,"scale":1,"minWidth":767,"maxWidth":767,"title":"Landscape","icon":"phone-hr-default","activeIcon":"phone-hr-hover","details":"Styles added here will apply at 767px and below.","guides":null,"type":"max","id":"mobileLandscape"},"mobile":{"value":575,"scale":1,"minWidth":575,"maxWidth":575,"title":"Mobile","icon":"phone-vr-default","activeIcon":"phone-vr-hover","details":"Styles added here will apply at 575px and below.","guides":null,"type":"max","id":"mobile"}};</script>
477<script id='kirki-variable-lists'>var kirkiCSSVariable = {"data":[{"title":"Colors","key":"color","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Numbers","key":"size","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Text Styles","key":"text-style","modes":[{"title":"Default","key":"default"}],"variables":[]},{"title":"Font Family","key":"font-family","modes":[{"title":"Default","key":"default"}],"variables":[]}]};</script>
477<script id="kirki-api-and-nonce"> 478 window.wp_kirki = { 479 ajaxUrl: "https://soe.fm/wp-admin/admin-ajax.php", 480 restUrl: "https://soe.fm/wp-json/", 481 siteUrl: "https://soe.fm", 482 apiVersion: "v1", 483 postId: "81", 484 nonce: "5520223a6f", 485 call_from: "", 486 templateId: "", 487 context: {"id":81,"type":"post"} 488 }; 489 </script>
489<script id="jquery-js" src="https://soe.fm/wp-content/plugins/jquery-add/js/jquery-3.6.3.min.js?ver=3.6.3"></script>
vendor: 1 bytes, line 489
489
490<script id="popper-js-js" src="https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/js/popper.min.js?ver=v1.16.1"></script>
vendor: 1 bytes, line 490
490
491<script id="bootstrap-4-js-js" src="https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/bootstrap/js/bootstrap.min.js?ver=v4.6"></script>
vendor: 1 bytes, line 491
491
492<script id="lity-js-js" src="https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/lity/lity.min.js?ver=v2.4.1"></script>
vendor: 1 bytes, line 492
492
493<script id="custom-js-js" src="https://soe.fm/wp-content/themes/wp-bootstrap-4-child/assets/js/custom.js?ver=v1.0"></script>
vendor: 1 bytes, line 493
493
494<script id="icwp-wpsf-silentcaptcha-js-extra"> 495var shield_vars_silentcaptcha = {"strings":{"select_action":"Please select an action to perform.","are_you_sure":"Are you sure?","absolutely_sure":"Are you absolutely sure?","cancel":"Cancel","close":"Close","confirm":"Confirm","dialog_alert_title":"Notice","dialog_confirm_title":"Confirm Action","dialog_prompt_title":"Information Required","request_failed":"Request Failed","table_loading":"Loading table data.","scan_repair_limit_exceeded":"Sorry, this tool isn't designed for such large repairs. We recommend completely removing and reinstalling the item."},"comps":{"silentcaptcha":{"ajax":{"silentcaptcha":{"action":"shield_action","ex":"capture_not_bot","exnonce":"4b3f4ab034","ajaxurl":"https://soe.fm/wp-admin/admin-ajax.php","_wpnonce":"5520223a6f","_rest_url":"https://soe.fm/wp-json/shield/v1/action/capture_not_bot?exnonce=4b3f4ab034&_wpnonce=5520223a6f"}},"flags":{"skip":false,"required":true}}}}; 496//# sourceURL=icwp-wpsf-silentcaptcha-js-extra 497</script>
vendor: 1 bytes, line 497
497
498<script id="icwp-wpsf-silentcaptcha-js" src="https://soe.fm/wp-content/plugins/wp-simple-firewall/assets/dist/shield-silentcaptcha.bundle.js?ver=22.2.3&mtime=1790287947&ver=22.2.3"></script>
498 499<div class="scroll-to-top"><i class="fas fa-angle-up"></i></div> 500</body> 501</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.