balloon stuff + pony names supersedes file names

This commit is contained in:
Mattias Andrée 2012-08-21 16:20:29 +02:00
parent 2934997c06
commit 504a6bd5f5
3 changed files with 64 additions and 8 deletions

View file

@ -7,6 +7,9 @@ Version 2.2
Support for colours in the message.
Support custom balloon styles using the option '-b', '-B' will list all
available. This list depends on whether you are invoking `ponysay` or `ponythink`
Version 2.1.1

View file

@ -132,8 +132,10 @@ Show summary of options.
Show version of program.
@item -f PONY
@itemx --file PONY
@itemx --pony PONY
@cindex @command{-f}
@cindex @command{--file}
@cindex @command{--pony}
Specify the pony that should printed, this can either be a file name or a pony
name printed by @command{ponysay -l}. This option can be used multiple times to
@ -145,8 +147,20 @@ If you have @command{util-say} installed, you can use .png-files as the
arguments for this options.
In versions earlier than version 2.0, the if the pony were a file name it had
to include a `@code{/}'. This is not longer required and any existing file
supersedes pony names.
to include a `@code{/}'. This is not longer required and any existing pony name
supersedes file names.
@item -b STYLE
@itemx --bubble STYLE
@itemx --balloon STYLE
@cindex @command{-b}
@cindex @command{--bubble}
@cindex @command{--balloon}
Specify the balloon style that should used, this can either be a file name or a
balloon name printed by @command{ponysay -B}. This option can be used multiple
times to specify a set of styles from which one will be selected randomly. If no
pony is specified one will be selected randomly. Any existing balloon name
supersedes file names.
@item -q [PONY...]
@itemx --quote [PONY...]
@ -185,6 +199,12 @@ is installed the ponies which have quotes, i.e. can be used with the
(depending on the terminal.) This options differs from @command{-l} by
printing alternative names (symbolic links) inside brackets after their
target ponies.
@item -B
@itemx --balloonlist
@cindex @command{-B}
@cindex @command{--balloonlist}
Prints a list of all balloon styles.
@end table
If neither @command{-q} is used nor any @var{message} is specified, @command{ponysay}
@ -1043,6 +1063,10 @@ ANSI colour sequences in pony files are applied only to the pony image,
not the balloon link or the balloon itself.
@item
Support for colours in the message.
@item
Support custom balloon styles using the option @code{-b}, @code{-B} will list
all available. This list depends on whether you are invoking @command{ponysay}
or @command{ponythink}
@end itemize
@heading Version 2.1.1

41
ponysay
View file

@ -70,17 +70,17 @@ class Ponysay():
def __getponypath(self, names = None):
ponies = {}
if not names == None:
for name in names:
if os.path.isfile(name):
ponies[name] = name
for ponydir in ponydirs:
for ponyfile in os.listdir(ponydir):
pony = ponyfile[:-5]
if pony not in ponies:
ponies[pony] = ponydir + ponyfile
if not names == None:
for name in names:
if os.path.isfile(name):
ponies[name] = name
if names == None:
names = list(ponies.keys())
@ -288,6 +288,35 @@ class Ponysay():
## Balloon methods
##
'''
Returns one file with full path, names is filter for names, also accepts filepaths
'''
def __getballoonpath(self, names):
if names is None:
return None
balloons = {}
for balloondir in balloondirs:
for balloonfile in os.listdir(balloondir):
balloon = balloonfile[:-5]
if balloon not in balloons:
balloons[balloon] = balloondir + balloonfile
for name in names:
if os.path.isfile(name):
balloons[name] = name
if names == None:
names = list(balloons.keys())
balloon = names[random.randrange(0, len(names))]
if balloon not in balloons:
sys.stderr.write('That balloon style %s does not exist\n' % (balloon));
exit(1)
else:
return balloons[balloon]
'''
Creates the balloon style object
'''
@ -1299,7 +1328,7 @@ pipelinein = not sys.stdin.isatty()
'''
Whether stdout is piped
'''
pipelineout = False #not sys.stdout.isatty() # currently impossible, we need to get rid of the little shell script first
pipelineout = not sys.stdout.isatty()
'''
Whether stderr is piped