diff options
| author | Terry Truong <terry06890@gmail.com> | 2022-06-19 14:50:38 +1000 |
|---|---|---|
| committer | Terry Truong <terry06890@gmail.com> | 2022-06-19 14:50:38 +1000 |
| commit | 19c5a2b6c57b8c4245bb07773caa8df598b3feec (patch) | |
| tree | e944f66fff51448e75677982c3b3118856aeeb18 /backend/data/enwiki | |
| parent | 8c8ed28c87e649f163aaa54899f4b00c9fc31224 (diff) | |
Make manual enwiki-desc-associations more flexible
Also enable getEnwikiImgData.py to skip already-processed wiki-ids
Diffstat (limited to 'backend/data/enwiki')
| -rwxr-xr-x | backend/data/enwiki/downloadImgLicenseInfo.py | 2 | ||||
| -rwxr-xr-x | backend/data/enwiki/getEnwikiImgData.py | 16 |
2 files changed, 13 insertions, 5 deletions
diff --git a/backend/data/enwiki/downloadImgLicenseInfo.py b/backend/data/enwiki/downloadImgLicenseInfo.py index 5d99573..8231fbb 100755 --- a/backend/data/enwiki/downloadImgLicenseInfo.py +++ b/backend/data/enwiki/downloadImgLicenseInfo.py @@ -33,7 +33,7 @@ if dbCur.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='im # Get image names print("Reading image names") imgNames = set() -for (imgName,) in dbCur.execute("SELECT DISTINCT img_name FROM page_imgs"): +for (imgName,) in dbCur.execute("SELECT DISTINCT img_name FROM page_imgs WHERE img_name NOT NULL"): imgNames.add(imgName) print(f"Found {len(imgNames)} images") oldSz = len(imgNames) diff --git a/backend/data/enwiki/getEnwikiImgData.py b/backend/data/enwiki/getEnwikiImgData.py index f9680ff..f8bb2ee 100755 --- a/backend/data/enwiki/getEnwikiImgData.py +++ b/backend/data/enwiki/getEnwikiImgData.py @@ -34,11 +34,20 @@ indexDbCur = indexDbCon.cursor() imgDbCon = sqlite3.connect(imgDb) imgDbCur = imgDbCon.cursor() # Create image-db table -imgDbCur.execute("CREATE TABLE page_imgs (page_id INT PRIMARY KEY, img_name TEXT)") -imgDbCur.execute("CREATE INDEX page_imgs_idx ON page_imgs(img_name)") +pidsDone = set() +if imgDbCur.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='page_imgs'").fetchone() == None: + imgDbCur.execute("CREATE TABLE page_imgs (page_id INT PRIMARY KEY, img_name TEXT)") # img_name may be NULL + imgDbCur.execute("CREATE INDEX page_imgs_idx ON page_imgs(img_name)") +else: + for (pid,) in imgDbCur.execute("SELECT page_id FROM page_imgs"): + pidsDone.add(pid) + print(f"Will skip {len(pidsDone)} already-processed page-ids") # Get input pageIds print("Getting input page-ids", file=sys.stderr) pageIds = getInputPageIds() +for pid in pidsDone: + pageIds.remove(pid) +print(f"Found {len(pageIds)} page-ids to process") # Get page-id dump-file offsets print("Getting dump-file offsets", file=sys.stderr) offsetToPageids = {} @@ -156,8 +165,7 @@ with open(dumpFile, mode='rb') as file: content.append(line[:line.rfind("</text>")]) # Look for image-filename imageName = getImageName(content) - if imageName != None: - imgDbCur.execute("INSERT into page_imgs VALUES (?, ?)", (pageId, imageName)) + imgDbCur.execute("INSERT into page_imgs VALUES (?, ?)", (pageId, imageName)) break if not foundTextEnd: print(f"Did not find </text> for page id {pageId}", file=sys.stderr) |
