сделал номера задач кликабельными в консоли
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
REDMINE_ISSUE_URL_TEMPLATE = "https://redmine.sbps.ru/issues/{issue_id}"
|
||||||
|
|
||||||
|
|
||||||
class RedmineConfig:
|
class RedmineConfig:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.base_url = "https://redmine.sbps.ru"
|
self.base_url = "https://redmine.sbps.ru"
|
||||||
|
|||||||
21
main.py
21
main.py
@@ -1,6 +1,25 @@
|
|||||||
import logging
|
import logging
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
from config.redmine import REDMINE_ISSUE_URL_TEMPLATE
|
||||||
|
|
||||||
|
|
||||||
|
class ConsoleFormatter(logging.Formatter):
|
||||||
|
"""Форматирует консольные логи и делает номера задач Redmine кликабельными."""
|
||||||
|
|
||||||
|
ISSUE_PATTERN = re.compile(r"(?<![\w/])#(?P<issue_id>\d+)")
|
||||||
|
|
||||||
|
def format(self, record):
|
||||||
|
message = super().format(record)
|
||||||
|
return self.ISSUE_PATTERN.sub(self._format_issue_link, message)
|
||||||
|
|
||||||
|
def _format_issue_link(self, match):
|
||||||
|
issue_id = match.group("issue_id")
|
||||||
|
issue_text = match.group(0)
|
||||||
|
issue_url = REDMINE_ISSUE_URL_TEMPLATE.format(issue_id=issue_id)
|
||||||
|
return f"\033]8;;{issue_url}\033\\{issue_text}\033]8;;\033\\"
|
||||||
|
|
||||||
|
|
||||||
def configure_logging(level: int = logging.INFO):
|
def configure_logging(level: int = logging.INFO):
|
||||||
"""Настраивает короткий консольный лог и подробный файловый лог."""
|
"""Настраивает короткий консольный лог и подробный файловый лог."""
|
||||||
@@ -11,7 +30,7 @@ def configure_logging(level: int = logging.INFO):
|
|||||||
file_handler.setLevel(level)
|
file_handler.setLevel(level)
|
||||||
|
|
||||||
console_handler = logging.StreamHandler(sys.stdout)
|
console_handler = logging.StreamHandler(sys.stdout)
|
||||||
console_handler.setFormatter(logging.Formatter('%(message)s'))
|
console_handler.setFormatter(ConsoleFormatter('%(message)s'))
|
||||||
console_handler.setLevel(level)
|
console_handler.setLevel(level)
|
||||||
|
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
|
|||||||
Reference in New Issue
Block a user