7 sys.stderr.write("%s: %s\n" % (pname, msg))
8 sys.stderr.write("Usage: %s [-[12][-+]] [-a artist] [-l album] [-g genre] [-n track] [-N total_tracks] [-t title] [-y year] filename\n" % pname)
11 from getopt import getopt, GetoptError
13 optlist, args = getopt(sys.argv[1:], "1:2:a:g:l:n:N:t:y:",
14 ["id3v1=", "id3v2=", "artist=", "album=", "genre=", "track=", "tracks=",
18 usage("invalid option")
31 for _opt, _arg in optlist:
35 elif _opt == "--id3v1":
36 if _arg.lower() in ("no", "off"):
41 elif _opt == "--id3v2":
42 if _arg.lower() in ("no", "off"):
44 elif _opt in ("-a", "--artist"):
46 elif _opt in ("-l", "--album"):
48 elif _opt in ("-g", "--genre"):
50 elif _opt in ("-n", "--track"):
55 elif _opt in ("-N", "--tracks"):
60 elif _opt in ("-t", "--title"):
62 elif _opt in ("-y", "--year"):
71 usage("too many arguments")
76 usage("too few arguments")
80 from os.path import getmtime
81 mtime = getmtime(filename)
87 versions.append(eyeD3.ID3_V2)
89 versions.append(eyeD3.ID3_V1)
91 for version in versions:
93 id3tag.link(filename, version)
94 id3tag.setVersion(version)
96 if album: id3tag.setAlbum(unicode(album, "latin1"))
97 if artist: id3tag.setArtist(unicode(artist, "latin1"))
98 if track or tracks: id3tag.setTrackNum((track, tracks))
99 if title: id3tag.setTitle(unicode(title, "latin1"))
100 if genre: id3tag.setGenre(genre)
101 if year: id3tag.setDate(year)
104 utime(filename, (mtime, mtime))