{"type":"rich","version":"1.0","provider_name":"phorkie","provider_url":"https:\/\/p.cweiske.de\/","title":"link click tracking","author_name":"Christian Weiske","cache_age":86400,"width":900,"height":900,"html":"<!-- embedding all files of https:\/\/p.cweiske.de\/132 -->\n<link rel=\"stylesheet\" href=\"https:\/\/p.cweiske.de\/css\/embed.css\"\/>\n<div class=\"phork\" id=\"132\">\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <div class=\"code\"><pre class=\"txt\">http:\/\/www.discourse.org\/\r\n\r\nSimple metrics\r\nThe goal of every link is to be clicked \u2013 so every link posted in Discourse shows a live click count.\r\n\r\nhow?\r\n\r\nJavascript request: http:\/\/try.discourse.org\/clicks\/track?url=http%3A%2F%2Fwww.discourse.org&amp;post_id=83&amp;topic_id=57<\/pre><\/div>\n\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/132\/rev-raw\/ad9fe082233f48d1989adbe1373ca7a07de0ccce\/README.txt\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/132#README.txt\">README.txt<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.javascript .de1, .javascript .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.javascript  {font-family:monospace;}\n.javascript .imp {font-weight: bold; color: red;}\n.javascript li, .javascript .li1 {color: #DDD;}\n.javascript .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.javascript .kw1 {color: #000066; font-weight: bold;}\n.javascript .kw2 {color: #003366; font-weight: bold;}\n.javascript .kw3 {color: #000066;}\n.javascript .co1 {color: #006600; font-style: italic;}\n.javascript .co2 {color: #009966; font-style: italic;}\n.javascript .coMULTI {color: #006600; font-style: italic;}\n.javascript .es0 {color: #000099; font-weight: bold;}\n.javascript .br0 {color: #009900;}\n.javascript .sy0 {color: #339933;}\n.javascript .st0 {color: #3366CC;}\n.javascript .nu0 {color: #CC0000;}\n.javascript .me1 {color: #660066;}\n.javascript span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"javascript\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n46\n47\n48\n49\n50\n51\n52\n53\n54\n55\n56\n57\n58\n59\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\"><span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; <span class=\"kw2\">var<\/span> e <span class=\"sy0\">=<\/span> window.<span class=\"me1\">jQuery<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; Discourse.<span class=\"me1\">ClickTrack<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; trackClick<span class=\"sy0\">:<\/span> <span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span>t<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;&quot;<\/span> <span class=\"sy0\">!==<\/span> Discourse.<span class=\"me1\">Utilities<\/span>.<span class=\"me1\">selectedText<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">return<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw2\">var<\/span> s <span class=\"sy0\">=<\/span> e<span class=\"br0\">&#40;<\/span>t.<span class=\"me1\">currentTarget<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>s.<span class=\"me1\">hasClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;lightbox&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">return<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw2\">var<\/span> a <span class=\"sy0\">=<\/span> s.<span class=\"me1\">attr<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">||<\/span> s.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; n <span class=\"sy0\">=<\/span> s.<span class=\"me1\">closest<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;article&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; r <span class=\"sy0\">=<\/span> n.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;post-id&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; o <span class=\"sy0\">=<\/span> e<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;#topic&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;topic-id&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; i <span class=\"sy0\">=<\/span> s.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;user-id&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>a <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"nu0\">0<\/span> <span class=\"sy0\">!==<\/span> a.<span class=\"me1\">trim<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">length<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; i <span class=\"sy0\">||<\/span> <span class=\"br0\">&#40;<\/span>i <span class=\"sy0\">=<\/span> n.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;user-id&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw2\">var<\/span> u <span class=\"sy0\">=<\/span> i <span class=\"sy0\">&amp;&amp;<\/span> i <span class=\"sy0\">===<\/span> Discourse.<span class=\"me1\">User<\/span>.<span class=\"me1\">currentProp<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;id&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; c <span class=\"sy0\">=<\/span> Discourse.<span class=\"me1\">getURL<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;\/clicks\/track?url=&quot;<\/span> <span class=\"sy0\">+<\/span> encodeURIComponent<span class=\"br0\">&#40;<\/span>a<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>r <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"sy0\">!<\/span>s.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;ignore-post-id&quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"br0\">&#40;<\/span>c <span class=\"sy0\">+=<\/span> <span class=\"st0\">&quot;&amp;post_id=&quot;<\/span> <span class=\"sy0\">+<\/span> <span class=\"kw1\">encodeURI<\/span><span class=\"br0\">&#40;<\/span>r<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> o <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"br0\">&#40;<\/span>c <span class=\"sy0\">+=<\/span> <span class=\"st0\">&quot;&amp;topic_id=&quot;<\/span> <span class=\"sy0\">+<\/span> <span class=\"kw1\">encodeURI<\/span><span class=\"br0\">&#40;<\/span>o<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"sy0\">!<\/span>u<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw2\">var<\/span> l <span class=\"sy0\">=<\/span> e<span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;span.badge&quot;<\/span><span class=\"sy0\">,<\/span> s<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">1<\/span> <span class=\"sy0\">===<\/span> l.<span class=\"me1\">length<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"nu0\">0<\/span> <span class=\"sy0\">===<\/span> s.<span class=\"me1\">closest<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;.badge-category&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">length<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">0<\/span> <span class=\"sy0\">===<\/span> s.<span class=\"me1\">closest<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;.onebox-result&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">length<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"nu0\">0<\/span> <span class=\"sy0\">===<\/span> s.<span class=\"me1\">closest<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;.onebox-body&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">length<\/span> <span class=\"sy0\">||<\/span> s.<span class=\"me1\">hasClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;track-link&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw2\">var<\/span> h <span class=\"sy0\">=<\/span> l.<span class=\"me1\">html<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"co2\">\/^\\d+$\/<\/span>.<span class=\"me1\">test<\/span><span class=\"br0\">&#40;<\/span>h<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">&amp;&amp;<\/span> l.<span class=\"me1\">html<\/span><span class=\"br0\">&#40;<\/span>parseInt<span class=\"br0\">&#40;<\/span>h<span class=\"sy0\">,<\/span> <span class=\"nu0\">10<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"nu0\">1<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"nu0\">3<\/span> <span class=\"sy0\">===<\/span> t.<span class=\"me1\">which<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw2\">var<\/span> p <span class=\"sy0\">=<\/span> Discourse.<span class=\"me1\">SiteSettings<\/span>.<span class=\"me1\">track_external_right_clicks<\/span> <span class=\"sy0\">?<\/span> c <span class=\"sy0\">:<\/span> a<span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> s.<span class=\"me1\">attr<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"sy0\">,<\/span> p<span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">0<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>t.<span class=\"me1\">shiftKey<\/span> <span class=\"sy0\">||<\/span> t.<span class=\"me1\">metaKey<\/span> <span class=\"sy0\">||<\/span> t.<span class=\"me1\">ctrlKey<\/span> <span class=\"sy0\">||<\/span> <span class=\"nu0\">2<\/span> <span class=\"sy0\">===<\/span> t.<span class=\"me1\">which<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">return<\/span> Discourse.<span class=\"me1\">ajax<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;\/clicks\/track&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; data<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; url<span class=\"sy0\">:<\/span> a<span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; post_id<span class=\"sy0\">:<\/span> r<span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; topic_id<span class=\"sy0\">:<\/span> o<span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; redirect<span class=\"sy0\">:<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">1<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; dataType<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;html&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>t.<span class=\"me1\">preventDefault<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> s.<span class=\"me1\">hasClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;back&quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">||<\/span> s.<span class=\"me1\">hasClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;quote-other-topic&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">return<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>s.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">||<\/span> <span class=\"br0\">&#40;<\/span>s.<span class=\"me1\">addClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;no-href&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> s.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"sy0\">,<\/span> s.<span class=\"me1\">attr<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> s.<span class=\"me1\">attr<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"kw2\">null<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> s.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;auto-route&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> Discourse.<span class=\"me1\">SiteSettings<\/span>.<span class=\"me1\">prevent_anons_from_downloading_files<\/span> <span class=\"sy0\">&amp;&amp;<\/span> s.<span class=\"me1\">hasClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;attachment&quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"sy0\">!<\/span>Discourse.<span class=\"me1\">User<\/span>.<span class=\"me1\">current<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">return<\/span> bootbox.<span class=\"kw3\">alert<\/span><span class=\"br0\">&#40;<\/span>I18n.<span class=\"me1\">t<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;post.errors.attachment_download_requires_login&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>Discourse.<span class=\"me1\">URL<\/span>.<span class=\"me1\">isInternal<\/span><span class=\"br0\">&#40;<\/span>a<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">&amp;&amp;<\/span> <span class=\"sy0\">!<\/span>s.<span class=\"me1\">hasClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;attachment&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">return<\/span> Discourse.<span class=\"me1\">ajax<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;\/clicks\/track&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; data<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; url<span class=\"sy0\">:<\/span> a<span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; post_id<span class=\"sy0\">:<\/span> r<span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; topic_id<span class=\"sy0\">:<\/span> o<span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; redirect<span class=\"sy0\">:<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">1<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; dataType<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;html&quot;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> Discourse.<span class=\"me1\">URL<\/span>.<span class=\"me1\">routeTo<\/span><span class=\"br0\">&#40;<\/span>a<span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span>Discourse.<span class=\"me1\">User<\/span>.<span class=\"me1\">currentProp<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;external_links_in_new_tab&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw2\">var<\/span> f <span class=\"sy0\">=<\/span> window.<span class=\"kw3\">open<\/span><span class=\"br0\">&#40;<\/span>c<span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;_blank&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; f.<span class=\"kw3\">focus<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> setTimeout<span class=\"br0\">&#40;<\/span><span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; s.<span class=\"me1\">removeClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;no-href&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> s.<span class=\"me1\">attr<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"sy0\">,<\/span> s.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> s.<span class=\"me1\">data<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;href&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"kw2\">null<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span> <span class=\"nu0\">50<\/span><span class=\"br0\">&#41;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span> <span class=\"kw1\">else<\/span> Discourse.<span class=\"me1\">URL<\/span>.<span class=\"me1\">redirectTo<\/span><span class=\"br0\">&#40;<\/span>c<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class=\"kw1\">return<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">1<\/span>\n&#160; &#160; &#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; &#160; &#160; <span class=\"br0\">&#125;<\/span>\n&#160; &#160; <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#40;<\/span><span class=\"kw1\">this<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span>\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/132\/rev-raw\/ad9fe082233f48d1989adbe1373ca7a07de0ccce\/click-tracking.min.js\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/132#click-tracking.min.js\">click-tracking.min.js<\/a>\n <\/div>\n<\/div>\n    <div class=\"phork-file\">\n <div class=\"phork-content\">\n  <style type=\"text\/css\">\/**\n * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n * (http:\/\/qbnz.com\/highlighter\/ and http:\/\/geshi.org\/)\n *\/\n.javascript .de1, .javascript .de2 {font: normal normal 1em\/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}\n.javascript  {font-family:monospace;}\n.javascript .imp {font-weight: bold; color: red;}\n.javascript li, .javascript .li1 {color: #DDD;}\n.javascript .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\n.javascript .kw1 {color: #000066; font-weight: bold;}\n.javascript .kw2 {color: #003366; font-weight: bold;}\n.javascript .kw3 {color: #000066;}\n.javascript .co1 {color: #006600; font-style: italic;}\n.javascript .co2 {color: #009966; font-style: italic;}\n.javascript .coMULTI {color: #006600; font-style: italic;}\n.javascript .es0 {color: #000099; font-weight: bold;}\n.javascript .br0 {color: #009900;}\n.javascript .sy0 {color: #339933;}\n.javascript .st0 {color: #3366CC;}\n.javascript .nu0 {color: #CC0000;}\n.javascript .me1 {color: #660066;}\n.javascript span.xtra { display:block; }\n<\/style><div class=\"code\"><table class=\"javascript\"><tbody><tr class=\"li1\"><td class=\"ln\"><pre class=\"de1\">1\n2\n3\n4\n5\n6\n7\n<\/pre><\/td><td class=\"de1\"><pre class=\"de1\"><span class=\"kw1\">this<\/span>.$<span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">on<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;mouseup.discourse-redirect&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;.cooked a, a.track-link&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"kw2\">function<\/span><span class=\"br0\">&#40;<\/span>e<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n&#160; &#160; <span class=\"kw2\">var<\/span> t <span class=\"sy0\">=<\/span> window.<span class=\"me1\">getSelection<\/span> <span class=\"sy0\">&amp;&amp;<\/span> window.<span class=\"me1\">getSelection<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;Range&quot;<\/span> <span class=\"sy0\">===<\/span> t.<span class=\"me1\">type<\/span> <span class=\"sy0\">||<\/span> t.<span class=\"me1\">rangeCount<\/span> <span class=\"sy0\">&gt;<\/span> <span class=\"nu0\">0<\/span><span class=\"br0\">&#41;<\/span> <span class=\"kw1\">return<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">0<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"kw2\">var<\/span> s <span class=\"sy0\">=<\/span> $<span class=\"br0\">&#40;<\/span>e.<span class=\"me1\">target<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n&#160; &#160; <span class=\"kw1\">return<\/span> s.<span class=\"me1\">hasClass<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;mention&quot;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">||<\/span> s.<span class=\"me1\">parents<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;.expanded-embed&quot;<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">length<\/span> <span class=\"sy0\">?<\/span> <span class=\"sy0\">!<\/span><span class=\"nu0\">1<\/span> <span class=\"sy0\">:<\/span> Discourse.<span class=\"me1\">ClickTrack<\/span>.<span class=\"me1\">trackClick<\/span><span class=\"br0\">&#40;<\/span>e<span class=\"br0\">&#41;<\/span>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span>\n&#160;<\/pre><\/td><\/tr><\/tbody><\/table><\/div>\n <\/div>\n <div class=\"phork-meta\">\n  <a href=\"https:\/\/p.cweiske.de\/132\/rev-raw\/ad9fe082233f48d1989adbe1373ca7a07de0ccce\/register-clicks.js\" style=\"float: right\">view raw source<\/a>\n  <a href=\"https:\/\/p.cweiske.de\/132#register-clicks.js\">register-clicks.js<\/a>\n <\/div>\n<\/div>\n<\/div>\n"}
