# Improved version over wtogami's original version # - Latest shortener list from DecodeShortURLs plugin # - Uses Regexp::Assemble for improved regexp # - Case-insensitive matching to prevent trivial bypass #uri SMF_HAS_SHORT_URI /(?-xsm:\/(?:s(?:h(?:o(?:r(?:t(?:e(?:n(?:url\.com|\.ws)|rlink\.com)|(?:[rz]|na?)\.me|(?:url|io)\.com|links\.co\.uk|\.(?:ie|to))|l\.com)|turl\.us)|r(?:ink(?:(?:(?:ste)?r|ify)\.com|url\.us)|t(?:(?:nd?|l)\.com|\.(?:fr|ws))|edu(?:rl\.com)?)|a(?:dyurl\.com|r\.es)|i(?:m\.net|nk\.de)|url\.net|w\.me)|n(?:(?:ip(?:url|ie|r)|url)\.com|\.(?:im|vc)|adr\.it|kr\.me)|i(?:murl\.(?:com|net|org|us)|te(?:lutions\.com|o\.us))|m(?:allr\.(?:com|net)|url\.com|fu\.in|sh\.me)|(?:t(?:(?:art|ick)url|pmvt|urly)|3nt)\.com|a(?:fe(?:links\.ru|\.mn)|meurl\.com|i\.ly)|l(?:idesha\.re|ki\.ru|\.ly)|u(?:rl\.(?:co\.uk|it)|\.pr)|p(?:edr\.com|2\.ro)|(?:\.gnoss|7y)\.us|r(?:nk\.net|s\.li)|ong\.ly|qze\.it|4c\.in|fu\.ca)|t(?:w(?:i(?:t(?:t(?:erurl\.net|his\.com|u\.ms)|(?:clicks|zap)\.com|url\.de|\.ac)|rl\.at|p\.us|\.gy)|eet(?:(?:burner|l)\.com|\.me)|(?:[0125689]|tr)\.us|url\.(?:cc|nl)|lv\.net|a\.lk)|i(?:n(?:y(?:(?:link|song|url)\.com|(?:arro\.w|pl\.u)s|\.(?:cc|pl)|tw\.it)|i(?:uri\.com|\.us))|ghturl\.com|mesurl\.at)|r(?:u(?:nc(?:url\.com|\.it)|mpink\.lt)|i(?:ck\.ly|i\.us|m\.li)|a(?:ceurl\.com|\.kz)|\.(?:im|my)|cb\.me|g\.li)|h(?:(?:rdl\.e|8\.u)s|ecow\.me)|o(?:\.(?:je|ly|vg)|goto\.us)|a(?:kemyfile\.com|\.gd)|u(?:beurl\.com|ro\.us)|\.(?:lh\.com|c[no])|l(?:lg\.net|\.gd)|n(?:cr\.ws|w\.to)|sort\.us|crn\.ch|gr\.me)|u(?:r(?:l(?:\.(?:i(?:nc-x\.eu|e)|lotpatrol\.com|co\.uk|go\.it|a[gz])|(?:b(?:rief|org|ee)|[ao]o|hawk|kiss|pire|tea)\.com|c(?:ut(?:ter)?\.com|orta\.es)|z(?:en\.com|\.at)|i(?:n\.it|\.nl)|g\.info|vi\.be?|u\.ms|x\.ie)|izy\.com|1\.ca|\.ly)|s(?:(?:ervoice\.co|tre\.a)m|at\.ly)|\.(?:mavrev\.com|nu)|l(?:imit\.com|u\.lu)|(?:pdating|iop)\.me|nfaker\.it|76\.org|b0\.cc)|c(?:l(?:i(?:c(?:cami\.info|kthru\.ca)|(?:purl\.u|\.g)s)|o(?:aky\.de|p\.in)|(?:k\.m|p\.l)y|ck\.ru)|h(?:(?:ilp|opd)\.it|pt\.me|zb\.gr|s\.mx)|o(?:keurl\.com|ge\.la|rt\.as|t\.ag)|u(?:t(?:urls?|hut)\.com|rio\.us)|\.shamekh\.ws|anurl\.com|rum\.pl|-o\.in|d4\.me)|l(?:i(?:n(?:k(?:(?:slic|b?e)e|gap)\.com|\.(?:cr|io)|xfix\.de)|(?:url\.c|x\.i)n|ltext\.com|teurl\.net|vesi\.de|ip\.to)|n(?:k(?:\.(?:[bl]y|in|ms|sk)|url\.com)|-s\.(?:net|ru))|o(?:opt\.us|st\.in)|(?:9k\.ne|k\.h)t|\.(?:hh\.de|pr)|u(?:rl\.n|\.t)o|ru\.jp|t\.tl)|p(?:o(?:p(?:rl\.com|\.ly)|st(?:ed\.at|\.ly)|ll\.fm)|i(?:(?:url\.co|ng\.f)m|ko\.me|c\.gd)|e(?:aurl\.com|ndek\.in|p\.si)|a(?:ulding\.net|rv\.us)|lu(?:murl\.com|rl\.me)|t(?:iturl\.com|2\.me)|duda\.mobi|ysper\.com|uke\.it|8g\.tw|nt\.me|\.ly)|m(?:i(?:n(?:i(?:li(?:en\.com|nk\.org)|url\.com)|url\.fr|2\.me)|gre\.me)|e(?:tamark\.net|murl\.com|rky\.de)|y(?:url\.(?:in|si)|sp\.in)|o(?:ourl\.com|by\.to)|(?:caf\.e|v2\.m)e|avrev\.com|url\.kz|sg\.sg)|r(?:e(?:a(?:llytinyurl\.com|dthis\.ca)|dir(?:ects\.ca|x\.com|\.ec)|lyt\.us|twt\.me)|i(?:ckroll\.it|vva\.de|\.ms)|u(?:byurl\.com|rl\.org)|(?:smonkey\.co|\.i)m|(?:b6|de|nk)\.me|ly\.cc|t\.nu)|f(?:l(?:i(?:ngk\.com|c\.kr)|(?:y2\.w|q\.u)s)|w(?:d(?:url\.net|4\.me)|ib\.net)|a(?:ceto\.us|v\.me|\.by)|o(?:xyurl\.com|n\.gs)|u(?:seurl\.com|r\.ly)|f(?:f\.to|\.im)|hurl\.com|b\.me)|d(?:ig(?:(?:(?:bi)?g|ipills)\.com|s\.by)|e(?:centurl\.com|alspl\.us)|(?:f9\.ne|vlr\.i|b\.t)t|oi(?:op\.com|\.org)|l(?:vr\.it|d\.bz)|url\.(?:me|us)|warfurl\.com|n\.vc|r\.tl)|g(?:o(?:(?:shrink|lmao)\.com|\.(?:9nl\.com|to)|o(?:d\.ly|\.gl)|2\.me|g\.li)|et(?:-(?:shorty|url)\.com|url\.us|\.sh)|(?:(?:kur|8)l\.u|url\.e|ri\.m)s|plus\.to|i\.vc|l\.am)|x(?:n--(?:(?:[59ehv]g|o[dg]|1c|3f|re)i|(?:bi|l3)h|[cf]wg)\.ws|r(?:l\.(?:in|us)|\.com|t\.me)|\.(?:hypem\.com|co|se|vu)|(?:xs|l)url\.de|eeurl\.com|url\.jp|il\.in|zb\.cc)|a(?:(?:(?:b(?:br|e5)|lturl|zqq)\.co|ccess\.i|we\.s)m|d(?:jix\.com|f\.ly|\.vu)|2(?:a\.me|n\.eu)|mzn\.(?:com|to)|(?:sso|rm)\.in|\.(?:g[dg]|nf)|urls\.info|tu\.ca|yl\.lv)|h(?:(?:o(?:t(?:redirect|shorturl)\.co|p(?:clicks\.co|\.i))|iderefer\.co)m|u(?:rl\.(?:it|no|ws)|geurl\.com)|e(?:llotxt\.com|x\.io)|t(?:xt\.it|\.ly)|ref\.in|ao\.jp)|b(?:l(?:ippr\.com|oat\.me|u\.cc)|u(?:(?:rn|d)url\.com|k\.me)|(?:eam\.t|on\.n|t\.i)o|it(?:ly\.com|\.ly)|(?:acn|gl)\.me|65\.(?:com|us)|kite\.com|23\.ru)|n(?:e(?:t(?:shortcut\.com|net\.me)|1\.net)|(?:(?:utshell|d)url|otlong|cane)\.com|ano(?:ref\.com|url\.se)|i(?:g\.gr|\.to)|yti\.ms|bx\.ch|m\.ly|n\.nf)|w(?:e(?:balias\.com|lcome\.to)|a(?:purl\.co\.uk|9\.la)|3(?:[34]\.us|t\.org)|i(?:dg\.me|pi\.es)|(?:0r|p)\.me|krg\.com|h\.gov|oo\.ly)|o(?:n(?:saas\.info|ecent\.us|ion\.com)|(?:boeyasui|oqx)\.com|f(?:fur\.com|l\.me)|(?:reil|w)?\.ly|m(?:f\.gd|\.ly)|xyz\.info|-x\.fr)|k(?:o(?:r(?:ta\.nu|e\.us)|ts\.nu)|is(?:sa\.be|a\.ch)|l(?:ck\.me|\.am)|etkp\.in|tzr\.us|rz\.ch|xk\.me|\.vu)|i(?:(?:r(?:t\.m|\.p)|kr\.m)e|t(?:sy\.it|2\.in|o\.mx)|c(?:anhaz\.com|io\.us)|s(?:cool\.net|\.gd)|dek\.net)|z(?:i(?:p(?:myurl\.com|\.li)|\.(?:m[ae]|pe))|u(?:rl\.ws|d\.me)|z(?:ang\.kr|\.gd)|ootit\.com|apt\.in|\.pe)|v(?:(?:(?:direct|oizle)\.co|l\.a)m|i(?:(?:igo\.i|rl\.co)m|\.ly)|ado\.it|tc\.es|b\.ly)|q(?:u(?:ickurl\.co\.uk|rl(?:yq)?\.com|u\.nu|x\.in)|oiob\.com|lnk\.net|ik\.li|r\.cx)|e(?:(?:e[pz]u|we)rl\.com|c(?:lurl\.com|a\.sh)|asyurl\.net|zurl\.eu)|2(?:(?:pl|tu|ze)\.us|\.(?:gp|ly)|chap\.it|su\.de)|y(?:e(?:-s\.com|p\.it)|\.ahoo\.it|atuc\.com)|j(?:ijr\.com|dem\.cz|ust\.as|2j\.de|\.mp)|3(?:0(?:1(?:url\.com|\.to)|7\.to)|\.ly)|1(?:u(?:rl\.com|\.ro)|l2\.us)|(?:6url|9mp)\.com|0rz\.tw|7\.ly)\/)/i #score SMF_HAS_SHORT_URI 0.01 #describe SMF_HAS_SHORT_URI Message contains shortened URI #tflags SMF_HAS_SHORT_URI nopublish