Commit d012cea5 authored by Martin v. Löwis's avatar Martin v. Löwis

Correctly set default entry in all cases.

parent 5d6c7557
...@@ -58,6 +58,13 @@ class RobotFileParser: ...@@ -58,6 +58,13 @@ class RobotFileParser:
_debug("parse lines") _debug("parse lines")
self.parse(lines) self.parse(lines)
def _add_entry(self, entry):
if "*" in entry.useragents:
# the default entry is considered last
self.default_entry = entry
else:
self.entries.append(entry)
def parse(self, lines): def parse(self, lines):
"""parse the input lines from a robot.txt file. """parse the input lines from a robot.txt file.
We allow that a user-agent: line is not preceded by We allow that a user-agent: line is not preceded by
...@@ -76,11 +83,7 @@ class RobotFileParser: ...@@ -76,11 +83,7 @@ class RobotFileParser:
entry = Entry() entry = Entry()
state = 0 state = 0
elif state==2: elif state==2:
if "*" in entry.useragents: self._add_entry(entry)
# the default entry is considered last
self.default_entry = entry
else:
self.entries.append(entry)
entry = Entry() entry = Entry()
state = 0 state = 0
# remove optional comment and strip line # remove optional comment and strip line
...@@ -99,7 +102,7 @@ class RobotFileParser: ...@@ -99,7 +102,7 @@ class RobotFileParser:
_debug("line %d: warning: you should insert a blank" _debug("line %d: warning: you should insert a blank"
" line before any user-agent" " line before any user-agent"
" directive" % linenumber) " directive" % linenumber)
self.entries.append(entry) self._add_entry(entry)
entry = Entry() entry = Entry()
entry.useragents.append(line[1]) entry.useragents.append(line[1])
state = 1 state = 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment