Restructured module in preparation for setuptools packaging.

ui
Emily Frost 6 years ago
parent 5125dcf247
commit 45ba2cd38a
No known key found for this signature in database
GPG Key ID: FD1FA524668FB1FA

@ -8,11 +8,10 @@ Verify and sort game ROM images.
import hashlib
import sys
import os
import uuid
import xdg.BaseDirectory
#import dat
import metadata
from lark import metadata
HASH_CHUNK_SIZE = 10485760 # 10mb
SQLITE_FILENAME = 'metadata.db'
@ -30,28 +29,8 @@ def get_sha1sum(filename):
return sha1sum.hexdigest()
'''
smd_dat = dat(SMD_DAT_PATH)
# TODO: Default to '.'
# TODO: Use a proper arg parser.
search_dir = sys.argv[1]
for filename in os.listdir(search_dir):
# TODO: Ignore or descend into directories.
# TODO: Compare hashes
file_path = os.path.abspath(os.path.join(search_dir, filename))
file_sha1 = get_sha1sum(file_path)
search_result = smd_dat.search_by_sha1(file_sha1)
if search_result:
rom_data = search_result[0]
print('File %s matches database entry for %s.' % (filename, rom_data.filename))
else:
print('File %s is not in database.' % filename)
'''
# Test code! :D
# TODO: Write test code that doesn't depend on external resources.
SMD_DAT_PATH = '/home/lumia/Downloads/Sega - Mega Drive - Genesis (20200303-035539).dat'
TEST_HASH = 'cfbf98c36c776677290a872547ac47c53d2761d6'
def _kwargs_parse(kwargs_list):
kwargs = {}

@ -91,11 +91,14 @@ def configure(db_path):
db_path: Path for the SQLite database
'''
global _configured
global _engine
_engine = sqlalchemy.create_engine('sqlite:///%s' % db_path)
_SQLBase.metadata.create_all(_engine)
_db_session_maker.configure(bind=_engine)
_configured = True
print('Database configured.')
# TODO: Passing the session object is a little clunky. Maybe there's a way to infer it somehow?
def search(session, table_object, **constraints):

@ -14,6 +14,9 @@ directory structure.
* A nice, Beets-like interface
* Grouping ROMS in archive files
## Dependencies
* SQLAlchemy
## Known issues
* This probably isn't terribly efficient. It's Python parsing XML into an SQLite database and I only
know pretty basic database design.

Loading…
Cancel
Save