Added silent argument to /everyone command, updated README.md

Author: miloszowi<miloszweb@gmail.com>
This commit is contained in:
miloszowi 2021-09-25 16:49:11 +02:00
parent cd8e3507ca
commit 2b0728b58c
3 changed files with 15 additions and 4 deletions

View File

@ -76,6 +76,11 @@ If you haven't opted-in before, alternative reply will be displayed.
![out command when someone did not opt in example](docs/out_command_did_not_opt_in_before.png)
### `/everyone`
You can also type
```
/everyone silent
```
to list users that opted-in for everyone-mentions but without tagging them.
Will mention everyone that opted-in for everyone-mentions separated by spaces.
If user does not have nickname, it will first try to assign his firstname, then random firstname from `names` python library

View File

@ -13,6 +13,7 @@ from handler.abstractHandler import AbstractHandler
class MentionHandler(AbstractHandler):
botHandler: CommandHandler
userRepository: UserRepository
silent: str = 'silent'
def __init__(self) -> None:
self.botHandler = CommandHandler('everyone', self.handle)
@ -23,7 +24,7 @@ class MentionHandler(AbstractHandler):
users = self.userRepository.getAllForChat(updateData.getChatId())
if users:
self.reply(update, self.buildMentionMessage(users))
self.reply(update, self.buildMentionMessage(users, self.isSilent(context)))
return
self.reply(update, mention_failed)
@ -31,10 +32,16 @@ class MentionHandler(AbstractHandler):
def getBotHandler(self) -> CommandHandler:
return self.botHandler
def buildMentionMessage(self, users: Iterable[User]) -> str:
def buildMentionMessage(self, users: Iterable[User], silent: bool = False) -> str:
result = ''
for user in users:
if not silent:
result += f'*[{user.getUsername()}](tg://user?id={user.getUserId()})* '
else:
result += f'*{user.getUsername()}\({user.getUserId()}\)*\n'
return result
def isSilent(self, context: CallbackContext) -> bool:
return context.args and context.args[0] == self.silent

View File

@ -27,7 +27,6 @@ class UpdateData():
def createFromUpdate(update: Update) -> UpdateData:
userId = str(update.effective_user.id)
chatId = str(update.effective_chat.id)
chatId = "-284685928"
username = update.effective_user.username or update.effective_user.first_name
if not username: