import requests import constant import environments class Message: '''A class that builds and sends messages''' def __init__(self, envs: environments.Environment): self.envs = envs def __build_message(self): '''Building message from different parts''' message = f'''{constant.ICON[self.envs.status]} {self.envs.status}: {self.envs.github_workflow}\n Repository: {self.envs.github_repository}''' version = self.envs.get_version() if version is not None: message = f'''{message} Version: {version}''' if self.envs.docker_tags is not None: message = f'''{message} Docker image tags: {self.envs.docker_tags}''' if self.envs.include_commit_info == "true": message = f'''{message} Author: {self.envs.github_actor} Commit message: {self.envs.commit} See changes''' return message def send_message(self): '''Sending message to telegram chat''' message = self.__build_message() if self.envs.custom_message is None else self.envs.custom_message parameters = { 'chat_id': self.envs.chat_id, 'text': message, 'parse_mode': 'HTML', 'disable_web_page_preview': True } request = requests.get(self.envs.get_link(), params = parameters) request.raise_for_status()