from datetime import datetime, timedelta from flask import Blueprint, render_template from .get_period_times import get_period_totals, task_or_none, timezone, get_work_period_totals, get_current_task_info, convert_seconds, get_task_time_seconds dmbp = Blueprint("deskmeter", __name__, url_prefix="/", template_folder="templates") @dmbp.route("/favicon.ico") def favicon(): return "", 204 # No Content @dmbp.route("/") @dmbp.route("/") def index(task=None): """ Show total time used in each desktop for today """ task = task_or_none(task) start = datetime.today().replace(hour=0, minute=0, second=0, tzinfo=timezone) end = datetime.today().replace(hour=23, minute=59, second=59, tzinfo=timezone) rows = get_period_totals(start, end, task) # Get current task info current_task_id, current_task_path = get_current_task_info() current_task_time = None if current_task_id: total_seconds = get_task_time_seconds(start, end, current_task_id) if total_seconds > 0: current_task_time = convert_seconds(total_seconds) print(rows) return render_template("main.html", rows=rows, current_task_path=current_task_path, current_task_time=current_task_time) @dmbp.route("/day//") @dmbp.route("/day///") def oneday( month, day, task=None, ): task = task_or_none(task) start = datetime(2025, month, day).replace( hour=0, minute=0, second=0, tzinfo=timezone ) end = datetime(2025, month, day).replace( hour=23, minute=59, second=59, tzinfo=timezone ) rows = get_period_totals(start, end) return render_template("pages.html", rows=rows) @dmbp.route("/period//") def period(start, end): start = datetime(*map(int, start.split("-"))).replace( hour=0, minute=0, second=0, tzinfo=timezone ) end = datetime(*map(int, end.split("-"))).replace( hour=23, minute=59, second=59, tzinfo=timezone ) rows = get_period_totals(start, end) return render_template("pages.html", rows=rows) @dmbp.route("/work") def work(): """ Show total time used per work project for today """ start = datetime.today().replace(hour=0, minute=0, second=0, tzinfo=timezone) end = datetime.today().replace(hour=23, minute=59, second=59, tzinfo=timezone) rows = get_work_period_totals(start, end) print(rows) return render_template("main.html", rows=rows) @dmbp.route("/totals") @dmbp.route("/totals/") def totals(task=None): """ Show total time used in each desktop for all time """ task = task_or_none(task) start = datetime(2020, 1, 1).replace(hour=0, minute=0, second=0, tzinfo=timezone) end = datetime(2030, 1, 1).replace(hour=23, minute=59, second=59, tzinfo=timezone) rows = get_period_totals(start, end) return render_template("pages.html", rows=rows)