-#! /usr/bin/env python
+#! /usr/bin/env python3
# -*- coding: koi8-r -*-
import sys
dst_encoding = sys.argv[2]
if src_encoding == "translit":
- if dst_encoding == "koi8-r":
- from m_lib.rus.lat2rus import lat2koi as _recode
- elif dst_encoding == "cp1251":
- from m_lib.rus.lat2rus import lat2win as _recode
- else:
- raise NotImplementedError, "destination encoding must be koi8-r or cp1251, not `%s'" % dst_encoding
+ if dst_encoding == "koi8-r":
+ from m_lib.rus.lat2rus import lat2koi as _recode
+ elif dst_encoding == "cp1251":
+ from m_lib.rus.lat2rus import lat2win as _recode
+ else:
+ raise NotImplementedError("destination encoding must be koi8-r or cp1251, not `%s'" % dst_encoding)
elif dst_encoding == "translit":
- if src_encoding == "koi8-r":
- from m_lib.rus.rus2lat import koi2lat as _recode
- elif src_encoding == "cp1251":
- from m_lib.rus.rus2lat import win2lat as _recode
- else:
- raise NotImplementedError, "source encoding must be koi8-r or cp1251, not `%s'" % src_encoding
+ if src_encoding == "koi8-r":
+ from m_lib.rus.rus2lat import koi2lat as _recode
+ elif src_encoding == "cp1251":
+ from m_lib.rus.rus2lat import win2lat as _recode
+ else:
+ raise NotImplementedError("source encoding must be koi8-r or cp1251, not `%s'" % src_encoding)
- from m_lib.rus.rus2lat import koi2lat_d
- koi2lat_d["Ъ"] = '' # remove apostrophs -
- koi2lat_d["Ь"] = '' # they are not very good characters in filenames
- koi2lat_d["ъ"] = '' # especially on Windoze
- koi2lat_d["ь"] = '' # :-)
+ from m_lib.rus.rus2lat import koi2lat_d
+ koi2lat_d["Ъ"] = '' # remove apostrophs -
+ koi2lat_d["Ь"] = '' # they are not very good characters in filenames
+ koi2lat_d["ъ"] = '' # especially on Windoze
+ koi2lat_d["ь"] = '' # :-)
elif src_encoding == "url":
- try:
- src_encoding, dst_encoding = dst_encoding.split('/')
- except ValueError:
- src_encoding = dst_encoding
- from m_lib.opstring import recode
- import urllib
- def _recode(s):
- s = urllib.unquote(s)
- if src_encoding <> dst_encoding:
- s = recode(s, src_encoding, dst_encoding, "replace")
- return s
+ try:
+ src_encoding, dst_encoding = dst_encoding.split('/')
+ except ValueError:
+ src_encoding = dst_encoding
+ from m_lib.opstring import recode
+ import urllib
+ def _recode(s):
+ s = urllib.unquote(s)
+ if src_encoding != dst_encoding:
+ s = recode(s, src_encoding, dst_encoding, "replace")
+ return s
elif dst_encoding == "url":
- try:
- src_encoding, dst_encoding = src_encoding.split('/')
- except ValueError:
- dst_encoding = src_encoding
- from m_lib.opstring import recode
- import urllib
- def _recode(s):
- if src_encoding <> dst_encoding:
- s = recode(s, src_encoding, dst_encoding, "replace")
- return urllib.quote(s, safe=";/?:@&=+$,()'") # wget treats them as safe
+ try:
+ src_encoding, dst_encoding = src_encoding.split('/')
+ except ValueError:
+ dst_encoding = src_encoding
+ from m_lib.opstring import recode
+ import urllib
+ def _recode(s):
+ if src_encoding != dst_encoding:
+ s = recode(s, src_encoding, dst_encoding, "replace")
+ return urllib.quote(s, safe=";/?:@&=+$,()'") # wget treats them as safe
else:
- from m_lib.opstring import recode
- def _recode(s):
- return recode(s, src_encoding, dst_encoding, "replace")
+ from m_lib.opstring import recode
+ def _recode(s):
+ return recode(s, src_encoding, dst_encoding, "replace")
if __name__ == "__main__":
- import os
- for filename in sys.argv[3:]:
- new_name = _recode(filename)
- if new_name <> filename:
- os.rename(filename, new_name)
+ import os
+ for filename in sys.argv[3:]:
+ new_name = _recode(filename)
+ if type(filename) is not type(new_name):
+ new_name = new_name.decode()
+ if new_name != filename:
+ os.rename(filename, new_name)