Browse Source

MH is now Zork; changed some wordings

master
Julio Biason 16 years ago
parent
commit
9ec5fd07cf
  1. 69
      mitterlib/ui/ui_zork.py

69
mitterlib/ui/ui_mh.py → mitterlib/ui/ui_zork.py

@ -21,6 +21,7 @@ import logging
import cmd
import datetime
import warnings
import pickle
import mitterlib.ui.helpers.console_utils as console_utils
import mitterlib.constants
@ -33,9 +34,9 @@ _log = logging.getLogger('ui.cmd')
class Interface(cmd.Cmd):
"""A MH-like interface to Mitter."""
"""A MH/zork-like interface to Mitter."""
NAMESPACE = 'mh'
NAMESPACE = 'zork'
# -----------------------------------------------------------------------
# Commands
@ -62,30 +63,48 @@ class Interface(cmd.Cmd):
print '%d new messages, %d total messages now' % (len(data),
len(self._messages))
def do_next(self, line=None):
"""Get the next message in the top of the list. The message is marked
as read and removed from the list."""
try:
self._current_message = self._messages.pop(0)
except IndexError:
print 'There are no unread messages.'
def do_display(self, line=None):
"""Display the current message or move the cursor to the
next/previous."""
if not line:
line = '' # so 'lower()' doesn't fail.
line = line.lower()
if line == 'current':
pass
elif line == 'next':
if self._cursor + 1 > len(self._message):
print 'There is no next message.'
print
return
self._cursor += 1
elif line == 'previous':
if self._cursor == 0:
print 'You are in the top of the list.'
print
return
self.cursor -= 1
else:
print 'Display WHAT?'
print '("current", "previous" or "next")'
return
console_utils.print_messages(self._current_message, self._connection)
message = self._messages[self._cursor]
console_utils.print_messages(message, self._connection)
return
def do_print(self, line=None):
"""Print the message in the current pointer."""
if self._current_message is None:
print 'There is no current message.'
return
console_utils.print_messages(self._current_message, self._connection)
def do_list(self, line=None):
"""Print a summary of the messages in the list."""
for message in self._messages:
long_line = '%s: %s' % (message.username, message.message)
for pos in xrand(len(self._message)):
if pos == self._cursor:
indicator = '>'
else:
indicator = ' '
message = self._messages[pos]
long_line = '%s%s: %s' % (indicator, message.username,
message.message)
if len(long_line) > 75:
last_space = long_line.rfind(' ', 0, 76)
@ -96,15 +115,13 @@ class Interface(cmd.Cmd):
def do_reply(self, line):
"""Make a reply to the current message."""
if self._current_message is None:
print 'There is no current message.'
return
message = self._messages[self._cursor]
if self._update(line, reply_to=self._current_message):
if self._update(line, reply_to=message):
print 'Reply send.'
self.lastcmd = None
def do_update(self, line):
def do_say(self, line):
"""Update your status."""
if self._update(line):
print 'Status updated'
@ -148,7 +165,7 @@ class Interface(cmd.Cmd):
self._last_update = None
self._connection = connection
self._messages = []
self._current_message = None
self._cursor = 0
self.prompt = '> '
return
Loading…
Cancel
Save