git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@201 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
calvin 2000-11-20 22:25:55 +00:00
parent 8172e52f91
commit 4f45be77db
15 changed files with 347 additions and 245 deletions

40
FAQ
View file

@ -7,4 +7,42 @@ A: You have to quote special characters (e.g. spaces) in the subject field.
Q: I have a pretty large site to check. How can I restrict link checking
to check only my own pages?
A: Look at the options --intern, --extern, --strict and --recursion-level.
A: Look at the options --intern, --extern, --strict, --allowdeny and
--recursion-level.
Q: I dont get this extern/intern stuff.
A: When it comes to checking there are three types of URLs:
1) strict URLs:
we do only syntax checking
2) extern URLs:
like 1), but we additionally check if they are valid by connect()ing
to them
3) intern URLs:
like 2), but we additionally check if they are HTML pages and if so,
we descend recursively into this link and check all the links in the
HTML content.
The --recursion-level option restricts the number of such recursive
descends.
LinkChecker provides four options which affect URLs to fall in one
of those three categories: --intern, --extern, --strict and
--denyallow.
By default all URLs are intern. With --extern you specify what URLs
are extern. With --intern you specify what URLs are intern.
Now imagine you have both --extern and --intern. What happens
when an URL matches both patterns? Or when it matches none? In this
situation the --denyallow option specifies the order in which we match
the URL. By default it is intern/extern, with --denyallow the order is
extern/intern. Either way, the first match counts, and if none matches,
the last checked category is the category for the URL.
Finally, with --strict all extern URLs are strict.
Oh, and just to boggle your mind: you can have more than one extern
regular expression in a config file and for each of those expressions
you can specify if those matched extern URLs should be strict or not.
An example. Assume we want to check only urls of our domains named
'mydomain.com' and 'myotherdomain.com'. Then we specify
-i'^http://my(other)?domain\.com' as intern regular expression, all other
urls are treated extern.

View file

@ -1,6 +1,6 @@
include MANIFEST.in
include README FAQ INSTALL LICENSE TODO draft-gilman-news-url-00.txt
include linkcheckerrc linkchecker linkchecker.bat create.sql
include linkcheckerrc linkchecker linkchecker.bat linkchecker.1 create.sql
include lc.cgi lc.fcgi lc.sz_fcgi
include Makefile
include create.sql

View file

