Schedule posts to Bluesky with Cloudflare workers. skyscheduler.work
cf tool bsky-tool cloudflare bluesky schedule bsky service social-media cloudflare-workers

small client improvements

+15 -3
+1
.gitignore
··· 36 36 src/css.ts 37 37 *.db 38 38 assets/js/*.min.js 39 + assets/css/*.min.css
+11 -1
assets/js/postHelper.js
··· 67 67 setElementVisible(scheduledDate.nextElementSibling, true); 68 68 showPostProgress(false); 69 69 clearOnUnloadBlocker(); 70 + content.removeEventListener("keydown", cancelThreadingKeyboard); 70 71 repostCheckbox.checked = false; 71 72 postNowCheckbox.checked = false; 72 73 hasFileLimit = false; ··· 465 466 } 466 467 } 467 468 468 - // HTMX will call this 469 + // HTMX will call these 469 470 document.addEventListener("editPost", function(event) { 470 471 const postid = event.detail.value; 471 472 const editField = document.getElementById(`edit${postid}`); ··· 518 519 return; 519 520 } 520 521 522 + content.addEventListener("keydown", cancelThreadingKeyboard); 523 + 521 524 threadField.setAttribute("rootpost", rootID); 522 525 const parentID = postDOM.hasAttribute("data-item") ? postDOM.getAttribute("data-item") : rootID; 523 526 threadField.setAttribute("parentpost", parentID); ··· 537 540 if (!cancelThreadBtn.classList.contains("hidden")) 538 541 document.dispatchEvent(new Event("resetPost")); 539 542 }); 543 + 544 + function cancelThreadingKeyboard(ev) { 545 + if (ev.key === "Escape") { 546 + ev.preventDefault(); 547 + document.dispatchEvent(new Event("resetPost")); 548 + } 549 + } 540 550 541 551 function runPageReactors() { 542 552 const keys = ["Enter", " "];
+1
package.json
··· 28 28 "minify:tribute": "minify assets/js/tributeHelper.js > assets/js/tributeHelper.min.js", 29 29 "minify:main": "minify assets/js/main.js > assets/js/main.min.js", 30 30 "minify:settings": "minify assets/js/settings.js > assets/js/settings.min.js", 31 + "minify:style": "minify assets/css/stylesheet.css > assets/css/stylesheet.min.css", 31 32 "minify": "run-p minify:*", 32 33 "types": "wrangler types src/wrangler.d.ts" 33 34 },
+1 -1
src/layout/main.tsx
··· 33 33 <script type="text/javascript" src="/dep/htmx.min.js"></script> 34 34 <script type="text/javascript" src="/dep/toastify.js"></script> 35 35 <link rel="stylesheet" href="/dep/pico.min.css" /> 36 - <link rel="stylesheet" href="/css/stylesheet.css" /> 36 + <link rel="stylesheet" href="/css/stylesheet.min.css" /> 37 37 <script type="text/javascript" src={mainScriptStr}></script> 38 38 <MetaTags /> 39 39 </head>
+1 -1
src/utils/appScripts.ts
··· 1 1 // Change this value to break out of any caching that might be happening 2 2 // for the runtime scripts (ex: main.js & postHelper.js) 3 - export const CURRENT_SCRIPT_VERSION: string = "1.4.8"; 3 + export const CURRENT_SCRIPT_VERSION: string = "1.4.9"; 4 4 5 5 export const getAppScriptStr = (scriptName: string) => `/js/${scriptName}.min.js?v=${CURRENT_SCRIPT_VERSION}`; 6 6