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

more accessibilty

respond to more keyboard strokes

+16 -7
+1 -1
assets/js/main.js
··· 37 37 el.addEventListener("click", (ev) => { 38 38 if (preventDefault) 39 39 ev.preventDefault(); 40 - callback(); 40 + callback(ev); 41 41 }); 42 42 addKeyboardListener(el, callback, keys, preventDefault); 43 43 }
+14 -5
assets/js/postHelper.js
··· 63 63 showContentLabeler(false); 64 64 setSelectDisable(repostCheckbox.parentElement, true); 65 65 setElementRequired(scheduledDate, true); 66 + setElementVisible(scheduledDate, true); 67 + setElementVisible(scheduledDate.nextElementSibling, true); 66 68 showPostProgress(false); 67 69 clearOnUnloadBlocker(); 68 70 repostCheckbox.checked = false; ··· 532 534 }); 533 535 534 536 function runPageReactors() { 537 + const keys = ["Enter", " "]; 535 538 document.querySelectorAll(".autoRepostBox").forEach(el => { 536 - el.addEventListener('click', (e) => { 539 + addClickKeyboardListener(el, (e) => { 537 540 setSelectDisable(e.target.parentElement, !e.target.checked); 538 - }); 541 + }, keys, false); 542 + /*el.addEventListener("click", (e) => { 543 + setSelectDisable(e.target.parentElement, !e.target.checked); 544 + });*/ 539 545 if (el.getAttribute("startchecked") == "true") { 540 546 setSelectDisable(el.parentElement, false); 541 547 } ··· 555 561 dateScheduler.setAttribute("min", convertTimeValueLocally(Date.now())); 556 562 557 563 if (scheduledPostNowBox) { 558 - scheduledPostNowBox.addEventListener('click', (e) => { 559 - setElementRequired(dateScheduler, !e.target.checked); 560 - }); 564 + addClickKeyboardListener(scheduledPostNowBox, () => { 565 + const isChecked = scheduledPostNowBox.checked; 566 + setElementRequired(dateScheduler, !isChecked); 567 + setElementVisible(dateScheduler, !isChecked); 568 + setElementVisible(dateScheduler.nextElementSibling, !isChecked); 569 + }, keys, false); 561 570 } 562 571 }); 563 572
+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.6"; 3 + export const CURRENT_SCRIPT_VERSION: string = "1.4.7"; 4 4 5 5 export const getAppScriptStr = (scriptName: string) => `/js/${scriptName}.min.js?v=${CURRENT_SCRIPT_VERSION}`; 6 6