Schedule posts to Bluesky with Cloudflare workers. skyscheduler.work
cf tool bsky-tool cloudflare bluesky schedule bsky service social-media cloudflare-workers
at main 34 lines 1.7 kB view raw
1import { MAX_POSTED_LENGTH } from "../limits"; 2import RetweetOptions from "./options/retweetOptions"; 3import ScheduleOptions from "./options/scheduleOptions"; 4 5export function MakeRetweet() { 6 return (<article> 7 <header> 8 <h4>Schedule New Retweet</h4> 9 </header> 10 <form id="repostForm" novalidate> 11 <article> 12 <header>Post To Retweet</header> 13 <input type="text" id="repostRecordURL" placeholder="https://" /> 14 <small>This must be a post, it cannot be anything else. 15 The post must also exist, and be reachable at the scheduled time 16 (i.e. a post that's not deleted, nor are you forbidden from seeing it)</small> 17 <blockquote id="repostTitleSection"> 18 <label for="repostTitle">Retweet Title <small>(Optional)</small></label> 19 <input type="text" id="repostTitle" maxlength={MAX_POSTED_LENGTH} placeholder="Leave blank to use existing/generated title" /> 20 <small>A name or simple phrase to help you organize retweets. Max {MAX_POSTED_LENGTH} characters. Will update existing titles, cannot be used on scheduled posts.</small> 21 </blockquote> 22 </article> 23 <ScheduleOptions timeID="repostTime" allowNow={false} type="retweet" header="Retweet At" /> 24 <article> 25 <header>Retweet Cadance</header> 26 <RetweetOptions id="makeRepostOptions" contentType="post" timeString="the time above" checkboxLabel="Should Retweet multiple times?" /> 27 <footer>This will schedule additional retweets starting from the time set in the previous section</footer> 28 </article> 29 <footer> 30 <button id="makingRepostRequest" type="submit" class="w-full primary">Schedule Retweet</button> 31 </footer> 32 </form> 33 </article>); 34};