Merge branch 'main' of https://gitea.tendokyu.moe/Kayori/Medusa
This commit is contained in:
commit
9ac9ddb168
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "externals/medusa_macros"]
|
||||||
|
path = externals/medusa_macros
|
||||||
|
url = https://gitea.tendokyu.moe/Kayori/medusa_macros.git
|
@ -4,6 +4,7 @@ version = "0.1.0"
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
medusa_macros = { path = "externals/medusa_macros"}
|
||||||
async-trait = "0.1.82"
|
async-trait = "0.1.82"
|
||||||
byteorder = "1.5.0"
|
byteorder = "1.5.0"
|
||||||
cbc = "0.1.2"
|
cbc = "0.1.2"
|
||||||
|
1
externals/medusa_macros
vendored
Submodule
1
externals/medusa_macros
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 88257a8f7ea5e26015a1b28e14cc39fbebc90459
|
174
src/handlers/common/get_facility_handler.rs
Normal file
174
src/handlers/common/get_facility_handler.rs
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
use std::io::Cursor;
|
||||||
|
|
||||||
|
use crate::handlers::handler::Handler;
|
||||||
|
use xml::writer::{EmitterConfig, XmlEvent};
|
||||||
|
|
||||||
|
pub struct GetFacilityHandler {
|
||||||
|
module: String,
|
||||||
|
method: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GetFacilityHandler {
|
||||||
|
pub fn new() -> Self {
|
||||||
|
GetFacilityHandler {
|
||||||
|
module: "facility".to_string(),
|
||||||
|
method: "get".to_string(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[async_trait]
|
||||||
|
impl Handler for GetFacilityHandler {
|
||||||
|
fn module(&self) -> &str {
|
||||||
|
&self.module
|
||||||
|
}
|
||||||
|
|
||||||
|
fn method(&self) -> &str {
|
||||||
|
&self.method
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn handle(&self, _model: String, _body: String) -> String {
|
||||||
|
let port = "8000";
|
||||||
|
|
||||||
|
let mut buffer = Cursor::new(Vec::new());
|
||||||
|
let mut writer = EmitterConfig::new()
|
||||||
|
.perform_indent(true)
|
||||||
|
.create_writer(&mut buffer);
|
||||||
|
|
||||||
|
writer.write(XmlEvent::start_element("response")).unwrap();
|
||||||
|
|
||||||
|
// <facility status="0">
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("facility").attr("status", "0"))
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
// <location>
|
||||||
|
writer.write(XmlEvent::start_element("location")).unwrap();
|
||||||
|
writer.write(XmlEvent::start_element("id")).unwrap();
|
||||||
|
writer.write(XmlEvent::characters("00000000")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // id
|
||||||
|
writer.write(XmlEvent::start_element("country")).unwrap();
|
||||||
|
writer.write(XmlEvent::characters("US")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // country
|
||||||
|
writer.write(XmlEvent::start_element("region")).unwrap();
|
||||||
|
writer.write(XmlEvent::characters("NA")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // region
|
||||||
|
writer.write(XmlEvent::start_element("name")).unwrap();
|
||||||
|
writer.write(XmlEvent::characters("Medusa")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // name
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("type").attr("__type", "u8"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters("0")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // type
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // location
|
||||||
|
|
||||||
|
// <line>
|
||||||
|
writer.write(XmlEvent::start_element("line")).unwrap();
|
||||||
|
writer.write(XmlEvent::start_element("id")).unwrap();
|
||||||
|
writer.write(XmlEvent::characters("00000000")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // id
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("class").attr("__type", "u8"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters("0")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // class
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // line
|
||||||
|
|
||||||
|
// <portfw>
|
||||||
|
writer.write(XmlEvent::start_element("portfw")).unwrap();
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("globalip").attr("__type", "ip4"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters("0.0.0.0")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // globalip
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("globalport").attr("__type", "u16"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters(port)).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // globalport
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("privateport").attr("__type", "u16"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters(port)).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // privateport
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // portfw
|
||||||
|
|
||||||
|
// <public>
|
||||||
|
writer.write(XmlEvent::start_element("public")).unwrap();
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("flag").attr("__type", "u8"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters("1")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // flag
|
||||||
|
writer.write(XmlEvent::start_element("name")).unwrap();
|
||||||
|
writer.write(XmlEvent::characters("Medusa")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // name
|
||||||
|
writer.write(XmlEvent::start_element("latitude")).unwrap();
|
||||||
|
writer.write(XmlEvent::characters("0.0")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // latitude
|
||||||
|
writer.write(XmlEvent::start_element("longitude")).unwrap();
|
||||||
|
writer.write(XmlEvent::characters("0.0")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // longitude
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // public
|
||||||
|
|
||||||
|
// <share>
|
||||||
|
writer.write(XmlEvent::start_element("share")).unwrap();
|
||||||
|
|
||||||
|
// <eacoin>
|
||||||
|
writer.write(XmlEvent::start_element("eacoin")).unwrap();
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("notchamount").attr("__type", "s32"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters("0")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // notchamount
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("notchcount").attr("__type", "s32"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters("0")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // notchcount
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("supplylimit").attr("__type", "s32"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::characters("100000")).unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // supplylimit
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // eacoin
|
||||||
|
|
||||||
|
// <url>
|
||||||
|
writer.write(XmlEvent::start_element("url")).unwrap();
|
||||||
|
writer.write(XmlEvent::start_element("eapass")).unwrap();
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::characters("http://eagate.573.jp"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // eapass
|
||||||
|
writer.write(XmlEvent::start_element("arcadefan")).unwrap();
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::characters("http://eagate.573.jp"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // arcadefan
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::start_element("konaminetdx"))
|
||||||
|
.unwrap();
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::characters("http://eagate.573.jp"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // konaminetdx
|
||||||
|
writer.write(XmlEvent::start_element("konamiid")).unwrap();
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::characters("http://eagate.573.jp"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // konamiid
|
||||||
|
writer.write(XmlEvent::start_element("eagate")).unwrap();
|
||||||
|
writer
|
||||||
|
.write(XmlEvent::characters("http://eagate.573.jp"))
|
||||||
|
.unwrap();
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // eagate
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // url
|
||||||
|
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // share
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // facility
|
||||||
|
writer.write(XmlEvent::end_element()).unwrap(); // response
|
||||||
|
|
||||||
|
String::from_utf8(buffer.into_inner()).unwrap()
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,7 @@
|
|||||||
pub mod alive_pcb_tracker_handler;
|
pub mod alive_pcb_tracker_handler;
|
||||||
pub mod get_messages_handler;
|
pub mod get_messages_handler;
|
||||||
pub mod put_pcb_event_handler;
|
pub mod put_pcb_event_handler;
|
||||||
|
pub mod get_facility_handler;
|
||||||
|
|
||||||
pub mod ota;
|
pub mod ota;
|
||||||
pub mod card;
|
pub mod card;
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
#[async_trait]
|
#[async_trait]
|
||||||
pub trait Handler: Send + Sync {
|
pub trait Handler: Send + Sync {
|
||||||
fn module(&self) -> &str;
|
fn module(&self) -> &str;
|
||||||
|
12
src/main.rs
12
src/main.rs
@ -10,7 +10,6 @@ mod utils;
|
|||||||
|
|
||||||
use handlers::boot::get_services_handler::GetServicesHandler;
|
use handlers::boot::get_services_handler::GetServicesHandler;
|
||||||
use handlers::common::alive_pcb_tracker_handler::AlivePcbTrackerHandler;
|
use handlers::common::alive_pcb_tracker_handler::AlivePcbTrackerHandler;
|
||||||
use handlers::common::card::inquire_card_managment_handler::InquireCardManagmentHandler;
|
|
||||||
use handlers::common::get_messages_handler::GetMessageHandler;
|
use handlers::common::get_messages_handler::GetMessageHandler;
|
||||||
use handlers::common::ota::list_package_handler::ListPackageHandler;
|
use handlers::common::ota::list_package_handler::ListPackageHandler;
|
||||||
use handlers::common::ota::progress_dl_status_handler::ProgressDLStatusHandler;
|
use handlers::common::ota::progress_dl_status_handler::ProgressDLStatusHandler;
|
||||||
@ -20,6 +19,7 @@ use rocket::fs::{relative, FileServer, NamedFile};
|
|||||||
use routes::ea::core_route::handle_query_request;
|
use routes::ea::core_route::handle_query_request;
|
||||||
use routes::ea::core_route::handle_slash_request;
|
use routes::ea::core_route::handle_slash_request;
|
||||||
use routes::ea::e_amusement_route::handle_ea_query_request;
|
use routes::ea::e_amusement_route::handle_ea_query_request;
|
||||||
|
//use handlers::common::get_facility_handler::handle_facility_get;
|
||||||
|
|
||||||
#[macro_use] extern crate lazy_static;
|
#[macro_use] extern crate lazy_static;
|
||||||
#[macro_use] extern crate rocket;
|
#[macro_use] extern crate rocket;
|
||||||
@ -37,7 +37,6 @@ fn register_handlers() -> Vec<Arc<dyn Handler>> {
|
|||||||
let put_pcb_event_handler = Arc::new(PutPcbEventHandler::new());
|
let put_pcb_event_handler = Arc::new(PutPcbEventHandler::new());
|
||||||
let list_package_handler = Arc::new(ListPackageHandler::new());
|
let list_package_handler = Arc::new(ListPackageHandler::new());
|
||||||
let progress_dl_status_handler = Arc::new(ProgressDLStatusHandler::new());
|
let progress_dl_status_handler = Arc::new(ProgressDLStatusHandler::new());
|
||||||
let inquire_card_managment_handler = Arc::new(InquireCardManagmentHandler::new());
|
|
||||||
|
|
||||||
let handlers: Vec<Arc<dyn Handler>> = vec![
|
let handlers: Vec<Arc<dyn Handler>> = vec![
|
||||||
get_services_handler,
|
get_services_handler,
|
||||||
@ -45,13 +44,18 @@ fn register_handlers() -> Vec<Arc<dyn Handler>> {
|
|||||||
get_messages_handler,
|
get_messages_handler,
|
||||||
put_pcb_event_handler,
|
put_pcb_event_handler,
|
||||||
list_package_handler,
|
list_package_handler,
|
||||||
progress_dl_status_handler,
|
progress_dl_status_handler
|
||||||
inquire_card_managment_handler
|
|
||||||
];
|
];
|
||||||
|
|
||||||
handlers
|
handlers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fn register_macro_handlers() {
|
||||||
|
// let handlers = vec![
|
||||||
|
// Arc::new(handle_facility_get),
|
||||||
|
// ];
|
||||||
|
// }
|
||||||
|
|
||||||
#[launch]
|
#[launch]
|
||||||
fn rocket() -> _ {
|
fn rocket() -> _ {
|
||||||
let handlers = register_handlers();
|
let handlers = register_handlers();
|
||||||
|
Loading…
Reference in New Issue
Block a user