From 87a7574d42d58e94123802a23fd0bd77b5cde495 Mon Sep 17 00:00:00 2001 From: VC Date: Mon, 21 Nov 2022 10:03:03 +0100 Subject: [PATCH] feat: add mastodon_screen_name automatically/revise necessary permissions --- src/mastodon.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/mastodon.rs b/src/mastodon.rs index 7bd7d0a..84d4dea 100644 --- a/src/mastodon.rs +++ b/src/mastodon.rs @@ -4,7 +4,7 @@ use egg_mode::{ entities::{MentionEntity, UrlEntity}, tweet::Tweet, }; -use elefren::{apps::App, prelude::*, scopes::Scopes}; +use elefren::{apps::App, prelude::*, scopes::Read, scopes::Scopes, scopes::Write}; use html_escape::decode_html_entities; use std::{borrow::Cow, collections::HashMap, io::stdin}; @@ -74,7 +74,12 @@ pub fn register(host: &str, screen_name: &str) { builder .client_name(Cow::from(env!("CARGO_PKG_NAME").to_string())) .redirect_uris(Cow::from("urn:ietf:wg:oauth:2.0:oob".to_string())) - .scopes(Scopes::write_all()) + .scopes( + Scopes::write(Write::Accounts) + .and(Scopes::write(Write::Media)) + .and(Scopes::write(Write::Statuses)) + .and(Scopes::read(Read::Accounts)), + ) .website(Cow::from( "https://framagit.org/veretcle/scootaloo".to_string(), )); @@ -103,13 +108,19 @@ pub fn register(host: &str, screen_name: &str) { let toml = toml::to_string(&*mastodon).unwrap(); + let current_account = mastodon + .verify_credentials() + .expect("Unable to access account information!"); + println!( "Please insert the following block at the end of your configuration file: [mastodon.{}] twitter_screen_name = \"{}\" +mastodon_screen_name = \"{}\" {}", screen_name.to_lowercase(), screen_name, + current_account.username, toml ); }