except IOError:
database = []
for name, value in database:
+ if name.startswith('b\'') or name.startswith('b"'):
+ continue # XXX: 文字コード変換に問題のあったバージョン対策
self.assign(name, value)
def save_database(self):
encrypted = 0
self.dbpath = os.path.join(self.satori_dir, self.DBNAME)
try:
- with open(self.dbpath, 'w') as f:
+ with open(self.dbpath, 'wb') as f:
for name, value in self.variable.items():
if name in ['前回終了時サーフェス0',
'前回終了時サーフェス1',
'デフォルトサーフェス0',
'デフォルトサーフェス1']:
continue
- line = '{0}\t{1}'.format(name.encode('CP932'),
- value.encode('CP932'))
+ line = '{0}\t{1}'.format(name, value)
+ line = line.encode('CP932')
if encrypted:
line = ''.join(encrypt(encrypt(line)))
f.write(line)
- f.write('\r\n')
+ f.write(b'\r\n')
for side in [0, 1]:
name = 'デフォルトサーフェス{0:d}'.format(side)
value = self.to_zenkaku('{0:d}'.format(self.default_surface[side]))
- line = '{0}\t{1}'.format(name.encode('CP932'),
- value.encode('CP932'))
+ line = '{0}\t{1}'.format(name, value)
+ line = line.encode('CP932')
if encrypted:
line = ''.join(encrypt(encrypt(line)))
f.write(line)
- f.write('\r\n')
+ f.write(b'\r\n')
for side in [0, 1]:
name = '前回終了時サーフェス{0:d}'.format(side)
value = self.to_zenkaku('{0:d}'.format(self.current_surface[side]))
- line = '{0}\t{1}'.format(name.encode('CP932'),
- value.encode('CP932'))
+ line = '{0}\t{1}'.format(name, value)
+ line = line.encode('CP932')
if encrypted:
line = ''.join(encrypt(encrypt(line)))
f.write(line)
- f.write('\r\n')
+ f.write(b'\r\n')
name = '起動回数'
value = self.to_zenkaku('{0:d}'.format(self.runcount))
- line = '{0}\t{1}'.format(name.encode('CP932'),
- value.encode('CP932'))
+ line = '{0}\t{1}'.format(name, value)
+ line = line.encode('CP932')
if encrypted:
line = ''.join(encrypt(encrypt(line)))
f.write(line)
- f.write('\r\n')
+ f.write(b'\r\n')
for name in self.timer:
value = self.to_zenkaku(self.timer[name])
- line = '{0}\t{1}'.format(name.encode('CP932'),
- value.encode('CP932'))
+ line = '{0}\t{1}'.format(name, value)
+ line = line.encode('CP932')
if encrypted:
line = ''.join(encrypt(encrypt(line)))
f.write(line)
- f.write('\r\n')
+ f.write(b'\r\n')
for name in self.reserved_talk:
value = self.to_zenkaku(self.reserved_talk[name])
- line = '{0}\t{1}'.format(''.join(('次から', value, '回目のトーク')).encode('CP932'),
- name.encode('CP932'))
+ line = '{0}\t{1}'.format(''.join(('次から', value, '回目のトーク')), name)
+ line = line.encode('CP932')
if encrypted:
line = ''.join(encrypt(encrypt(line)))
f.write(line)
- f.write('\r\n')
+ f.write(b'\r\n')
except IOError:
logging.debug('satori.py: cannot write {0}'.format(self.dbpath))
return