') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Workflow runs · cnheider/devpack · GitHub
Skip to content

Actions: cnheider/devpack

Actions

All workflows

Actions

Loading...
Loading

Showing runs from all workflows
11 workflow runs
11 workflow runs

Filter by Workflow

Filter by Event

Filter by Status

Filter by Branch

Filter by Actor

[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #54: Commit 1cc1953 pushed by pre-commit-ciBot
[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #53: Commit 6137c5b pushed by pre-commit-ciBot
1d 0h 0m 1s
[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #52: Commit 75bbba7 pushed by pre-commit-ciBot
1d 0h 0m 2s
[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #51: Commit 68a4ab4 pushed by pre-commit-ciBot
1d 0h 0m 2s
[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #50: Commit 72a538a pushed by pre-commit-ciBot
1d 0h 0m 1s
Merge branch 'release/point2'
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #48: Commit 8332c87 pushed by cnheider
1d 0h 0m 1s
[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #47: Commit db074bc pushed by pre-commit-ciBot
1d 0h 0m 1s
[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #46: Commit 53bf1e1 pushed by pre-commit-ciBot
1d 0h 0m 1s
[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #45: Commit 046b912 pushed by pre-commit-ciBot
1d 0h 0m 1s
[pre-commit.ci] pre-commit autoupdate
Publish Python 🐍 distributions 📦 to PyPI and TestPyPI #44: Commit c9cad69 pushed by pre-commit-ciBot
1d 0h 0m 5s