mirror of
https://github.com/erkin/ponysay.git
synced 2024-11-29 07:27:59 +01:00
Static analyzer checks on ponysay.krk
This commit is contained in:
parent
4e92fc2ff0
commit
57cc131f3b
1 changed files with 19 additions and 36 deletions
|
@ -112,17 +112,6 @@ class Ponysay():
|
|||
if len(self.HOME) == 0:
|
||||
os.environ['HOME'] = self.HOME = os.path.expanduser('~')
|
||||
|
||||
## Load extension and configurations via ponysayrc
|
||||
for file in ('$XDG_CONFIG_HOME/ponysay/ponysayrc', '$HOME/.config/ponysay/ponysayrc', '$HOME/.ponysayrc', '/etc/ponysayrc'):
|
||||
file = self.__parseFile(file)
|
||||
if (file is not None) and os.path.exists(file):
|
||||
with open(file, 'rb') as ponysayrc:
|
||||
code = ponysayrc.read().decode('utf8', 'replace') + '\n'
|
||||
env = os.environ
|
||||
code = compile(code, file, 'exec')
|
||||
exec(code)
|
||||
break
|
||||
|
||||
self.HOME = os.environ['HOME'] if 'HOME' in os.environ else '' # in case ~/.ponysayrc changes it
|
||||
if len(self.HOME) == 0:
|
||||
os.environ['HOME'] = self.HOME = os.path.expanduser('~')
|
||||
|
@ -431,20 +420,20 @@ class Ponysay():
|
|||
return
|
||||
|
||||
## Read all lines in all UCS → ASCII map files
|
||||
maplines = []
|
||||
let maplines = []
|
||||
for ucsmap in self.ucsmaps:
|
||||
if os.path.isfile(ucsmap):
|
||||
with open(ucsmap, 'rb') as mapfile:
|
||||
with fileio.open(ucsmap, 'rb') as mapfile:
|
||||
maplines += [line.replace('\n', '') for line in mapfile.read().decode('utf8', 'replace').split('\n')]
|
||||
|
||||
## Create UCS → ASCII mapping from read lines
|
||||
map = {}
|
||||
stripset = ' \t' # must be string, wtf! and way doesn't python's doc say so
|
||||
let stripset = ' \t' # must be string, wtf! and way doesn't python's doc say so
|
||||
for line in maplines:
|
||||
if (len(line) > 0) and not (line[0] == '#'):
|
||||
s = line.index('→')
|
||||
ucs = line[:s] .strip(stripset)
|
||||
ascii = line[s + 1:].strip(stripset)
|
||||
let s = line.index('→')
|
||||
let ucs = line[:s] .strip(stripset)
|
||||
let ascii = line[s + 1:].strip(stripset)
|
||||
map[ucs] = ascii
|
||||
|
||||
## Apply UCS → ASCII mapping to -f, +f, -F and -q arguments
|
||||
|
@ -480,7 +469,7 @@ class Ponysay():
|
|||
let maplines = []
|
||||
for ucsmap in self.ucsmaps:
|
||||
if os.path.isfile(ucsmap):
|
||||
with open(ucsmap, 'rb') as mapfile:
|
||||
with fileio.open(ucsmap, 'rb') as mapfile:
|
||||
maplines += [line.replace('\n', '') for line in mapfile.read().decode('utf8', 'replace').split('\n')]
|
||||
|
||||
## Create UCS → ASCII mapping from read lines
|
||||
|
@ -626,7 +615,7 @@ class Ponysay():
|
|||
'''
|
||||
## Apply metadata restriction
|
||||
if self.restriction is not None:
|
||||
ponies = {}
|
||||
let ponies = {}
|
||||
self.__applyMetadataRestriction(ponies, oldponies, ponydirs)
|
||||
if len(ponies) > 0:
|
||||
oldponies = ponies
|
||||
|
@ -648,7 +637,7 @@ class Ponysay():
|
|||
@param oldponies:dict<str, str> Collection of original ponies, maps to pony file
|
||||
@param ponydirs:list<sr> List of pony directories
|
||||
'''
|
||||
logic = Metadata.makeRestrictionLogic(self.restriction)
|
||||
let logic = Metadata.makeRestrictionLogic(self.restriction)
|
||||
for ponydir in ponydirs:
|
||||
for pony in Metadata.restrictedPonies(ponydir, logic):
|
||||
if (pony in oldponies) and not (pony in ponies):
|
||||
|
@ -668,11 +657,11 @@ class Ponysay():
|
|||
let fitw, fith = (None, None)
|
||||
if os.path.exists(ponydir + 'widths'):
|
||||
fitw = set()
|
||||
with open(ponydir + 'widths', 'rb') as file:
|
||||
with fileio.open(ponydir + 'widths', 'rb') as file:
|
||||
Metadata.getFitting(fitw, termw, file)
|
||||
if os.path.exists(ponydir + ('onlyheights' if self.ponyonly else 'heights')):
|
||||
fith = set()
|
||||
with open(ponydir + ('onlyheights' if self.ponyonly else 'heights'), 'rb') as file:
|
||||
with fileio.open(ponydir + ('onlyheights' if self.ponyonly else 'heights'), 'rb') as file:
|
||||
Metadata.getFitting(fith, termh, file)
|
||||
for ponyfile in oldponies.values():
|
||||
if ponyfile.startswith(ponydir):
|
||||
|
@ -703,7 +692,7 @@ class Ponysay():
|
|||
else:
|
||||
quote = quote[random.randrange(0, len(quote))][1]
|
||||
printinfo('quote file: ' + quote)
|
||||
with open(quote, 'rb') as qfile:
|
||||
with fileio.open(quote, 'rb') as qfile:
|
||||
quote = qfile.read().decode('utf8', 'replace').strip()
|
||||
return quote
|
||||
|
||||
|
@ -770,7 +759,7 @@ class Ponysay():
|
|||
if endswith(pony, '.pony'):
|
||||
let p = pony[:-5] # remove .pony
|
||||
for quote in quotes:
|
||||
q = quote[quote.rindex('/') + 1:]
|
||||
let q = quote[quote.rindex('/') + 1:]
|
||||
q = q[:q.rindex('.')]
|
||||
if ('+' + p + '+') in ('+' + q + '+'):
|
||||
rc.append((p, quote))
|
||||
|
@ -842,7 +831,7 @@ class Ponysay():
|
|||
ponies.sort()
|
||||
|
||||
## Print each one on a seperate line, but skip duplicates
|
||||
last = ''
|
||||
let last = ''
|
||||
for pony in ponies:
|
||||
if not pony == last:
|
||||
last = pony
|
||||
|
@ -931,7 +920,8 @@ class Ponysay():
|
|||
Prints the name of the program and the version of the program
|
||||
'''
|
||||
## Prints the "ponysay $VERSION", if this is modified, ./dev/dist.sh must be modified accordingly
|
||||
print('%s %s' % ('ponysay', VERSION))
|
||||
print('ponysay')
|
||||
#print('%s %s' % ('ponysay', VERSION))
|
||||
|
||||
|
||||
def printPony(self, args):
|
||||
|
@ -1057,9 +1047,9 @@ class Ponysay():
|
|||
'''
|
||||
if args.opts['-c'] is None:
|
||||
return msg
|
||||
buf = ''
|
||||
last = ' '
|
||||
CHARS = '\t \n'
|
||||
let buf = ''
|
||||
let last = ' '
|
||||
let CHARS = '\t \n'
|
||||
for c in msg:
|
||||
if (c in CHARS) and (last in CHARS):
|
||||
if last == '\n':
|
||||
|
@ -1084,13 +1074,6 @@ class Ponysay():
|
|||
@param pony:str The pony file
|
||||
@return :str The new pony file, or the old if it was already in the ponysay format
|
||||
'''
|
||||
if endswith(pony.lower(), '.png'):
|
||||
pony = '\'' + pony.replace('\'', '\'\\\'\'') + '\''
|
||||
pngcmd = 'ponytool --import image --file %s --balloon n --export ponysay --platform %s --balloon y'
|
||||
pngcmd %= (pony, ('linux' if self.linuxvt else 'xterm')) # XXX xterm should be haiku in Haiku
|
||||
pngpipe = os.pipe()
|
||||
Popen(pngcmd, stdout=os.fdopen(pngpipe[1], 'w'), shell=True).wait()
|
||||
pony = '/proc/' + str(os.getpid()) + '/fd/' + str(pngpipe[0])
|
||||
return pony
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue