aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorAustin Hellyer <[email protected]>2016-11-29 20:51:10 -0800
committerAustin Hellyer <[email protected]>2016-11-29 22:27:59 -0800
commit93b990d8d1bc9df69b8e27a3db61da570822aad6 (patch)
tree6305cf635df90681527a8e736f65ff19f21fd8bc /src/client
parentAdd more shiny readme badges (diff)
downloadserenity-93b990d8d1bc9df69b8e27a3db61da570822aad6.tar.xz
serenity-93b990d8d1bc9df69b8e27a3db61da570822aad6.zip
Clean up the codebase
Diffstat (limited to 'src/client')
-rw-r--r--src/client/context.rs48
-rw-r--r--src/client/gateway/prep.rs21
-rw-r--r--src/client/gateway/shard.rs10
-rw-r--r--src/client/mod.rs2
-rw-r--r--src/client/rest/mod.rs8
5 files changed, 44 insertions, 45 deletions
diff --git a/src/client/context.rs b/src/client/context.rs
index 678d362..d648888 100644
--- a/src/client/context.rs
+++ b/src/client/context.rs
@@ -1,5 +1,6 @@
use serde_json::builder::ObjectBuilder;
use std::collections::HashMap;
+use std::fmt::Write as FmtWrite;
use std::io::Read;
use std::sync::{Arc, Mutex};
use super::gateway::Shard;
@@ -127,9 +128,7 @@ impl Context {
return Err(Error::Client(ClientError::InvalidOperationAsBot));
}
- let code = utils::parse_invite(invite);
-
- rest::accept_invite(code)
+ rest::accept_invite(utils::parse_invite(invite))
}
/// Mark a [`Channel`] as being read up to a certain [`Message`].
@@ -481,7 +480,13 @@ impl Context {
where F: FnOnce(EditRole) -> EditRole, G: Into<GuildId> {
let id = guild_id.into().0;
- // The API only allows creating an empty role.
+ // The API only allows creating an empty role, which must then be
+ // edited.
+ //
+ // Note to self: [this] issue/proposal may make this not require an
+ // edit.
+ //
+ // [this]: http://github.com/hammerandchisel/discord-api-docs/issues/156
let role = try!(rest::create_role(id));
let map = f(EditRole::default()).0.build();
@@ -544,9 +549,7 @@ impl Context {
/// [`Invite::delete`]: ../model/struct.Invite.html#method.delete
/// [Manage Guild]: permissions/constant.MANAGE_GUILD.html
pub fn delete_invite(&self, invite: &str) -> Result<Invite> {
- let code = utils::parse_invite(invite);
-
- rest::delete_invite(code)
+ rest::delete_invite(utils::parse_invite(invite))
}
/// Deletes a [`Message`] given its Id.
@@ -859,7 +862,7 @@ impl Context {
let guild_id = guild_id.into();
let role_id = role_id.into();
- feature_cache! {{
+ let map = feature_cache! {{
let cache = CACHE.read().unwrap();
let role = if let Some(role) = {
@@ -870,14 +873,12 @@ impl Context {
return Err(Error::Client(ClientError::RecordNotFound));
};
- let map = f(EditRole::new(role)).0.build();
-
- rest::edit_role(guild_id.0, role_id.0, map)
+ f(EditRole::new(role)).0.build()
} else {
- let map = f(EditRole::default()).0.build();
+ f(EditRole::default()).0.build()
+ }};
- rest::edit_role(guild_id.0, role_id.0, map)
- }}
+ rest::edit_role(guild_id.0, role_id.0, map)
}
/// Edit a message given its Id and the Id of the channel it belongs to.
@@ -1061,22 +1062,19 @@ impl Context {
where C: Into<ChannelId>, F: FnOnce(GetMessages) -> GetMessages {
let query = {
let mut map = f(GetMessages::default()).0;
- let mut query = format!("?limit={}",
- map.remove("limit").unwrap_or(50));
+ let mut query = String::new();
+ try!(write!(query, "?limit={}", map.remove("limit").unwrap_or(50)));
if let Some(after) = map.remove("after") {
- query.push_str("&after=");
- query.push_str(&after.to_string());
+ try!(write!(query, "&after={}", after));
}
if let Some(around) = map.remove("around") {
- query.push_str("&around=");
- query.push_str(&around.to_string());
+ try!(write!(query, "&around={}", around));
}
if let Some(before) = map.remove("before") {
- query.push_str("&before=");
- query.push_str(&before.to_string());
+ try!(write!(query, "&before={}", before));
}
query
@@ -1118,7 +1116,11 @@ impl Context {
M: Into<MessageId>,
R: Into<ReactionType>,
U: Into<UserId> {
- let limit = limit.map(|x| if x > 100 { 100 } else { x }).unwrap_or(50);
+ let limit = limit.map(|x| if x > 100 {
+ 100
+ } else {
+ x
+ }).unwrap_or(50);
rest::get_reaction_users(channel_id.into().0,
message_id.into().0,
diff --git a/src/client/gateway/prep.rs b/src/client/gateway/prep.rs
index 2ca435b..6aa40f3 100644
--- a/src/client/gateway/prep.rs
+++ b/src/client/gateway/prep.rs
@@ -21,10 +21,10 @@ use ::model::event::{Event, GatewayEvent, ReadyEvent};
#[inline]
pub fn parse_ready(event: GatewayEvent,
- tx: &MpscSender<GatewayStatus>,
- receiver: &mut Receiver<WebSocketStream>,
- identification: Value)
- -> Result<(ReadyEvent, u64)> {
+ tx: &MpscSender<GatewayStatus>,
+ receiver: &mut Receiver<WebSocketStream>,
+ identification: Value)
+ -> Result<(ReadyEvent, u64)> {
match event {
GatewayEvent::Dispatch(seq, Event::Ready(event)) => {
Ok((event, seq))
@@ -60,7 +60,7 @@ pub fn identify(token: &str, shard_info: Option<[u8; 2]>) -> Value {
object = identify_compression(object)
.insert("large_threshold", 250) // max value
.insert_object("properties", |object| object
- .insert("$browser", "Feature-full and ergonomic discord rust library")
+ .insert("$browser", "Ergonomic and high-level Rust library")
.insert("$device", "serenity")
.insert("$os", env::consts::OS)
.insert("$referrer", "")
@@ -70,10 +70,9 @@ pub fn identify(token: &str, shard_info: Option<[u8; 2]>) -> Value {
.insert("v", constants::GATEWAY_VERSION);
if let Some(shard_info) = shard_info {
- object = object
- .insert_array("shard", |a| a
- .push(shard_info[0])
- .push(shard_info[1]));
+ object = object.insert_array("shard", |a| a
+ .push(shard_info[0])
+ .push(shard_info[1]));
}
object
@@ -97,8 +96,8 @@ pub fn build_gateway_url(base: &str) -> Result<RequestUrl> {
}
pub fn keepalive(interval: u64,
- mut sender: Sender<WebSocketStream>,
- channel: MpscReceiver<GatewayStatus>) {
+ mut sender: Sender<WebSocketStream>,
+ channel: MpscReceiver<GatewayStatus>) {
let mut base_interval = Duration::milliseconds(interval as i64);
let mut next_tick = time::get_time() + base_interval;
diff --git a/src/client/gateway/shard.rs b/src/client/gateway/shard.rs
index 13a8c06..1464bd3 100644
--- a/src/client/gateway/shard.rs
+++ b/src/client/gateway/shard.rs
@@ -135,9 +135,9 @@ impl Shard {
// Parse READY
let event = try!(receiver.recv_json(GatewayEvent::decode));
let (ready, sequence) = try!(prep::parse_ready(event,
- &tx,
- &mut receiver,
- identification));
+ &tx,
+ &mut receiver,
+ identification));
Ok((feature_voice! {{
Shard {
@@ -512,8 +512,8 @@ impl Shard {
let msg = ObjectBuilder::new()
.insert("op", OpCode::StatusUpdate.num())
.insert_object("d", move |mut object| {
- object = object.insert("since", 0)
- .insert("afk", afk)
+ object = object.insert("afk", afk)
+ .insert("since", 0)
.insert("status", status.name());
match game.as_ref() {
diff --git a/src/client/mod.rs b/src/client/mod.rs
index 41e982a..92b071e 100644
--- a/src/client/mod.rs
+++ b/src/client/mod.rs
@@ -812,8 +812,6 @@ impl Client {
}
}
- // How to avoid the problem while still working on other parts of the
- // library 101
loop {
thread::sleep(Duration::from_secs(1));
}
diff --git a/src/client/rest/mod.rs b/src/client/rest/mod.rs
index 84c7c00..fcd29e3 100644
--- a/src/client/rest/mod.rs
+++ b/src/client/rest/mod.rs
@@ -41,6 +41,7 @@ use serde_json::builder::ObjectBuilder;
use serde_json;
use std::collections::BTreeMap;
use std::default::Default;
+use std::fmt::Write as FmtWrite;
use std::io::{ErrorKind as IoErrorKind, Read};
use std::sync::{Arc, Mutex};
use ::constants;
@@ -1138,7 +1139,7 @@ pub fn get_message(channel_id: u64, message_id: u64)
/// Gets X messages from a channel.
pub fn get_messages(channel_id: u64, query: &str)
-> Result<Vec<Message>> {
- let url = format!(api_concat!("/channels/{}/messages{}"),
+ let url = format!(api!("/channels/{}/messages{}"),
channel_id,
query);
let client = HyperClient::new();
@@ -1172,8 +1173,7 @@ pub fn get_reaction_users(channel_id: u64,
limit);
if let Some(user_id) = after {
- uri.push_str("&after=");
- uri.push_str(&user_id.to_string());
+ try!(write!(uri, "&after={}", user_id));
}
let response = request!(Route::ChannelsIdMessagesIdReactionsUserIdType(channel_id),
@@ -1317,7 +1317,7 @@ pub fn send_file<R: Read>(channel_id: u64,
filename: &str,
map: BTreeMap<String, Value>)
-> Result<Message> {
- let uri = format!(api_concat!("/channels/{}/messages"), channel_id);
+ let uri = format!(api!("/channels/{}/messages"), channel_id);
let url = match Url::parse(&uri) {
Ok(url) => url,
Err(_why) => return Err(Error::Url(uri)),