diff --git a/app/tasks/phpbbparser.py b/app/tasks/phpbbparser.py
index 9984ad05..a945531d 100644
--- a/app/tasks/phpbbparser.py
+++ b/app/tasks/phpbbparser.py
@@ -133,7 +133,7 @@ def parseForumListPage(id, page, out, extra=None):
out[id] = row
- return True
+ return False
def getTopicsFromForum(id, out={}, extra=None):
print("Fetching all topics from forum {}".format(id))
diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html
index df31ce1c..b118046e 100644
--- a/app/templates/packages/view.html
+++ b/app/templates/packages/view.html
@@ -24,6 +24,9 @@
{% elif (package.type == package.type.GAME or package.type == package.type.TXP) and package.screenshots.count() == 0 %}
You need to add at least one screenshot.
+ {% elif topic_error_lvl == "error" %}
+ Please fix the below topic issue(s).
+
{% else %}
{% if package.screenshots.count() == 0 %}
You should add at least one screenshot, but this isn't required.
@@ -44,6 +47,14 @@
+ {% if topic_error %}
+
+
+ {{ topic_error | safe }}
+
+
+ {% endif %}
+
{% if package.author == current_user or package.checkPerm(current_user, "APPROVE_NEW") %}
{% if review_thread %}
🔒 {{ review_thread.title }}
diff --git a/app/views/packages/__init__.py b/app/views/packages/__init__.py
index 2c8d77bd..61848130 100644
--- a/app/views/packages/__init__.py
+++ b/app/views/packages/__init__.py
@@ -116,10 +116,31 @@ def package_page(package):
if review_thread is not None and not review_thread.checkPerm(current_user, Permission.SEE_THREAD):
review_thread = None
+ topic_error = None
+ topic_error_lvl = "warning"
+ if not package.approved and package.forums is not None:
+ errors = []
+ if Package.query.filter_by(forums=package.forums, soft_deleted=False).count() > 1:
+ errors.append("Error: Another package already uses this forum topic!")
+ topic_error_lvl = "error"
+
+ topic = ForumTopic.query.get(package.forums)
+ if topic is not None:
+ if topic.author != package.author:
+ errors.append("Error: Forum topic author doesn't match package author.")
+ topic_error_lvl = "error"
+
+ if topic.wip:
+ errors.append("Warning: Forum topic is in WIP section, make sure package meets playability standards.")
+ elif package.type != PackageType.TXP:
+ errors.append("Warning: Forum topic not found. This may happen if the topic has only just been created.")
+
+ topic_error = "
".join(errors)
+
return render_template("packages/view.html", \
package=package, releases=releases, requests=requests, \
alternatives=alternatives, similar_topics=similar_topics, \
- review_thread=review_thread)
+ review_thread=review_thread, topic_error=topic_error, topic_error_lvl=topic_error_lvl)
@app.route("/packages///download/")