%
' sitemap_gen.asp
' A simple script to automatically produce sitemaps for a webserver, in the Google Sitemap Protocol (GSP)
' by Francesco Passantino
' www.iteam5.net/francesco/sitemap_gen
' v0.1 released 4 june 2005
' v0.2 released 5 june 2005 (Listing a directory tree recursively improvement)
' v0.3b released 9 june 2005 (File exclusion by Calvin Dunkley)
'
' BSD 2.0 license,
' http://www.opensource.org/licenses/bsd-license.php
'modify this to change website and virtual directory
session("server")="http://www.bell-cornwell.co.uk"
vDir = "/"
set objfso = CreateObject("Scripting.FileSystemObject")
root = Server.MapPath(vDir)
response.ContentType = "text/xml"
response.write ""
response.write ""
Set objFolder = objFSO.GetFolder(root)
'response.write getfilelink(objFolder.Path,objFolder.dateLastModified)
Set colFiles = objFolder.Files
For Each objFile In colFiles
response.write getfilelink(objFile.Path,objfile.dateLastModified)
Next
ShowSubFolders(objFolder)
response.write ""
set fso = nothing
Sub ShowSubFolders(objFolder)
Set colFolders = objFolder.SubFolders
For Each objSubFolder In colFolders
if folderpermission(objSubFolder.Path) then
response.write getfilelink(objSubFolder.Path,objSubFolder.dateLastModified)
Set colFiles = objSubFolder.Files
For Each objFile In colFiles
response.write getfilelink(objFile.Path,objFile.dateLastModified)
Next
ShowSubFolders(objSubFolder)
end if
Next
End Sub
Function getfilelink(file,datafile)
file=replace(file,root,"")
file=replace(file,"\","/")
If FileNameIsBad(file) then Exit Function
If FileExtensionIsBad(file) then Exit Function
if month(datafile)<10 then filedatem="0"
if day(datafile)<10 then filedated="0"
filedate=year(datafile)&"-"&filedatem&month(datafile)&"-"&filedated&day(datafile)
getfilelink = ""&server.htmlencode(session("server")&file)&""&filedate&""
Response.Flush
End Function
Function Folderpermission(pathName)
'modify this to exclude path
PathExclusion=Array("\_vti_cnf","\_vti_pvt","\_vti_log","\cgi-bin","\images","\aspnet_client","\webalizer")
Folderpermission =True
for each PathExcluded in PathExclusion
if instr(ucase(pathName),ucase(PathExcluded))>0 then
Folderpermission = False
exit for
end if
next
End Function
Function FileExtensionIsBad(sFileName)
Dim sFileExtension, bFileExtensionIsValid, sFileExt
'modify for your file extension (http://www.googleguide.com/file_type.html)
Extensions = Array("html","htm","asp")
if len(trim(sFileName)) = 0 then
FileExtensionIsBad = true
Exit Function
end if
sFileExtension = right(sFileName, len(sFileName) - instrrev(sFileName, "."))
bFileExtensionIsValid = false 'assume extension is bad
for each sFileExt in extensions
if ucase(sFileExt) = ucase(sFileExtension) then
bFileExtensionIsValid = True
exit for
end if
next
FileExtensionIsBad = not bFileExtensionIsValid
End Function
Function FileNameIsBad(sFileName)
if len(trim(sFileName)) = 0 then
FileNameIsBad = true
Exit Function
end if
'modify this to exclude files
Filename = Array("/alive.asp","/404.asp","/500.asp","/sitemap_gen.asp","/sitemap.asp","/postinfo.html","/_vti_inf.html")
FileNameNumber = ubound(Filename)
for i=0 to FileNameNumber
if Filename(i) = sFileName then
FileNameIsBad = True
end if
next
End Function
%>