Skip to content

Comments

85 scenario set default time zone for all joined people in a public chat#98

Open
kibertod wants to merge 37 commits intomainfrom
85-scenario-set-default-time-zone-for-all-joined-people-in-a-public-chat
Open

85 scenario set default time zone for all joined people in a public chat#98
kibertod wants to merge 37 commits intomainfrom
85-scenario-set-default-time-zone-for-all-joined-people-in-a-public-chat

Conversation

@kibertod
Copy link

@kibertod kibertod commented Jun 30, 2024

@kibertod kibertod self-assigned this Jun 30, 2024
@kibertod kibertod linked an issue Jun 30, 2024 that may be closed by this pull request
5 tasks
bot/commands.py Outdated
unschedule_personal_vacation=_("Unschedule the personal vacation."),
# info settings
get_chat_state=_("Get the chat state that I store."),
guess_time_zone=_("Get list of possible time zones based on given current time")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check grammar. Insert a full stop at the end.

bot/handlers.py Outdated
Comment on lines 187 to 189
Please set your timezone first

You can do this with /{set_meetings_time_zone} command
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check grammar.

bot/handlers.py Outdated
)
return
except UnknownTimeZoneError:
await message.reply("Such time zone does not exist, please chack the spelling")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to use .format so that this message can be localized.

bot/handlers.py Outdated
chat_state.meeting_time = meeting_time
chat_state.topic_id = topic_id
await save_state(chat_state=chat_state)
argument = message_text.split(" ")[1]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use regexes from re.

bot/handlers.py Outdated
await message.reply("Sorry, no time zones found")

return
except IndexError:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you need an IndexError? It seems like you can use just if-s without try .. except.

