Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support for topic-structured groups, officially known as forums. This was requested in Issue #131. Legacy supergroup behaviour is unchanged; new logic is only applied when telegram_send detects that it is being configured to work inside a forum. Topic-separation works by replying to a "forum_topic_created" message. An additional configuration field was added to keep a permanent reference to this message, called "reply_to_message_id". If "reply_to_message_id" is present in the configuration, the bot will always reply to that message, which will result in a message appearing inside a topic. Examples of reworked logic are shown below:
Legacy groups:
![Legacy groups](https://private-user-images.githubusercontent.com/40764618/315360196-8b606fe0-8717-4955-95d3-89194b1a0d0f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjE4NzAsIm5iZiI6MTczOTQyMTU3MCwicGF0aCI6Ii80MDc2NDYxOC8zMTUzNjAxOTYtOGI2MDZmZTAtODcxNy00OTU1LTk1ZDMtODkxOTRiMWEwZDBmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA0MzkzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFjYjNkNzUyNDY3Y2MzYjQ4MGMwNjE5YWM3MDU2MzViNGU3NjU5OTA1ODE4ZmEyNTRiOTVmMTdhMWQ2OTFlNzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.uCHIPgiGfVhdKAruZOdm8Ttd7vFz-CZecmS0iiLD4wY)
Forums:
![Forums](https://private-user-images.githubusercontent.com/40764618/315361509-0a7b8a29-b4f7-4973-a0d7-0dcb7b7eef99.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjE4NzAsIm5iZiI6MTczOTQyMTU3MCwicGF0aCI6Ii80MDc2NDYxOC8zMTUzNjE1MDktMGE3YjhhMjktYjRmNy00OTczLWEwZDctMGRjYjdiN2VlZjk5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA0MzkzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY4ODdiZTM0YmIxZmRmODkwOWIxZDUyMDc4NTFkZDhjYTAxYWVjNDYwNzJiNGExNzQ1ZGE1ODgyZDBkMWVhYWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.yu1XwBAhfM-cLMyPxE8CR1J9uQcHevoPuInbhOT20_k)
Forums (alternated topic):
![Forums (alternated topic)](https://private-user-images.githubusercontent.com/40764618/315363717-934d97a4-40a7-414a-addf-1c60b1deebcf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjE4NzAsIm5iZiI6MTczOTQyMTU3MCwicGF0aCI6Ii80MDc2NDYxOC8zMTUzNjM3MTctOTM0ZDk3YTQtNDBhNy00MTRhLWFkZGYtMWM2MGIxZGVlYmNmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA0MzkzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZkMTI4ZWY5NGU1ZmJmOTUyZDhiNzIzMTFmYmJlODNmMDExNGMwM2QyMjljYWEyMmFhNDdhZjRiYjgyYjUyMjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.3A27Eq04SjZojNpUpO_F-JEDNdXm1mFiTMYflGj85LI)
New configuration:
![New configuration](https://private-user-images.githubusercontent.com/40764618/315374304-1fdcf1bf-89e8-4353-962b-8fdabac64bf2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjE4NzAsIm5iZiI6MTczOTQyMTU3MCwicGF0aCI6Ii80MDc2NDYxOC8zMTUzNzQzMDQtMWZkY2YxYmYtODllOC00MzUzLTk2MmItOGZkYWJhYzY0YmYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA0MzkzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI1NDdmM2VjNjRkYjdkMGM5M2Y4OTI4MzcxYmY1OGM4NzFiZTk1OWQxNjY4M2UxZjQzZDgxNThmMDRjNTg0NmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.78TSfOVbQNaP6GsF4ZQQ094wtouej4tO2j5S62tVs2s)
Old configuration:
![Old configuration](https://private-user-images.githubusercontent.com/40764618/315375638-ff81c21a-2c67-4657-a4f1-53c000b3c88a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0MjE4NzAsIm5iZiI6MTczOTQyMTU3MCwicGF0aCI6Ii80MDc2NDYxOC8zMTUzNzU2MzgtZmY4MWMyMWEtMmM2Ny00NjU3LWE0ZjEtNTNjMDAwYjNjODhhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDA0MzkzMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI3YTBkYTRhZTJkODg1NmE1ZTRhYmQxZTFlMjYzYWIxMmMzNDgyNTg0NGQ0YjBmNTBkNzZhOGQxYjI0ZGE3ZDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.EdXQ4GzhpJPJDjgxwyoLaE1qKZH0MdJEXOyDdLZFQFE)