Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision b6987b13fecdfbbc3a45e84025754d06ad18fca9 authored by Guido van Rossum on 07 April 1999, 18:32:51 UTC, committed by Guido van Rossum on 07 April 1999, 18:32:51 UTC
before exiting when an error happened. This didn't work right when Python is invoked from a daemon.
1 parent a99c5db
Tip revision: b6987b13fecdfbbc3a45e84025754d06ad18fca9 authored by Guido van Rossum on 07 April 1999, 18:32:51 UTC
Alas, get rid of the Win specific hack to ask the user to press Return
Alas, get rid of the Win specific hack to ask the user to press Return
Tip revision: b6987b1
cdplayer.py
# This file implements a class which forms an interface to the .cdplayerrc
# file that is maintained by SGI's cdplayer program.
#
# Usage is as follows:
#
# import readcd
# r = readcd.Readcd()
# c = Cdplayer(r.gettrackinfo())
#
# Now you can use c.artist, c.title and c.track[trackno] (where trackno
# starts at 1). When the CD is not recognized, all values will be the empty
# string.
# It is also possible to set the above mentioned variables to new values.
# You can then use c.write() to write out the changed values to the
# .cdplayerrc file.
cdplayerrc = '.cdplayerrc'
class Cdplayer:
def __init__(self, tracklist):
import string
self.artist = ''
self.title = ''
if type(tracklist) == type(''):
t = []
for i in range(2, len(tracklist), 4):
t.append((None, \
(string.atoi(tracklist[i:i+2]), \
string.atoi(tracklist[i+2:i+4]))))
tracklist = t
self.track = [None] + [''] * len(tracklist)
self.id = 'd' + string.zfill(len(tracklist), 2)
for track in tracklist:
start, length = track
self.id = self.id + string.zfill(length[0], 2) + \
string.zfill(length[1], 2)
try:
import posix
f = open(posix.environ['HOME'] + '/' + cdplayerrc, 'r')
except IOError:
return
import re
reg = re.compile(r'^([^:]*):\t(.*)')
s = self.id + '.'
l = len(s)
while 1:
line = f.readline()
if line == '':
break
if line[:l] == s:
line = line[l:]
match = reg.match(line)
if not match:
print 'syntax error in ~/' + cdplayerrc
continue
name, valye = match.group(1, 2)
if name == 'title':
self.title = value
elif name == 'artist':
self.artist = value
elif name[:5] == 'track':
trackno = string.atoi(name[6:])
self.track[trackno] = value
f.close()
def write(self):
import posix
filename = posix.environ['HOME'] + '/' + cdplayerrc
try:
old = open(filename, 'r')
except IOError:
old = open('/dev/null', 'r')
new = open(filename + '.new', 'w')
s = self.id + '.'
l = len(s)
while 1:
line = old.readline()
if line == '':
break
if line[:l] <> s:
new.write(line)
new.write(self.id + '.title:\t' + self.title + '\n')
new.write(self.id + '.artist:\t' + self.artist + '\n')
for i in range(1, len(self.track)):
new.write(self.id + '.track.' + `i` + ':\t' + \
self.track[i] + '\n')
old.close()
new.close()
posix.rename(filename + '.new', filename)
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...