diff --git a/Cargo.lock b/Cargo.lock index 022bf27..5277e30 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -664,6 +664,8 @@ dependencies = [ "actix-files", "actix-web", "clap", + "env_logger", + "log", ] [[package]] diff --git a/assets/robocraft/live_data.json b/assets/robocraft/live_data.json index 31b8df4..63b8722 100644 --- a/assets/robocraft/live_data.json +++ b/assets/robocraft/live_data.json @@ -15,14 +15,14 @@ "paymentUrl": "http://127.0.0.1:8011/", "enterBattleLogGenerationTimeout": "60", "GameServerConnectionTestTimeout": 10, - "AvatarCdnUrl": "https://rc-cdn-images.robocraftgame.com/customavatar/Live/", - "ClanAvatarCdnUrl": "https://rc-cdn-images.robocraftgame.com/clanavatar/Live/", + "AvatarCdnUrl": "http://127.0.0.1:8010/customavatar/Live/", + "ClanAvatarCdnUrl": "http://127.0.0.1:8010/clanavatar/Live/", "FeatureThrottlerOnPercent": "100", "EmailCaptureEnabled": "true", "UnreliableMessages": "true", "MessageQueueEnabled": "true", - "BrawlDataUrl": "https://rc-cdn-images.robocraftgame.com/brawldata/Live/", - "CampaignDataUrl": "https://rc-cdn-images.robocraftgame.com/campaigndata/Live/", + "BrawlDataUrl": "http://127.0.0.1:8010/brawldata/Live/", + "CampaignDataUrl": "http://127.0.0.1:8010/campaigndata/Live/", "LeaderboardsUrl": "https://leaderboards.robocraftgame.com", "NetworkChannelTypes": "3113", "MaxSentMessageQueueSize": 64, diff --git a/cdn/Cargo.toml b/cdn/Cargo.toml index 81def9b..7ec4bc3 100644 --- a/cdn/Cargo.toml +++ b/cdn/Cargo.toml @@ -11,3 +11,5 @@ readme.workspace = true actix-web.workspace = true actix-files.workspace = true clap.workspace = true +log.workspace = true +env_logger.workspace = true diff --git a/cdn/src/main.rs b/cdn/src/main.rs index 51605d9..41d384c 100644 --- a/cdn/src/main.rs +++ b/cdn/src/main.rs @@ -15,6 +15,7 @@ async fn index() -> impl Responder { #[actix_web::main] async fn main() -> std::io::Result<()> { + env_logger::init(); let cli_args = cli::CliArgs::get(); let cli_args2 = cli_args.clone(); HttpServer::new(move || { @@ -22,6 +23,10 @@ async fn main() -> std::io::Result<()> { .app_data(actix_web::web::Data::new(cli_args2.clone())) .service(index) .service(robocraft::live_data::live_data_json) + .service(robocraft::user_avatar::get) + .service(robocraft::clan_avatar::get) + .service(robocraft::brawl_data::get) + .service(robocraft::campaign_data::get) }) .bind((cli_args.ip, cli_args.port))? .run() diff --git a/cdn/src/robocraft/brawl_data.rs b/cdn/src/robocraft/brawl_data.rs new file mode 100644 index 0000000..8423f5e --- /dev/null +++ b/cdn/src/robocraft/brawl_data.rs @@ -0,0 +1,8 @@ +use actix_web::{dev::ResourcePath, get, web::{Data, Path}, Responder}; + +#[get("/brawldata/Live/{name}")] +pub async fn get(cli: Data, name: Path) -> impl Responder { + let path = std::path::PathBuf::from(&cli.data_robocraft).join("brawldata").join(format!("{}.jpg", name.path())); + log::debug!("RC asset at {} (exists? {})", path.display(), path.exists()); + actix_files::NamedFile::open_async(path).await +} diff --git a/cdn/src/robocraft/campaign_data.rs b/cdn/src/robocraft/campaign_data.rs new file mode 100644 index 0000000..4048cb6 --- /dev/null +++ b/cdn/src/robocraft/campaign_data.rs @@ -0,0 +1,8 @@ +use actix_web::{dev::ResourcePath, get, web::{Data, Path}, Responder}; + +#[get("/campaigndata/Live/{name}")] +pub async fn get(cli: Data, name: Path) -> impl Responder { + let path = std::path::PathBuf::from(&cli.data_robocraft).join("campaigndata").join(format!("{}.jpg", name.path())); + log::debug!("RC asset at {} (exists? {})", path.display(), path.exists()); + actix_files::NamedFile::open_async(path).await +} diff --git a/cdn/src/robocraft/clan_avatar.rs b/cdn/src/robocraft/clan_avatar.rs new file mode 100644 index 0000000..498d96c --- /dev/null +++ b/cdn/src/robocraft/clan_avatar.rs @@ -0,0 +1,8 @@ +use actix_web::{dev::ResourcePath, get, web::{Data, Path}, Responder}; + +#[get("/clanavatar/Live/{name}")] +pub async fn get(cli: Data, name: Path) -> impl Responder { + let path = std::path::PathBuf::from(&cli.data_robocraft).join("clanavatar").join(format!("{}.jpg", name.path())); + log::debug!("RC asset at {} (exists? {})", path.display(), path.exists()); + actix_files::NamedFile::open_async(path).await +} diff --git a/cdn/src/robocraft/live_data.rs b/cdn/src/robocraft/live_data.rs index 9f448bc..0b18e19 100644 --- a/cdn/src/robocraft/live_data.rs +++ b/cdn/src/robocraft/live_data.rs @@ -3,5 +3,6 @@ use actix_web::{get, Responder, web::Data}; #[get("/live/data.json")] pub async fn live_data_json(cli: Data) -> impl Responder { let path = std::path::PathBuf::from(&cli.assets_robocraft).join("live_data.json"); + log::debug!("RC asset at {} (exists? {})", path.display(), path.exists()); actix_files::NamedFile::open_async(path).await } diff --git a/cdn/src/robocraft/mod.rs b/cdn/src/robocraft/mod.rs index eca8b6f..3e7b560 100644 --- a/cdn/src/robocraft/mod.rs +++ b/cdn/src/robocraft/mod.rs @@ -1 +1,5 @@ pub mod live_data; +pub mod user_avatar; +pub mod clan_avatar; +pub mod brawl_data; +pub mod campaign_data; diff --git a/cdn/src/robocraft/user_avatar.rs b/cdn/src/robocraft/user_avatar.rs new file mode 100644 index 0000000..9015cbb --- /dev/null +++ b/cdn/src/robocraft/user_avatar.rs @@ -0,0 +1,8 @@ +use actix_web::{dev::ResourcePath, get, web::{Data, Path}, Responder}; + +#[get("/customavatar/Live/{name}")] +pub async fn get(cli: Data, name: Path) -> impl Responder { + let path = std::path::PathBuf::from(&cli.data_robocraft).join("customavatars").join(format!("{}.jpg", name.path())); + log::debug!("RC asset at {} (exists? {})", path.display(), path.exists()); + actix_files::NamedFile::open_async(path).await +} diff --git a/rc_social_room/src/operations/clan_invite.rs b/rc_social_room/src/operations/clan_invite.rs index c65e1cb..e6fc2db 100644 --- a/rc_social_room/src/operations/clan_invite.rs +++ b/rc_social_room/src/operations/clan_invite.rs @@ -14,7 +14,7 @@ pub(super) fn clan_invites_provider() -> SimpleFunc<39, crate::U ClanInviteInfo { username: "RE_user1".to_owned(), display_name: "RE_user1".to_owned(), - clan_name: "RE_clan1".to_owned(), + clan_name: "RE_clan_invite1".to_owned(), clan_size: 42, use_custom_avatar: false, avatar_id: 0, diff --git a/rc_social_room/src/operations/search_clan.rs b/rc_social_room/src/operations/search_clan.rs index 8043b5b..e1265d7 100644 --- a/rc_social_room/src/operations/search_clan.rs +++ b/rc_social_room/src/operations/search_clan.rs @@ -25,8 +25,8 @@ pub(super) fn search_clans_provider() -> SimpleFunc<32, crate::U ty: polariton::serdes::TypePrefix::HashMap, // hashmap items: vec![ ClanInfo { - clan_name: "".to_owned(), - clan_description: "".to_owned(), + clan_name: "RE_clan_search_name".to_owned(), + clan_description: "RE_clan_search_description".to_owned(), clan_type: ClanType::Closed, clan_size: 1, }.as_transmissible(),