Du kannst nicht mehr als 25 Themen auswählen
Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
KitaitiMakoto
51b49e8629
Reviewed-on: #13 |
vor 2 Jahren | |
---|---|---|
src | vor 2 Jahren | |
.gitattributes | vor 4 Jahren | |
.gitignore | vor 5 Jahren | |
.travis.yml | vor 4 Jahren | |
Cargo.toml | vor 2 Jahren | |
LICENSE | vor 4 Jahren | |
README.md | vor 4 Jahren | |
coverage.sh | vor 5 Jahren |
README.md
WebFinger
A crate to help you fetch and serve WebFinger resources.
Examples
Fetching a resource:
use webfinger::resolve;
fn main() {
let res = resolve("acct:test@example.org", true).expect("Error while fetching resource");
println!("Places to get more informations about {}:", res.subject);
for link in res.links.into_iter() {
println!("- {}", link.href);
}
}
Serving resources:
use webfinger::Resolver;
pub struct MyResolver;
impl Resolver<DatabaseConnection> for MyResolver {
fn instance_domain<'a>() -> &'a str {
"instance.tld"
}
fn find(acct: String, db: DatabaseConnection) -> Result<Webfinger, ResolverError> {
if let Some(user) = db.find_user_by_name(acct) {
Ok(Webfinger {
subject: acct.clone(),
aliases: vec![acct.clone()],
links: vec![
Link {
rel: "http://webfinger.net/rel/profile-page".to_string(),
mime_type: None,
href: user.profile_url()
}
]
})
} else {
Err(ResolverError::NotFound)
}
}
}
fn main() {
// Start a web server and map /.well-known/webfinger to a function calling MyResolver::endpoint
}