Last active
October 21, 2023 17:17
-
-
Save xbalaji/28c2e8963c72070ce431306e0616fdb2 to your computer and use it in GitHub Desktop.
gist-access-download-bookmark
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env bash | |
function get_public_gists() | |
{ | |
for uid in ${@} | |
do | |
curl -sk -o - "https://api.github.com/users/${uid}/gists?per_page=200" | jq -r --arg dx $uid '.[].files[]| "-sk --create-dirs -o \($dx)/\(.filename) \(.raw_url)"' | xargs -t -L 1 curl | |
done | |
} | |
get_public_gists xbalaji xbalajipge | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export gist_rawurl="https://gist.githubusercontent.com/xbalaji/28c2e8963c72070ce431306e0616fdb2/raw/gist-make-bookmark.sh" | |
curl -sk "${gist_rawurl}" | sed -e "s,.*<script>,,g;s,</script>$,,g" | js-beautify -s2 | sed -e "1i\<script>" -e "\$a</script>" > in.html | |
# edit in.html, validate your changes | |
tr -s " " <in.html | tr -d "\n" | sed -e 's#^#data:text/html,#g;$a\' | tee out.js | |
# save out.js to "gist-make-bookmark.sh" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
data:text/html,<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"><script>document.addEventListener("DOMContentLoaded", function() { /* comments has to be single line only */ const mkText = t => document.createTextNode(t); const mkLink = (t, href) => { let anc = document.createElement("a"); anc.setAttribute("href", href); anc.setAttribute("target", "_blank"); anc.textContent = t; return anc; }; function addRow(tr, idata, itransform = mkText, ...transformArgs) { let td = document.createElement("td"); td.appendChild(itransform(idata, ...transformArgs)); tr.appendChild(td); }; function addRowHeader(idata, itransform = mkText, ...transformArgs) { let tr = document.createElement("tr"); for (let cell of idata) { let th = document.createElement("th"); th.appendChild(itransform(cell, ...transformArgs)); th.classList.add("position-sticky"); th.style.top = "0"; tr.appendChild(th); } return tr; }; /* create a table element */ let container = document.createElement("div"); let tbl = document.createElement("table"); let tb = document.createElement("tbody"); let th = document.createElement("thead"); container.classList.add("container", "mt-5"); tbl.classList.add("table", "table-hover", "table-sm", "table-condensed"); th.appendChild(addRowHeader(["S.No", "Raw", "Edit", "URL"])); th.classList.add("thead-dark"); tbl.appendChild(th); tbl.appendChild(tb); container.appendChild(tbl); let sno = 0; fetch("https://api.github.com/users/xbalaji/gists?per_page=150").then(resp => resp.json()).then(gists => { document.body.appendChild(container); let files = gists.flatMap(gist => Object.values(gist.files).map(file => Object.assign(file, { owner: gist.owner.login, id: gist.id, gist_url: gist.html_url, }))); console.log(files); files.sort((file1, file2) => { return file1.filename.localeCompare(file2.filename); }); for (let file of files) { sno += 1; let tr = document.createElement("tr"); addRow(tr, sno.toString().padStart(2, '0')); addRow(tr, "raw", mkLink, file.raw_url); addRow(tr, "edit", mkLink, "https://gist.github.com/" + file.owner + "/" + file.id + "/edit"); addRow(tr, file.filename, mkLink, file.gist_url); tb.appendChild(tr); }; });})</script> | |
data:text/html,<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"><script>document.addEventListener("DOMContentLoaded", function() { let gitUserId = prompt("Enter github id", "xbalaji"); /* comments has to be single line only */ const mkText = t => document.createTextNode(t); const mkLink = (t, href) => { let anc = document.createElement("a"); anc.setAttribute("href", href); anc.setAttribute("target", "_blank"); anc.textContent = t; return anc; }; function addRow(tr, idata, itransform = mkText, ...transformArgs) { let td = document.createElement("td"); td.appendChild(itransform(idata, ...transformArgs)); tr.appendChild(td); }; function addRowHeader(idata, itransform = mkText, ...transformArgs) { let tr = document.createElement("tr"); for (let cell of idata) { let th = document.createElement("th"); th.appendChild(itransform(cell, ...transformArgs)); th.classList.add("position-sticky"); th.style.top = "0"; tr.appendChild(th); } return tr; }; /* create a table element */ let container = document.createElement("div"); let tbl = document.createElement("table"); let tb = document.createElement("tbody"); let th = document.createElement("thead"); container.classList.add("container", "mt-5"); tbl.classList.add("table", "table-hover", "table-sm", "table-condensed"); th.appendChild(addRowHeader(["S.No", "Raw", "Edit", "URL"])); th.classList.add("thead-dark"); tbl.appendChild(th); tbl.appendChild(tb); container.appendChild(tbl); let sno = 0; fetch(`https://api.github.com/users/${gitUserId}/gists?per_page=150`).then(resp => resp.json()).then(gists => { document.body.appendChild(container); let files = gists.flatMap(gist => Object.values(gist.files).map(file => Object.assign(file, { owner: gist.owner.login, id: gist.id, gist_url: gist.html_url, }))); console.log(files); files.sort((file1, file2) => { return file1.filename.localeCompare(file2.filename); }); for (let file of files) { sno += 1; let tr = document.createElement("tr"); addRow(tr, sno.toString().padStart(2, "0")); addRow(tr, "raw", mkLink, file.raw_url); addRow(tr, "edit", mkLink, "https://gist.github.com/" + file.owner + "/" + file.id + "/edit"); addRow(tr, file.filename, mkLink, file.gist_url); tb.appendChild(tr); }; });})</script> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
curl -sk "https://api.github.com/users/xbalaji/gists?per_page=100" | jq -r '.[].files[] | [.filename, .raw_url] | @tsv' | sort | column -t --table-columns "FileName,RawUrl" | |
curl -sk "https://api.github.com/users/xbalaji/gists?per_page=100" | jq -r '.[] | {html_url:.html_url, files:.files[]} | [.files.filename, .html_url] | @tsv' | sort | column -t --table-columns "FileName,HtmlUrl"| nl | |
curl -sk "https://api.github.com/users/xbalaji/gists?per_page=200" | jq -r '.[].files[].filename' | sort | |
curl -sk "https://api.github.com/users/xbalaji/gists?per_page=200" | jq -r '.[].files| to_entries[] | .key' | sort | |
wget -qL -O - "https://api.github.com/users/xbalaji/gists?per_page=100" | jq -r '.[].files[].filename' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment