diff options
author | rubenwardy <rw@rubenwardy.com> | 2020-06-03 17:17:21 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2020-06-03 17:33:33 +0100 |
commit | 14cf3912f09f1fc649f3ac808ea3125d6a87516e (patch) | |
tree | 577a649964c92d06adf1523da7ea4abc5263b213 /app/querybuilder.py | |
parent | 720457e8768429efb3c9a8107e0e01a3490d75c3 (diff) | |
download | cheatdb-14cf3912f09f1fc649f3ac808ea3125d6a87516e.tar.xz |
Add support for getting MinetestRelease using engine_version
Diffstat (limited to 'app/querybuilder.py')
-rw-r--r-- | app/querybuilder.py | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/app/querybuilder.py b/app/querybuilder.py index cb1d07a..5b75b4c 100644 --- a/app/querybuilder.py +++ b/app/querybuilder.py @@ -42,7 +42,8 @@ class QueryBuilder: # Filters self.search = args.get("q") - self.protocol_version = args.get("protocol_version") + self.minetest_version = args.get("engine_version") + self.protocol_version = get_int_or_abort(args.get("protocol_version")) self.author = args.get("author") self.show_discarded = isYes(args.get("show_discarded")) @@ -58,15 +59,10 @@ class QueryBuilder: self.order_by = name def getMinetestVersion(self): - if not self.protocol_version: + if not self.protocol_version and not self.minetest_version: return None - self.protocol_version = get_int_or_abort(self.protocol_version) - version = MinetestRelease.query.filter(MinetestRelease.protocol>=self.protocol_version).first() - if version is not None: - return version.id - else: - return 10000000 + return MinetestRelease.get(self.minetest_version, self.protocol_version) def buildPackageQuery(self): query = Package.query.filter_by(soft_deleted=False, approved=True) @@ -111,12 +107,13 @@ class QueryBuilder: query = query.filter(Package.license.has(License.is_foss == True)) query = query.filter(Package.media_license.has(License.is_foss == True)) - if self.protocol_version: + if self.protocol_version or self.minetest_version: version = self.getMinetestVersion() - query = query.join(Package.releases) \ - .filter(PackageRelease.approved==True) \ - .filter(or_(PackageRelease.min_rel_id==None, PackageRelease.min_rel_id<=version)) \ - .filter(or_(PackageRelease.max_rel_id==None, PackageRelease.max_rel_id>=version)) + if version: + query = query.join(Package.releases) \ + .filter(PackageRelease.approved==True) \ + .filter(or_(PackageRelease.min_rel_id==None, PackageRelease.min_rel_id<=version.id)) \ + .filter(or_(PackageRelease.max_rel_id==None, PackageRelease.max_rel_id>=version.id)) if self.limit: query = query.limit(self.limit) |