Добавил режим отладки. Исправил проблемы с логгером

This commit is contained in:
2025-05-21 11:57:09 +03:00
parent caa13a056b
commit aae6d8309a
7 changed files with 133 additions and 106 deletions

View File

@@ -1,9 +1,19 @@
import logging
import sys
from api import ClockifyAPI, RedmineAPI
from config import arg_parser, config, db
from utils import format_date, str_to_date, today_start, today_end
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('app.log', encoding='utf-8'),
logging.StreamHandler(sys.stdout)
]
)
from api import ClockifyAPI, RedmineAPI # noqa: E402
from config import arg_parser, config, db # noqa: E402
from utils import format_date, str_to_date, today_start, today_end # noqa: E402
WORKSPACE_ID = config.CLOCKIFY_WORKSPACE_ID
@@ -12,24 +22,29 @@ USER_ID = config.CLOCKIFY_USER_ID
def main():
args = arg_parser.parse_args()
if args.debug:
logging.getLogger().setLevel(logging.DEBUG)
logger = logging.getLogger(__name__)
start, end = None, None
if args.start:
start = str_to_date(args.start)
if args.end:
end = str_to_date(args.end)
if args.start is None and args.end is None:
logging.info("Парсим задачи за сегодняшний день")
logger.info("Парсим задачи за сегодняшний день")
start = today_start()
end = today_end()
else:
logging.info("Парсим задачи" + (f" с {start.date()} " if start else " ") + (f"до {end.date()}" if end else ""))
logger.info("Парсим задачи" + (f" с {start.date()} " if start else " ") + (f"до {end.date()}" if end else ""))
clock = ClockifyAPI(
token=config.CLOCKIFY_TOKEN,
workspace_id=WORKSPACE_ID,
user_id=USER_ID
)
red = RedmineAPI(config.REDMINE_TOKEN)
db.insert_tags(clock.get_tags())
db.insert_vetro_projects(config.VETRO_PROJECTS)
activities = clock.get_activities(
@@ -40,7 +55,6 @@ def main():
},
)
db.insert_activities(activities)
db.insert_time_entries(activities)
db.insert_activity_types({
9: "Разработка",
8: "Бизнес-анализ",
@@ -48,20 +62,17 @@ def main():
58: "Внутренние консультации",
60: "Поддержка",
})
# tracked_activities = red.track_activities(activities)
# clock.mark_tracked(tracked_activities)
if args.debug:
logger.debug("Пропускаем этап загрузки трудочасов")
return
try:
red = RedmineAPI(config.REDMINE_TOKEN)
tracked_activities = red.track_activities(activities)
clock.mark_tracked(tracked_activities)
db.insert_time_entries(tracked_activities)
except Exception as e:
logger.error(e)
if __name__ == "__main__":
logging.basicConfig(
level=logging.INFO,
format=('%(asctime)s, '
'%(levelname)s, '
'%(funcName)s, '
'%(message)s'
),
encoding='UTF-8',
handlers=[logging.FileHandler(__file__ + '.log'),
logging.StreamHandler(sys.stdout)]
)
main()