python (3.12.0)

(root)/
lib/
python3.12/
urllib/
__pycache__/
robotparser.cpython-312.opt-2.pyc

̑e$	ddlZddlZddlZdgZej
ddZGddZGddZGdd	Z	y)
NRobotFileParserRequestRatezrequests secondscXeZdZ	ddZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZy
)rczg|_g|_d|_d|_d|_|j|d|_y)NFr)entriessitemaps
default_entrydisallow_all	allow_allset_urllast_checkedselfurls  F/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/urllib/robotparser.py__init__zRobotFileParser.__init__s;
!!Sc	|jSN)r
rs rmtimezRobotFileParser.mtime%s	   rc8	ddl}|j|_y)Nr)timer
)rrs  rmodifiedzRobotFileParser.modified.s		 IIKrcr	||_tjj|dd\|_|_y)N)rurllibparseurlparsehostpathrs  rrzRobotFileParser.set_url6s0:%||44S9!A>	49rc		tjj|j}|j	}|j|j
djy#tjj$rT}|jdvrd|_n4|jdk\r |jdkrd|_Yd}~yYd}~yYd}~yYd}~yd}~wwxYw)Nzutf-8)iiTii)
rrequesturlopenrreadrdecode
splitlineserror	HTTPErrorcoder
r)rfrawerrs    rr&zRobotFileParser.read;sB		9&&txx0A&&(CJJszz'*5578||%%	&xx:%$(!SSXX^!%&4"	&s)A++C;CCcd|jvr|j||_yy|jj|yN*)
useragentsr	rappend)rentrys  r
_add_entryzRobotFileParser._add_entryHs=%"""!!)%*"*
LL&rc	d}t}|j|D]}|s4|dk(r
t}d}n"|dk(r|j|t}d}|jd}|dk\r|d|}|j	}|sh|jdd}t
|dk(s|dj	j|d<tjj|dj	|d<|ddk(rB|dk(r|j|t}|jj|dd}*|ddk(r3|dk7s9|jjt|ddd}e|dd	k(r3|dk7st|jjt|dd
d}|ddk(r?|dk7s|dj	jrt!|d|_d}|ddk(r|dk7s|djd
}t
|dk(rk|dj	jrJ|dj	jr)t%t!|dt!|d|_d}|ddk(s|j(j|d|dk(r|j|yy)Nrr#:z
user-agentdisallowFallowTzcrawl-delayzrequest-rate/sitemap)Entryrr5findstripsplitlenlowerrrunquoter2r3	rulelinesRuleLineisdigitintdelayrreq_rater)rlinesstater4lineinumberss       rrzRobotFileParser.parseQs	

7	2DA:!GEEaZOOE*!GEE		#AAvBQx::<D::c1%D4yA~q'--///1Q ,,..tAw}}?Q7l*z. %$$++DG4E!W
*z..xQ/GH !!W'z..xQ/FG !!W
-z 7==?224*-d1g,EK !!W.z"&q'--"4LA-'!*2B2B2D2L2L2N '
 0 0 2 : : <-8WQZ#gVWj/-ZEN !!W	)
MM((a1o7	2pA:OOE"rcd	|jry|jry|jsytjjtjj
|}tjjdd|j|j|j|jf}tjj|}|sd}|jD]&}|j|s|j|cS|j r|j j|Sy)NFTr<)r
rr
rrr rD
urlunparser"paramsqueryfragmentquoter
applies_to	allowancer	)r	useragentr
parsed_urlr4s     r	can_fetchzRobotFileParser.can_fetchsK>>
  \\**6<<+?+?+DE
ll%%r"Z__j..
0C0C'EFll  %C\\	,E	*s++	,%%//44rc|jsy|jD]!}|j|s|jcS|jr|jjSyr)rrrWrIr	rrYr4s   rcrawl_delayzRobotFileParser.crawl_delaysYzz|\\	#E	*{{"	#%%+++rc|jsy|jD]!}|j|s|jcS|jr|jjSyr)rrrWrJr	r]s   rrequest_ratezRobotFileParser.request_ratesYzz|\\	&E	*~~%	&%%...rc4|jsy|jSr)rrs r	site_mapszRobotFileParser.site_mapss}}}}rc|j}|j||jgz}djtt|S)Nz

)rr	joinmapstr)rrs  r__str__zRobotFileParser.__str__s@,,)!3!3 44G{{3sG,--rN)rQ)__name__
__module____qualname__rrrrr&r5rr[r^r`rbrgrrrrsE
!(?
9'G#R:
.rc eZdZ	dZdZdZy)rFc|dk(r|sd}tjjtjj|}tjj	||_||_y)NrQT)rrrRr rVr"rX)rr"rXs   rrzRuleLine.__init__sP2:iI||&&v||'<'<T'BCLL&&t,	"rcZ|jdk(xs|j|jSr0)r"
startswith)rfilenames  rrWzRuleLine.applies_tos%yyCA8#6#6tyy#AArcB|jrdnddz|jzS)NAllowDisallowz: )rXr"rs rrgzRuleLine.__str__s>>zTADIIMMrN)rhrirjrrWrgrkrrrFrFs1#BNrrFc&eZdZ	dZdZdZdZy)r>c<g|_g|_d|_d|_yr)r2rErIrJrs rrzEntry.__init__s

rcg}|jD]}|jd||j|jd|j|j7|j}|jd|jd|j
|j
tt|jdj|S)NzUser-agent: z
Crawl-delay: zRequest-rate: r<
)r2r3rIrJrequestssecondsextendrerfrErd)rretagentrates    rrgz
Entry.__str__s__	/EJJeW-.	/::!JJtzzl34==$==DJJ

a~FG

3sDNN+,yy~rc	|jddj}|jD]}|dk(ry|j}||vsyy)Nr<rr1TF)rArCr2)rrYr|s   rrWzEntry.applies_tosY@OOC(+113	__	E|KKME	!
	rcf	|jD]!}|j|s|jcSy)NT)rErWrX)rrprMs   rrXzEntry.allowance
s7	%NN	&Dx(~~%	&rN)rhrirjrrgrWrXrkrrr>r>sI
rr>)
collectionsurllib.parserurllib.request__all__
namedtuplerrrFr>rkrr<module>rsU

$k$$]4FG~.~.BNN$((r