bot/handlers.py Outdated
await bot.edit_message_text(
message_id=callback_query.message.message_id,
chat_id=chat_state.chat_id,
text="Time zone is successfully set to {time_zone}"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use .format to make this message localizable.


export const machine = createMachine({
/** @xstate-layout N4IgpgJg5mDOIC5QCUwGMwEsBuYAEATmALaYB2EYBseAhgEYD2ArgC56wDWmADj5Hgi1MAGwCeeYmDCtyUPAEdmcWYzKwAdAFVYVDQEkIIsAGIAKgAt8aZgSJl2sqXkywEeADwARAIL6AMgCaAPoAsgCi4Wb6AHIA4sHREQB8ANoADAC6iKA8jLCYqmQ5IAAeiABMVRoAHADMFTXpdQBsACwAjOlNAJwANCBiiAC0FQDsNRoArBPpUzUtU1NtNRUtLQC+GwOoGDj4RKQUVDQMLOxcvPwQgsLiktKyZPJKKphqmjp6hsYmXwR4NAWWjPOCEEjkSgA-gEd4QDLZJAgPIFIolcoIOrNDQNdo9KZ1Go1KY9Ho1AZDBBtKY4sYVHp1akNOldHqbbYgXZYXDgo5Q05MNgcbh8ARCUQSKQyOSKZSwIqfXQEDQABVoBFkaF4tFYYPIeFYVluEoe0ueJlQPBEmDBrEYeDU9zU+Fe8veZARJRRhXd6MQHTZGg6HTGPXSFQ6JJDHRaFMQLUjGjWYzaWJaa2D7J26G5Bwhx2odEFFxF12N9ylTxecoV2iVGi8jDBsEYUkNchM+lYAHIaE58AAzRgA2i8yFUT1I71opEY4YNCrTNqNAltTrpMk9NpxhAMuoafFsqrtFqkqYdLbZvY8w7jwtnIWXUU3cUVx4y121-4Nps0FttiwO3+QFgVBGhbwLPAYThSdcnyH01D9BAKg3JMt0aUMEyJdIUx3YY2haDR0g6GpIzGDo6jGSj1jGLNORzfYxwLAVzmFK4xTuSV32eWU3g+Os9DVDVMC1HgdT1MgDSNV8uLNeRaCgYQyD+JUODAChYFg5F4JnUAMTGVC1koqpCRmUj+kGRAajGMYcRWAM6g6cZ8Uoy96OvPM+ROItWKfMsZNNKteLdfiACFGFYDQAAkQSMTy7ygqg4RAkEYBMLTp19WdEAadID3IsYpnTFo6lKgzY0shAnLy0kmTmKZmlPVM3K5RiIP5HzH1LDiTUrD8a3dTRwsimKKGMJioUS2FGBuIFUtMVIOkRODUSyvTEHSHd0hahib3zDqHxLdiX04wL+r49QNGGhtTr655oti8b2qoPAhwBb8fDIWhxAALxlYCiFgPJ1DgdKsi9HS1rKSoqkXU8ioanoU3GCid2DYMkxWLEmiqay6imHaPIm7zDrY59y1koLP0Gq6Ipu3ruKgB6xviyC3rwb8AGV1JuUdnoIMHlu01bEOyqrlxpVMVlI9I2g3akKspLpzzs0qWm6Ci1x6Qnc2J+9izJ-zbsZ4La2urxjbk5m4r117hw5+tuYoOg9fSpaIZF4oxZjJGNDaLc6iR+l6iaRXEDZDogwaJzT1x6ydba-aSYNvyerfOTTZp83Lara2nqTgF2e-UabeGlwaHoERGDQThIBMUp5XEjRaAHXUCAACga9IAEoLV21mDpT7qToZjPqbCumLdH3OS-zrzC-t4vHvwMvXDwSvq9r+FwanSHRfWqr5jaJdV3xakKLDhB6kI9WWnqCpGRTNME72+eWK646KbOnjx8u7Pp7kBoAAwmoCAzA0COGkjnDsZddAaQynvL2B8OgERpEVaybQbILEjKsHcNQejTDDE5c8jUSJORfgPZOvlh5fzutWC6Q1J7QPursYcNxG6sGYDQRgA5aFwFgApMERclTuBBLAAA7lQSAAB6ZgX11CSKIBAeuHCwDN1blQTu6Qe59yJvzd+R1yYBToZnCekUp7p1zqwgg7DWA6i4Q6Xhxj+GCJoMIqgoiFFSIgLI+REjvEIM9khXGhEKINVhmSQk6RL5ORIkRKY9J8QJIwvjChesDGGzTpTc6IVLrhDINgTABA1BSAcCpF6jB+DqCkvgFUzBK4iRSqwQJCEkHQwQJtSq20OStVfneDJqcR6WJybWOpDS0BNKDD0RoatzBWEksBOBEBNI7xWq0pC5UcQRmIurUM4Zplo2DMfcqBFKKFQjATHp-d0mdUMUbABP8Br8TGdaCZc1IrjBmZg8pAIiC0GWTUh4sABEwBabpdpoxZYHhmNM2qOENwWUpC0UM0xVgRhqP7Mk5EahpP0bczJQzsmPIYaqeprzJmrEogRMYgsPbrLFmsA8jkzmMgDBUBJqNKro0ItsqlFFpmlQqLiguAyaHOLHk8y6LzGnvIPA-DF7KVF2N1OotuWidG9Mofrahn9xVU0lZoaVbzgSRQFQqqYYKoYYgvoRQqy4bLjHqCROoO5zw30KgsaJ1Lr7CrfviwZfCJUkqNZMixRL5BSGBa4n54J-k0EjSCuAlr97tMcouaJNk9kzCWHfHcVRI6B2RZg88VEExjF9f0-1YrmH0NyYaslMqTX02GTxBNri5X4wVXM9S68IpqXgas4W9LkEbjQdM-ZG4UHdDRgkpM1kejozWLLYMFbmJVt1TW0xUqG3Gp1M28NQLE2aDNcjbtkkmAXB5isoWmUU3WtHYQlCdIEYUQqDuZkGhsVrCJNi6WdFNU3NJgGvVIyab-F7HgFUsJsDiSaXgcRhQLB4GunjDFhVaW7yCWLRkeVCpYjmBMO+5UXVcofrZWWKwwxHwWEKq5eiRXrqMZu3+ioqAQagzgWD7z4OIeQ3TVDxa3Y3sQUhdGmN+UzO0RfbcXLHIEIWBMAy-t6SLHLW5MgM04AlAA3ioD1aHm1oVHS8Fc55i2Uomy9FpFSIycpPhAiWzWj4yRiSZ9q7B46qYwZrdrGCDGatSMdleVrLaLWLfEiMw32VXZYRfEBkQztAqARDc7mqEfy8y2wzYH6w-DAP5u9IwUFJjKgk-E7RokYsvoyY+zkiTspC2SC8dHda6aHhu7zLGBLKiEpqbUuoaD6kNPgEDzx8ttIxFUSW2i1x3wSYHEMUXKTLkIssCMy57UoWmal7V6X7mZZ811n8zZWwyEAqNzDw6IUoUXCF8M6xokRbpDuTBxyiqphJMigMdJtuiva-tzr34esiT6xJQFI35KKXIGN0TIZP2TrmAyTB6sQw7losffBSX1YEhKjGHFzXE5+r039g9nXhrQ+9ksfc-tUxB0iaHPCKYgwEgZDZ+FGLLlXhawxonGWScGtpiNZettoIzRSqCcnyDkd+wDrTkO0S0aBwIUl+o3RwwpI5+5LnhO2u8+-llsx+69cS-aTGYi0uad0jp-L2TQY75BypdM1Y4YfuMb23zkl-9Mt5y1Xbd6SpjfWrxObwOlu5dVcDkmNlDRA6lSnXUF3PO3d64O578N3vbbuOVJ9b6Yg-o8QBnAYGuh4AXZM-6BY+5FgLqRnSOkxFFuIGW0uKzmCzzO-x30tdiesnJ9J0wgz6f+a+4dnoJ2vM9YB-L4ztccxVcs4vjuBMBCkbmQSRMU3-7rmtc80nkxffzE1sHwXYfS8WZ8fYGvDeNdICT6qkSSYjQYwhi3AZMM5JKrWXIxudYyLlduY71qr9rrnvvzqnnrsAqAuApAsNjWrfiGJRLSFXosBimuCgmjNotLiRKsPgnMO0MSAnjrrvibPvobnQhoNYrYvYtwk4sbFGjAG4ovCInQF4kor4mIoojfqXgFlVEHtTiHsHFEjEuyjSMrtjGrnjBrjptzoQT3iASSvkoUsUmQKUqwLfsMMzrSJZlgWQrZiMM5kRNos+slqVPMAQTvrIcQfziGu8rfsVNMNEurKgurIyJfMMCRAQvMAkgjK0AjNrAAYBjIYSr3lYTupMmyvUK0LYU0H7M0MRGZgunVugdEpjIHBVjCignjpzgTpWt3kEXIXWqSuMpMp8vUJgrfjXn7NGMuAjqmESKjgGJjKGBRN0MuKkv4dvrthYUGgUdYU2pSimMirYYVObk5JbvXjGIcviHOq5iSMltSGplkZ3h5p0XkZYcGqEbKmahLFEZMJ0HweZA-KSK6r7JSiZPjF9pGGYSsYGvqusUUbKlBmAIUiwPGi4vQUMcfA1Pdk4c0ARHhF0IuGsA-MlptvSEllcXcl0bcT0RsU2mGsnm2u8VwQVlVPXtMM+oSORG-nMHhHLNMC4ZgihPgtSAuhCQSjcaBs8rCXuvCSYoiXAB2kfBUHAdEnlJFgSNZAGKrlMM9ranViVGmKeDhG0GScBsxiEfcXCZuvScevKsjCyerOieypiVyU0DydFuyqijZIrliJNn4YsYAa7lCZSdupKTSdKW8QyfSISGuEVAqWyRiZydieqUtlCpiRGIsASLRMrKKfpv9vzuBjQBxjBrqHBghoaOfrfimLZE0F0Jgq0NSPGWjJ0LZAVLXtSN0OCe0dIeYasd0V+EqOxtBlxiajxhGShlRGhlMAqZMAsAuiZGSBLDEkfNMOeAsMSOMFRCRL6cTsESSoGZBsWaGdxuGUhtdI8c8Q4jKVGVMbGbLKWomVRDOnMERHLCSIccsAmPHlsBsEAA */
/** @xstate-layout N4IgpgJg5mDOIC5QCUwGMwEsBuYAEATmALaYB2EYBseAhgEYD2ArgC56wDWmADj5Hgi1MAGwCeeYmDCtyUPAEdmcWYzKwAdAFVYVDQEkIIsAGIAKgAt8aZgSJl2sqXkywEeADwARAIL6AMgCaAPoAsgCi4Wb6AHIA4sHREQB8ANoADAC6iKA8jLCYqmQ5IAAeiABMVRoAHADMFTXpdQBsACwAjOlNAJwANCBiiAC0FQDsNRoArBPpUzUtU1NtNRUtLQC+GwOoGDj4RKQUVDQMLOxcvPwQgsLiktKyZPJKKphqmjp6hsYmXwR4NAWWjPOCEEjkSgA-gEd4QDLZJAgPIFIolcoIOrNDQNdo9KZ1Go1KY9Ho1AZDBBtKY4sYVHp1akNOldHqbbYgXZYXDgo5Q05MNgcbh8ARCUQSKQyOSKZSwIqfXQEDQABVoBFkaF4tFYYPIeFYVluEoe0ueJlQPBEmDBrEYeDU9zU+Fe8veZARJRRhXd6MQHTZGg6HTGPXSFQ6JJDHRaFMQLUjGjWYzaWJaa2D7J26G5Bwhx2odEFFxF12N9ylTxecoV2iVGi8jDBsEYUkNchM+lYAHIaE58AAzRgA2i8yFUT1I71opEY4YNCrTNqNAltTrpMk9NpxhAMuoafFsqrtFqkqYdLbZvY8w7jwtnIWXUU3cUVx4y121-4Nps0FttiwO3+QFgVBGhbwLPAYThSdcnyH01D9BAKg3JMt0aUMEyJdIUx3YY2haDR0g6GpIzGDo6jGSj1jGLNORzfYxwLAVzmFK4xTuSV32eWU3g+Os9DVDVMC1HgdT1MgDSNV8uLNeRaCgYQyD+JUODAChYFg5F4JnUAMTGVC1koqpCRmUj+kGRAajGMYcRWAM6g6cZ8Uoy96OvPM+ROItWKfMsZNNKteLdfiACFGFYDQAAkQSMTy7ygqg4RAkEYBMLTp19WdEAadID3IsYpnTFo6lKgzY0shAnLy0kmTmKZmlPVM3K5RiIP5HzH1LDiTUrD8a3dTRwsimKKGMJioUS2FGBuIFUtMVIOkRODUSyvTEHSHd0hahib3zDqHxLdiX04wL+r49QNGGhtTr655oti8b2qoPAhwBb8fDIWhxAALxlYCiFgPJ1DgdKsi9HS1rKSoqkXU8ioanoU3GCid2DYMkxWLEmiqay6imHaPIm7zDrY59y1koLP0Gq6Ipu3ruKgB6xviyC3rwb8AGV1JuUdnoIMHlu01bEOyqrlxpVMVlI9I2g3akKspLpzzs0qWm6Ci1x6Qnc2J+9izJ-zbsZ4La2urxjbk5m4r117hw5+tuYoOg9fSpaIZF4oxZjJGNDaLc6iR+l6iaRXEDZDogwaJzT1x6ydba-aSYNvyerfOTTZp83Lara2nqTgF2e-UabeGlwaHoERGDQThIBMUp5XEjRaAHXUCAACga9IAEoLV21mDpT7qToZjPqbCumLdH3OS-zrzC-t4vHvwMvXDwSvq9r+FwanSHRfWqr5jaJdV3xakKLDhB6kI9WWnqCpGRTNME72+eWK646KbOnjx8u7Pp7kBoAAwmoCAzA0COGkjnDsZddAaQynvL2B8OgERpEVaybQbILEjKsHcNQejTDDE5c8jUSJORfgPZOvlh5fzutWC6Q1J7QPursYcNxG6sGYDQRgA5aFwFgApMERclTuBBLAAA7lQSAAB6ZgX11CSKIBAeuHCwDN1blQTu6Qe59yJvzd+R1yYBToZnCekUp7p1zqwgg7DWA6i4Q6Xhxj+GCJoMIqgoiFFSIgLI+REjvEIM9khXGhEKINVhmSQk6RL5ORIkRKY9J8QJIwvjChesDGGzTpTc6IVLrhDINgTABA1BSAcCpF6jB+DqCkvgFUzBK4iRSqwQJCEkHQwQJtSq20OStVfneDJqcR6WJybWOpDS0BNKDD0RoatzBWEksBOBEBNI7xWq0pC5UcQRmIurUM4Zplo2DMfcqBFKKFQjATHp-d0mdUMUbABP8Br8TGdaCZc1IrjBmZg8pAIiC0GWTUh4sABEwBabpdpoxZYHhmNM2qOENwWUpC0UM0xVgRhqP7Mk5EahpP0bczJQzsmPIYaqeprzJmrEogRMYgsPbrLFmsA8jkzmMgDBUBJqNKro0ItsqlFFpmlQqLiguAyaHOLHk8y6LzGnvIPA-DF7KVF2N1OotuWidG9Mofrahn9xVU0lZoaVbzgSRQFQqqYYKoYYgvoRQqy4bLjHqCROoO5zw30KgsaJ1Lr7CrfviwZfCJUkqNZMixRL5BSGBa4n54J-k0EjSCuAlr97tMcouaJNk9kzCWHfHcVRI6B2RZg88VEExjF9f0-1YrmH0NyYaslMqTX02GTxBNri5X4wVXM9S68IpqXgas4W9LkEbjQdM-ZG4UHdDRgkpM1kejozWLLYMFbmJVt1TW0xUqG3Gp1M28NQLE2aDNcjbtkkmAXB5isoWmUU3WtHYQlCdIEYUQqDuZkGhsVrCJNi6WdFNU3NJgGvVIyab-F7HgFUsJsDiSaXgcRhQLB4GunjDFhVaW7yCWLRkeVCpYjmBMO+5UXVcofrZWWKwwxHwWEKq5eiRXrqMZu3+ioqAQagzgWD7z4OIeQ3TVDxa3Y3sQUhdGmN+UzO0RfbcXLHIEIWBMAy-t6SLHLW5MgM04AlAA3ioD1aHm1oVHS8Fc55i2Uomy9FpFSIycpPhAi0xtFP3xg-YMOK6O6100PDdBmt2sYIMZq1Ix2V5WstotYt8SIzDfZVdltrQzTPwf7Yk+M1NXk8wxvTPmW2GbA-WH4YBAt3pGCgpMZUEn4naNEjFl9GTH2ckSdlYWyQXg84nP1WWmO+ZYwJZUQlNTal1DQfUhp8AgeeEVtpGIqiS20WuO+CTA4hhi5SZchFlgRmXPalC0zV2Dx1V1nLfnes-mbK2GQgEJuYeHRClCi4wvhnWNEqLdIdyYOOUVVMJJkUBjpHtqhH9DsHp69+frIlBsSUBeN+SilyCTdEyGT9k65gMkwerEMO5aLH3wRUAicxWiOTvv97VgP7lHZ68NeH3slj7n9qmIOkTQ54RTI51YNnwzEmIml9yGWOveaB9-XLZi85aqmslOaoIqfIPR37AODOQ7RLRoHAhuP6jdHDCky56X2uVs62T4HBrabmJrVL9pMZiKy-p3SRnivSMHgXU0HCqZiRUTaMT0V2WDckv-jlkXtt3EBeuyZ-0eJLeB2twr2rgciLLi6CVQV9r3eMf14L47Pvw1+-5nbd69ZPrfTEH9HiAM4DA10PAIPQWqoLH3IsBdSM6R0mIitxAa2lxWcwWecMSe9dZNTxTphBnM8F2zw7PQTteZ61N9ajBfs5YNV6ISC+O4EwEKRuZBJExzf-uuV5g7KeTH9+N4P2eouA9+9XhXKuNdIBT-9ESSYjQYwhi3AZMM5JKrWXIxudYyLVfPu7-zvvibIfvuoLsAqAuApAmNibhXsVlVFROZrRN9kfGuCgmjNorLiRGzlRu0MSAAXvr3gfobunmAdYrYvYtwk4sbFGjAG4ovCInQF4kor4mIoojfrAVNiHv7GHvLlEjEuyjSKrtjBrnjFrjzjrmuj3oSn3obvkoUsUmQKUqwLfggMMASAQhZtMlZmQrZiMPjAQtojhOynjqVPMPgaToQcAYbiGu8iocVI5k9qgurIyJfMMCRAQrRFUKSIsKRFRO5trn0pIYAZYUGnWqSuMpMmyvUK0HYU0H7M0MRGZg7rglytojyvTtVjCigv4eIYEfthYdIUQcGjupMp8vUJgiofXn7NGMuCjs7u-pSORCrh3hRN0MuKkm1nkQDnciEfqsUREbKpSimMinYYVJbk5Nbk3jGIcviHOiSIVFuOrNSNzjpplsEYUVYf0eSrKmahLLEZMJ0HTovgKqSK6r7JSiZPjL9pGOYT0RsaEaMiUbKlBmAIUiwPGi4rQaMcfA1I4YsM4QRHhF0IuGsA-HjjtvSLjrcQSoGn0WETYU2mGqnm2l8RwaJk3tMM+oSE0erlMHhHLJ+m5lgXLDsjZNCcBsxtYU8YiZuiiXAB2kfBUCoXHnlNFgSNZAGLiW9rao1vHtEqeE7uSfpuTlSQMTSb5nScevKsjMydEqyViRyW-nMHmuyqijZMrliDNtrJ0Vqh7gLkUfCdSXukiSYpKWhISGuEVLKerJieytiZyU0HiZVHLMfNiRGIsASLRMrEKZ7jISSuBjQBxjBrqHBghoaHxsoWiWLCmLZE0F0Jgq0NSAmWjJ0LZMsM0L4YHPSN0D6fqZsWEQGZBtBlxiajxuGShn4cWtaZMAsAuiZGSBLDEkfNMOeAsMSOMFRCRLmUAQ8XlmxoGcWSGdxmGUhtdC8W8Q4pKSoaGDSHGbLKWkmVRDOnMDHijg-GfAmHUFsFsEAA */
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you change the layout in this snippet?

bot/filters.py Outdated
return False
chat_state = await load_state(chat_id=callback.message.chat.id)
return {"chat_state": chat_state}
if type(callback.message) == Message:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's cleaner to do like this:

match message := callback.message:
  case Message(): ...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

callback.message may be of type InacessbleMessage which seems to be inherited from Message but doesn't have message_thread_id property.
case Message(): accepts inherited classes, so this may cause an error

@deemp
Copy link
Collaborator

deemp commented Jul 8, 2024

On my PC, not always gives hints for this query:

@team56_daily_meeting_bot europe

@deemp
Copy link
Collaborator

deemp commented Jul 8, 2024

There may be other commands that use the inline mode.

Currently, the bot expects input right after the bot username.

image

Need to change this to

@team56_daily_meeting_bot set_time_zone Enter your local time, date, country, or continent

@deemp
Copy link
Collaborator

deemp commented Jul 8, 2024

Some lines aren't completely visible. Break them.

image

@kibertod
Copy link
Author

There may be other commands that use the inline mode.

Currently, the bot expects input right after the bot username.

image

Need to change this to

@team56_daily_meeting_bot set_time_zone Enter your local time, date, country, or continent

Telegram only allows to set placeholder text right after the bot tag. We can't display different placeholders for different commands.

@deemp deemp force-pushed the 85-scenario-set-default-time-zone-for-all-joined-people-in-a-public-chat branch from e93a499 to fc30bdb Compare July 17, 2024 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

2 participants