From ef9860b6cca7e2bf6ad82774366eff145accdb61 Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 29 Jan 2021 20:01:48 +0000 Subject: [PATCH] Replace update bot message with notification only --- app/blueprints/todo/__init__.py | 6 +++++- app/tasks/importtasks.py | 12 ++++++++---- app/templates/todo/todo_base.html | 2 +- app/utils.py | 9 ++++++++- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/app/blueprints/todo/__init__.py b/app/blueprints/todo/__init__.py index 095a864..23d85e7 100644 --- a/app/blueprints/todo/__init__.py +++ b/app/blueprints/todo/__init__.py @@ -144,9 +144,13 @@ def metapackages(): return render_template("todo/metapackages.html", mpackages=mpackages) +@bp.route("/user/todo/") @bp.route("/users//todo/") @login_required -def view_user(username): +def view_user(username=None): + if username is None: + return redirect(url_for("todo.view_user", username=current_user.username)) + user : User = User.query.filter_by(username=username).first() if not user: abort(404) diff --git a/app/tasks/importtasks.py b/app/tasks/importtasks.py index dd5731f..1040318 100644 --- a/app/tasks/importtasks.py +++ b/app/tasks/importtasks.py @@ -27,7 +27,7 @@ from kombu import uuid from app.models import * from app.tasks import celery, TaskError -from app.utils import randomString, getExtension, post_bot_message +from app.utils import randomString, getExtension, post_bot_message, addSystemNotification from .minetestcheck import build_tree, MinetestCheckError, ContentType @@ -89,6 +89,8 @@ def clone_repo(urlstr, ref=None, recursive=False): def get_commit_hash(git_url, ref_name=None): + git_url = generateGitURL(git_url) + if ref_name: ref_name = "refs/heads/" + ref_name else: @@ -358,10 +360,12 @@ def check_update_config(self, package_id): if config.last_commit: msg_last = " The last commit was {}".format(config.last_commit[0:5]) - msg = "New commit {} was found on the Git repository.{}\n\n[Change update configuration]({})" \ - .format(hash[0:5], msg_last, package.getUpdateConfigURL()) + msg = "New commit {} found on the Git repo, is the package outdated?{}" \ + .format(hash[0:5], msg_last) - post_bot_message(package, "New commit detected, package may be outdated", msg) + for user in package.maintainers: + addSystemNotification(user, NotificationType.BOT, + msg, url_for("todo.view_user", username=user.username), package) config.last_commit = hash db.session.commit() diff --git a/app/templates/todo/todo_base.html b/app/templates/todo/todo_base.html index d06d41d..bbe7451 100644 --- a/app/templates/todo/todo_base.html +++ b/app/templates/todo/todo_base.html @@ -26,7 +26,7 @@ diff --git a/app/utils.py b/app/utils.py index 1d826ce..d19a5a7 100644 --- a/app/utils.py +++ b/app/utils.py @@ -213,7 +213,7 @@ def is_package_page(f): return decorated_function -def addNotification(target: User, causer: User, type: NotificationType, title: str, url: str, package: Package =None): +def addNotification(target, causer: User, type: NotificationType, title: str, url: str, package: Package = None): try: iter(target) for x in target: @@ -255,6 +255,13 @@ def nonEmptyOrNone(str): return str +def addSystemNotification(target, type: NotificationType, title: str, url: str, package: Package = None): + system_user = User.query.filter_by(username="ContentDB").first() + assert system_user + + return addNotification(target, system_user, type, title, url, package) + + def post_bot_message(package: Package, title: str, message: str): system_user = User.query.filter_by(username="ContentDB").first() assert system_user