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()