ajslater / comicfn2dict

Parse common comic filenames and return a dict of metadata attributes
GNU General Public License v3.0
1 stars 2 forks source link

Incorrect parsing when issue number is negative #14

Closed bpepple closed 3 months ago

bpepple commented 3 months ago

One of my users came across the following parsing error when attempting to tag some issues that have a negative number (primarily from Marvel's Flashback event from 1997).

from comicfn2dict import comicfn2dict
path = "The Sensational Spider-Man v1 #-1 (1997).cbz"
comicfn2dict(path)
{'ext': 'cbz', 'volume': '1', 'year': '1997', 'series': 'The Sensational Spider-Man', 'title': '#-1', 'issue': '1'}

Doing some quick debugging gives the following info:

---Init-------------------------------------------------------------------------
  The Sensational Spider-Man v1 #-1 (1997).cbz
  {}
---After Clean Path-------------------------------------------------------------
  The Sensational Spider-Man v1 #-1 (1997)
  {'ext': ('cbz', 41)}
---After Issue------------------------------------------------------------------
  The Sensational Spider-Man v1 #-1 (1997)
  {'ext': ('cbz', 41)}
---After Volume-----------------------------------------------------------------
  The Sensational Spider-Man/#-1 (1997)
  {'ext': ('cbz', 41), 'volume': ('1', 28)}
---After original_format & scan_info--------------------------------------------
  The Sensational Spider-Man/#-1
  {'ext': ('cbz', 41), 'volume': ('1', 28), 'year': ('1997', 35)}
---After parsing remainder paren and bracket groups-----------------------------
  The Sensational Spider-Man/#-1
  {'ext': ('cbz', 41), 'volume': ('1', 28), 'year': ('1997', 35)}
---After Issue on ends of tokens------------------------------------------------
  The Sensational Spider-Man/#-1
  {'ext': ('cbz', 41), 'volume': ('1', 28), 'year': ('1997', 35)}
---After publisher--------------------------------------------------------------
  The Sensational Spider-Man/#-1
  {'ext': ('cbz', 41), 'volume': ('1', 28), 'year': ('1997', 35)}
---After Series & Title---------------------------------------------------------

  {'ext': ('cbz', 41),
 'series': ('The Sensational Spider-Man', 0),
 'title': ('#-1', 30),
 'volume': ('1', 28),
 'year': ('1997', 35)}
---After issue can be volume----------------------------------------------------

  {'ext': ('cbz', 41),
 'issue': ('1', 28),
 'series': ('The Sensational Spider-Man', 0),
 'title': ('#-1', 30),
 'volume': ('1', 28),
 'year': ('1997', 35)}
The Sensational Spider-Man v1 #-1 (1997).cbz
{'ext': 'cbz',
 'issue': '-1',
 'series': 'The Sensational Spider-Man',
 'volume': '1',
 'year': '1997'}
{'ext': 'cbz',
 'issue': '1',
 'series': 'The Sensational Spider-Man',
 'title': '#-1',
 'volume': '1',
 'year': '1997'}
{'dictionary_item_added': [root['title']],
 'values_changed': {"root['issue']": {'new_value': '1', 'old_value': '-1'}}}
ajslater commented 3 months ago

Thanks!

That case is now fixed in v0.2.4