#98 Improve finding the right package when searching by source name
Merged 5 years ago by pingou. Opened 5 years ago by pingou.

file modified
+14 -10
@@ -24,6 +24,7 @@ 

  '''

  import logging

  import os

+ import re

  

  import aiosqlite

  import werkzeug.utils
@@ -85,21 +86,24 @@ 

                  # user.

                  query = GET_PACKAGE_BY.format(action)

                  async with db.execute(query, (name,)) as cursor:

-                     pkg = await cursor.fetchall()

-                 if pkg:

-                     pkg = [Packages(*item) for item in pkg]

+                     pkgc = await cursor.fetchall()

+                 if pkgc:

+                     pkg = [Packages(*item) for item in pkgc]

                      break

              elif srcname:

+                 pattern = re.compile(f"{srcname}-[0-9]")

                  async with db.execute(GET_PACKAGE_BY_SRC, (srcname+'-%',)) as cursor:

-                     pkg = await cursor.fetchone()

-                 if pkg:

-                     pkg = Packages(*pkg)

-                     break

+                     pkgc = await cursor.fetchall()

+                 if pkgc:

+                     for pkg_item in pkgc:

+                         if pattern.match(pkg_item[3]):

+                             pkg = Packages(*pkg_item)

+                             break

              else:

                  async with db.execute(GET_PACKAGE, (name,)) as cursor:

-                     pkg = await cursor.fetchone()

-                 if pkg:

-                     pkg = Packages(*pkg)

+                     pkgc = await cursor.fetchone()

+                 if pkgc:

+                     pkg = Packages(*pkgc)

                      break

      if wrongdb:

          raise web.HTTPBadRequest()

Metadata