summaryrefslogtreecommitdiffstats
path: root/Demo/sockets/gopher.py
diff options
context:
space:
mode:
Diffstat (limited to 'Demo/sockets/gopher.py')
-rwxr-xr-xDemo/sockets/gopher.py92
1 files changed, 46 insertions, 46 deletions
diff --git a/Demo/sockets/gopher.py b/Demo/sockets/gopher.py
index 0635ac1..c287319 100755
--- a/Demo/sockets/gopher.py
+++ b/Demo/sockets/gopher.py
@@ -60,7 +60,7 @@ def get_menu(selector, host, port):
while 1:
line = f.readline()
if not line:
- print '(Unexpected EOF from server)'
+ print('(Unexpected EOF from server)')
break
if line[-2:] == CRLF:
line = line[:-2]
@@ -69,15 +69,15 @@ def get_menu(selector, host, port):
if line == '.':
break
if not line:
- print '(Empty line from server)'
+ print('(Empty line from server)')
continue
typechar = line[0]
parts = line[1:].split(TAB)
if len(parts) < 4:
- print '(Bad line from server: %r)' % (line,)
+ print('(Bad line from server: %r)' % (line,))
continue
if len(parts) > 4:
- print '(Extra info from server: %r)' % (parts[4:],)
+ print('(Extra info from server: %r)' % (parts[4:],))
parts.insert(0, typechar)
list.append(parts)
f.close()
@@ -95,7 +95,7 @@ def get_alt_textfile(selector, host, port, func):
while 1:
line = f.readline()
if not line:
- print '(Unexpected EOF from server)'
+ print('(Unexpected EOF from server)')
break
if line[-2:] == CRLF:
line = line[:-2]
@@ -139,61 +139,61 @@ def browser(*args):
if n > 2 and args[2]:
port = args[2]
if n > 3:
- raise RuntimeError, 'too many args'
+ raise RuntimeError('too many args')
try:
browse_menu(selector, host, port)
except socket.error as msg:
- print 'Socket error:', msg
+ print('Socket error:', msg)
sys.exit(1)
except KeyboardInterrupt:
- print '\n[Goodbye]'
+ print('\n[Goodbye]')
# Browse a menu
def browse_menu(selector, host, port):
list = get_menu(selector, host, port)
while 1:
- print '----- MENU -----'
- print 'Selector:', repr(selector)
- print 'Host:', host, ' Port:', port
- print
+ print('----- MENU -----')
+ print('Selector:', repr(selector))
+ print('Host:', host, ' Port:', port)
+ print()
for i in range(len(list)):
item = list[i]
typechar, description = item[0], item[1]
- print repr(i+1).rjust(3) + ':', description,
- if typename.has_key(typechar):
- print typename[typechar]
+ print(repr(i+1).rjust(3) + ':', description, end=' ')
+ if typechar in typename:
+ print(typename[typechar])
else:
- print '<TYPE=' + repr(typechar) + '>'
- print
+ print('<TYPE=' + repr(typechar) + '>')
+ print()
while 1:
try:
- str = raw_input('Choice [CR == up a level]: ')
+ str = input('Choice [CR == up a level]: ')
except EOFError:
- print
+ print()
return
if not str:
return
try:
choice = int(str)
except ValueError:
- print 'Choice must be a number; try again:'
+ print('Choice must be a number; try again:')
continue
if not 0 < choice <= len(list):
- print 'Choice out of range; try again:'
+ print('Choice out of range; try again:')
continue
break
item = list[choice-1]
typechar = item[0]
[i_selector, i_host, i_port] = item[2:5]
- if typebrowser.has_key(typechar):
+ if typechar in typebrowser:
browserfunc = typebrowser[typechar]
try:
browserfunc(i_selector, i_host, i_port)
except (IOError, socket.error):
t, v, tb = sys.exc_info()
- print '***', t, ':', v
+ print('***', t, ':', v)
else:
- print 'Unsupported object type'
+ print('Unsupported object type')
# Browse a text file
def browse_textfile(selector, host, port):
@@ -203,7 +203,7 @@ def browse_textfile(selector, host, port):
x = SaveLines(p)
get_alt_textfile(selector, host, port, x.writeln)
except IOError as msg:
- print 'IOError:', msg
+ print('IOError:', msg)
if x:
x.close()
f = open_savefile()
@@ -212,9 +212,9 @@ def browse_textfile(selector, host, port):
x = SaveLines(f)
try:
get_alt_textfile(selector, host, port, x.writeln)
- print 'Done.'
+ print('Done.')
except IOError as msg:
- print 'IOError:', msg
+ print('IOError:', msg)
x.close()
def raw_input(prompt):
@@ -225,32 +225,32 @@ def raw_input(prompt):
# Browse a search index
def browse_search(selector, host, port):
while 1:
- print '----- SEARCH -----'
- print 'Selector:', repr(selector)
- print 'Host:', host, ' Port:', port
- print
+ print('----- SEARCH -----')
+ print('Selector:', repr(selector))
+ print('Host:', host, ' Port:', port)
+ print()
try:
- query = raw_input('Query [CR == up a level]: ')
+ query = input('Query [CR == up a level]: ')
except EOFError:
- print
+ print()
break
query = query.strip()
if not query:
break
if '\t' in query:
- print 'Sorry, queries cannot contain tabs'
+ print('Sorry, queries cannot contain tabs')
continue
browse_menu(selector + TAB + query, host, port)
# "Browse" telnet-based information, i.e. open a telnet session
def browse_telnet(selector, host, port):
if selector:
- print 'Log in as', repr(selector)
+ print('Log in as', repr(selector))
if type(port) != type(''):
port = repr(port)
sts = os.system('set -x; exec telnet ' + host + ' ' + port)
if sts:
- print 'Exit status:', sts
+ print('Exit status:', sts)
# "Browse" a binary file, i.e. save it to a file
def browse_binary(selector, host, port):
@@ -280,7 +280,7 @@ class SaveLines:
def close(self):
sts = self.f.close()
if sts:
- print 'Exit status:', sts
+ print('Exit status:', sts)
# Class used to save data while showing progress
class SaveWithProgress:
@@ -291,18 +291,18 @@ class SaveWithProgress:
sys.stdout.flush()
self.f.write(data)
def close(self):
- print
+ print()
sts = self.f.close()
if sts:
- print 'Exit status:', sts
+ print('Exit status:', sts)
# Ask for and open a save file, or return None if not to save
def open_savefile():
try:
- savefile = raw_input( \
+ savefile = input( \
'Save as file [CR == don\'t save; |pipeline or ~user/... OK]: ')
except EOFError:
- print
+ print()
return None
savefile = savefile.strip()
if not savefile:
@@ -312,24 +312,24 @@ def open_savefile():
try:
p = os.popen(cmd, 'w')
except IOError as msg:
- print repr(cmd), ':', msg
+ print(repr(cmd), ':', msg)
return None
- print 'Piping through', repr(cmd), '...'
+ print('Piping through', repr(cmd), '...')
return p
if savefile[0] == '~':
savefile = os.path.expanduser(savefile)
try:
f = open(savefile, 'w')
except IOError as msg:
- print repr(savefile), ':', msg
+ print(repr(savefile), ':', msg)
return None
- print 'Saving to', repr(savefile), '...'
+ print('Saving to', repr(savefile), '...')
return f
# Test program
def test():
if sys.argv[4:]:
- print 'usage: gopher [ [selector] host [port] ]'
+ print('usage: gopher [ [selector] host [port] ]')
sys.exit(2)
elif sys.argv[3:]:
browser(sys.argv[1], sys.argv[2], sys.argv[3])