mirror of
https://github.com/robmcmullen/atrcopy.git
synced 2024-11-28 20:51:44 +00:00
Added starpath cassette images & changed to binary sha1 hash instead of using hexdigest
This commit is contained in:
parent
738aa05921
commit
f6bd90656a
@ -345,3 +345,8 @@ class RomImage(DiskImageBase):
|
||||
class Atari2600CartImage(RomImage):
|
||||
def __str__(self):
|
||||
return f"{len(self.rawdata) // 1024}k Atari 2600 Cartridge"
|
||||
|
||||
|
||||
class Atari2600StarpathImage(RomImage):
|
||||
def __str__(self):
|
||||
return f"{len(self.rawdata) // 1024}k Atari 2600 Starpath Cassette"
|
||||
|
@ -6,7 +6,7 @@ from .segments import SegmentData, DefaultSegment
|
||||
from .kboot import KBootImage
|
||||
from .ataridos import AtariDosDiskImage, BootDiskImage, AtariDosFile, XexContainerSegment, AtariDiskImage
|
||||
from .spartados import SpartaDosDiskImage
|
||||
from .cartridge import AtariCartImage, Atari8bitCartImage, Atari5200CartImage, get_known_carts, RomImage, Atari2600CartImage
|
||||
from .cartridge import AtariCartImage, Atari8bitCartImage, Atari5200CartImage, get_known_carts, RomImage, Atari2600CartImage, Atari2600StarpathImage
|
||||
from .mame import MameZipImage
|
||||
from .dos33 import Dos33DiskImage, ProdosDiskImage, Dos33BinFile
|
||||
from .standard_delivery import StandardDeliveryImage
|
||||
@ -166,6 +166,11 @@ class Atari2600CartParser(SegmentParser):
|
||||
image_type = Atari2600CartImage
|
||||
|
||||
|
||||
class Atari2600StarpathParser(SegmentParser):
|
||||
menu_name = "Atari 2600 Starpath Cassette"
|
||||
image_type = Atari2600StarpathImage
|
||||
|
||||
|
||||
class RomParser(SegmentParser):
|
||||
menu_name = "ROM Image"
|
||||
image_type = RomImage
|
||||
@ -220,7 +225,7 @@ def guess_parser_by_size(r, verbose=False):
|
||||
size = len(r)
|
||||
if size in sha1_signatures:
|
||||
print(r)
|
||||
sha_hash = hashlib.sha1(r.data).hexdigest()
|
||||
sha_hash = hashlib.sha1(r.data).digest()
|
||||
log.info(f"{size} in signature database, attempting to match {sha_hash}")
|
||||
try:
|
||||
match = sha1_signatures[size][sha_hash]
|
||||
@ -322,6 +327,9 @@ mime_parsers = {
|
||||
"application/vnd.atari2600.cart": [
|
||||
Atari2600CartParser,
|
||||
],
|
||||
"application/vnd.atari2600.starpath": [
|
||||
Atari2600StarpathParser,
|
||||
],
|
||||
"application/vnd.mame_rom": [
|
||||
MameZipParser,
|
||||
],
|
||||
@ -337,12 +345,12 @@ mime_parsers = {
|
||||
],
|
||||
}
|
||||
|
||||
# Note: Atari 2600 scanning not performed here because it will match everything
|
||||
mime_parse_order = [
|
||||
"application/vnd.atari8bit.atr",
|
||||
"application/vnd.atari8bit.xex",
|
||||
"application/vnd.atari8bit.cart",
|
||||
"application/vnd.atari5200.cart",
|
||||
"application/vnd.atari2600.cart",
|
||||
"application/vnd.mame_rom",
|
||||
"application/vnd.apple2.dsk",
|
||||
"application/vnd.apple2.bin",
|
||||
@ -355,6 +363,7 @@ pretty_mime = {
|
||||
"application/vnd.atari8bit.cart": "Atari 8-bit Cartridge",
|
||||
"application/vnd.atari5200.cart": "Atari 5200 Cartridge",
|
||||
"application/vnd.atari2600.cart": "Atari 2600 Cartridge",
|
||||
"application/vnd.atari2600.starpath": "Atari 2600 Starpath Cassette",
|
||||
"application/vnd.mame_rom": "MAME",
|
||||
"application/vnd.rom": "ROM Image",
|
||||
"application/vnd.apple2.dsk": "Apple ][ Disk Image",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ import pprint
|
||||
|
||||
def parse(filename, mime):
|
||||
data = open(filename, 'rb').read()
|
||||
h = hashlib.sha1(data).hexdigest()
|
||||
h = hashlib.sha1(data).digest()
|
||||
name = os.path.basename(os.path.splitext(filename)[0])
|
||||
return len(data), h, name
|
||||
|
||||
@ -38,9 +38,9 @@ if __name__ == '__main__':
|
||||
for k,v in sorted(new_signatures.items()):
|
||||
lines.append(f"{k}: {{")
|
||||
for h,n in sorted(v.items(), key=lambda a:(a[1], a[0])):
|
||||
lines.append(f" '{h}': {n},")
|
||||
lines.append(f" {h}: {n},")
|
||||
lines.append("},")
|
||||
lines.append("} # end sha1_signatures")
|
||||
lines.append("} # end sha1_signatures\n")
|
||||
|
||||
print("\n".join(lines))
|
||||
with open(source, 'w') as fh:
|
||||
|
Loading…
Reference in New Issue
Block a user