# ajw_favatar v0.2 # Allows for display of favatars (favicon avatars) in comments. # http://compooter.org/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YToxMDp7czo0OiJuYW1lIjtzOjExOiJhandfZmF2YXRhciI7czo3OiJ2ZXJzaW9uIjtzOjM6 IjAuMiI7czo2OiJhdXRob3IiO3M6MTE6IkFuZHJldyBXYWVyIjtzOjEwOiJhdXRob3JfdXJp IjtzOjIxOiJodHRwOi8vY29tcG9vdGVyLm9yZy8iO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjYx OiJBbGxvd3MgZm9yIGRpc3BsYXkgb2YgZmF2YXRhcnMgKGZhdmljb24gYXZhdGFycykgaW4g Y29tbWVudHMuIjtzOjQ6ImhlbHAiO3M6Mjg3ODoiCTxoMT5TdW1tYXJ5PC9oMT4KCTxwPlRo aXMgcGx1Z2luIGFsbG93cyBmb3IgZGlzcGxheSBvZiBmYXZhdGFycyAoZmF2aWNvbiBhdmF0 YXJzKSBpbiBjb21tZW50cyBhbmQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoaW4geW91 ciBkZWZhdWx0IGNvbW1lbnQgZm9ybS4gIFRoZSBvdXRwdXQgaXMgYSBjb21wbGV0ZSBpbWFn ZSB0YWc7IGlmIG5vIGltYWdlIGlzIGZvdW5kIG9yIHNvbWUgcHJvYmxlbSBvY2N1cnMsIG5v IGltYWdlIGlzIHJldHVybmVkLjwvcD4KCTxwPkl0IGlzIGJhc2VkIG9uIFBhdWwgSmFtZXMm IzgyMTc7ICA8YSBocmVmPSJodHRwOi8vd3d3LnBlZWouY28udWsvcHJvamVjdHMvZmF2YXRh cnMuaHRtbCI+RmF2YXRhcnM8L2E+LCBidXQgSSYjODIxNzt2ZSBjaG9zZWQgdG8gZHJvcCBh IGxhcmdlIGNodW5rIG9mIGhpcyBjb2RlIHRvIHNwZWVkIGl0IHVwIGEgYml0LiAgQW5vdGhl ciBkaWZmZXJlbmNlIGlzIHRoZSBjYWNoZWQgZmlsZW5hbWUsIHdoaWNoIHVzZXMgbWQ1IGVu Y29kaW5nIG9mIHRoZSBkb21haW4ganVzdCB0byBwcmV2ZW50IGlsbGVnYWwgZmlsZW5hbWVz LjwvcD4KCTxwPjxzdHJvbmc+VGhpcyBwbHVnaW4gcmVxdWlyZXMgVGV4dHBhdHRlcm4gMS4w UkMzIHJldmlzaW9uIDE4MCBvciBsYXRlcjwvc3Ryb25nPiAocmV2cyAxNDIgdGhydSAxNzkg Y2FuIG1ha2UgaXQgd29yayB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0 ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTY4OTMjNDQzNDciPm9uZS1saW5lIGhhY2s8L2E+ KS48L3A+Cgk8aDE+QXR0cmlidXRlczwvaDE+Cgk8aDI+Y2xhc3MgKF9vcHRpb25hbF8pPC9o Mj4KCTxibG9ja3F1b3RlPgoJCTxwPkFsbG93cyBmb3IgYWRkaW5nIGEgY2xhc3MgdG8gdGhl IGltYWdlIHRhZy48L3A+Cgk8L2Jsb2NrcXVvdGU+Cgk8aDI+YWx0IChfb3B0aW9uYWxfKTwv aDI+Cgk8YmxvY2txdW90ZT4KCQk8cD5BbGxvd3MgZm9yIGFkZGluZyBhbiBhbHRlcm5hdGUg dGV4dCBhdHRyaWJ1dGUgdG8gdGhlIGltYWdlIHRhZy48L3A+Cgk8L2Jsb2NrcXVvdGU+Cgk8 aDI+Zm9ybWF0IChfb3B0aW9uYWxfKTwvaDI+Cgk8YmxvY2txdW90ZT4KCQk8cD5BbGxvd3Mg Zm9yIHNwZWNpZnlpbmcgdHlwZSBvZiBpbWFnZSB0YWcgdG8gb3V0cHV0IChodG1sL3hodG1s KS4gIFRoaXMgcGx1Z2luIGFzc3VtZXMgeW91IGFyZSB1c2luZyB4aHRtbC48YnIgLz4KPHN0 cm9uZz5EZWZhdWx0Ojwvc3Ryb25nPiB4aHRtbDwvcD4KCTwvYmxvY2txdW90ZT4KCTxoMj51 c2VjYWNoZSAoX29wdGlvbmFsLCBidXQgcmVjb21tZW5kZWRfKTwvaDI+Cgk8YmxvY2txdW90 ZT4KCQk8cD5Vc2FnZSBvZiB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgeW91IDxzdHJvbmc+ YXJlPC9zdHJvbmc+IHVzaW5nIGEgY2FjaGUsIGkuZS4gPGNvZGU+dXNlY2FjaGU9IjEiPC9j b2RlPjxiciAvPgo8c3Ryb25nPkRlZmF1bHQ6PC9zdHJvbmc+IDA8L3A+Cgk8L2Jsb2NrcXVv dGU+Cgk8aDI+Y2FjaGVkaXIgKF9vcHRpb25hbF8pPC9oMj4KCTxibG9ja3F1b3RlPgoJCTxw PklmIHlvdSA8ZW0+YXJlPC9lbT4gdXNpbmcgYW4gaW1hZ2UgY2FjaGUgeW91IG11c3Qgc3Bl Y2lmeSB3aGF0IGRpcmVjdG9yeSB5b3UgaW50ZW5kIG9uIHN0b3JpbmcgdGhlIGNhY2hlZCBm YXZpY29ucyBpbi4gIDxzcGFuPntjb2xvcjojMDkwfSpEbyB1c2UqPC9zcGFuPiBhIGxlYWRp bmcgc2xhc2guICA8c3Bhbj57Y29sb3I6IzkwMH0qRG8gbm90IHVzZSo8L3NwYW4+IGEgdHJh aWxpbmcgc2xhc2guICBZb3UgbWF5IG5lZWQgdG8gY2hhbmdlIHRoZSBwZXJtaXNzaW9ucyAo Y2htb2QpIHRoZSBkaXJlY3RvcnkgdG8gYWxsb3cgZm9yIHdyaXRlIHBlcm1pc3Npb25zLjxi ciAvPgo8c3Ryb25nPkRlZmF1bHQ6PC9zdHJvbmc+IC9pbWFnZXMvY2FjaGU8L3A+Cgk8L2Js b2NrcXVvdGU+Cgk8aDI+Y2FjaGV0aW1lIChfb3B0aW9uYWxfKTwvaDI+Cgk8YmxvY2txdW90 ZT4KCQk8cD5UaW1lIHVudGlsIHRoZSBjYWNoZSBleHBpcmVzLCBtZWFzdXJlZCBpbiBzZWNv bmRzLjxiciAvPgo8c3Ryb25nPkRlZmF1bHQ6PC9zdHJvbmc+IDg2NDAwICgxIGRheSk8L3A+ Cgk8L2Jsb2NrcXVvdGU+Cgk8aDE+RXhhbXBsZXM8L2gxPgo8Y29kZT4mbHQ7dHhwOmFqd19m YXZhdGFyIGNsYXNzPSJmYXZhdGFyIiB1c2VjYWNoZT0iMSIgY2FjaGVkaXI9Ii9pbWFnZXMi IC8mZ3Q7PC9jb2RlPgoJPGJsb2NrcXVvdGU+CgkJPHA+PHN0cm9uZz5GcmVzaDo8L3N0cm9u Zz48YnIgLz4KPGNvZGU+Jmx0O2ltZyBzcmM9Imh0dHA6Ly9jb21wb290ZXIub3JnL2Zhdmlj b24uaWNvIiBjbGFzcz0iZmF2YXRhciIgLyZndDs8L2NvZGU+PC9wPgoJPC9ibG9ja3F1b3Rl PgoJPGJsb2NrcXVvdGU+CgkJPHA+PHN0cm9uZz5DYWNoZWQ6PC9zdHJvbmc+PGJyIC8+Cjxj b2RlPiZsdDtpbWcgc3JjPSIvaW1hZ2VzL2M0Zjg0MGZjMDYxNGZiYWQwOGMwYjFmNDk0NDcy OGIxLmljbyIgY2xhc3M9ImZhdmF0YXIiIC8mZ3Q7PC9jb2RlPjwvcD4KCTwvYmxvY2txdW90 ZT4KPGNvZGU+Jmx0O3R4cDphandfZmF2YXRhciBjbGFzcz0iZmF2YXRhciIgdXNlY2FjaGU9 IjEiIGZvcm1hdD0iaHRtbCIgLyZndDs8L2NvZGU+Cgk8YmxvY2txdW90ZT4KCQk8cD48c3Ry b25nPkZyZXNoOjwvc3Ryb25nPjxiciAvPgo8Y29kZT4mbHQ7aW1nIHNyYz0iaHR0cDovL2Nv bXBvb3Rlci5vcmcvZmF2aWNvbi5pY28iJmd0OzwvY29kZT48L3A+Cgk8L2Jsb2NrcXVvdGU+ Cgk8YmxvY2txdW90ZT4KCQk8cD48c3Ryb25nPkNhY2hlZDo8L3N0cm9uZz48YnIgLz4KPGNv ZGU+Jmx0O2ltZyBzcmM9Ii9pbWFnZXMvY2FjaGUvYzRmODQwZmMwNjE0ZmJhZDA4YzBiMWY0 OTQ0NzI4YjEuaWNvIiZndDs8L2NvZGU+PC9wPgoJPC9ibG9ja3F1b3RlPgoKICI7czo0OiJj b2RlIjtzOjE5NDE6IgpmdW5jdGlvbiBhandfZmF2YXRhcigkYXR0cykKewoJZ2xvYmFsICR0 aGlzY29tbWVudDsKCWlmIChpc19hcnJheSgkYXR0cykpIGV4dHJhY3QoJGF0dHMpOwoKCSR1 cmwgPSAoZW1wdHkoJHRoaXNjb21tZW50Wyd3ZWInXSkpID8gJycgOiBzdHJfcmVwbGFjZSgn aHR0cDovLycsJycsJHRoaXNjb21tZW50Wyd3ZWInXSk7CgkkdXNlY2FjaGUgPSAoZW1wdHko JHVzZWNhY2hlKSkgPyBmYWxzZSA6IHRydWU7CgkkZm9ybWF0ID0gKGVtcHR5KCRmb3JtYXQp KSA/ICd4aHRtbCcgOiAkZm9ybWF0OwoJJGNsYXNzID0gKGVtcHR5KCRjbGFzcykpID8gJycg OiAnY2xhc3M9IicuJGNsYXNzLiciJzsKCSRhbHQgPSAoZW1wdHkoJGFsdCkpID8gJ2FsdD0i IicgOiAnYWx0PSInLiRhbHQuJyInOwoJJG9wZW50YWcgID0gJzxpbWcnOwoJJGNsb3NldGFn ID0gKCRmb3JtYXQ9PSdodG1sJykgPyAnPicgOiAnLz4nOwoJJHNyYyA9ICcnOwoKCSRpbWFn ZXRhZyA9IGFycmF5KAoJCSdvcGVuJwk9PiAkb3BlbnRhZywKCQknc3JjJwk9PiAkc3JjLAoJ CSdjbGFzcycJPT4gJGNsYXNzLAoJCSdhbHQnCT0+ICRhbHQsCgkJJ2Nsb3NlJwk9PiAkY2xv c2V0YWcKCSk7CgoJaWYgKCR1cmwpIHsKCgkJaWYgKCR1c2VjYWNoZSkgewoJCQkkY2FjaGVk aXIgPSAoZW1wdHkoJGNhY2hlZGlyKSkgPyAnL2ltYWdlcy9jYWNoZScgOiAkY2FjaGVkaXI7 CgkJCSRjYWNoZWZpbGUgPSBtZDUoJHVybCkuJy5pY28nOwoJCQkkY2FjaGV0aW1lID0gKGVt cHR5KCRjYWNoZXRpbWUpKSA/ICg2MCo2MCoyNCkgOiAkY2FjaGV0aW1lOwkvLyBzZWNvbmRz IHRvIGV4cGlyZQoJCQkkY2FjaGUgPSAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLmpvaW4o Jy8nLCBhcnJheSggJGNhY2hlZGlyLCAkY2FjaGVmaWxlICkpOwoJCQkvLyBTZXJ2ZSBmcm9t IHRoZSBjYWNoZSBpZiBpdCBpcyB5b3VuZ2VyIHRoYW4gJGNhY2hldGltZQoJCQlpZiAoZmls ZV9leGlzdHMoJGNhY2hlKSkgewoJCQkJaWYgKHRpbWUoKSAtICRjYWNoZXRpbWUgPCBmaWxl bXRpbWUoJGNhY2hlKSkgewoJCQkJCSRpbWFnZXRhZ1snc3JjJ10gPSAnc3JjPSInLmpvaW4o ICcvJywgYXJyYXkoICRjYWNoZWRpciwgJGNhY2hlZmlsZSApKS4nIic7CgkJCQkJcmV0dXJu IChqb2luKCcgJywkaW1hZ2V0YWcpKTsKCQkJCQlleGl0OwoJCQkJfQoJCQl9CgkJfQoKCQkk dXJsUGFydHMgPSBwYXJzZV91cmwoJ2h0dHA6Ly8nLiR1cmwpOwoJCSRmYXZpY29uVVJMID0g J2h0dHA6Ly8nLiR1cmxQYXJ0c1snaG9zdCddLicvZmF2aWNvbi5pY28nOwoJCSRpbWFnZXRh Z1snc3JjJ10gPSAnc3JjPSInLiRmYXZpY29uVVJMLiciJzsKCgkJJEhUVFBSZXF1ZXN0ID0g QGZvcGVuKCRmYXZpY29uVVJMLCAncicpOwoJCWlmICgkSFRUUFJlcXVlc3QpIHsKCQkJc3Ry ZWFtX3NldF90aW1lb3V0KCRIVFRQUmVxdWVzdCwgMCwgMTAwMCk7CS8vIHR3ZWFrIHRoaXMg dmFsdWUgaWYgeW91J3JlIGhhdmluZyBwb29yL2luY29uc2lzdGVudCByZXN1bHRzCgkJCSRm YXZpY29uID0gZnJlYWQoJEhUVFBSZXF1ZXN0LCA4MTkyKTsKCQkJJEhUVFBSZXF1ZXN0RGF0 YSA9IHN0cmVhbV9nZXRfbWV0YV9kYXRhKCRIVFRQUmVxdWVzdCk7CgkJCWZjbG9zZSgkSFRU UFJlcXVlc3QpOwoJCQlpZiAoISRIVFRQUmVxdWVzdERhdGFbJ3RpbWVkX291dCddICYmIHN0 cmxlbigkZmF2aWNvbikgPCA4MTkyKSB7CgkJCQlpZiAoJHVzZWNhY2hlICYmIGZpbGVfZXhp c3RzKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10uJGNhY2hlZGlyKSkgewoJCQkJCS8vIENh Y2hlIHRoZSBvdXRwdXQgdG8gYSBmaWxlCgkJCQkJJGZwID0gQGZvcGVuKCRjYWNoZSwgJ3cn KTsKCQkJCQlmd3JpdGUoJGZwLCAkZmF2aWNvbik7CgkJCQkJZmNsb3NlKCRmcCk7CgkJCQl9 CgkJCQlyZXR1cm4gKGpvaW4oJyAnLCRpbWFnZXRhZykpOwoJCQl9CgkJfQoJfQoJcmV0dXJu IGZhbHNlOwp9CiI7czo4OiJoZWxwX3JhdyI7czoyMTA0OiJoMS4gU3VtbWFyeQoKVGhpcyBw bHVnaW4gYWxsb3dzIGZvciBkaXNwbGF5IG9mIGZhdmF0YXJzIChmYXZpY29uIGF2YXRhcnMp IGluIGNvbW1lbnRzIGFuZCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGhpbiB5b3VyIGRl ZmF1bHQgY29tbWVudCBmb3JtLiAgVGhlIG91dHB1dCBpcyBhIGNvbXBsZXRlIGltYWdlIHRh ZzsgaWYgbm8gaW1hZ2UgaXMgZm91bmQgb3Igc29tZSBwcm9ibGVtIG9jY3Vycywgbm8gaW1h Z2UgaXMgcmV0dXJuZWQuCgpJdCBpcyBiYXNlZCBvbiBQYXVsIEphbWVzJyAgIkZhdmF0YXJz IjpodHRwOi8vd3d3LnBlZWouY28udWsvcHJvamVjdHMvZmF2YXRhcnMuaHRtbCwgYnV0IEkn dmUgY2hvc2VkIHRvIGRyb3AgYSBsYXJnZSBjaHVuayBvZiBoaXMgY29kZSB0byBzcGVlZCBp dCB1cCBhIGJpdC4gIEFub3RoZXIgZGlmZmVyZW5jZSBpcyB0aGUgY2FjaGVkIGZpbGVuYW1l LCB3aGljaCB1c2VzIG1kNSBlbmNvZGluZyBvZiB0aGUgZG9tYWluIGp1c3QgdG8gcHJldmVu dCBpbGxlZ2FsIGZpbGVuYW1lcy4KCipUaGlzIHBsdWdpbiByZXF1aXJlcyBUZXh0cGF0dGVy biAxLjBSQzMgcmV2aXNpb24gMTgwIG9yIGxhdGVyKiAocmV2cyAxNDIgdGhydSAxNzkgY2Fu IG1ha2UgaXQgd29yayB3aXRoIGEgIm9uZS1saW5lIGhhY2siOmh0dHA6Ly9mb3J1bS50ZXh0 cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD02ODkzIzQ0MzQ3KS4KCmgxLiBBdHRyaWJ1 dGVzCgpoMi4gY2xhc3MgKF9vcHRpb25hbF8pCgpicS4gQWxsb3dzIGZvciBhZGRpbmcgYSBj bGFzcyB0byB0aGUgaW1hZ2UgdGFnLgoKaDIuIGFsdCAoX29wdGlvbmFsXykKCmJxLiBBbGxv d3MgZm9yIGFkZGluZyBhbiBhbHRlcm5hdGUgdGV4dCBhdHRyaWJ1dGUgdG8gdGhlIGltYWdl IHRhZy4KCmgyLiBmb3JtYXQgKF9vcHRpb25hbF8pCgpicS4gQWxsb3dzIGZvciBzcGVjaWZ5 aW5nIHR5cGUgb2YgaW1hZ2UgdGFnIHRvIG91dHB1dCAoaHRtbC94aHRtbCkuICBUaGlzIHBs dWdpbiBhc3N1bWVzIHlvdSBhcmUgdXNpbmcgeGh0bWwuCipEZWZhdWx0OiogeGh0bWwKCmgy LiB1c2VjYWNoZSAoX29wdGlvbmFsLCBidXQgcmVjb21tZW5kZWRfKQoKYnEuIFVzYWdlIG9m IHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB5b3UgKmFyZSogdXNpbmcgYSBjYWNoZSwgaS5l LiBAdXNlY2FjaGU9IjEiQAoqRGVmYXVsdDoqIDAKCmgyLiBjYWNoZWRpciAoX29wdGlvbmFs XykKCmJxLiBJZiB5b3UgX2FyZV8gdXNpbmcgYW4gaW1hZ2UgY2FjaGUgeW91IG11c3Qgc3Bl Y2lmeSB3aGF0IGRpcmVjdG9yeSB5b3UgaW50ZW5kIG9uIHN0b3JpbmcgdGhlIGNhY2hlZCBm YXZpY29ucyBpbi4gICV7Y29sb3I6IzA5MH0qRG8gdXNlKiUgYSBsZWFkaW5nIHNsYXNoLiAg JXtjb2xvcjojOTAwfSpEbyBub3QgdXNlKiUgYSB0cmFpbGluZyBzbGFzaC4gIFlvdSBtYXkg bmVlZCB0byBjaGFuZ2UgdGhlIHBlcm1pc3Npb25zIChjaG1vZCkgdGhlIGRpcmVjdG9yeSB0 byBhbGxvdyBmb3Igd3JpdGUgcGVybWlzc2lvbnMuCipEZWZhdWx0OiogL2ltYWdlcy9jYWNo ZQoKaDIuIGNhY2hldGltZSAoX29wdGlvbmFsXykKCmJxLiBUaW1lIHVudGlsIHRoZSBjYWNo ZSBleHBpcmVzLCBtZWFzdXJlZCBpbiBzZWNvbmRzLgoqRGVmYXVsdDoqIDg2NDAwICgxIGRh eSkKCmgxLiBFeGFtcGxlcwoKQDx0eHA6YWp3X2ZhdmF0YXIgY2xhc3M9ImZhdmF0YXIiIHVz ZWNhY2hlPSIxIiBjYWNoZWRpcj0iL2ltYWdlcyIgLz5ACgpicS4gKkZyZXNoOioKQDxpbWcg c3JjPSJodHRwOi8vY29tcG9vdGVyLm9yZy9mYXZpY29uLmljbyIgY2xhc3M9ImZhdmF0YXIi IC8+QAoKYnEuICpDYWNoZWQ6KgpAPGltZyBzcmM9Ii9pbWFnZXMvYzRmODQwZmMwNjE0ZmJh ZDA4YzBiMWY0OTQ0NzI4YjEuaWNvIiBjbGFzcz0iZmF2YXRhciIgLz5ACgpAPHR4cDphandf ZmF2YXRhciBjbGFzcz0iZmF2YXRhciIgdXNlY2FjaGU9IjEiIGZvcm1hdD0iaHRtbCIgLz5A CgpicS4gKkZyZXNoOioKQDxpbWcgc3JjPSJodHRwOi8vY29tcG9vdGVyLm9yZy9mYXZpY29u LmljbyI+QAoKYnEuICpDYWNoZWQ6KgpAPGltZyBzcmM9Ii9pbWFnZXMvY2FjaGUvYzRmODQw ZmMwNjE0ZmJhZDA4YzBiMWY0OTQ0NzI4YjEuaWNvIj5AIjtzOjM6Im1kNSI7czozMjoiNmY3 YTJkN2VjNTY1YjAyYWU4NDRjODFmMTc4MmJlZWYiO3M6ODoiY29tcHJlc3MiO2I6MDt9