Files
intellecton/venv/lib/python3.12/site-packages/pymdownx/__pycache__/magiclink.cpython-312.pyc
T

351 lines
53 KiB
Plaintext
Raw Normal View History

Ë
jä¾ã
ódZddlmZddlmZddlmZddlmZddlm cm
Z ddl mZddl Z ddl
mZmZdZd Zgd
¢gd ¢gd ¢gd
¢gd
¢dœZdZdZdZe j,d«ZdZdZdZdZdZdZdZdZdeZ deZ!edd«Z"edd«Z#edd«Z$dZ%d Z&d!Z'd"Z(d#Z)e j,d$«Z*d%efd&efd'efd(œZ+dhd)„Z,e j,d*j[e,dd+«e,dd,«e,dd-«««Z.d.efd/efd0efd(œZ/dhd1„Z0e j,d*j[e0dd+«e0dd,«e0dd-«««Z1e j,d2j[ee««Z2d3d4hZ3d5dd6ed7d8d9d:d;d<œ d=dd6ed>d?d@dAdBd<œ dCdd6ed>dDdEdFdGdBdHœ
dId4d6edJœdKd3d6edJœdLœZ4dM„Z5e5d4dN«e5d3dO«e5dd-«e5dd,«e5dd+«dPœZ6GdQ„dRe«Z7GdS„dTe7«Z8GdU„dVe«Z9GdW„dXe«Z:GdY„dZe«Z;Gd[„d\e«Z<Gd]„d^e7«Z=Gd_„d`e7«Z>Gda„dbe8«Z?Gdc„dde8«Z@Gde„dfe«ZAdg„ZBy)iaÓ
Magic Link.
pymdownx.magiclink
An extension for Python Markdown.
Find HTML, FTP links, and email address and turn them to actual links
MIT license.
Copyright (c) 2014 - 2017 Isaac Muse <isaacmuse@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
é)Ú Extension)Ú
Treeprocessor)Úutilé)Úwarn_deprecatedN)ÚLinkInlineProcessorÚInlineProcessoré©Ú dashboardÚaccountÚplansÚsupportÚrepo©Ú marketplaceÚ
notificationsÚissuesÚpullÚsponsorsÚsettingsr©r úexploreÚhelpÚprojects©ÚmessagesÚ bookmarksÚhome©Ú bitbucketÚgithubÚgitlabÚtwitterÚxa}(?xi)
(?P<mail>
(?<![-/\+@a-z\d_])(?:[-+a-z\d_]([-a-z\d_+]|\.(?!\.))*) # Local part
(?<!\.)@(?:[-a-z\d_]+\.) # @domain part start
(?:(?:[-a-z\d_]|(?<!\.)\.(?!\.))*)[a-z]\b # @domain.end (allow multiple dot names)
(?![-@]) # Don't allow last char to be followed by these
)
at(?xi)
(?P<link>
(?:(?<=\b)|(?<=_))(?:
(?:ht|f)tps?://[^_\W][-\w]*(?:\.[-\w.]+)*| # (http|ftp)://
(?P<www>w{3}\.)[^_\W][-\w]*(?:\.[-\w.]+)* # www.
)
/?[-\w.?,!'(){}\[\]/+&@%$#=:"|~;]* # url path, fragments, and query stuff
(?:[^_\W]|[-/#@$+=]) # allowed end chars
)
z(?i)<((?:ht|f)tps?://[^<>]*)>z^[a-zA-Z0-9]+$z\w{1,15}z+[a-zA-Z\d](?:[-a-zA-Z\d_]{0,37}[a-zA-Z\d])?z2[\.a-zA-Z\d_](?:[-a-zA-Z\d_\.]{0,37}[-a-zA-Z\d_])?z[-a-zA-Z\d_]{1,39}z4(?x)
(?P<mention>
(?<![a-zA-Z])@
(?:{})
)\b
z(?P<mention>(?<![a-zA-Z])@{})\bcód|dk(r |dtS|dk(r |dtS|dk(r |dtSy)z*Create external mentions by provider type.r$ú:r%r#N)ÚRE_GITHUB_USERÚRE_GITLAB_USERÚRE_BITBUCKET_USER)ÚnameÚ
provider_types úU/home/antigravity/intellecton/venv/lib/python3.12/site-packages/pymdownx/magiclink.pyÚcreate_ext_mentionsr0YsXð˜Ò Øœ.И(Ò "Ø&˜œ.И+Ò %Ø&˜Ô
ztwitter:zx:r$r%r#zi(?x)
(?P<mention>
(?<![a-zA-Z])
@(?:{})
)\b
/(?P<mention_repo>[-._a-zA-Z\d]{{0,99}}[a-zA-Z\d])\b
zZ(?x)
(?P<mention>(?<![a-zA-Z])@{})\b
/(?P<mention_repo>[-._a-zA-Z\d]{{0,99}}[a-zA-Z\d])\b
z»(?x)
(?P<all>(?<![@/])(?:(?P<user>\b{})/)
(?P<repo>[-._a-zA-Z\d]{{0,99}}[a-zA-Z\d])
(?:(?P<issue>(?:\#|!|\?)[1-9][0-9]*)|(?P<commit>@[a-f\d]{{40}})(?:\.{{3}}(?P<diff>[a-f\d]{{40}}))?))\b
z¼(?x)
(?P<all>(?<![@/])(?:(?P<user>\b{})/)?
(?P<repo>[-._a-zA-Z\d]{{0,99}}[a-zA-Z\d])
(?:(?P<issue>(?:\#|!|\?)[1-9][0-9]*)|(?P<commit>@[a-f\d]{{40}})(?:\.{{3}}(?P<diff>[a-f\d]{{40}}))?))\b
z(?x)
(?P<all>
(?:(?<![a-zA-Z])(?P<issue>(?:\#|!|\?)[1-9][0-9]*)|(?P<commit>(?<![@/])\b[a-f\d]{40})(?:\.{3}(?P<diff>[a-f\d]{40}))?)
)\b
z(https?://)(?:www\\\.)?(.*)aª
(?P<github>(?P<github_base>{}/
(?P<github_user_repo>(?P<github_user>{})/[^/]+))/
(?:issues/(?P<github_issue>\d+)/?|
pull/(?P<github_pull>\d+)/?|
discussions/(?P<github_discuss>\d+)/?|
commit/(?P<github_commit>[\da-f]{{7,40}})/?|
compare/(?P<github_diff1>[\da-f]{{7,40}})\.{{3}}
(?P<github_diff2>[\da-f]{{7,40}})))aÖ
(?P<bitbucket>(?P<bitbucket_base>{}/
(?P<bitbucket_user_repo>(?P<bitbucket_user>{})/[^/]+))/
(?:issues/(?P<bitbucket_issue>\d+)(?:/[^/]+)?/?|
pull-requests/(?P<bitbucket_pull>\d+)(?:/[^/]+(?:/diff)?)?/?|
commits/commit/(?P<bitbucket_commit>[\da-f]{{7,40}})/?|
branches/commits/(?P<bitbucket_diff1>[\da-f]{{7,40}})
(?:\.{{2}}|%0d)(?P<bitbucket_diff2>[\da-f]{{7,40}})\#diff))a„
(?P<gitlab>(?P<gitlab_base>{}/
(?P<gitlab_user_repo>(?P<gitlab_user>{})/[^/]+))/(?:-/)?
(?:issues/(?P<gitlab_issue>\d+)/?|
merge_requests/(?P<gitlab_pull>\d+)/?|
commit/(?P<gitlab_commit>[\da-f]{{8,40}})/?|
compare/(?P<gitlab_diff1>[\da-f]{{8,40}})\.{{3}}
(?P<gitlab_diff2>[\da-f]{{8,40}})))©r$r#r%có&t|}tj|j«j d««}|r=t
j
|«}|r&|jd«dz|jd«z}|dj||d«S©z Create repository link provider.ú/rz (?:w{3}\.)?r
r) ÚREPO_LINK_TEMPLATESÚreÚescapeÚlowerÚrstripÚRE_WWWÚmatchÚgroupÚformat©ÚproviderÚhostÚwwwÚtemplateÚhost_patÚms r/Úcreate_repo_link_patternrFµó{ô# 8Ñ,€HÜy‰y˜Ÿ×,¨SÓ2€HÙ
Ü L‰L˜Ó Ù Ø—ww˜q“z 2°Q·W±W¸Q³ZÑ?ˆHØ A‰;× Ñ ˜h¨°© Ó 4r1z(?xi)^(?:{}|{}|{})/?$zhttps://github.comzhttps://bitbucket.orgzhttps://gitlab.comz„
(?P<github>(?P<github_base>{}/
(?P<github_user_repo>(?P<github_user>{})(?:/(?P<github_repo>[^/]+))?)))
z•
(?P<bitbucket>(?P<bitbucket_base>{}/
(?P<bitbucket_user_repo>(?P<bitbucket_user>{})(?:/(?P<bitbucket_repo>[^/]+)/?)?)))
z„
(?P<gitlab>(?P<gitlab_base>{}/
(?P<gitlab_user_repo>(?P<gitlab_user>{})(?:/(?P<gitlab_repo>[^/]+))?)))
có&t|}tj|j«j d««}|r=t
j
|«}|r&|jd«dz|jd«z}|dj||d«Sr4) ÚUSER_LINK_TEMPLATESr7r8r9r:r;r<r=r>r?s r/Úcreate_user_link_patternrJärGr1zÂ(?xi)
^(?:
(?P<twitter>(?P<twitter_base>https://(?:w{{3}}\.)?twitter\.com/(?P<twitter_user>{}))) |
(?P<x>(?P<x_base>https://(?:w{{3}}\.)?x\.com/(?P<x_user>{})))
)/?$
r'r&ÚGitLabz{}z{}/{{}}/{{}}/-/issues/{{}}z"{}/{{}}/{{}}/-/merge_requests/{{}}z{}/{{}}/{{}}/-/commit/{{}}z"{}/{{}}/{{}}/-/compare/{{}}...{{}}é) r@ÚtypeÚurlÚ user_patternÚissuerÚcommitÚcompareÚ hash_sizeÚ Bitbucketz{}/{{}}/{{}}/issues/{{}}z{}/{{}}/{{}}/pull-requests/{{}}z {}/{{}}/{{}}/commits/commit/{{}}z-{}/{{}}/{{}}/branches/commits/{{}}..{{}}#difféÚGitHubz{}/{{}}/{{}}/pull/{{}}z{}/{{}}/{{}}/discussions/{{}}z{}/{{}}/{{}}/commit/{{}}z {}/{{}}/{{}}/compare/{{}}...{{}})
r@rMrNrOrPrÚdiscussrQrRrSÚTwitter)r@rMrNrOÚX)r%r#r$r&r'có´t|j«}dD];}||vrŒ||j|j«j d««||<Œ=|S)z+Create the provider with the provided host.)rNrPrrQrRrWr5)ÚPROVIDER_TEMPLATESÚcopyr>r9r:)r@rAÚentryÚkeys r/Úcreate_providerr_8scô
˜xÑ /€EØAˆØ  Ø Ø˜3Z×& t§z¡z£|×':Ñ':¸3Ó'?Ó@ˆˆ
ðAð €Lr1zhttps://twitter.comz
https://x.com)r&r'r%r#r$cóeZdZdZdZy)Ú_MagiclinkShorthandPatternzBase shorthand link class.c ó¦||_||_||_||_||_||jvr|nd|_t
j|||«y)ú Initialize.ÚN)ÚuserrÚlabelsÚ normalizeÚ
provider_infor@r Ú__init__) ÚselfÚpatternÚmdrerr@rfrgrhs r/riz#_MagiclinkShorthandPattern.__init__OsPðˆŒ ØˆŒ ؈Œ ØŒØÔØ$,°×0BÑ0BÑ$B™ÈˆŒ
Ü× Ñ   Õ3r1N)Ú__name__Ú
__module__Ú __qualname__Ú__doc__ri©r1r/raraLs
Ù 4r1racó"eZdZdZdZdZdZy)Ú_MagiclinkReferencePatternzfConvert #1, repo#1, user/repo#1, !1, repo!1, user/repo!1, hash, repo@hash, or user/repo@hash to links.c
ó¢|dd}|dd}|dk(r3|j|d}|jjdd«} d}
|} n¢|dk(rA|j|d}|jjdd «} d
}
|jrdn|} n\|j|d d k(rF|d
k(rA|j|d}|jjdd«} d}
|jrdn|} ny|jrt j | |«|_nP|jr!t j || |«|_n#t j |d|| |«|_|jd|j|||««|jdd|d|
«|jddj|j|d| |||««y)zProcess issues.Nrú#rPÚIssueúmagiclink-issueú!rú Pull Requestúmagiclink-pullrMr$ú?rWÚ
Discussionúmagiclink-discussionFr5ÚhrefÚclassúmagiclink magiclink-ú Útitlez{} {}: {}/{} #{}r@T) rhrfÚgetrgÚmy_repoÚmd_utilÚ AtomicStringÚtextÚmy_userÚsetr>) rjÚelr@rerrPÚ
issue_typeÚ issue_valueÚ
issue_linkÚ issue_labelÚ
class_nameÚicons r/Úprocess_issuesz)_MagiclinkReferencePattern.process_issues^ð˜2˜A
ؘA˜B à ˜Ò Ø×+¨HÑ5°gÑ>ˆŸ+™+Ÿ/™/¨'°7Ó;ˆ*ˆ‰DØ
˜
Ø×+¨HÑ5°fÑ=ˆŸ+™+Ÿ/™/¨&°.ÓAˆ)ˆŸ.š.‘3¨j‰DØ
×
Ñ
 Ñ
)¨&Ñ
1°XÒ
=À*ÐPSÒBSØ×+¨HÑ5°iÑ@ˆJØŸ+™+Ÿ/™/¨)°\ÓBˆKØ/ˆJØŸ.š.3¨j‰Dàà <Š<Ü×*¨d¨V°K°=Ð+AÓBˆB
\Š\Ü×*¨d¨V°D°6¸+¸Ð+GÓHˆB×*¨d¨V°1°T°F¸4¸À
Ð+NÓOˆBŒGà
ˆv¨t°[Ó
ˆwÐ.¨x¨j¸¸*¸Ð
Ø Ø × ×" ,¨ZÑØØØó 
ô
ðr1c
óì|d|j|d}|jr|}n|jr|d|}n
|d|d|}|jd|j|dj |||««t j |«|_|jdd|d «|jd
d j |j|d |jjdd
«|||««y)úProcess commit.rrSú@r5r~rQrr€z magiclink-commitrz{} {}: {}/{}@{}r@ÚCommitN©
rhr„rˆr‰r>r…r†r‡rf)rjr@rerrQÚhash_refr‡s r/Úprocess_commitz)_MagiclinkReferencePattern.process_commitð˜!˜D×.¨xÑÑFˆØ <Š<؉DØ
\Š\ØV˜1˜X˜'‰DàV˜1˜T˜F ! H .ˆ
ˆv)¨(Ñ3°HÑ=×DÀTÈ4ÐQWÓ×& ,ˆŒØ
ˆwÐ.¨x¨jÐ8IÐ
Ø Ø × ×" ,¨ZÑ  ¨(ÓØØó 
õ
r1c ó0|d|j|d}|d|j|d}|jr|d|} n$|jr |d|d|} n
|d|d|d|} |jd|j|dj ||||««t j | «|_|jdd |d
«|jd d j |j|d
|jjdd«||||««y)r“rrSú...r”r5r~rRrr€z magiclink-comparerz{} {}: {}/{}@{}...{}r@ÚCompareNr)
rjr@rerÚcommit1Úcommit2Ú hash_ref1Ú hash_ref2r‡s
r/Úprocess_comparez*_MagiclinkReferencePattern.process_compare¤s6ð˜A˜d×Ñ:¸;ÑHˆ ؘA˜d×Ñ:¸Hˆ Ø <Š<Ø[  I /‰DØ
\Š\ØV˜1˜Y˜K s¨9¨+Ð6‰DàV˜1˜T˜F ! I ;¨c°)°Ð=ˆ
ˆvt×)¨(Ñ3°IÑ>×EÀdÈDÐRYÐ[bÓ×& ,ˆŒØ
ˆwÐ.¨x¨jÐ8JÐ
Ø Ø "× ×" ,¨ZÑ   ¨9ÓØØØó

õ
r1N)rmrnrorprr˜r rqr1r/rsrs[sÙ+òZ
ó2
r1rscó†eZdZdZdZdZdZdZdZdZ dZ
d „Z d
Z d Z
d Zd
ZdZdZdZdZdZdZdZdZdZdZy)ÚMagicShortenerTreeprocessorzHTree processor that finds repo issue and commit links and shortens them.rrr
ééééc óÒ||_||_||_||_||_||_||_|
|_| |_ddddœ|_ | |_
tj||«y)rcrVrTrKr2N)
ÚbaseÚ
repo_shortnerÚsocial_shortenerÚcustom_shortnersÚ base_userÚ repo_labelsrgr@rhrfÚexcludesrri) rjrlÚbase_urlÚ
base_user_urlrfrgr@rhs r/riz$MagicShortenerTreeprocessor.__init__Ìss𠈌 ØÔØ 0ˆÔØ 0ˆÔØŒØÔØŒØ ˆŒ
ØÔàØñ
ˆŒ ð
!ˆŒ
Ü×јt (r1c
óà|}tj|«|_d|vr|jd«|j ddj ||j jdd«|««y)zShorten repo link.zmagiclink-repositoryrú {} {}: {}Ú
repositoryÚ
RepositoryN©r…r†r‡Úappendr‰r>r­)rjÚlinkrÚlabelÚ user_repor‡s r/Ú shorten_repoz(MagicShortenerTreeprocessor.shorten_repoísiðˆÜ×ÓŒ à Ñ × Ñ Ð  Ø Ø × Ñ Øt×'×+¨L¸ó
õ
r1c
óâtjd|«|_d|vr|jd«|j ddj ||j jdd«|««y)zShorten user link.r”zmagiclink-mentionrÚmetionÚUserNrµ)rjrr¸s r/Ú shorten_userz(MagicShortenerTreeprocessor.shorten_userýsjô×(¨1¨Y¨K¨ÓŒ à  jÑ × Ñ Ð  Ø Ø × Ñ Øt×'×+¨H°fÓ=¸
õ
r1c ó|jjdd«}|jr|dd|d|dd|}nT|jr2dj |j d«d|dd||dd|«}n|d|dd|d|dd|}t
j|«|_d |vr|jd «|jd
d j |||jd«|dd||dd|««y )
zShorten diff/compare links.rRrrrz
{}@{}...{}r5r”zmagiclink-comparerz{} {}: {}@{}...{}N© r­r„rˆr>Úsplitr…r†r‡r‰r:© rjrr¸ÚvaluerSÚ
repo_labelr‡s r/Ú shorten_diffz(MagicShortenerTreeprocessor.shorten_diff s4ð×)¨)°YÓ
Ø <Š<ؘAh˜q Ð,¨C°°a±¸¸9Ð0EÐ/FÐG‰DØ
\Š\Ø×& ¡°sÓ';¸AÑ'>ÀÀaÁÈÈ9Ð@UÐW\Ð]^ÑW_Ð`aÐbkÐWlÓm‰Dà[  ¡(¨1¨YÐ"7Ð!8¸¸EÀ!¹HÀQÀyÐ<QÐ;RÐSˆ×ÓŒ à  jÑ × Ñ Ð  Ø Ø × z 9×#3Ñ#3°CÓ#8¸¹(À1ÀYÐ:OÐQVÐWXÑQYÐZ[Ð\eÐQfó
õ
r1c ó¦|jjdd«}|jr|d|}n>|jr(dj |j d«d|d|«}n
|d|d|}t
j|«|_d|vr|jd«|jd d
j |||jd«|d|««y ) zShorten commit link.rQr•rz{}@{}r5rr”zmagiclink-commitrz {} {}: {}@{}NrÀs r/Úshorten_commitz*MagicShortenerTreeprocessor.shorten_commit"ð×)¨(°HÓ
Ø <Š<ؘ˜%‰DØ
\Š\Ø—>> )§/¡/°#Ó"6°qÑ"9¸À9Ð;MÓN‰Dà[  ¨)Ð"4Ð!5Ð6ˆ×ÓŒ à  ZÑ × Ñ Ð  Ø Ø × ! %¨°Y×5EÑ5EÀcÓ5JÈEÐRSÐT]ÐL^Ó 
r1c
óŠ|j|d}||jk(r4|jjdd«} d}
d|vr¸|j d«n¦||j
k(rB|jjdd«} |j rdnd}
d |vrg|j d «nU|d
k(rP||jk(rA|jjd d «} |j rdnd
}
d|vr|j d«|jrtj
|«|_ nj|jr>tjdj|jd«d
|««|_ n tj|
|«|_ |jddj| |j!d«|««y)zShorten issue/pull link.rMrPrvrurwrryrxrzr$rWr|r{r}z{}{}{}r5rrz
{} {}: {} #{}N)rhÚISSUEr­ÚPULLrgÚDISCUSSr„r…r†r‡rˆr>r‰r:) rjr@rr¸Ú link_typer.rrs r/Ú
shorten_issuez)MagicShortenerTreeprocessor.shorten_issue7s”ð×*¨8Ñ4°VÑ<ˆ
Ø ˜Ÿ
Ò ×)×-¨g°wÓ?ˆJ؈DØ ¨
Ñ×!Ð"3Õ
˜$Ÿ)™)Ò
×-¨f°nÓEˆJØŸ.š.‘3¨cˆDØ ×!Ð"2Õ
˜
&¨9¸¿ ¹ Ò+DØ×-¨i¸ÓFˆJØŸ.š.‘3¨cˆDØ%¨ZÑ×!Ð"8Ô <Š<Üרv°e°WÐ-=Ó>ˆD
\Š\Ü×,¨X¯_©_¸Y¿_¹_ÈSÓ=QÐRSÑ=TÐVZÐ\aÓ-bÓcˆD×,° ¨{¸4¸ÀÐ-HÓIˆDŒIà ˜/׸
ÀI×DTÑDTÐUXÓDYÐ[`Óbr1c óØ|j|d}d|}|jdd«} | r| jd«ng}
d|
vr|
jd«||
vr|
j|«||jur|j ||
||||«n<||j ur|j||
||||«n|j|||
||||«|jddj|
««y©z Shorten URL.r@z
magiclink-rrdrÚ magiclinkN) rhÚDIFFrÅÚCOMMITrÇr‰Újoin) rjr@rSr¸Ú
prov_classÚ
class_attrrs r/Úshorten_issue_commitz0MagicShortenerTreeprocessor.shorten_issue_commitUð×" ,¨ZÑ8ˆØ! ( Ð
Ø—XX˜g *ˆ
Ù.8Z×% *¸bˆ
à ˜jÑ × Ñ ˜kÔ ˜ZÑ × Ñ ˜jÔ  ˜Ÿ ™ Ñ × Ñ ˜d J°°yÀ%ÈÕ
˜$Ÿ+™+Ñ
× Ñ   j°%¸ÀEÈ9Õ × Ñ ˜x¨¨z¸5À)ÈUÐT]Ô  ˜#Ÿ(™( /r1có„|j|d}d|}|jdd«}|r|jd«ng}d|vr|jd«||vr|j|«||jur|j ||||«n|j
||||«|jddj|««y) rhÚREPOrºr‰) rjr@r¸rs r/Úshorten_user_repoz-MagicShortenerTreeprocessor.shorten_user_repolð×" ,¨ZÑ8ˆØ! ( Ð
Ø—XX˜g *ˆ
Ù.8Z×% *¸bˆ
à ˜jÑ × Ñ ˜kÔ ˜ZÑ × Ñ ˜jÔ  ˜Ÿ ™ Ñ × Ñ ˜d J°°yÕ × Ñ ˜d J°°yÔ  ˜#Ÿ(™( /r1có€|jd«rd}|S|jd«rd}|S|jd«rd}S)zGet the provider and hash size.r$r#r%©r=©rjr<r@s r/Úget_provider_typez-MagicShortenerTreeprocessor.get_provider_typesNð ;‰; ؈Hð
ˆð [‰[˜Ô
"ˆˆð[‰[˜Ô
ˆˆr1cóV|jd«rd}|S|jd«rd}S)zGet social provider.r&r's r/Úget_social_providerz/MagicShortenerTreeprocessor.get_social_providers4ð ;‰;  ˆHðˆð[‰[˜Ô
؈H؈r1cóØ |j|dz«5|j|dz«|j|dz«f}|j}nÄ|j|dz«!|j|dz«}|j}n|j|dz«!|j|dz«}|j}nZ|dk(r5|j|dz«!|j|dz«}|j}n |j|dz«}|j
}||fS#t $rMd } |j|d
z«d}|j}d }n#t $rYnwxYw|sd}|j}YfSwxYw) zGet the link type.Ú_diff1NÚ_diff2Ú_commitÚ_pullr$Ú_discussÚ_issueFÚ_repoT) r=Ú
IndexErrorrØÚUSER)rjr@r<Úfounds r/Úget_typez$MagicShortenerTreeprocessor.get_type—s|ð{‰{˜8 Ÿ X°Ñ%8Ó9¸5¿;¹;ÀxÐRZÑGZÓ;[Ð\Ø ŸI™I‘ ؘX¨ ÑŸ  H¨yÑ$8Ó9Ø ŸK™K‘ ؘX¨ÑŸ  H¨wÑ$6Ó7Ø ŸI™I‘ ؘXÒ%¨%¯+©+°hÀÑ6KÓ*LÐ*XØŸ  H¨zÑ$9Ó:Ø ŸL™L‘ àŸ  H¨xÑ$7Ó8Ø ŸJ™J ðÐøôò ˆ
Ø—;;˜x¨'Ñ EØ $§ ¡  EùÜò
Ùð
úáØØ ŸI™I øØÐð &ús6D
DÄ E)Ä$EÅE)Å EÅ
E)ÅEÅE)Å(E)cóf|jxr$|j|dz«dz|jk(S)z2Check if link is from our specified user and repo.Ú_baser5)r=©rjr.r<s r/Ú
is_my_repoz&MagicShortenerTreeprocessor.is_my_repoºs/ðy‰yÒT˜UŸ[™[¨¸Ñ)@ÓAÀCÑGÈ4Ï9É9ÑTr1cóx|jxr-|j|dz«j|j«S)z)Check if link is from our specified user.rí)r=Ú
startswithrîs r/Ú
is_my_userz&MagicShortenerTreeprocessor.is_my_userÀs3ð~‰~Òa %§+¡+¨m¸gÑ.EÓ"F×"QÑ"QÐRV×R`ÑR`Ó"aÐar1có’|j|dz«}|j«|jj|t ««vS)z Check if user has been excluded.Ú_user)r=r9r‰)rjr.r@r<res r/Úexcludedz$MagicShortenerTreeprocessor.excludedÅs;ð{‰{˜=¨7ÑØz‰z‹|˜tŸ}™}×¼3»5ÓAr1c óÈ |jd|_|jd«}|D}tt |««}|j
j
d«}|j
j
dd«}|j}d}|r
|j
d=|s|sŒq||k(s|sŒy|jsŒ†d|z|k(sŒ|jrÈtj|«} | r±|j| «}
|
} |j|
| «|_
|jxs|j|
| «|_|j!|
| «\} }
d}|j#|
| | «s8|j%|| |
| j'|
d z«| |j(| d
«|sÂ|jr¶t*j|«} | rŸ|j| «}
|
} |j|
| «|_
|jxs|j|
| «|_|j!|
| «\} }
d}|j#|
| | «s&|j-|| |
| j'|
d z««|sµ|j.r¨|j.j1«D\}}|d j|«} | r²|} |j(|d }
|j|
| «|_
|jxs|j|
| «|_|j!|
| «\} }
d}|j#|
| | «s8|j%|| |
| j'|
d z«| |j(| d
«|rŒÒ|d
j|«} | sŒé|} |j(|d }
|j|
| «|_
|jxs|j|
| «|_|j!|
| «\} }
d}|j#|
| | «rŒe|j-|| |
| j'|
d z««Œ|rŒã|j2sŒñt4j|«} | sŒ
|j7| «} | dk(r t9d«|j| | «|_
|jxs|j| | «|_|j!| | «\} }
|j#| | | «rŒ‘|j-|| |
| j'| dz««Œ¹|S)z%Shorten popular git repository links.Ú
hide_protocolÚarÐr~rdFzhttps://TÚ
_user_reporSrrMrer&úIThe 'twitter' social provider has been deprecated, please use 'x' insteadrô)Úconfigr÷ÚiterÚlenÚlistÚattribrƒr‡Ú RE_REPO_LINKr<r„r=rhÚRE_USER_REPO_LINKrÙÚitemsrªÚRE_SOCIAL_LINKrßr)rjÚrootÚlinksr·Ú has_childÚis_magicr~r‡rEr.r@Úcustomr]s r/ÚrunzMagicShortenerTreeprocessor.runËð"Ÿ[™[¨ÑÔà— ‘ ˜#“ˆØóp ˆDÜœD ›J›ˆIØ—{‘{— {Ó3ˆHØ—;‘;—?‘? 6¨2Ó.ˆDØ—9‘9ˆD؈EáØ—K‘K  СØð˜ ¢¨d×.@Ó.@ÀjÐSWÑFWÐ\`ÓE`Ø×$×*¨4Ó0Ø(,×(>Ñ(>¸qÓ(A˜
Ø#0˜Ø'+§¡°}ÀaÓ'H˜œ Ø'+§|¡|Ò'X°t·±À}ÐVWÓ7X˜œ Ø+/¯=©=¸ÈÓ+JјyØ $˜ð $Ÿ}™}¨]¸HÀaÔ ×5Ø $Ø (Ø )Ø !§¡¨
¸ Ñ(DÓ EØ %Ø $× 2Ñ 2°8Ñ <¸[Ñ Iô
ñ ×!3Ò!3ÜÓ5Ø(,×(>Ñ(>¸qÓ(A˜
Ø#0˜Ø'+§¡°}ÀaÓ'H˜œ Ø'+§|¡|Ò'X°t·±À}ÐVWÓ7X˜œ Ø+/¯=©=¸ÈÓ+JјyØ $˜à#Ÿ}™}¨]¸HÀaÔ ×2Ø $Ø (Ø )Ø !§¡¨
¸ Ñ(DÓ Eô ò  ×!6Ó!6Ø)-×)>Ñ)>×)DÑ)DÓ)Fó%&™
˜ Ø! &™M×Ó5˜ÙØ'-˜HØ,0×,>Ñ,>¸vÑ,FÀvÑ,N˜MØ+/¯?©?¸=È!Ó+L˜DœLØ+/¯<©<Ò+\¸4¿?¹?È=ÐZ[Ó;\˜DœLØ/3¯}©}¸]ÈAÓ/NÑ,˜E 9Ø$(˜$(§=¡=°ÀÈ!Ô#LØ $× 9Ñ 9Ø$(Ø$,Ø$-Ø$%§G¡G¨M¸LÑ,HÓ$IØ$)Ø$(×$6Ñ$6°xÑ$@ÀÑ$Mô
!"ò %Ø % 
× 3Ñ 3°DÓ 9˜ Ø+1 Ø04×0BÑ0BÀ6Ñ0JÈ6Ñ0R 
Ø/3¯©¸}ÈaÓ/P ¤ Ø/3¯|©|Ò/`¸t¿¹È}Ð^_Ó?` ¤ Ø37·=±=ÀÐPQÓ3RÑ 0  yØ(, à'+§}¡}°]ÀHÈaÖ'Pà$(×$:Ñ$:Ø(,Ø(0Ø(1Ø()¯©°
À Ñ0LÓ(Mö %&ðA%&óN ×!6Ô!6Ü&×,¨TÓ2Ø#'×#;Ñ#;¸AÓ#>˜Ø# +Ð,wÔxØ'+§¡°xÀÓ'C˜œ Ø'+§|¡|Ò'S°t·±ÀxÐQRÓ7S˜œ Ø+/¯=©=¸À1Ó+Eјyà#Ÿ}™}¨X°xÀÖ ×2Ø $Ø (Ø )Ø !§¡¨°7Ñ(:Ó ;ö ðWp ðbˆ r1N)rmrnrorprir rqr1r/Às|Ù
€EØ €DØ
€FØ€GØ €DØ €DØ €Dò)òB
ò

ò
ò,
ò*cò<0ò.0ò*
òò! òFUò bò
Bó wr1cóeZdZdZdZdZy)ÚMagiclinkPatternz+Convert html, ftp links to clickable links.©cóÂtjd«}tj|j d««|_|j d«r!dj
|j d««}nc|j d«}|jdrCtj|j