l3uddz / plex_dupefinder

Find and delete duplicate files in Plex
GNU General Public License v3.0
303 stars 54 forks source link

Crash when parsing "…" character #43

Open Davst opened 4 years ago

Davst commented 4 years ago

Describe the bug Plex_Dupefinder can't handle the movie Once Upon a Time… in Hollywood, the "…" character generates the error

UnicodeEncodeError: 'ascii' codec can't encode character '\u2026' in position 59: ordinal not in range(128)

To Reproduce Steps to reproduce the behavior:

  1. Have two files named with the full movie title
  2. Run plex_dupefinder

Expected behavior Normal functionality

Logs

--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.6/logging/__init__.py", line 996, in emit
    stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2026' in position 47: ordinal not in range(128)
Call stack:
  File "/usr/local/bin/plex_dupefinder", line 366, in <module>
    log.info("Processing: %r", title)
Message: 'Processing: %r'
Arguments: ('Once Upon a Time\u2026 in Hollywood',)
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib/python3.6/logging/__init__.py", line 996, in emit
    stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2026' in position 339: ordinal not in range(128)
Call stack:
  File "/usr/local/bin/plex_dupefinder", line 375, in <module>
    part_info)
Message: 'ID: %r - Score: %s - Meta:\n%r'
Arguments: (19252, 290870, {'id': 19252, 'video_bitrate': 15811, 'audio_codec': 'dca-ma', 'audio_channels': 6, 'video_codec': 'h264', 'video_resolution': '1080', 'video_width': 1920, 'video_height': 800, 'video_duration': 9689686, 'file': ['/p/movies/Once Upon a Time in Hollywood (2019)/Once Upon a Time\u2026 in Hollywood (2019) Bluray-1080p.mkv'], 'multipart': False, 'file_size': 19151003257, 'score': 290870, 'show_key': '/library/metadata/14156'})
Found 4 dupes for section 'Movies 4K'
Traceback (most recent call last):
  File "/usr/local/bin/plex_dupefinder", line 385, in <module>
    print("\nWhich media item do you wish to keep for %r ?\n" % item)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2026' in position 59: ordinal not in range(128)