All pastes #170957 Raw Edit

Stuff

public text v1 · immutable
·published 2006-09-14 22:00 UTC
rendered paste body
import os, sys, re

PATH=r"C:\Programme\L2j Server\jscript"
TYPES={'q':'quests','b':'blacksmith','v':'village_master','t':'teleports','c':'custom'}

j=os.path.join
log=open("log.log", "w")
sys.stdout=log

for abbr, full in TYPES.iteritems():
	print "\n", full, "\n*************"
	path=j(PATH, full)
	files=os.listdir(path)
	init=open(j(path, "__init__.py"), "r")
	all=init.read()
	init.close()
	for dir in files:	
		fulldir=j(path, dir)
		if os.path.isdir(fulldir) and dir[0].isdigit():
			changed=0
			allfiles=os.listdir(fulldir)
			for file in allfiles:
				fullfile=j(fulldir, file)
				if os.path.isfile(fullfile) and (os.path.splitext(file)[1]==".htm" or file=="__init__.py"):
					f=open(fullfile, "r")
					script=f.read()
					f.close()
					count=script.count(dir)
					if count:
						script=script.replace(dir, abbr+dir)
						if file=='__init__.py':
							regex=re.compile('Quest\s*\(\s*\d+\s*,\s*"%s"' % (abbr+dir))
							if regex.search(script):
								changed=1
							else:
								print "WARNING: new Quest regex wasn't found in %s" % fullfile
					elif file=="__init__.py":
						print "WARNING: %s found %s times in %s" % (dir, count, fullfile)
					f=open(fullfile, "w")
					f.write(script)
					f.close()
			if changed:
				os.rename(fulldir, j(path, abbr+dir))
				all=all.replace(dir, abbr+dir)
	init=open(j(path, "__init__.py"), "w")
	init.write(all)
	init.close()
	print "completed", full

log.close()