Parakeet is a Rust-based Bluesky AppServer aiming to implement most of the functionality required to support the Bluesky client
appview atproto bluesky rust appserver

chore(parakeet): TODO the bulk of the remaining xrpc functions

+23 -2
+23 -2
parakeet/src/xrpc/app_bsky/mod.rs
··· 11 Router::new() 12 .route("/app.bsky.actor.getProfile", get(actor::get_profile)) 13 .route("/app.bsky.actor.getProfiles", get(actor::get_profiles)) 14 .route("/app.bsky.feed.getActorFeeds", get(feed::feedgen::get_actor_feeds)) 15 .route("/app.bsky.feed.getActorLikes", get(feed::likes::get_actor_likes)) 16 .route("/app.bsky.feed.getAuthorFeed", get(feed::posts::get_author_feed)) 17 .route("/app.bsky.feed.getFeed", get(feed::posts::get_feed)) 18 .route("/app.bsky.feed.getLikes", get(feed::likes::get_likes)) 19 .route("/app.bsky.feed.getListFeed", get(feed::posts::get_list_feed)) 20 .route("/app.bsky.feed.getPostThread", get(feed::posts::get_post_thread)) 21 .route("/app.bsky.feed.getPosts", get(feed::posts::get_posts)) 22 .route("/app.bsky.feed.getQuotes", get(feed::posts::get_quotes)) 23 .route("/app.bsky.feed.getRepostedBy", get(feed::posts::get_reposted_by)) 24 - .route("/app.bsky.feed.getFeedGenerator", get(feed::feedgen::get_feed_generator)) 25 - .route("/app.bsky.feed.getFeedGenerators", get(feed::feedgen::get_feed_generators)) 26 .route("/app.bsky.graph.getActorStarterPacks", get(graph::starter_packs::get_actor_starter_packs)) 27 .route("/app.bsky.graph.getFollowers", get(graph::relations::get_followers)) 28 .route("/app.bsky.graph.getFollows", get(graph::relations::get_follows)) 29 .route("/app.bsky.graph.getList", get(graph::lists::get_list)) 30 .route("/app.bsky.graph.getListMutes", get(graph::lists::get_list_mutes)) 31 .route("/app.bsky.graph.getLists", get(graph::lists::get_lists)) 32 .route("/app.bsky.graph.getMutes", get(graph::mutes::get_mutes)) 33 .route("/app.bsky.graph.getStarterPack", get(graph::starter_packs::get_starter_pack)) 34 .route("/app.bsky.graph.getStarterPacks", get(graph::starter_packs::get_starter_packs)) 35 .route("/app.bsky.graph.muteActor", post(graph::mutes::mute_actor)) 36 .route("/app.bsky.graph.muteActorList", post(graph::mutes::mute_actor_list)) 37 .route("/app.bsky.graph.unmuteActor", post(graph::mutes::unmute_actor)) 38 .route("/app.bsky.graph.unmuteActorList", post(graph::mutes::unmute_actor_list)) 39 .route("/app.bsky.labeler.getServices", get(labeler::get_services)) 40 }
··· 11 Router::new() 12 .route("/app.bsky.actor.getProfile", get(actor::get_profile)) 13 .route("/app.bsky.actor.getProfiles", get(actor::get_profiles)) 14 + // TODO: app.bsky.actor.getSuggestions (recs) 15 + // TODO: app.bsky.actor.searchActor (search) 16 + // TODO: app.bsky.actor.searchActorTypeahead (search) 17 .route("/app.bsky.feed.getActorFeeds", get(feed::feedgen::get_actor_feeds)) 18 .route("/app.bsky.feed.getActorLikes", get(feed::likes::get_actor_likes)) 19 .route("/app.bsky.feed.getAuthorFeed", get(feed::posts::get_author_feed)) 20 .route("/app.bsky.feed.getFeed", get(feed::posts::get_feed)) 21 + .route("/app.bsky.feed.getFeedGenerator", get(feed::feedgen::get_feed_generator)) 22 + .route("/app.bsky.feed.getFeedGenerators", get(feed::feedgen::get_feed_generators)) 23 .route("/app.bsky.feed.getLikes", get(feed::likes::get_likes)) 24 .route("/app.bsky.feed.getListFeed", get(feed::posts::get_list_feed)) 25 .route("/app.bsky.feed.getPostThread", get(feed::posts::get_post_thread)) 26 .route("/app.bsky.feed.getPosts", get(feed::posts::get_posts)) 27 .route("/app.bsky.feed.getQuotes", get(feed::posts::get_quotes)) 28 .route("/app.bsky.feed.getRepostedBy", get(feed::posts::get_reposted_by)) 29 + // TODO: app.bsky.feed.getSuggestedFeeds (recs) 30 + // TODO: app.bsky.feed.getTimeline (complicated) 31 + // TODO: app.bsky.feed.searchPosts (search) 32 .route("/app.bsky.graph.getActorStarterPacks", get(graph::starter_packs::get_actor_starter_packs)) 33 + // TODO: app.bsky.graph.getBlocks 34 .route("/app.bsky.graph.getFollowers", get(graph::relations::get_followers)) 35 .route("/app.bsky.graph.getFollows", get(graph::relations::get_follows)) 36 + // TODO: app.bsky.graph.getKnownFollowers 37 .route("/app.bsky.graph.getList", get(graph::lists::get_list)) 38 + // TODO: app.bsky.graph.getListBlocks 39 .route("/app.bsky.graph.getListMutes", get(graph::lists::get_list_mutes)) 40 .route("/app.bsky.graph.getLists", get(graph::lists::get_lists)) 41 .route("/app.bsky.graph.getMutes", get(graph::mutes::get_mutes)) 42 + // TODO: app.bsky.graph.getRelationships 43 .route("/app.bsky.graph.getStarterPack", get(graph::starter_packs::get_starter_pack)) 44 .route("/app.bsky.graph.getStarterPacks", get(graph::starter_packs::get_starter_packs)) 45 + // TODO: app.bsky.graph.getSuggestedFollows (recs) 46 .route("/app.bsky.graph.muteActor", post(graph::mutes::mute_actor)) 47 .route("/app.bsky.graph.muteActorList", post(graph::mutes::mute_actor_list)) 48 + // TODO: app.bsky.graph.muteThread (notifs) 49 + // TODO: app.bsky.graph.searchStarterPacks (search) 50 .route("/app.bsky.graph.unmuteActor", post(graph::mutes::unmute_actor)) 51 .route("/app.bsky.graph.unmuteActorList", post(graph::mutes::unmute_actor_list)) 52 + // TODO: app.bsky.graph.unmuteThread (notifs) 53 .route("/app.bsky.labeler.getServices", get(labeler::get_services)) 54 + // TODO: app.bsky.notification.getPreferences 55 + // TODO: app.bsky.notification.getUnreadCount 56 + // TODO: app.bsky.notification.listActivitySubscriptions 57 + // TODO: app.bsky.notification.listNotifications 58 + // TODO: app.bsky.notification.putActivitySubscriptions 59 + // TODO: app.bsky.notification.putPreferences 60 + // TODO: app.bsky.notification.putPreferencesV2 61 }