Fixed example code, and {un}follow routes.

master
Aaron Power 6 years ago
parent bc68726d23
commit 523d83022e
  1. 13
      examples/follow_profile.rs
  2. 54
      examples/print_profile.rs
  3. 12
      examples/print_your_profile.rs
  4. 68
      examples/register.rs
  5. 13
      examples/search.rs
  6. 2
      src/apps.rs
  7. 22
      src/lib.rs
  8. 2
      src/registration.rs
  9. 2
      src/status_builder.rs

@ -0,0 +1,13 @@
mod register;
use std::error;
fn main() -> Result<(), Box<error::Error>> {
let mastodon = register::get_mastodon_data()?;
let input = register::read_line("Enter the account id you'd like to follow: ")?;
let new_follow = mastodon.follow(input.trim().parse()?)?;
println!("{:#?}", new_follow);
Ok(())
}

@ -1,54 +0,0 @@
extern crate mammut;
extern crate toml;
use std::io;
use std::fs::File;
use std::io::prelude::*;
use mammut::{Data, Mastodon, Registration};
use mammut::apps::{AppBuilder, Scopes};
fn main() {
let mastodon = match File::open("mastodon-data.toml") {
Ok(mut file) => {
let mut config = String::new();
file.read_to_string(&mut config).unwrap();
let data: Data = toml::from_str(&config).unwrap();
Mastodon::from_data(data)
},
Err(_) => register(),
};
let you = mastodon.verify_credentials().unwrap();
println!("{:#?}", you);
}
fn register() -> Mastodon {
let app = AppBuilder {
client_name: "mammut-examples",
redirect_uris: "urn:ietf:wg:oauth:2.0:oob",
scopes: Scopes::Read,
website: Some("https://github.com/Aaronepower/mammut"),
};
let mut registration = Registration::new("https://mastodon.social");
registration.register(app).unwrap();;
let url = registration.authorise().unwrap();
println!("Click this link to authorize on Mastodon: {}", url);
println!("Paste the returned authorization code: ");
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let code = input.trim();
let mastodon = registration.create_access_token(code.to_string()).unwrap();
// Save app data for using on the next run.
let toml = toml::to_string(&*mastodon).unwrap();
let mut file = File::create("mastodon-data.toml").unwrap();
file.write_all(toml.as_bytes()).unwrap();
mastodon
}

@ -0,0 +1,12 @@
mod register;
use std::error;
fn main() -> Result<(), Box<error::Error>> {
let mastodon = register::get_mastodon_data()?;
let you = mastodon.verify_credentials()?;
println!("{:#?}", you);
Ok(())
}

@ -0,0 +1,68 @@
extern crate mammut;
extern crate toml;
use std::{
error::Error,
fs,
io,
};
use self::mammut::{
apps::{
AppBuilder,
Scopes
},
Mastodon,
Registration
};
#[allow(dead_code)]
fn main() -> Result<(), Box<Error>> {
register()?;
Ok(())
}
#[allow(dead_code)]
pub fn get_mastodon_data() -> Result<Mastodon, Box<Error>> {
if let Ok(config) = fs::read_to_string("mastodon-data.toml") {
Ok(Mastodon::from_data(toml::from_str(&config)?))
} else {
register()
}
}
pub fn register() -> Result<Mastodon, Box<Error>> {
let app = AppBuilder {
client_name: "mammut-examples",
redirect_uris: "urn:ietf:wg:oauth:2.0:oob",
scopes: Scopes::Read,
website: Some("https://github.com/Aaronepower/mammut"),
};
let mut registration = Registration::new("https://mastodon.social");
registration.register(app)?;
let url = registration.authorise()?;
println!("Click this link to authorize on Mastodon: {}", url);
let input = read_line("Paste the returned authorization code: ")?;
let code = input.trim();
let mastodon = registration.create_access_token(code.to_string())?;
// Save app data for using on the next run.
let toml = toml::to_string(&*mastodon)?;
fs::write("mastodon-data.toml", toml.as_bytes())?;
Ok(mastodon)
}
pub fn read_line(message: &str) -> Result<String, Box<Error>> {
println!("{}", message);
let mut input = String::new();
io::stdin().read_line(&mut input)?;
Ok(input)
}

