diff options
Diffstat (limited to 'app/blueprints/admin/admin.py')
-rw-r--r-- | app/blueprints/admin/admin.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/app/blueprints/admin/admin.py b/app/blueprints/admin/admin.py index e4fc78b..e0bc143 100644 --- a/app/blueprints/admin/admin.py +++ b/app/blueprints/admin/admin.py @@ -21,7 +21,7 @@ import flask_menu as menu from . import bp from app.models import * from celery import uuid, group -from app.tasks.importtasks import importRepoScreenshot, makeVCSRelease, checkZipRelease +from app.tasks.importtasks import importRepoScreenshot, makeVCSRelease, checkZipRelease, updateMetaFromRelease from app.tasks.forumtasks import importTopicList, checkAllForumAccounts from flask_wtf import FlaskForm from wtforms import * @@ -52,6 +52,21 @@ def admin_page(): time.sleep(0.1) return redirect(url_for("todo.view")) + elif action == "reimportpackages": + tasks = [] + for package in Package.query.filter_by(approved=True, soft_deleted=False).all(): + release = package.releases.first() + if release: + zippath = release.url.replace("/uploads/", app.config["UPLOAD_DIR"]) + tasks.append(updateMetaFromRelease.s(release.id, zippath)) + + result = group(tasks).apply_async() + + while not result.ready(): + import time + time.sleep(0.1) + + return redirect(url_for("todo.view")) elif action == "importmodlist": task = importTopicList.delay() return redirect(url_for("tasks.check", id=task.id, r=url_for("todo.topics"))) |