diff --git a/rsky-feedgen/src/apis/mod.rs b/rsky-feedgen/src/apis/mod.rs index 9faecb15..5d039eca 100644 --- a/rsky-feedgen/src/apis/mod.rs +++ b/rsky-feedgen/src/apis/mod.rs @@ -699,7 +699,9 @@ pub async fn queue_creation( hashtags.contains("#addtoblacksky") || hashtags.contains("#blackademics") || hashtags.contains("#addtoblackskytravel") || - hashtags.contains("#blackskytravel")) && + hashtags.contains("#blackskytravel") || + hashtags.contains("#addtoblackmedsky") || + hashtags.contains("#blackmedsky")) && !is_blocked && !hashtags.contains("#private") && !hashtags.contains("#nofeed") && @@ -752,6 +754,16 @@ pub async fn queue_creation( ); new_members.push(new_member); } + if hashtags.contains("#addtoblackmedsky") && !is_member { + println!("New BlackMedSky member: {:?}", &req.author); + let new_member = ( + MembershipSchema::did.eq(req.author.clone()), + MembershipSchema::included.eq(true), + MembershipSchema::excluded.eq(false), + MembershipSchema::list.eq("blacksky-med") + ); + new_members.push(new_member); + } /* TEMP REMOVING THIS FEATURE AS IT'S CREATING SPAM if hashtags.contains("#addtoblacksky") && is_member && diff --git a/rsky-feedgen/src/routes.rs b/rsky-feedgen/src/routes.rs index 9d979b4a..db823e60 100644 --- a/rsky-feedgen/src/routes.rs +++ b/rsky-feedgen/src/routes.rs @@ -88,6 +88,8 @@ pub(crate) const BLACKSKY_EDU: &str = "at://did:plc:w4xbfzo7kqfes5zb7r6qv3rw/app.bsky.feed.generator/blacksky-edu"; pub(crate) const BLACKSKY_TRAVEL: &str = "at://did:plc:piuwt2p3v6mzsals7to7nedb/app.bsky.feed.generator/blacksky-travel"; +pub(crate) const BLACKSKY_MED: &str = + "at://did:plc:bgkszqcx4pf27av2tfxeljlr/app.bsky.feed.generator/blacksky-med"; fn get_banned_response() -> crate::models::AlgoResponse { let banned_notice_uri = env::var("BANNED_NOTICE_POST_URI").unwrap_or("".into()); @@ -249,6 +251,33 @@ pub async fn index( } } } + _blacksky_med if _blacksky_med == BLACKSKY_MED && !is_banned => { + match crate::apis::get_posts_by_membership( + None, + limit, + cursor, + true, + "blacksky-med".into(), + vec!["blackmedsky".into()], + connection, + config, + ) + .await + { + Ok(response) => Ok(Json(response)), + Err(error) => { + eprintln!("Internal Error: {error}"); + let internal_error = crate::models::InternalErrorMessageResponse { + code: Some(crate::models::InternalErrorCode::InternalError), + message: Some(error.to_string()), + }; + Err(status::Custom( + Status::InternalServerError, + Json(internal_error), + )) + } + } + } _blacksky if _blacksky == BLACKSKY && is_banned => { let banned_response = get_banned_response(); Ok(Json(banned_response)) @@ -269,6 +298,10 @@ pub async fn index( let banned_response = get_banned_response(); Ok(Json(banned_response)) } + _blacksky_med if _blacksky_med == BLACKSKY_MED && is_banned => { + let banned_response = get_banned_response(); + Ok(Json(banned_response)) + } _ => { let internal_error = crate::models::InternalErrorMessageResponse { code: Some(crate::models::InternalErrorCode::InternalError),