feat(username): add opportunity to get full name instead of username if user doesn't have one
This commit is contained in:
parent
0901ebce4d
commit
f03f511778
|
@ -1,6 +1,9 @@
|
||||||
|
use std::ops::Deref;
|
||||||
|
|
||||||
use telers::{
|
use telers::{
|
||||||
errors::SessionErrorKind,
|
errors::SessionErrorKind,
|
||||||
methods::GetChatMember,
|
methods::GetChatMember,
|
||||||
|
types::User,
|
||||||
types::{ChatMember, Message},
|
types::{ChatMember, Message},
|
||||||
Bot,
|
Bot,
|
||||||
};
|
};
|
||||||
|
@ -53,6 +56,14 @@ impl TargetUser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn _inner_get_user_name(&self, user: User) -> Option<Box<str>> {
|
||||||
|
if let Some(user_name) = user.username.as_ref() {
|
||||||
|
return Some(user_name.clone());
|
||||||
|
} else {
|
||||||
|
return Some(Box::from(user.full_name()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub async fn get_user_name(&self, bot: &Bot, msg: &Message) -> Option<Box<str>> {
|
pub async fn get_user_name(&self, bot: &Bot, msg: &Message) -> Option<Box<str>> {
|
||||||
match self {
|
match self {
|
||||||
Self::Id(id) => {
|
Self::Id(id) => {
|
||||||
|
@ -60,13 +71,13 @@ impl TargetUser {
|
||||||
bot.send(GetChatMember::new(msg.chat().id(), *id)).await;
|
bot.send(GetChatMember::new(msg.chat().id(), *id)).await;
|
||||||
|
|
||||||
if let Ok(member_kind) = get_chat_member_result {
|
if let Ok(member_kind) = get_chat_member_result {
|
||||||
return match member_kind {
|
match member_kind {
|
||||||
ChatMember::Owner(member) => member.user.username,
|
ChatMember::Owner(member) => self._inner_get_user_name(member.user),
|
||||||
ChatMember::Administrator(member) => member.user.username,
|
ChatMember::Administrator(member) => self._inner_get_user_name(member.user),
|
||||||
ChatMember::Member(member) => member.user.username,
|
ChatMember::Member(member) => self._inner_get_user_name(member.user),
|
||||||
ChatMember::Restricted(member) => member.user.username,
|
ChatMember::Restricted(member) => self._inner_get_user_name(member.user),
|
||||||
ChatMember::Left(member) => member.user.username,
|
ChatMember::Left(member) => self._inner_get_user_name(member.user),
|
||||||
ChatMember::Banned(member) => member.user.username,
|
ChatMember::Banned(member) => self._inner_get_user_name(member.user),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
None
|
None
|
||||||
|
|
Loading…
Reference in New Issue