Schedule posts to Bluesky with Cloudflare workers.
skyscheduler.work
cf
tool
bsky-tool
cloudflare
bluesky
schedule
bsky
service
social-media
cloudflare-workers
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};