--- a/infinitychan.py +++ b/infinitychan.py @@ -301,11 +301,18 @@ else: name = file['tim'] if mode == 'unix_original': - name += '_' + file['filename'] + if len(''.join([name, '_', file['filename'], + file['ext']]).encode('utf-8')) \ + <= os.statvfs(os.getcwd()).f_namemax: + name += '_' + file['filename'] elif mode == 'plain': name = file['tim'] elif mode == 'original': - name = file['filename'] + if len((file['filename'] + file['ext']).encode('utf-8')) \ + <= os.statvfs(os.getcwd()).f_namemax: + name = file['filename'] + else: + name = file['tim'] else: raise RuntimeError("Unknown mode {}".format(mode)) name += file['ext']