Hi! I'm b1tranger
Skills
Blatantly took the idea from Safrid Bhueyan/Gadgets
Supports Markdown (Click outside to preview)
For convenience, use extensions like Copy as Markdown
Tries Catbox.moe first (permanent, up to 200MB); falls back to tmpfiles.org (60 min, up to ~100MB) if Catbox is blocked by CORS.
Convert & resize images instantly in your browser (no upload required).
Strips tracking parameters (UTM, fbclid, gclid, and 80+ more) from URLs — entirely in your browser, nothing is sent to any server. linkcleaner.app
Sort, deduplicate, reverse, or shuffle lines of text instantly.
${p}`).join(' ')
: '';
document.getElementById('lc-output-wrap').style.display = '';
}
function lcCopy() {
const val = document.getElementById('lc-output').value;
const successFn = () => {
document.getElementById('lc-badge').textContent = '✓ Copied!';
setTimeout(lcClean, 1800);
};
if (navigator.clipboard && window.isSecureContext) {
navigator.clipboard.writeText(val).then(successFn).catch(e => console.error(e));
} else {
try {
const t = document.createElement("textarea");
t.value = val;
t.style.position = "fixed";
t.style.opacity = "0";
document.body.appendChild(t);
t.select();
document.execCommand('copy');
t.remove();
successFn();
} catch (e) {
console.error(e);
}
}
}
function lcClear() {
document.getElementById('lc-input').value = '';
document.getElementById('lc-output-wrap').style.display = 'none';
}
// ── Text Sorter ───────────────────────────────────────────────
function tsApply(op) {
const el = document.getElementById('ts-input');
const raw = el.value;
if (!raw.trim()) return;
let lines = raw.split('\n');
let result;
switch (op) {
case 'az': result = [...lines].sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'base' })); break;
case 'za': result = [...lines].sort((a, b) => b.localeCompare(a, undefined, { sensitivity: 'base' })); break;
case 'len-asc': result = [...lines].sort((a, b) => a.length - b.length); break;
case 'len-desc': result = [...lines].sort((a, b) => b.length - a.length); break;
case 'reverse': result = [...lines].reverse(); break;
case 'shuffle': result = [...lines].sort(() => Math.random() - 0.5); break;
case 'dedup': result = [...new Map(lines.map(l => [l.trim().toLowerCase(), l])).values()]; break;
case 'trim': result = lines.map(l => l.trim()); break;
default: result = lines;
}
const out = result.join('\n');
el.value = out;
const badge = document.getElementById('ts-badge');
badge.textContent = result.length + ' line(s)';
badge.style.display = 'inline-block';
}
function tsCopy() {
const val = document.getElementById('ts-input').value;
if (!val) return;
const successFn = () => {
const badge = document.getElementById('ts-badge');
const oldText = badge.textContent;
badge.textContent = '✓ Copied!';
badge.style.display = 'inline-block';
setTimeout(() => {
const currentLines = document.getElementById('ts-input').value.split('\n').filter(l => l).length;
badge.textContent = currentLines + ' line(s)';
}, 1800);
};
if (navigator.clipboard && window.isSecureContext) {
navigator.clipboard.writeText(val).then(successFn).catch(e => console.error(e));
} else {
try {
const t = document.createElement("textarea");
t.value = val;
t.style.position = "fixed";
t.style.opacity = "0";
document.body.appendChild(t);
t.select();
document.execCommand('copy');
t.remove();
successFn();
} catch (e) {
console.error(e);
}
}
}
function tsClear() {
document.getElementById('ts-input').value = '';
document.getElementById('ts-badge').style.display = 'none';
document.getElementById('ts-input').focus();
}
Kept the duck because it's cute
And this is my pet Quail
click to see more
(still kicking and
flapping)
Social
Fiverr
more links