@ -49,6 +49,7 @@ VERSION:
upload: distclean dist package files VERSION
scp debian/changelog shell1.sourceforge.net:/home/groups/$(PACKAGE)/htdocs/changes.txt
scp README shell1.sourceforge.net:/home/groups/$(PACKAGE)/htdocs/readme.txt
scp linkchecker-out.* shell1.sourceforge.net:/home/groups/$(PACKAGE)/htdocs
scp VERSION shell1.sourceforge.net:/home/groups/$(PACKAGE)/htdocs/raw/
scp dist/* shell1.sourceforge.net:/home/groups/ftp/pub/$(PACKAGE)/

22
README
View file

@ -1,24 +1,22 @@
LinkChecker
=============
With LinkChecker you can check your HTML documents for broken links.
LinkChecker checks HTML documents for broken links.
Features:
---------
It features
o recursive checking
o multithreaded
o output can be colored or normal text, HTML, SQL, CSV, or a sitemap
o multithreading
o output in colored or normal text, HTML, SQL, CSV or a sitemap
graph in GML or XML.
o HTTP/1.1, HTTPS, FTP, mailto:, news:, nntp:, Gopher, Telnet and local
file links are supported.
Javascript links are currently ignored
o restrict link checking with regular expression filters for URLs
file links support
o restriction of link checking with regular expression filters for URLs
o proxy support
o give username/password for HTTP and FTP authorization
o username/password authorization for HTTP and FTP
o robots.txt exclusion protocol support
o i18n support
o command line interface
o (Fast)CGI web interface (requires HTTP server)
o a command line interface
o a (Fast)CGI web interface (requires HTTP server)
Installing, Requirements, Running
@ -106,4 +104,4 @@ Each logger has functions init(), newUrl() and endOfOutput().
We call init() once to initialize the Logger. UrlData.check() calls
newUrl() (through UrlData.logMe()) and after all checking we call
endOfOutput(). Easy.
New loggers are created with the Config.newLogger(name, fileoutput) function.
New loggers are created with the Config.newLogger function.

9
debian/changelog vendored
View file

@ -1,3 +1,12 @@
linkchecker (1.2.9) unstable; urgency=low
* changed specification and better documentation of intern/extern
checking; see the FAQ for detailed information
* added a man page
* setup.py: fix for distutils debugging function dump_dirs
-- Bastian Kleineidam <calvin@users.sourceforge.net> Mon, 20 Nov 2000 19:47:02 +0100
linkchecker (1.2.8) unstable; urgency=low
* INSTALL: more documentation for the CGI scripts

4
debian/rules vendored
View file

@ -64,9 +64,9 @@ binary-arch: build install
# dh_installpam
# dh_installinit
# dh_installcron
# dh_installmanpages
dh_installmanpages
# dh_installinfo
dh_undocumented linkchecker.1
# dh_undocumented linkchecker.1
dh_installchangelogs
dh_link
dh_strip

View file

@ -92,7 +92,7 @@ class Configuration(UserDict.UserDict):
self.data["anchors"] = 0
self.data["externlinks"] = []
self.data["internlinks"] = []
self.data["allowdeny"] = 0
self.data["denyallow"] = 0
self.data["authentication"] = [(re.compile(r'^.+'),
'anonymous',
'joe@')]
@ -472,5 +472,5 @@ class Configuration(UserDict.UserDict):
except ConfigParser.Error: pass
try: self.data["internlinks"].append(re.compile(cfgparser.get(section, "internlinks")))
except ConfigParser.Error: pass
try: self.data["allowdeny"] = cfgparser.getboolean(section, "allowdeny")
try: self.data["denyallow"] = cfgparser.getboolean(section, "denyallow")
except ConfigParser.Error: pass

View file

@ -36,7 +36,7 @@ __init__(self, **args)
default parameters. Adjust these parameters in the configuration
files in the appropriate logger section.
"""
import sys,time
import sys,time,string
import Config,StringUtil
from linkcheck import _
@ -60,6 +60,21 @@ Spaces = {}
for key in KeyWords:
Spaces[key] = " "*(MaxIndent - len(_(key)))
EntityTable = {
'<': '&lt;',
'>': '&gt;',
'&': '&amp;',
'"': '&quot;',
'\'': '&apos;',
}
def quote(s):
res = list(s)
for i in range(len(res)):
c = res[i]
res[i] = EntityTable.get(c, c)
return string.joinfields(res, '')
# return formatted time
def _strtime(t):
return time.strftime("%d.%m.%Y %H:%M:%S", time.localtime(t))
@ -478,7 +493,7 @@ class XMLLogger(StandardLogger):
def init(self):
self.starttime = time.time()
self.fd.write("<?xml version='1.0'?>\n")
self.fd.write('<?xml version="1.0"?>\n')
self.fd.write("<!--\n")
self.fd.write(" "+_("created by %s at %s\n") % \
(Config.AppName, _strtime(self.starttime)))
@ -486,7 +501,7 @@ class XMLLogger(StandardLogger):
self.fd.write(" "+_("Write comments and bugs to %s\n\n") % \
Config.Email)
self.fd.write("-->\n\n")
self.fd.write("<GraphXML>\n<graph isDirected='true'>\n")
self.fd.write('<GraphXML>\n<graph isDirected="true">\n')
self.fd.flush()
def newUrl(self, urlData):
@ -496,15 +511,15 @@ class XMLLogger(StandardLogger):
node.id = self.nodeid
self.nodes[node.url] = node
self.nodeid = self.nodeid + 1
self.fd.write(" <node name='%d' " % node.id)
self.fd.write(' <node name="%d" ' % node.id)
self.fd.write(">\n")
self.fd.write(" <label>%s</label>\n" % node.url)
self.fd.write(" <label>%s</label>\n" % quote(node.url))
self.fd.write(" <data>\n")
if node.downloadtime:
self.fd.write(" <dltime>%d</dltime>\n" \
self.fd.write(" <dltime>%f</dltime>\n" \
% node.downloadtime)
if node.checktime:
self.fd.write(" <checktime>%d</checktime>\n" \
self.fd.write(" <checktime>%f</checktime>\n" \
% node.checktime)
self.fd.write(" <extern>%d</extern>\n" % \
(node.extern and 1 or 0))
@ -519,13 +534,14 @@ class XMLLogger(StandardLogger):
for node in self.nodes.values():
if self.nodes.has_key(node.parentName):
self.fd.write(" <edge")
self.fd.write(" source='%d'" % \
self.fd.write(' source="%d"' % \
self.nodes[node.parentName].id)
self.fd.write(" target='%d'" % node.id)
self.fd.write(' target="%d"' % node.id)
self.fd.write(">\n")
self.fd.write(" <label>'%s'</label>\n" % node.urlName)
self.fd.write(" <label>%s</label>\n" % quote(node.urlName))
self.fd.write(" <data>\n")
self.fd.write(" <valid>%d</valid>" % (node.valid and 1 or 0))
self.fd.write(" <valid>%d</valid>\n" % \
(node.valid and 1 or 0))
self.fd.write(" </data>\n")
self.fd.write(" </edge>\n")
self.fd.flush()

View file

@ -70,7 +70,7 @@ class MailtoUrlData(HostCheckingUrlData):
return
for name,mail in self.adresses:
Config.debug("DEBUG: checking mail address %s" % mail)
Config.debug("DEBUG: checking mail address %s\n" % mail)
user,host = self._split_adress(mail)
mxrecords = DNS.mxlookup(host)
if not len(mxrecords):

View file

@ -177,6 +177,7 @@ class UrlData:
# apply filter
debug("DEBUG: checking filter\n")
debug("DEBUG: extern = %s\n" % str(self.extern))
if self.extern and (config["strict"] or self.extern[1]):
self.setWarning(_("outside of domain filter, checked only syntax"))
self.logMe(config)
@ -262,21 +263,23 @@ class UrlData:
if not (config["externlinks"] or config["internlinks"]):
return 0
# deny and allow external checking
if config["allowdeny"]:
for pat in config["internlinks"]:
if pat.search(self.url):
return 0
if config["denyallow"]:
for pat, strict in config["externlinks"]:
if pat.search(self.url):
return (1, strict)
for pat in config["internlinks"]:
if pat.search(self.url):
return 0
return 0
else:
for pat, strict in config["externlinks"]:
if pat.search(self.url):
return (1, strict)
for pat in config["internlinks"]:
if pat.search(self.url):
return 0
return (1,0)
for pat, strict in config["externlinks"]:
if pat.search(self.url):
return (1, strict)
return (1,0)
raise ValueError, "internal error in UrlData._getExtern"
def getContent(self):

View file

@ -27,42 +27,45 @@ import linkcheck, StringUtil
from linkcheck import _
Usage = _("USAGE\tlinkchecker [options] file_or_url...\n"
Usage = _("USAGE\tlinkchecker [options] file-or-url...\n"
"\n"
"OPTIONS\n"
"For single-letter option arguments the space is not a necessity. So\n"
"'-o colored' is the same as '-ocolored'.\n"
"-a, --anchors\n"
" Check anchor references. Default is don't check anchors.\n"
"-d, --denyallow\n"
" Swap checking order to extern/intern. Default checking order\n"
" is intern/extern.\n"
"-D, --debug\n"
" Print additional debugging information.\n"
"-e regex, --extern=regex\n"
" Assume urls that match the given expression as extern.\n"
" Only intern HTTP links are checked recursively.\n"
" Only intern HTML links are checked recursively.\n"
"-f file, --config=file\n"
" Use file as configuration file. LinkChecker first searches\n"
" ~/.linkcheckerrc and then /etc/linkcheckerrc\n"
" (under Windows <path-to-program>\\linkcheckerrc).\n"
"-F name, --file-output=name\n"
" Same as output, but write to a file linkchecker-out.<name>.\n"
"-F type, --file-output=type\n"
" Same as output, but write to a file linkchecker-out.<type>.\n"
" If the file already exists, it is overwritten. You can specify\n"
" this option more than once. There is no file output for the\n"
" blacklist logger. Default is no file output.\n"
"-i regex, --intern=regex\n"
" Assume urls that match the given expression as intern.\n"
" Assume URLs that match the given expression as intern.\n"
" LinkChecker descends recursively only to intern URLs, not to extern.\n"
"-h, --help\n"
" Help me! Print usage information for this program.\n"
"-l, --allowdeny\n"
" Swap checking order to intern/extern. Default checking order\n"
" is extern/intern.\n"
"-N, --nntp-server\n"
"-N server, --nntp-server=server\n"
" Specify an NNTP server for 'news:...' links. Default is the\n"
" environment variable NNTP_SERVER. If no host is given,\n"
" only the syntax of the link is checked.\n"
"-o name, --output=name\n"
" Specify output as %s.\n"
" Default is text.\n"
"-o type, --output=type\n"
" Specify output type as %s.\n"
" Default type is text.\n"
"-p pwd, --password=pwd\n"
" Try given password for HTML and FTP authorization.\n"
" Default is 'guest@'. See -u.\n"
" Try password pwd for HTML and FTP authorization.\n"
" Default password is 'guest@'. See also -u.\n"
"-q, --quiet\n"
" Quiet operation. This is only useful with -F.\n"
"-r depth, --recursion-level=depth\n"
@ -76,8 +79,8 @@ Usage = _("USAGE\tlinkchecker [options] file_or_url...\n"
" Generate no more than num threads. Default number of threads is 5.\n"
" To disable threading specify a non-positive number.\n"
"-u name, --user=name\n"
" Try given username for HTML and FTP authorization.\n"
" Default is 'anonymous'. See -p.\n"
" Try username name for HTML and FTP authorization.\n"
" Default is 'anonymous'. See also -p.\n"
"-V, --version\n"
" Print version and exit.\n"
"-v, --verbose\n"
@ -90,30 +93,30 @@ Usage = _("USAGE\tlinkchecker [options] file_or_url...\n"
" any content of the checked link.\n"
" This applies of course only to pages which are valid, so we can\n"
" get their content.\n"
" You can use this to check for pages that contain some form of\n"
" error message, for example 'This page has moved' or\n"
" 'Oracle Application Server error'.\n"
" Use this to check for pages that contain some form of error\n"
" message, for example 'This page has moved' or 'Oracle\n"
" Application Server error'.\n"
" This option implies -w.\n") % linkcheck.Config.LoggerKeys
Notes = _("NOTES\n"
"o LinkChecker assumes an http:// resp. ftp:// link when a commandline URL\n"
" starts with 'www.' resp. 'ftp.'\n"
" You can also give local files as arguments\n"
" You can also give local files as arguments.\n"
"o If you have your system configured to automatically establish a\n"
" connection to the internet (e.g. with diald), it will connect when\n"
" checking links not pointing to your local host\n"
" Use the -s and -i options to prevent this (see EXAMPLES)\n"
"o Javascript links are currently ignored\n"
"o If your platform does not support threading, LinkChecker uses -t0\n"
"o You can supply multiple user/password pairs in a configuration file\n"
"o Cookies are not accepted by LinkChecker\n"
" checking links not pointing to your local host.\n"
" Use the -s and -i options to prevent this.\n"
"o Javascript links are currently ignored.\n"
"o If your platform does not support threading, LinkChecker uses -t0.\n"
"o You can supply multiple user/password pairs in a configuration file.\n"
"o Cookies are not accepted by LinkChecker.\n"
"o To use proxies set $http_proxy, $https_proxy on Unix or Windows.\n"
" On a Mac use the Internet Config.\n"
"o When checking 'news:' links the given NNTP host doesn't need to be the\n"
" same as the host of the user browsing your pages!\n")
Examples = _("EXAMPLES\n"
"o linkchecker -v -o html -r2 -s -i treasure.calvinsplayground.de \\\n"
"o linkchecker -v -ohtml -r2 -s -itreasure.calvinsplayground.de \\\n"
" http://treasure.calvinsplayground.de/~calvin/ > sample.html\n"
"o Local files and syntactic sugar on the command line:\n"
" linkchecker c:\\temp\\test.html\n"
@ -144,7 +147,7 @@ def printUsage(msg):
try:
# Note: cut out the name of the script
options, args = getopt.getopt(sys.argv[1:],
"aDe:f:F:hi:lN:o:p:qr:Rst:u:VvwW:", # short options
"adDe:f:F:hi:N:o:p:qr:Rst:u:VvwW:", # short options
["anchors", # long options
"config=",
"debug",
@ -153,7 +156,7 @@ try:
"nntp-server=",
"help",
"intern=",
"allowdeny",
"denyallow",
"output=",
"password=",
"quiet",
@ -214,8 +217,8 @@ for opt,arg in options:
elif opt=="-i" or opt=="--intern":
config["internlinks"].append(re.compile(arg))
elif opt=="-l" or opt=="--allowdeny":
config["allowdeny"] = 1
elif opt=="-l" or opt=="--denyallow":
config["denyallow"] = 1
elif opt=="-N" or opt=="--nntp-server":
config["nntpserver"] = arg

View file

@ -85,24 +85,18 @@
# Basic NNTP server. Overrides NNTP_SERVER environment variable.
#nntpserver=news.uni-stuttgart.de
# filtering options
# filtering options (see FAQ)
# for each extern link we can specify if it is strict or not
# extern means we do not recurse into extern HTML pages
# strict means we do not even make a network connection to extern URLs,
# we only check their syntax
# Note that if you specify any extern patterns you should specify the
# intern pattern as well. If the intern pattern is not specified than
# no URL will be intern (==> all URLs will be extern) and thats not
# what you wanted.
[filtering]
# everything with 'lconline' in the URL name is extern
# extern1=lconline 0
# everything with 'bookmark' in the URL name is extern and we make
# no network connection to such URLs (strict)
# everything with 'bookmark' in the URL name is strict
# extern2=bookmark 1
# links to our domain are intern
# internlinks=calvinsplayground\.de
#allowdeny=0
# check only syntax of all mail adresses
# extern3=^mailto: 1
#denyallow=0
# You can provide different user/password pairs for different link types.
# Entries are a triple (link regular expression, username, password),

148
po/de.po
View file

@ -104,44 +104,6 @@ msgstr "Beginne Pr
msgid "D/L Time"
msgstr "D/L Zeit"
msgid ""
"NOTES\n"
"o LinkChecker assumes an http:// resp. ftp:// link when a commandline URL\n"
" starts with 'www.' resp. 'ftp.'\n"
" You can also give local files as arguments\n"
"o If you have your system configured to automatically establish a\n"
" connection to the internet (e.g. with diald), it will connect when\n"
" checking links not pointing to your local host\n"
" Use the -s and -i options to prevent this (see EXAMPLES)\n"
"o Javascript links are currently ignored\n"
"o If your platform does not support threading, LinkChecker uses -t0\n"
"o You can supply multiple user/password pairs in a configuration file\n"
"o Cookies are not accepted by LinkChecker\n"
"o To use proxies set $http_proxy, $https_proxy on Unix or Windows.\n"
" On a Mac use the Internet Config.\n"
"o When checking 'news:' links the given NNTP host doesn't need to be the\n"
" same as the host of the user browsing your pages!\n"
msgstr ""
"KOMMENTARE\n"
"o LinkChecker verwendet eine http:// bzw. ftp:// URL wenn eine URL auf der\n"
" Kommandozeile mit 'www.' bzw. 'ftp.' beginnt\n"
" Sie können auch lokale Dateien als Argumente angeben\n"
"o Falls sich Ihr System automatisch mit dem Internet verbindet\n"
" (z.B. mit diald), wird es dies tun wenn Sie Links prüfen, die nicht\n"
" auf Ihren lokalen Rechner verweisen\n"
" Benutzen Sie die Optionen -s und -i um dies zu verhindern (siehe "
"BEISPIELE)\n"
"o Javascript Links werden zur Zeit ignoriert\n"
"o Wenn Ihr System keine Threads unterstützt verwendet LinkChecker die\n"
" Option -t0\n"
"o Sie können mehrere user/password Paare in einer Konfigurationsdatei\n"
" angeben\n"
"o Cookies werden von LinkChecker nicht akzeptiert\n"
"o Um Proxies zu benutzen, setzen Sie $http_proxy, $https_proxy unter\n"
" Unix oder Windows. Auf einem Mac benutzen Sie die Internet Config.\n"
"o Beim Prüfen von 'news:' Links muß der angegebene NNTP Rechner nicht\n"
" unbedingt derselbe wie der des Benutzers sein!\n"
msgid "seconds"
msgstr "Sekunden"
@ -207,26 +169,9 @@ msgstr "Kein Benutzername oder Passwort gefunden"
msgid "Get the newest version at %s\n"
msgstr "Die neueste Version gibt es unter %s\n"
msgid "Got no answer from FTP server"
msgstr "Keine Antwort vom FTP Server"
msgid "found mail host %s"
msgstr "Mail host %s gefunden"
msgid "Error: %s\n"
msgstr "Fehler: %s\n"
msgid "Javascript url ignored"
msgstr "Javascript url ignoriert"
msgid "could not split the mail adress"
msgstr "konnte Mail Adresse nicht splitten"
msgid "invalid log option '%s'"
msgstr "ungültige Log Option '%s'"
#, fuzzy
msgid ""
"USAGE\tlinkchecker [options] file_or_url...\n"
"USAGE\tlinkchecker [options] file-or-url...\n"
"\n"
"OPTIONS\n"
"-a, --anchors\n"
@ -235,33 +180,35 @@ msgid ""
" Print additional debugging information.\n"
"-e regex, --extern=regex\n"
" Assume urls that match the given expression as extern.\n"
" Only intern HTTP links are checked recursively.\n"
" Only intern HTML links are checked recursively.\n"
"-f file, --config=file\n"
" Use file as configuration file. LinkChecker first searches\n"
" ~/.linkcheckerrc and then /etc/linkcheckerrc\n"
" (under Windows <path-to-program>\\linkcheckerrc).\n"
"-F name, --file-output=name\n"
" Same as output, but write to a file linkchecker-out.<name>.\n"
"-F type, --file-output=type\n"
" Same as output, but write to a file linkchecker-out.<type>.\n"
" If the file already exists, it is overwritten. You can specify\n"
" this option more than once. There is no file output for the\n"
" blacklist logger. Default is no file output.\n"
"-i regex, --intern=regex\n"
" Assume urls that match the given expression as intern.\n"
" Assume URLs that match the given expression as intern.\n"
" LinkChecker descends recursively only to intern URLs, not to "
"extern.\n"
"-h, --help\n"
" Help me! Print usage information for this program.\n"
"-l, --allowdeny\n"
" Swap checking order to intern/extern. Default checking order\n"
" is extern/intern.\n"
"-N, --nntp-server\n"
"-N server, --nntp-server=server\n"
" Specify an NNTP server for 'news:...' links. Default is the\n"
" environment variable NNTP_SERVER. If no host is given,\n"
" only the syntax of the link is checked.\n"
"-o name, --output=name\n"
" Specify output as %s.\n"
" Default is text.\n"
"-o type, --output=type\n"
" Specify output type as %s.\n"
" Default type is text.\n"
"-p pwd, --password=pwd\n"
" Try given password for HTML and FTP authorization.\n"
" Default is 'guest@'. See -u.\n"
" Try password pwd for HTML and FTP authorization.\n"
" Default password is 'guest@'. See also -u.\n"
"-q, --quiet\n"
" Quiet operation. This is only useful with -F.\n"
"-r depth, --recursion-level=depth\n"
@ -275,8 +222,8 @@ msgid ""
" Generate no more than num threads. Default number of threads is 5.\n"
" To disable threading specify a non-positive number.\n"
"-u name, --user=name\n"
" Try given username for HTML and FTP authorization.\n"
" Default is 'anonymous'. See -p.\n"
" Try username name for HTML and FTP authorization.\n"
" Default is 'anonymous'. See also -p.\n"
"-V, --version\n"
" Print version and exit.\n"
"-v, --verbose\n"
@ -289,9 +236,9 @@ msgid ""
" any content of the checked link.\n"
" This applies of course only to pages which are valid, so we can\n"
" get their content.\n"
" You can use this to check for pages that contain some form of\n"
" error message, for example 'This page has moved' or\n"
" 'Oracle Application Server error'.\n"
" Use this to check for pages that contain some form of error\n"
" message, for example 'This page has moved' or 'Oracle\n"
" Application Server error'.\n"
" This option implies -w.\n"
msgstr ""
"BENUTZUNG\tlinkchecker [options] datei_oder_url...\n"
@ -365,6 +312,63 @@ msgstr ""
" 'Diese Seite ist umgezogen' oder 'Oracle Server Fehler'.\n"
" Diese Option nimmt -w an.\n"
msgid "Got no answer from FTP server"
msgstr "Keine Antwort vom FTP Server"
msgid "found mail host %s"
msgstr "Mail host %s gefunden"
msgid "Javascript url ignored"
msgstr "Javascript url ignoriert"
msgid "could not split the mail adress"
msgstr "konnte Mail Adresse nicht splitten"
msgid "invalid log option '%s'"
msgstr "ungültige Log Option '%s'"
msgid "Error: %s\n"
msgstr "Fehler: %s\n"
#, fuzzy
msgid ""
"NOTES\n"
"o LinkChecker assumes an http:// resp. ftp:// link when a commandline URL\n"
" starts with 'www.' resp. 'ftp.'\n"
" You can also give local files as arguments.\n"
"o If you have your system configured to automatically establish a\n"
" connection to the internet (e.g. with diald), it will connect when\n"
" checking links not pointing to your local host.\n"
" Use the -s and -i options to prevent this.\n"
"o Javascript links are currently ignored.\n"
"o If your platform does not support threading, LinkChecker uses -t0.\n"
"o You can supply multiple user/password pairs in a configuration file.\n"
"o Cookies are not accepted by LinkChecker.\n"
"o To use proxies set $http_proxy, $https_proxy on Unix or Windows.\n"
" On a Mac use the Internet Config.\n"
"o When checking 'news:' links the given NNTP host doesn't need to be the\n"
" same as the host of the user browsing your pages!\n"
msgstr ""
"KOMMENTARE\n"
"o LinkChecker verwendet eine http:// bzw. ftp:// URL wenn eine URL auf der\n"
" Kommandozeile mit 'www.' bzw. 'ftp.' beginnt\n"
" Sie können auch lokale Dateien als Argumente angeben\n"
"o Falls sich Ihr System automatisch mit dem Internet verbindet\n"
" (z.B. mit diald), wird es dies tun wenn Sie Links prüfen, die nicht\n"
" auf Ihren lokalen Rechner verweisen\n"
" Benutzen Sie die Optionen -s und -i um dies zu verhindern (siehe "
"BEISPIELE)\n"
"o Javascript Links werden zur Zeit ignoriert\n"
"o Wenn Ihr System keine Threads unterstützt verwendet LinkChecker die\n"
" Option -t0\n"
"o Sie können mehrere user/password Paare in einer Konfigurationsdatei\n"
" angeben\n"
"o Cookies werden von LinkChecker nicht akzeptiert\n"
"o Um Proxies zu benutzen, setzen Sie $http_proxy, $https_proxy unter\n"
" Unix oder Windows. Auf einem Mac benutzen Sie die Internet Config.\n"
"o Beim Prüfen von 'news:' Links muß der angegebene NNTP Rechner nicht\n"
" unbedingt derselbe wie der des Benutzers sein!\n"
msgid "Articel number %s found"
msgstr "Artikel nummer %s wurde gefunden"

150
po/fr.po
View file

@ -96,45 +96,6 @@ msgstr "D
msgid "D/L Time"
msgstr "Durée D/L"
msgid ""
"NOTES\n"
"o LinkChecker assumes an http:// resp. ftp:// link when a commandline URL\n"
" starts with 'www.' resp. 'ftp.'\n"
" You can also give local files as arguments\n"
"o If you have your system configured to automatically establish a\n"
" connection to the internet (e.g. with diald), it will connect when\n"
" checking links not pointing to your local host\n"
" Use the -s and -i options to prevent this (see EXAMPLES)\n"
"o Javascript links are currently ignored\n"
"o If your platform does not support threading, LinkChecker uses -t0\n"
"o You can supply multiple user/password pairs in a configuration file\n"
"o Cookies are not accepted by LinkChecker\n"
"o To use proxies set $http_proxy, $https_proxy on Unix or Windows.\n"
" On a Mac use the Internet Config.\n"
"o When checking 'news:' links the given NNTP host doesn't need to be the\n"
" same as the host of the user browsing your pages!\n"
msgstr ""
"NOTES\n"
"o LinkChecker suppose qu'il s'agit de liens http:// et respectivement ftp:// "
"lorsque l'URL\n"
" de la ligne de commande commence par 'www.' et respectivement 'ftp.'\n"
" Vous pouvez aussi donner des fichiers locaux comme arguments\n"
"o Si votre systeme est configuré pour établir automatiquement une\n"
" connexion à internet (e.g. with diald), il se connectera lorsque les "
"liens\n"
" contrôlés ne pointent pas vers votre réseau local\n"
" Utiliser l'option -s et -i pour l'éviter (voir EXEMPLES)\n"
"o Les liens Javascript sont actuellement ignorés\n"
"o If your platform does not support threading, LinkChecker uses -t0\n"
"o Vous pouvez fournir plusieurs couples 'utilisateurs'/'mots de passe' dans "
"le fichier de configuration\n"
"o Les cookies ne sont pas acceptés par LinkChecker\n"
"o To use proxies set $http_proxy, $https_proxy on Unix or Windows.\n"
" On a Mac use the Internet Config.\n"
"o Lors d'un contrôle des liens 'news:', l'hôte NNTP spécifié n'a pas besoin "
"d'être le\n"
" même que l'hôte de l'utilisateur qui parcourt vos pages!\n"
msgid "seconds"
msgstr "secondes"
@ -199,26 +160,9 @@ msgstr "Aucun utilisateur ou mot de passe trouv
msgid "Get the newest version at %s\n"
msgstr "Obtenir la dernière version à %s\n"
msgid "Got no answer from FTP server"
msgstr "N'obtient pas de réponse du serveur FTP"
msgid "found mail host %s"
msgstr "trouvé un hôte de messagerie %s"
msgid "Error: %s\n"
msgstr "Erreur: %s\n"
msgid "Javascript url ignored"
msgstr "Url Javascript ignorée"
msgid "could not split the mail adress"
msgstr "impossible de partager l'adresse e-mail"
msgid "invalid log option '%s'"
msgstr "option de log invalide '%s'"
#, fuzzy
msgid ""
"USAGE\tlinkchecker [options] file_or_url...\n"
"USAGE\tlinkchecker [options] file-or-url...\n"
"\n"
"OPTIONS\n"
"-a, --anchors\n"
@ -227,33 +171,35 @@ msgid ""
" Print additional debugging information.\n"
"-e regex, --extern=regex\n"
" Assume urls that match the given expression as extern.\n"
" Only intern HTTP links are checked recursively.\n"
" Only intern HTML links are checked recursively.\n"
"-f file, --config=file\n"
" Use file as configuration file. LinkChecker first searches\n"
" ~/.linkcheckerrc and then /etc/linkcheckerrc\n"
" (under Windows <path-to-program>\\linkcheckerrc).\n"
"-F name, --file-output=name\n"
" Same as output, but write to a file linkchecker-out.<name>.\n"
"-F type, --file-output=type\n"
" Same as output, but write to a file linkchecker-out.<type>.\n"
" If the file already exists, it is overwritten. You can specify\n"
" this option more than once. There is no file output for the\n"
" blacklist logger. Default is no file output.\n"
"-i regex, --intern=regex\n"
" Assume urls that match the given expression as intern.\n"
" Assume URLs that match the given expression as intern.\n"
" LinkChecker descends recursively only to intern URLs, not to "
"extern.\n"
"-h, --help\n"
" Help me! Print usage information for this program.\n"
"-l, --allowdeny\n"
" Swap checking order to intern/extern. Default checking order\n"
" is extern/intern.\n"
"-N, --nntp-server\n"
"-N server, --nntp-server=server\n"
" Specify an NNTP server for 'news:...' links. Default is the\n"
" environment variable NNTP_SERVER. If no host is given,\n"
" only the syntax of the link is checked.\n"
"-o name, --output=name\n"
" Specify output as %s.\n"
" Default is text.\n"
"-o type, --output=type\n"
" Specify output type as %s.\n"
" Default type is text.\n"
"-p pwd, --password=pwd\n"
" Try given password for HTML and FTP authorization.\n"
" Default is 'guest@'. See -u.\n"
" Try password pwd for HTML and FTP authorization.\n"
" Default password is 'guest@'. See also -u.\n"
"-q, --quiet\n"
" Quiet operation. This is only useful with -F.\n"
"-r depth, --recursion-level=depth\n"
@ -267,8 +213,8 @@ msgid ""
" Generate no more than num threads. Default number of threads is 5.\n"
" To disable threading specify a non-positive number.\n"
"-u name, --user=name\n"
" Try given username for HTML and FTP authorization.\n"
" Default is 'anonymous'. See -p.\n"
" Try username name for HTML and FTP authorization.\n"
" Default is 'anonymous'. See also -p.\n"
"-V, --version\n"
" Print version and exit.\n"
"-v, --verbose\n"
@ -281,9 +227,9 @@ msgid ""
" any content of the checked link.\n"
" This applies of course only to pages which are valid, so we can\n"
" get their content.\n"
" You can use this to check for pages that contain some form of\n"
" error message, for example 'This page has moved' or\n"
" 'Oracle Application Server error'.\n"
" Use this to check for pages that contain some form of error\n"
" message, for example 'This page has moved' or 'Oracle\n"
" Application Server error'.\n"
" This option implies -w.\n"
msgstr ""
"USAGE\tlinkchecker [options] fichier_ou_url...\n"
@ -361,6 +307,64 @@ msgstr ""
" 'Oracle Application Server error'.\n"
" This option implies -w.\n"
msgid "Got no answer from FTP server"
msgstr "N'obtient pas de réponse du serveur FTP"
msgid "found mail host %s"
msgstr "trouvé un hôte de messagerie %s"
msgid "Javascript url ignored"
msgstr "Url Javascript ignorée"
msgid "could not split the mail adress"
msgstr "impossible de partager l'adresse e-mail"
msgid "invalid log option '%s'"
msgstr "option de log invalide '%s'"
msgid "Error: %s\n"
msgstr "Erreur: %s\n"
#, fuzzy
msgid ""
"NOTES\n"
"o LinkChecker assumes an http:// resp. ftp:// link when a commandline URL\n"
" starts with 'www.' resp. 'ftp.'\n"
" You can also give local files as arguments.\n"
"o If you have your system configured to automatically establish a\n"
" connection to the internet (e.g. with diald), it will connect when\n"
" checking links not pointing to your local host.\n"
" Use the -s and -i options to prevent this.\n"
"o Javascript links are currently ignored.\n"
"o If your platform does not support threading, LinkChecker uses -t0.\n"
"o You can supply multiple user/password pairs in a configuration file.\n"
"o Cookies are not accepted by LinkChecker.\n"
"o To use proxies set $http_proxy, $https_proxy on Unix or Windows.\n"
" On a Mac use the Internet Config.\n"
"o When checking 'news:' links the given NNTP host doesn't need to be the\n"
" same as the host of the user browsing your pages!\n"
msgstr ""
"NOTES\n"
"o LinkChecker suppose qu'il s'agit de liens http:// et respectivement ftp:// "
"lorsque l'URL\n"
" de la ligne de commande commence par 'www.' et respectivement 'ftp.'\n"
" Vous pouvez aussi donner des fichiers locaux comme arguments\n"
"o Si votre systeme est configuré pour établir automatiquement une\n"
" connexion à internet (e.g. with diald), il se connectera lorsque les "
"liens\n"
" contrôlés ne pointent pas vers votre réseau local\n"
" Utiliser l'option -s et -i pour l'éviter (voir EXEMPLES)\n"
"o Les liens Javascript sont actuellement ignorés\n"
"o If your platform does not support threading, LinkChecker uses -t0\n"
"o Vous pouvez fournir plusieurs couples 'utilisateurs'/'mots de passe' dans "
"le fichier de configuration\n"
"o Les cookies ne sont pas acceptés par LinkChecker\n"
"o To use proxies set $http_proxy, $https_proxy on Unix or Windows.\n"
" On a Mac use the Internet Config.\n"
"o Lors d'un contrôle des liens 'news:', l'hôte NNTP spécifié n'a pas besoin "
"d'être le\n"
" même que l'hôte de l'utilisateur qui parcourt vos pages!\n"
msgid "Articel number %s found"
msgstr ""

View file

@ -17,14 +17,14 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
from types import StringType
from distutils.core import setup
from distutils.core import setup, DEBUG
from distutils.dist import Distribution
from distutils.extension import Extension
from distutils.command.install import install
from distutils.command.config import config
from distutils import util
from distutils.file_util import write_file
import os
import os,string
class LCInstall(install):
@ -46,6 +46,24 @@ class LCInstall(install):
data.append('outputs = %s' % pformat(self.get_outputs()))
self.distribution.create_conf_file(self.install_lib, data)
# sent a patch for this, but here it is for compatibility
def dump_dirs (self, msg):
if DEBUG:
from distutils.fancy_getopt import longopt_xlate
print msg + ":"
for opt in self.user_options:
opt_name = opt[0]
if opt_name[-1] == "=":
opt_name = opt_name[0:-1]
if self.negative_opt.has_key(opt_name):
opt_name = string.translate(self.negative_opt[opt_name],
longopt_xlate)
val = not getattr(self, opt_name)
else:
opt_name = string.translate(opt_name, longopt_xlate)
val = getattr(self, opt_name)
print " %s: %s" % (opt_name, val)
class LCConfig(config):
user_options = config.user_options + [
@ -55,25 +73,37 @@ class LCConfig(config):
"directories to search for SSL library files"),
]
def initialize_options (self):
config.initialize_options(self)
self.ssl_include_dirs = None
self.ssl_library_dirs = None
def finalize_options(self):
# we have some default include and library directories
# suitable for each platform
self.basic_finalize_options()
if self.ssl_include_dirs is None:
self.ssl_include_dirs = ['/usr/include/openssl',
'/usr/local/include/openssl']
if os.name=='posix':
self.ssl_include_dirs = ['/usr/include/openssl',
'/usr/local/include/openssl']
else:
# dont know default incldirs on other platforms
self.ssl_include_dirs = []
if self.ssl_library_dirs is None:
self.ssl_library_dirs = ['/usr/lib',
'/usr/local/lib']
if os.name=='posix':
self.ssl_library_dirs = ['/usr/lib', '/usr/local/lib']
else:
# dont know default libdirs on other platforms
self.ssl_library_dirs = []
def basic_finalize_options(self):
"""fix up types of option values"""
# this should be in config.finalize_options
# I submitted a patch
# ok, its in 1.0.1, but I still leave this here for compatibility
if self.include_dirs is None:
self.include_dirs = self.distribution.include_dirs or []
elif type(self.include_dirs) is StringType:
@ -153,8 +183,8 @@ myname = "Bastian Kleineidam"
myemail = "calvin@users.sourceforge.net"
setup (name = "LinkChecker",
version = "1.2.8",
description = "check links of HTML pages",
version = "1.2.9",
description = "check HTML documents for broken links",
author = myname,
author_email = myemail,
maintainer = myname,
@ -162,24 +192,20 @@ setup (name = "LinkChecker",
url = "http://linkchecker.sourceforge.net/",
licence = "GPL",
long_description =
"""With LinkChecker you can check your HTML documents for broken links.
Features:
---------
"""LinkChecker features
o recursive checking
o multithreaded
o output can be colored or normal text, HTML, SQL, CSV or a sitemap
o multithreading
o output in colored or normal text, HTML, SQL, CSV or a sitemap
graph in GML or XML.
o HTTP/1.1, HTTPS, FTP, mailto:, news:, nntp:, Gopher, Telnet and local
file links are supported.
Javascript links are currently ignored
o restrict link checking with regular expression filters for URLs
file links support
o restriction of link checking with regular expression filters for URLs
o proxy support
o give username/password for HTTP and FTP authorization
o username/password authorization for HTTP and FTP
o robots.txt exclusion protocol support
o i18n support
o command line interface
o (Fast)CGI web interface (requires HTTP server)
o a command line interface
o a (Fast)CGI web interface (requires HTTP server)
""",
distclass = LCDistribution,
cmdclass = {'config': LCConfig, 'install': LCInstall},
@ -191,5 +217,11 @@ o (Fast)CGI web interface (requires HTTP server)
['locale/fr/LC_MESSAGES/linkcheck.mo']),
('share/linkchecker',['linkchecker.bat',
'linkcheckerrc',]),
('share/linkchecker',
['lc.cgi','lc.fcgi','lc.sz_fcgi']),
('share/linkchecker/lconline',
['lconline/leer.html','lconline/index.html',
'lconline/lc_cgi.html']),
('man/man1', ['linkchecker.1']),
],
)