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

351 lines
53 KiB
Plaintext
Raw Normal View History

Ë
cÀjä¾ã
ó�—dZddlmZddlmZddlmZddlmZddlm cm
Z ddl mZddl Z ddl
mZmZdZd Zgd
¢gd ¢gd ¢gd
¢gd
¢dœZdZdZdZe j,d«ZdZdZdZdZdZdZdZd„Zde›�Z de›�Z!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©ÚiÚ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 |›dt›�S|dk(r |›dt›�S|dk(r |›dt›�Sy)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Ó1Ó2€HÙ
Ü �L‰L˜Ó "ˆÙ Ø—w‘w˜q“z NÑ2°Q·W±W¸Q³ZÑ?ˆHØ �A‰;× Ñ ˜h¨°© Ó 4Ð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ØGòAˆØ �eÑ Ø Ø˜3‘Z×&Ñ& t§z¡z£|×':Ñ':¸3Ó'?Ó@ˆˆcŠ
ðAð €Lr1zhttps://twitter.comz
https://x.com)r&r'r%r#r$có—eZdZdZd„Zy)Ú_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™ÈˆŒ
Ü× Ñ   w°Õ3r1N)Ú__name__Ú
__module__Ú __qualname__Ú__doc__ri©r1r/raraLs
„Ù$ó 4r1racó"—eZdZdZd„Zd„Zd„Zy)Ú_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^sÝ€ð˜2˜A�Yˆ
ؘA˜B�iˆ à ˜Ò Ø×+Ñ+¨HÑ5°gÑ>ˆJØŸ+™+Ÿ/™/¨'°7Ó;ˆKØ*ˆJ؉DØ
˜3Ò
Ø×+Ñ+¨HÑ5°fÑ=ˆJØŸ+™+Ÿ/™/¨&°.ÓAˆKØ)ˆJØŸ.š.‘3¨j‰DØ
×
Ñ
 Ñ
)¨&Ñ
1°XÒ
=À*ÐPSÒBSØ×+Ñ+¨HÑ5°iÑ@ˆJØŸ+™+Ÿ/™/¨)°\ÓBˆKØ/ˆJØŸ.š.‘3¨j‰Dàà �<Š<Ü×*Ñ*¨d¨V°K°=Ð+AÓBˆB�GØ
�\Š\Ü×*Ñ*¨d¨V°D°6¸+¸Ð+GÓHˆB�Gä×*Ñ*¨d¨V°1°T°F¸4¸&ÀÀ
Ð+NÓOˆBŒGà
�‰ˆv�z×(Ñ(¨¨t°[ÓAÔBØ
�‰ˆwÐ.¨x¨j¸¸*¸ÐFÔGØ
�‰Ø Ø × %Ñ %Ø×"Ñ" 8Ñ,¨ZÑ8ØØØØó 
ô
ð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-commitr‚z{} {}: {}/{}@{}r@ÚCommitN©
rhr„rˆr‰r>r…r†r‡rfrƒ)rjrŠr@rerrQÚhash_refr‡s r/Úprocess_commitz)_MagiclinkReferencePattern.process_commit‹sý€ð˜!˜D×.Ñ.¨xÑ8¸ÑEÐFˆØ �<Š<؉DØ
�\Š\Ø�V˜1˜X˜JÐ'‰Dà�V˜1˜T˜F ! H :Ð.ˆDà
�‰ˆv�t×)Ñ)¨(Ñ3°HÑ=×DÑDÀTÈ4ÐQWÓXÔYÜ×&Ñ& tÓ,ˆŒØ
�‰ˆwÐ.¨x¨jÐ8IÐJÔKØ
�‰Ø Ø × $Ñ $Ø×"Ñ" 8Ñ,¨ZÑ8Ø— ‘ —‘ ¨(Ó3ØØØó 
õ
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-comparer‚z{} {}: {}/{}@{}...{}r@ÚCompareNr–)
rjrŠr@rerÚcommit1Úcommit2Ú hash_ref1Ú hash_ref2r‡s
r/Úprocess_comparez*_MagiclinkReferencePattern.process_compare¤s6€ð˜A˜d×0Ñ0°Ñ:¸;ÑGÐHˆ ؘA˜d×0Ñ0°Ñ:¸;ÑGÐHˆ Ø �<Š<Ø�[  I ;Ð/‰DØ
�\Š\Ø�V˜1˜Y˜K s¨9¨+Ð6‰Dà�V˜1˜T˜F ! I ;¨c°)°Ð=ˆDà
�‰ˆv�t×)Ñ)¨(Ñ3°IÑ>×EÑEÀdÈDÐRYÐ[bÓcÔdÜ×&Ñ& tÓ,ˆŒØ
�‰ˆwÐ.¨x¨jÐ8JÐKÔLØ
�‰Ø Ø "× )Ñ )Ø×"Ñ" 8Ñ,¨ZÑ8Ø— ‘ —‘  ¨9Ó5ØØØØó

õ
r1N)rmrnrorpr‘r˜r rqr1r/rsrs[s„Ùpò+òZ
ó2
r1rscó†—eZdZdZdZdZdZdZdZdZ dZ
d „Z d
„Z d „Z
d „Zd
„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zy)Ú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©rªr«r®r@rhs r/riz$MagicShortenerTreeprocessor.__init__Ìss€ð ˆŒ Ø*ˆÔØ 0ˆÔØ 0ˆÔØ&ˆŒØ!ˆÔØ"ˆŒØ ˆŒ
Ø*ˆÔàØ$Øñ
ˆŒ ð
!ˆŒ
Ü×јt RÕ(r1c
óà—|}tj|«|_d|vr|jd«|j ddj ||j jdd«|««y)zShorten repo link.zmagiclink-repositoryr‚ú {} {}: {}Ú
repositoryÚ
RepositoryN©r…r†r‡Úappendr‰r>r­rƒ)rjÚlinkr�ÚlabelÚ user_repor‡s r/Ú shorten_repoz(MagicShortenerTreeprocessor.shorten_repoísi€ðˆÜ×(Ñ(¨Ó.ˆŒ à !¨Ñ 3Ø × Ñ Ð4Ô 5à �‰Ø Ø × Ñ Ø�t×'Ñ'×+Ñ+¨L¸,ÓGÈó
õ
r1c
óâ—tjd|›�«|_d|vr|jd«|j ddj ||j jdd«|««y)zShorten user link.r”zmagiclink-mentionr‚r²ÚmetionÚUserNrµ)rjr·r�r¸r¹s r/Ú shorten_userz(MagicShortenerTreeprocessor.shorten_userýsj€ô×(Ñ(¨1¨Y¨K¨Ó9ˆŒ à  jÑ 0Ø × Ñ Ð1Ô 2à �‰Ø Ø × Ñ Ø�t×'Ñ'×+Ñ+¨H°fÓ=¸yó
õ
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.rRr›rršrz
{}@{}...{}r5r”zmagiclink-comparer‚z{} {}: {}@{}...{}N© r­rƒr„rˆr>Úsplitr…r†r‡r¶r‰r:© rjr·r�r¸r¹ÚvaluerSÚ
repo_labelr‡s r/Ú shorten_diffz(MagicShortenerTreeprocessor.shorten_diff s4€ð×%Ñ%×)Ñ)¨)°YÓ?ˆ
Ø �<Š<ؘA‘h˜q Ð+Ð,¨C°°a±¸¸9Ð0EÐ/FÐG‰DØ
�\Š\Ø×&Ñ& y§¡°sÓ';¸AÑ'>ÀÀaÁÈÈ9Ð@UÐW\Ð]^ÑW_Ð`aÐbkÐWlÓm‰Dà�[  %¨¡(¨1¨YÐ"7Ð!8¸¸EÀ!¹HÀQÀyÐ<QÐ;RÐSˆDÜ×(Ñ(¨Ó.ˆŒ à  jÑ 0Ø × Ñ Ð1Ô 2à �‰Ø Ø × &Ñ &Ø�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-commitr‚z {} {}: {}@{}NrÀrÂs r/Úshorten_commitz*MagicShortenerTreeprocessor.shorten_commit"sÓ€ð×%Ñ%×)Ñ)¨(°HÓ=ˆ
Ø �<Š<ؘ˜9Ð%‰DØ
�\Š\Ø—>‘> )§/¡/°#Ó"6°qÑ"9¸5ÀÀ9Ð;MÓN‰Dà�[  %¨¨)Ð"4Ð!5Ð6ˆDÜ×(Ñ(¨Ó.ˆŒ à  ZÑ /Ø × Ñ Ð0Ô 1à �‰Ø Ø × !Ñ ! %¨°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{}{}{}r5rr‚z
{} {}: {} #{}N)rhÚISSUEr­rƒr¶ÚPULLrgÚDISCUSSr„r…r†r‡rˆr>rÁr‰r:) rjr@r·r�r¸r¹rÃÚ link_typer.r‹r�s r/Ú
shorten_issuez)MagicShortenerTreeprocessor.shorten_issue7s”€ð×*Ñ*¨8Ñ4°VÑ<ˆ
Ø ˜Ÿ
™
Ò "Ø×)Ñ)×-Ñ-¨g°wÓ?ˆJ؈DØ ¨
Ñ2Ø×!Ñ!Ð"3Õ4Ø
˜$Ÿ)™)Ò
#Ø×)Ñ)×-Ñ-¨f°nÓEˆJØŸ.š.‘3¨cˆDØ zÑ1Ø×!Ñ!Ð"2Õ3Ø
˜hÒ
&¨9¸¿ ¹ Ò+DØ×)Ñ)×-Ñ-¨i¸ÓFˆJØŸ.š.‘3¨cˆDØ%¨ZÑ7Ø×!Ñ!Ð"8Ô9à �<Š<Ü×,Ñ,°¨v°e°WÐ-=Ó>ˆD�IØ
�\Š\Ü×,Ñ,¨X¯_©_¸Y¿_¹_ÈSÓ=QÐRSÑ=TÐVZÐ\aÓ-bÓcˆD�Iä×,Ñ,° ¨{¸4¸&ÀÀÐ-HÓIˆDŒIà �‰�˜/×0Ñ0°¸
ÀI×DTÑDTÐUXÓDYÐ[`ÓaÕ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) rhrƒrÁr¶ÚDIFFrÅÚCOMMITrÇrÍr‰Újoin) rjr·r@rÌr¹rÃrSr¸Ú
prov_classÚ
class_attrr�s r/Úshorten_issue_commitz0MagicShortenerTreeprocessor.shorten_issue_commitUsñ€ð×"Ñ" 8Ñ,¨ZÑ8ˆØ! ( Ð,ˆ
Ø—X‘X˜g rÓ*ˆ
Ù.8�Z×%Ñ% cÔ*¸bˆ
à ˜jÑ (Ø × Ñ ˜kÔ *à ˜ZÑ 'Ø × Ñ ˜jÔ )𠘟 ™ Ñ !Ø × Ñ ˜d J°°yÀ%ÈÕ SØ
˜$Ÿ+™+Ñ
%Ø × Ñ   j°%¸ÀEÈ9Õ Uà × Ñ ˜x¨¨z¸5À)ÈUÐT]Ô ^Ø �‰�˜#Ÿ(™( :Ó.Õ/r1có„—|j|d}d|›�}|jdd«}|r|jd«ng}d|vr|jd«||vr|j|«||jur|j ||||«n|j
||||«|jddj|««yrÏ) rhrƒrÁr¶ÚREPOrºr¾r‰rÓ) rjr·r@rÌr¹r¸rÔrÕr�s r/Úshorten_user_repoz-MagicShortenerTreeprocessor.shorten_user_repols€ð×"Ñ" 8Ñ,¨ZÑ8ˆØ! ( Ð,ˆ
Ø—X‘X˜g rÓ*ˆ
Ù.8�Z×%Ñ% cÔ*¸bˆ
à ˜jÑ (Ø × Ñ ˜kÔ *à ˜ZÑ 'Ø × Ñ ˜jÔ )𠘟 ™ Ñ !Ø × Ñ ˜d J°°yÕ Aà × Ñ ˜d J°°yÔ AØ �‰�˜#Ÿ(™( :Ó.Õ/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_type�sN€ð �;‰;�xÔ ØˆHð
ˆð �[‰[˜Ô
%Ø"ˆHðˆð�[‰[˜Ô
"؈H؈r1cóV—|jd«rd}|S|jd«rd}S)zGet social provider.r&r'rÛrÜs r/Úget_social_providerz/MagicShortenerTreeprocessor.get_social_provider�s4€ð �;‰;�yÔ !Ø ˆ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=rÑrÒrÊrËrÉÚ
IndexErrorrØÚUSER)rjr@r<rÃrÌÚfounds r/Úget_typez$MagicShortenerTreeprocessor.get_type—s|€ð &à�{‰{˜8 hÑ.Ó/Ð;ØŸ™ X°Ñ%8Ó9¸5¿;¹;ÀxÐRZÑGZÓ;[Ð\�Ø ŸI™I‘ Ø—‘˜X¨ Ñ1Ó2Ð>ØŸ ™  H¨yÑ$8Ó9�Ø ŸK™K‘ Ø—‘˜X¨Ñ/Ó0Ð<ØŸ ™  H¨wÑ$6Ó7�Ø ŸI™I‘ ؘXÒ%¨%¯+©+°hÀÑ6KÓ*LÐ*XØŸ ™  H¨zÑ$9Ó:�Ø ŸL™L‘ àŸ ™  H¨xÑ$7Ó8�Ø ŸJ™J� ð�iÐÐøôò &àˆEð
Ø—;‘;˜x¨'Ñ1Ó2Ð>Ø �EØ $§ ¡ �IØ �EùÜò
Ùð
úáØ�Ø ŸI™I� øØ�iÐÐð &ús6‚D
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¨r=©rjr.r<s r/Ú
is_my_repoz&MagicShortenerTreeprocessor.is_my_repoºs/€ð�y‰yÒT˜UŸ[™[¨¸Ñ)@ÓAÀCÑGÈ4Ï9É9ÑTÐTr1cóx—|jxr-|j|dz«j|j«S)z)Check if link is from our specified user.rí)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®rƒr‰)rjr.r@r<res r/Úexcludedz$MagicShortenerTreeprocessor.excludedÅs;€ð�{‰{˜=¨7Ñ2Ó3ˆØ�z‰z‹|˜tŸ}™}×0Ñ0°¼3»5ÓAÐAÐ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‡r©Ú RE_REPO_LINKr<rÝrïr„ròrˆrërõrÖr=rhÚRE_USER_REPO_LINKrÙr«ÚitemsrªÚRE_SOCIAL_LINKrßr)rjÚrootÚlinksr·Ú has_childÚis_magicr~r‡rêrEr.r@rÃrÌÚcustomr]s r/ÚrunzMagicShortenerTreeprocessor.runËs¢€ð"Ÿ[™[¨Ñ9ˆÔà— ‘ ˜#“ˆØóp ˆDÜœD ›J›ˆIØ—{‘{—‘ {Ó3ˆHØ—;‘;—?‘? 6¨2Ó.ˆDØ—9‘9ˆD؈EáØ—K‘K  Ð,ñ¡Øð˜’ ¢¨d×.@Ó.@ÀjÐSWÑFWÐ\`ÓE`Ø×%Ò%Ü$×*Ñ*¨4Ó0�AÙØ(,×(>Ñ(>¸qÓ(A˜
Ø#0˜Ø'+§¡°}ÀaÓ'H˜œ Ø'+§|¡|Ò'X°t·±À}ÐVWÓ7X˜œ Ø+/¯=©=¸ÈÓ+JÑ(˜˜yØ $˜ð $Ÿ}™}¨]¸HÀaÔHØ ×5Ñ5Ø $Ø (Ø )Ø !§¡¨
¸ Ñ(DÓ EØ %Ø $× 2Ñ 2°8Ñ <¸[Ñ Iô
ñ ×!3Ò!3Ü)×/Ñ/°Ó5�AÙØ(,×(>Ñ(>¸qÓ(A˜
Ø#0˜Ø'+§¡°}ÀaÓ'H˜œ Ø'+§|¡|Ò'X°t·±À}ÐVWÓ7X˜œ Ø+/¯=©=¸ÈÓ+JÑ(˜˜yØ $˜à#Ÿ}™}¨]¸HÀaÔHà ×2Ñ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Ø$(˜Eð$(§=¡=°ÀÈ!Ô#LØ $× 9Ñ 9Ø$(Ø$,Ø$-Ø$%§G¡G¨M¸LÑ,HÓ$IØ$)Ø$(×$6Ñ$6°xÑ$@ÀÑ$Mô
!"ò %Ø % f¡
× 3Ñ 3°DÓ 9˜AÚ Ø+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ÛØ#'×#;Ñ#;¸AÓ#>˜Ø# yÒ0Ü+Ð,wÔxØ'+§¡°xÀÓ'C˜œ Ø'+§|¡|Ò'S°t·±ÀxÐQRÓ7S˜œ Ø+/¯=©=¸À1Ó+EÑ(˜˜yà#Ÿ}™}¨X°xÀÖCà ×2Ñ2Ø $Ø (Ø )Ø !§¡¨°7Ñ(:Ó ;ö ðWp ðbˆ r1N)rmrnrorprÉrÊrÒrËrÑrØrérirºr¾rÅrÇrÍrÖrÙrÝrßrërïròrõr rqr1r/r¢r¢Às|„ÙRð
€EØ €DØ
€FØ€GØ €DØ €DØ €Dò)òB
ò

ò
ò,
ò*cò<0ò.0ò*
òò! òFUò bò
Bó wr1r¢có—eZdZdZdZd„Zy)ÚMagiclinkPatternz+Convert html, ftp links to clickable links.©røcó—tjd«}tj|j d««|_|j d«r!dj
|j d««}nc|j d«}|jdrCtj|j