Index: nntpdup.py ================================================================== --- nntpdup.py +++ nntpdup.py @@ -1,16 +1,17 @@ #!/usr/bin/env python3 import configparser, email.utils, getpass, imaplib, nntplib, re, sqlite3, sys -imaplib._MAXLINE = 1024 * 1024 -nntplib._MAXLINE = 1024 * 1024 +imaplib._MAXLINE = 1024 * 1024 * 4 +nntplib._MAXLINE = 1024 * 1024 * 4 config = configparser.ConfigParser(allow_no_value = True) config.read('nntpdup.conf') try: - server = nntplib.NNTP_SSL(config['connection']['newsserver']) + #server = nntplib.NNTP_SSL(config['connection']['newsserver']) + server = nntplib.NNTP(config['connection']['newsserver']) except nntplib.NNTPTemporaryError as err: if err.response.startswith('400 load at '): print(err.response) exit(0) else: @@ -163,11 +164,11 @@ print(repr(data)) exit(1) if (count % 1000) == 0: sys.stdout.write('.') sys.stdout.flush() - print('], deleted:', deleted, end = '') + print('], deleted:', deleted) folder.sync() mserver.expunge() folder = Folder('nntpdup.sqlite') @@ -181,17 +182,22 @@ skew = 1 + int(maxlength / 8) for folderName in (set(config['groups'].keys())): stats = [0, 0] folder.select(folderName) + localFolderName = folderName - resp = mserver.select(folderName) + resp = mserver.select(localFolderName) + print('#--', localFolderName, ':', resp) if resp[0] != 'OK': - print("Can't open folder.") - exit(1) + localFolderName = folderName.replace('.', '/') + resp = mserver.select(localFolderName) + if resp[0] != 'OK': + print("Can't open folder.") + exit(1) if int(resp[1][0]) != folder.count: - check_folder(mserver, folder, folderName) + check_folder(mserver, folder, localFolderName) _, count, first, last, _ = server.group(folderName) limits[0] += limitSteps[0] if last > folder.last: count = 0 @@ -269,22 +275,22 @@ print(repr(line)) exit(1) out.append('\n') try: #print('*', item, date, type(date)) - mserver.append(folderName, None, date, b'\n'.join(info.lines)) + mserver.append(localFolderName, None, date, b'\n'.join(info.lines)) except AttributeError as err: #print('*', item, raw_date, repr(date)) #raise(err) - mserver.append(folderName, None, backup_date, b'\n'.join(info.lines)) + mserver.append(localFolderName, None, backup_date, b'\n'.join(info.lines)) except OverflowError as err: #print('*', item, raw_date, repr(date)) #raise(err) - mserver.append(folderName, None, backup_date, b'\n'.join(info.lines)) + mserver.append(localFolderName, None, backup_date, b'\n'.join(info.lines)) else: #print('*', item, env_date, type(env_date)) - mserver.append(folderName, None, env_date, b'\n'.join(info.lines)) + mserver.append(localFolderName, None, env_date, b'\n'.join(info.lines)) folder.addmail(item) folder.sync() count += 1 if count >= limits[1]: break