@ -0,0 +1,13 @@
mod register;
use std::error;
fn main() -> Result<(), Box<error::Error>> {
let mastodon = register::get_mastodon_data()?;
let input = register::read_line("Enter the term you'd like to search: ")?;
let result = mastodon.search_accounts(&input, None, true)?;
println!("{:#?}", result.initial_items);
Ok(())
}

@ -2,6 +2,8 @@ use std::fmt;
/// Builder struct for defining your application.
/// ```
/// use mammut::apps::{AppBuilder, Scopes};
///
/// let app = AppBuilder {
/// client_name: "mammut_test",
/// redirect_uris: "urn:ietf:wg:oauth:2.0:oob",

@ -92,9 +92,8 @@ macro_rules! methods {
macro_rules! paged_routes {
(($method:ident) $name:ident: $url:expr => $ret:ty, $($rest:tt)*) => {
/// Equivalent to `/api/v1/
/// Equivalent to /api/v1/
#[doc = $url]
/// `
///
#[doc = "# Errors"]
/// If `access_token` is not set.
@ -116,9 +115,8 @@ macro_rules! paged_routes {
macro_rules! route {
((post multipart ($($param:ident: $typ:ty,)*)) $name:ident: $url:expr => $ret:ty, $($rest:tt)*) => {
/// Equivalent to `/api/v1/
/// Equivalent to /api/v1/
#[doc = $url]
/// `
///
#[doc = "# Errors"]
/// If `access_token` is not set.
@ -150,9 +148,8 @@ macro_rules! route {
};
(($method:ident ($($param:ident: $typ:ty,)*)) $name:ident: $url:expr => $ret:ty, $($rest:tt)*) => {
/// Equivalent to `/api/v1/
/// Equivalent to /api/v1/
#[doc = $url]
/// `
///
#[doc = "# Errors"]
/// If `access_token` is not set.
@ -184,9 +181,8 @@ macro_rules! route {
};
(($method:ident) $name:ident: $url:expr => $ret:ty, $($rest:tt)*) => {
/// Equivalent to `/api/v1/
/// Equivalent to /api/v1/
#[doc = $url]
/// `
///
#[doc = "# Errors"]
/// If `access_token` is not set.
@ -204,9 +200,8 @@ macro_rules! route_id {
($(($method:ident) $name:ident: $url:expr => $ret:ty,)*) => {
$(
/// Equivalent to `/api/v1/
/// Equivalent to /api/v1/
#[doc = $url]
/// `
///
#[doc = "# Errors"]
/// If `access_token` is not set.
@ -220,9 +215,8 @@ macro_rules! route_id {
macro_rules! paged_routes_with_id {
(($method:ident) $name:ident: $url:expr => $ret:ty, $($rest:tt)*) => {
/// Equivalent to `/api/v1/
/// Equivalent to /api/v1/
#[doc = $url]
/// `
///
#[doc = "# Errors"]
/// If `access_token` is not set.
@ -415,8 +409,8 @@ impl Mastodon {
route_id! {
(get) get_account: "accounts/{}" => Account,
(get) follow: "accounts/{}/follow" => Account,
(get) unfollow: "accounts/{}/unfollow" => Account,
(post) follow: "accounts/{}/follow" => Account,
(post) unfollow: "accounts/{}/unfollow" => Account,
(get) block: "accounts/{}/block" => Account,
(get) unblock: "accounts/{}/unblock" => Account,
(get) mute: "accounts/{}/mute" => Account,

@ -29,6 +29,8 @@ struct AccessToken {
impl Registration {
/// Construct a new registration process to the instance of the `base` url.
/// ```
/// use mammut::registration::Registration;
///
/// let registration = Registration::new("https://mastodon.social");
/// ```
pub fn new<I: Into<String>>(base: I) -> Self {

@ -41,6 +41,8 @@ impl StatusBuilder {
/// Create a new status with text.
/// ```
/// use mammut::status_builder::StatusBuilder;
///
/// let status = StatusBuilder::new("Hello World!".into());
/// ```
pub fn new(status: String) -> Self {

Loading…
Cancel
Save