31 lines
933 B
Python
31 lines
933 B
Python
import os, sys
|
|
import asyncio
|
|
from appPublic.jsonConfig import getConfig
|
|
from sqlor.dbpools import DBPools
|
|
from ahserver.filestorage import FileStorage
|
|
from loadmedia import save_image_info
|
|
|
|
async def main():
|
|
workdir = os.path.join(os.environ.get('HOME'), 'py', 'media')
|
|
config = getConfig(workdir, {'workdir':workdir})
|
|
imgs = []
|
|
fs = FileStorage()
|
|
db = DBPools(config.databases)
|
|
async with db.sqlorContext('mediadb') as sor:
|
|
sql = """select a.* from media a left join imageinfo b
|
|
on a.id = b.id
|
|
where a.mtype = 'image'
|
|
and b.id is NULL
|
|
order by ownerid
|
|
"""
|
|
imgs = await sor.sqlExe(sql, {})
|
|
cnt = len(imgs)
|
|
for i, img in enumerate(imgs):
|
|
async with db.sqlorContext('mediadb') as sor:
|
|
print(f'handle {img.mlocation} {i}/{cnt}')
|
|
path = fs.realPath(img.mlocation)
|
|
await save_image_info(sor, img.ownerid, img.id, path, img.ownerid)
|
|
|
|
if __name__ == '__main__':
|
|
asyncio.get_event_loop().run_until_complete(main())
|