hangups-rs

Rust version of hangups (WIP) Currently Login not possible
git clone git://archive.git.mtrnord.blog/Nordgedanken/hangups-rs.git
Log | Files | Refs | README | LICENSE

commit e2e2bad3bce7ca43b0087ae8de448a27baa48855
parent ae1471370ad2546d76d1c91f0ba3e41192d82c84
Author: MTRNord <mtrnord1@gmail.com>
Date:   Thu, 13 Apr 2017 00:32:21 +0200

Fix RequestBuilder

Diffstat:
Msrc/lib.rs | 65++++++++++++++++++++++++++++++-----------------------------------
1 file changed, 30 insertions(+), 35 deletions(-)

diff --git a/src/lib.rs b/src/lib.rs @@ -79,39 +79,34 @@ pub mod hangups { use rand::random; use hyper::header::Headers; use hyper::header::Cookie; - use hyper::client::{Client, IntoUrl}; - use hyper::client::RequestBuilder; - use hyper::method::Method; - header! { (Content_Type, "content-type") => [String] } + use hyper::client::Client; + header! { (ContentType, "content-type") => [String] } header! { (XGoogEncodeResponseIfExecutable, "X-Goog-Encode-Response-If-Executable") => [String] } - fn GetAuthHeaders() {} + fn get_auth_headers() {} - fn ApiRequest(endpointUrl: String, contentType: String, cookies: String, payload: SendChatMessageRequest) { + fn api_request(endpoint_url: String, + content_type: String, + cookies: String, + payload: SendChatMessageRequest) { let mut headers = Headers::new(); headers.set(Cookie(vec![String::from(cookies.to_owned())])); - headers.set(Content_Type(String::from(contentType.to_owned()))); + headers.set(ContentType(String::from(content_type.to_owned()))); headers.set(XGoogEncodeResponseIfExecutable(String::from("base64".to_owned()))); let client = Client::new(); - let custom_request = RequestBuilder { - client: &client, - url: endpointUrl.into_url(), - headers: Some(headers), - method: Method::Post, - body: payload - }; + let post_request = client.post(&*endpoint_url).headers(headers); } - fn ProtobufApiRequest(apiEndpoint: String, - requestStruct: SendChatMessageRequest, - responseStruct: SendChatMessageResponse) { - let url = format!("https://clients6.google.com/chat/v1/{}", apiEndpoint); - let output = self::ApiRequest(url, - String::from("application/x-protobuf"), - String::from("proto"), - requestStruct); + fn protobuf_api_request(api_endpoint: String, + request_struct: SendChatMessageRequest, + response_struct: SendChatMessageResponse) { + let url = format!("https://clients6.google.com/chat/v1/{}", api_endpoint); + let output = api_request(url, + String::from("application/x-protobuf"), + String::from("proto"), + request_struct); } pub fn send_message(message: String, conv_id_raw: String) { @@ -127,24 +122,24 @@ pub mod hangups { //Prepare Request - let request_header = RequestHeader::new(); + let mut request_header = RequestHeader::new(); request_header.set_language_code(String::from("en")); - let deliveryMedium = DeliveryMedium::new(); - deliveryMedium.set_medium_type(DeliveryMediumType::DELIVERY_MEDIUM_BABEL); - let expectedOtr = OffTheRecordStatus::OFF_THE_RECORD_STATUS_ON_THE_RECORD; - let clientGeneratedId = random::<u64>(); - let eventType = EventType::EVENT_TYPE_REGULAR_CHAT_MESSAGE; - let event_request_header = EventRequestHeader::new(); - let conv_id = ConversationId::new(); + let mut delivery_medium = DeliveryMedium::new(); + delivery_medium.set_medium_type(DeliveryMediumType::DELIVERY_MEDIUM_BABEL); + let expected_otr = OffTheRecordStatus::OFF_THE_RECORD_STATUS_ON_THE_RECORD; + let client_generated_id = random::<u64>(); + let event_type = EventType::EVENT_TYPE_REGULAR_CHAT_MESSAGE; + let mut event_request_header = EventRequestHeader::new(); + let mut conv_id = ConversationId::new(); conv_id.set_id(conv_id_raw); event_request_header.set_conversation_id(conv_id); - event_request_header.set_delivery_medium(deliveryMedium); - event_request_header.set_expected_otr(expectedOtr); - event_request_header.set_client_generated_id(clientGeneratedId); - event_request_header.set_event_type(eventType); + event_request_header.set_delivery_medium(delivery_medium); + event_request_header.set_expected_otr(expected_otr); + event_request_header.set_client_generated_id(client_generated_id); + event_request_header.set_event_type(event_type); - let request = SendChatMessageRequest::new(); + let mut request = SendChatMessageRequest::new(); request.set_request_header(request_header); request.set_message_content(message_content); request.set_event_request_header(event_request_header);