basic script and web stub

This commit is contained in:
Mariano Ramon
2020-04-07 06:33:19 -03:00
commit 2f72244972
5 changed files with 93 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
__pycache__
nohup.out

19
dmapp/dmweb/__init__.py Normal file
View File

@@ -0,0 +1,19 @@
import os
from flask import Flask
from dmweb import dm
def create_app(test_config=None):
app = Flask("deskmeter") #instance_relative_config=True
try:
os.makedirs(app.instance_path)
except OSError:
pass
app.register_blueprint(dm.dmbp)
return app

7
dmapp/dmweb/dm.py Normal file
View File

@@ -0,0 +1,7 @@
from flask import Blueprint
dmbp = Blueprint("deskmeter", __name__, url_prefix="/")
@dmbp.route("/")
def index():
return "Hello, World!"

6
dmapp/run.py Normal file
View File

@@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
from dmweb import create_app
app = create_app()
app.run(host='0.0.0.0', debug=True, threaded=True)

59
dmmain.py Normal file
View File

@@ -0,0 +1,59 @@
import subprocess
import os
import datetime
import time
from pymongo import MongoClient
from pprint import pprint
client = MongoClient()
now = datetime.datetime.utcnow
db = client.deskmeter
switches = db.switch
dailies = db.daily
desktops = ("Work",
"Browse",
"Write",
"Learn",
"Idle")
unlabeled = "Other"
def active_workspace():
workspaces = subprocess.check_output(["wmctrl", "-d"]) \
.decode("utf-8").strip("\n").split("\n")
for workspace in workspaces:
if workspace[3] == "*":
return int(workspace[0])
def desktop(workspace_index):
try:
return desktops[workspace_index]
except IndexError:
return unlabeled
current_workspace = active_workspace()
last_switch_time = now()
while True:
if current_workspace != active_workspace():
delta = round((now() - last_switch_time ).total_seconds())
switch = { "workspace": desktop(current_workspace),
"date": last_switch_time,
"delta": delta }
switches.insert_one(switch)
current_workspace = active_workspace()
last_switch_time = now()
time.sleep(1)