# Name: mkp_gravatar v1.0 # Type: Public plugin # Yet Another Textpattern Gravatar Plugin # Author: Michael K Pate # URL: https://github.com/michaelkpate/mkp_gravatar # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern CMS - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEyOiJta3BfZ3JhdmF0YXIiO3M6NjoiYXV0aG9yIjtzOjE0 OiJNaWNoYWVsIEsgUGF0ZSI7czoxMDoiYXV0aG9yX3VyaSI7czo0NDoiaHR0cHM6Ly9naXRo dWIuY29tL21pY2hhZWxrcGF0ZS9ta3BfZ3JhdmF0YXIiO3M6NzoidmVyc2lvbiI7czozOiIx LjAiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjM5OiJZZXQgQW5vdGhlciBUZXh0cGF0dGVybiBH cmF2YXRhciBQbHVnaW4iO3M6NDoiY29kZSI7czoxNDQxOiIJZnVuY3Rpb24gbWtwX2dyYXZh dGFyKCRhdHRzKQ0KCXsNCgkNCgkJZ2xvYmFsICR0aGlzY29tbWVudDsNCgkNCgkJZXh0cmFj dChsQXR0cyhhcnJheSgNCgkJCSdzZWN1cmUnICAgPT4gJzAnLA0KCQkJJ2VtYWlsJyAgID0+ ICcnLAkNCgkJCSdzaXplJyAgID0+ICc4MCcsDQoJCQkncmF0aW5nJyAgID0+ICdnJywNCgkJ CSdkZWZhdWx0JyAgID0+ICcnLA0KCQkJJ2ZvcmNlJyAgID0+ICcnLAkNCgkJCSdpbWFnZScg ICA9PiAnMScsDQoJCQknYWx0JyAgPT4gJycsDQoJCQknY2xhc3MnICAgPT4gJycsCQkNCgkJ CSdpZCcgID0+ICcnLA0KCQkJJ3N0eWxlJyAgPT4gJycsDQoJCQkndGl0bGUnICA9PiAnJywN CgkJCSdkaXNhYmxlJyAgPT4gJycsDQoJCSksJGF0dHMpKTsNCgkJDQoJCSR1cmwgPSAoJHNl Y3VyZT09JzEnIHx8ICRzZWN1cmU9PSd5JyB8fCAkc2VjdXJlPT0ndHJ1ZScpID8gJ2h0dHBz Oi8vc2VjdXJlLmdyYXZhdGFyLmNvbS9hdmF0YXIvJyA6ICdodHRwOi8vd3d3LmdyYXZhdGFy LmNvbS9hdmF0YXIvJzsNCgkJDQoJCSR1cmwgLj0gKCFlbXB0eSgkZW1haWwpKSA/IG1kNShz dHJ0b2xvd2VyKHRyaW0ocGFyc2UoJGVtYWlsKSkpKSA6IG1kNShzdHJ0b2xvd2VyKHRyaW0o JHRoaXNjb21tZW50WydlbWFpbCddKSkpOw0KDQoJCSR1cmwgLj0gJz9zPScuICRzaXplIC4g JyZyPScgLiAkcmF0aW5nOw0KDQoJCWlmICghZW1wdHkoJGRlZmF1bHQpKSB7DQoJCQkkdXJs IC49ICcmZD0nLiRkZWZhdWx0Ow0KCQkJJHVybCAuPSAoJGZvcmNlPT0nMScgfHwgJGZvcmNl PT0neScgfHwgJGZvcmNlPT0ndHJ1ZScpID8gJyZmPXknIDogJyc7DQoJCX0NCgkJDQoJCWlm ICgkaW1hZ2U9PScxJyB8fCAkaW1hZ2U9PSd5JyB8fCAkaW1hZ2U9PSd0cnVlJykgew0KCQkJ JHVybCA9ICc8aW1nIHNyYz0iJyAuICR1cmwgLiAnIiBoZWlnaHQ9IicgLiAkc2l6ZSAuICci IHdpZHRoPSInIC4gJHNpemUgLiAnIiAnOw0KCQkJaWYgKCFlbXB0eSgkYWx0KSkgewkJDQoJ CQkJJHVybCAuPSAnYWx0PSInIC4gJGFsdCAuICciICc7DQoJCQl9DQoJCQlpZiAoIWVtcHR5 KCRjbGFzcykpIHsJCQ0KCQkJCSR1cmwgLj0gJ2NsYXNzPSInIC4gJGNsYXNzIC4gJyIgJzsN CgkJCX0NCgkJCWlmICghZW1wdHkoJGlkKSkgewkJDQoJCQkJJHVybCAuPSAnaWQ9IicgLiAk aWQgLiAnIiAnOw0KCQkJfQ0KCQkJaWYgKCFlbXB0eSgkc3R5bGUpKSB7CQkNCgkJCQkkdXJs IC49ICdzdHlsZT0iJyAuICRzdHlsZSAuICciICc7DQoJCQl9DQoJCQlpZiAoIWVtcHR5KCR0 aXRsZSkpIHsJCQ0KCQkJCSR1cmwgLj0gJ3RpdGxlPSInIC4gJHRpdGxlIC4gJyIgJzsNCgkJ CX0NCgkJCSR1cmwgLj0gJy8+JzsNCgkJfQ0KDQoJCSR1cmwgPSAoJGRpc2FibGU9PScxJyB8 fCAkZGlzYWJsZT09J3knIHx8ICRkaXNhYmxlPT0ndHJ1ZScpID8gJycgOiAkdXJsOw0KIA0K CQlyZXR1cm4gJHVybDsNCgl9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJvcmRlciI7czox OiI1IjtzOjU6ImZsYWdzIjtzOjE6IjAiO3M6NDoiaGVscCI7czo1Mzc3OiIJPGgxPm1rcF9n cmF2YXRhcjwvaDE+CgoJPHA+VGhpcyB0YWcgcmV0dXJucyBhbiBpbWFnZSB0YWcgb3IgYW4g PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gd2l0aCB0aGUgR3JhdmF0YXIgZm9yIHRo ZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IGNvbW1lbnQgb3IgYW55IGdpdmVuIGVt YWlsIGFkZHJlc3MuPC9wPgoKCTxwPkZyb20gdGhlIEdyYXZhdGFyIFNpdGU6IEFuICYjODIy MDthdmF0YXImIzgyMjE7IGlzIGFuIGltYWdlIHRoYXQgcmVwcmVzZW50cyB5b3Ugb25saW5l 4oCUYSBsaXR0bGUgcGljdHVyZSB0aGF0IGFwcGVhcnMgbmV4dCB0byB5b3VyIG5hbWUgd2hl biB5b3UgaW50ZXJhY3Qgd2l0aCB3ZWJzaXRlcy4gQSBHcmF2YXRhciBpcyBhIEdsb2JhbGx5 IFJlY29nbml6ZWQgQXZhdGFyLiBZb3UgdXBsb2FkIGl0IGFuZCBjcmVhdGUgeW91ciBwcm9m aWxlIGp1c3Qgb25jZSwgYW5kIHRoZW4gd2hlbiB5b3UgcGFydGljaXBhdGUgaW4gYW55IEdy YXZhdGFyLWVuYWJsZWQgc2l0ZSwgeW91ciBHcmF2YXRhciBpbWFnZSB3aWxsIGF1dG9tYXRp Y2FsbHkgZm9sbG93IHlvdSB0aGVyZS48L3A+CgoJPGgyPkFja25vd2xlZGdlbWVudHM8L2gy PgoKCTxwPlByZXZpb3VzbHksIHRoZXJlIGhhdmUgYmVlbiB0d28gb3RoZXIgR3JhdmF0YXIg cGx1Z2lucyBmb3IgVGV4dHBhdHRlcm4gYnV0IGJvdGggYXJlIGN1cnJlbnRseSBpbiBvcnBo YW4gc3RhdHVzLiBJIHN0YXJ0ZWQgdGhpcyBvbmUgZnJvbSBzY3JhdGNoIHVzaW5nIDxhIGhy ZWY9Imh0dHBzOi8vZW4uZ3JhdmF0YXIuY29tL3NpdGUvaW1wbGVtZW50L2ltYWdlcy9waHAv Ij48c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiBJbWFnZSBSZXF1ZXN0czwvYT4gZnJv bSB0aGUgR3JhdmF0YXIgRGV2ZWxvcGVyIFJlc291cmNlcyBhcyBhIEd1aWRlLiBJIGFsc28g bG9va2VkIGF0IHRoZSBjb2RlIG9mIGdseF9ncmF2YXRhciBmb3IgaW1wbGVtZW50YXRpb24g aWRlYXMgKGFuZCB0aGUgZm9ybWF0IG9mIHRoaXMgaGVscCBkb2N1bWVudCkuPC9wPgoKCTxo Mj5MaW5rczwvaDI+CgoJPHVsPgoJCTxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v bWljaGFlbGtwYXRlL21rcF9ncmF2YXRhciI+R2l0aHViIENvZGUgUmVwb3NpdG9yeTwvYT48 L2xpPgoJCTxsaT48YSBocmVmPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20v bWljaGFlbGtwYXRlL21rcF9ncmF2YXRhci9tYXN0ZXIvbWtwX2dyYXZhdGFyLnR4dCI+RG93 bmxvYWQ8L2E+PC9saT4KCTwvdWw+CgoJPGgyPm1rcF9ncmF2YXRhcjwvaDI+CgoJPHA+SnVz dCB1c2UgJmx0O3R4cDpta3BfZ3JhdmF0YXIgLyZndDsgd2hlcmUgZXZlciB5b3UgbmVlZCBh IEdyYXZhdGFyIHRvIGJlIGRpc3BsYXllZC4gSWYgeW91IHB1dCB0aGlzIHRhZyBpbnRvIGEg Y29tbWVudCBmb3JtIHRoZSBHcmF2YXRhciB3aWxsIGJlIGNvbnN0cnVjdGVkIHVzaW5nIHRo ZSBlbWFpbCBhZGRyZXNzIGdpdmVuIGJ5IHRoZSBjdXJyZW50IGNvbW1lbnQuIElmIHlvdSBw dXQgdGhpcyB0YWcgYW55d2hlcmUgZWxzZSAod2hlcmUgbWtwX2dyYXZhdGFyIGhhcyBubyBh Y2Nlc3MgdG8gYSBjb21tZW50IGVtYWlsIGFkZHJlc3MpIHlvdSBjYW4gc3VwcGx5IGFuIGVt YWlsIGFkZHJlc3MgYnkgdGhlIGF0dHJpYnV0ZSBlbWFpbCB0byBjcmVhdGUgdGhlIGFjY29t cGFueWluZyBHcmF2YXRhci48L3A+PC9wPgoKCTxoMz5BdHRyaWJ1dGVzPC9oMz4KCgk8aDQ+ c2VjdXJlIChkZWZhdWx0OiAwKTwvaDQ+CgoJPHVsPgoJCTxsaT4xOiByZXR1cm5zIHRoZSBn cmF2YXRhciB1c2luZyA8c3BhbiBjbGFzcz0iY2FwcyI+U1NMPC9zcGFuPjwvbGk+CgkJPGxp PjA6IHJldHVybnMgdGhlIGdyYXZhdGFyIHVzaW5nIG5vbi08c3BhbiBjbGFzcz0iY2FwcyI+ U1NMPC9zcGFuPjwvbGk+Cgk8L3VsPgoKCTxoND5lbWFpbCAoZGVmYXVsdDogZW1wdHkvZW1h aWwgYWRkcmVzcyBvZiBjdXJyZW50IGNvbW1lbnRhdG9yKTwvaDQ+PC9oND4KCgk8cD5Vc2Vk IGluc2lkZSBhIGNvbW1lbnQgZm9ybSB0aGUgcGx1Z2luIHdpbGwgY2hvb3NlIHRoZSBjdXJy ZW50IGNvbW1lbnRlciYjODIxNztzIGVtYWlsIGFkZHJlc3MuIElmIHlvdSB1c2UgdGhpcyB0 YWcgb3V0c2lkZSBvZiB0aGUgY29tbWVudCBmb3JtcyB0aGlzIGF0dHJpYnV0ZSBpcyBuZWVk ZWQgdG8gZ2l2ZSBta3BfZ3JhdmF0YXIgdGhlIGVtYWlsIGFkZHJlc3MgdG8gYmUgZW5jb2Rl ZC4gQW55IGVtYWlsIGNhbiBiZSBHcmF2YXRhciBlbmNvZGVkLjwvcD4KCgk8aDQ+c2l6ZSAo ZGVmYXVsdDogODApPC9oND4KCgk8cD5EZWZpbmVzIHRoZSBzaXplIG9mIHRoZSByZXN1bHRp bmcgR3JhdmF0YXIgKHJhbmdlOiAxIHRvIDUxMikuIEFsbCBHcmF2YXRhcnMgYXJlIHNxdWFy ZWQuPC9wPgoKCTxoND5yYXRpbmcgKGRlZmF1bHQ6IGcpPC9oND4KCgk8cD5EZWZpbmVzIHRo ZSByYXRpbmcgZm9yIHRoZSBHcmF2YXRhci48L3A+CgoJPHVsPgoJCTxsaT5nOiBzdWl0YWJs ZSBmb3IgZGlzcGxheSBvbiBhbGwgd2Vic2l0ZXMgd2l0aCBhbnkgYXVkaWVuY2UgdHlwZS48 L2xpPgoJCTxsaT5wZzogbWF5IGNvbnRhaW4gcnVkZSBnZXN0dXJlcywgcHJvdm9jYXRpdmVs eSBkcmVzc2VkIGluZGl2aWR1YWxzLCB0aGUgbGVzc2VyIHN3ZWFyIHdvcmRzLCBvciBtaWxk IHZpb2xlbmNlLjwvbGk+CgkJPGxpPnI6IG1heSBjb250YWluIHN1Y2ggdGhpbmdzIGFzIGhh cnNoIHByb2Zhbml0eSwgaW50ZW5zZSB2aW9sZW5jZSwgbnVkaXR5LCBvciBoYXJkIGRydWcg dXNlLjwvbGk+CgkJPGxpPng6IG1heSBjb250YWluIGhhcmRjb3JlIHNleHVhbCBpbWFnZXJ5 IG9yIGV4dHJlbWVseSBkaXN0dXJiaW5nIHZpb2xlbmNlLjwvbGk+Cgk8L3VsPgoKCTxoND5k ZWZhdWx0IChkZWZhdWx0OiBncmF2YXRhci1sb2dvKTwvaDQ+CgoJPHA+RGVmaW5lIHdoaWNo IGltYWdlKHMpIHRvIGRpc3BsYXkgd2hlbiBhbiBlbWFpbCBhZGRyZXNzIGhhcyBubyBHcmF2 YXRhci4gSWYgdGhpcyBhdHRyaWJ1dGUgaXMgbWlzc2luZyBncmF2YXRhci5jb20mIzgyMTc7 cyB3aGl0ZSBHIG9uIGJsdWUgZ3JvdW5kIHdpbGwgYmUgZGlzcGxheWVkLiBJZiB5b3Ugc3Vw cGx5IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bh bj48L3NwYW4+b2YgYW4gaW1hZ2UgaGVyZSBpdCB3aWxsIGJlIHVzZWQuIEZ1cnRoZXIgaXQg aXMgcG9zc2libGUgdG8gdXNlIGdyYXZhdGFyLmNvbSYjODIxNztzIGludGVncmF0aW9uIGlj b25zIGJhc2VkIG9uIHRoZSBzdWJtaXR0ZWQgZW1haWwgYWRkcmVzczo8L3A+CgoJPHVsPgoJ CTxsaT40MDQ6IGRvIG5vdCBsb2FkIGFueSBpbWFnZSBpZiBub25lIGlzIGFzc29jaWF0ZWQg d2l0aCB0aGUgZW1haWwgaGFzaCwgaW5zdGVhZCByZXR1cm4gYW4gPHNwYW4gY2xhc3M9ImNh cHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFuPjwvc3Bhbj4gNDA0IChGaWxlIE5v dCBGb3VuZCkgcmVzcG9uc2U8L2xpPgoJCTxsaT5tbTogKG15c3RlcnktbWFuKSBhIHNpbXBs ZSwgY2FydG9vbi1zdHlsZSBzaWxob3VldHRlZCBvdXRsaW5lIG9mIGEgcGVyc29uIChkb2Vz IG5vdCB2YXJ5IGJ5IGVtYWlsIGhhc2gpPC9saT4KCQk8bGk+aWRlbnRpY29uOiBhIGdlb21l dHJpYyBwYXR0ZXJuIGJhc2VkIG9uIGFuIGVtYWlsIGhhc2g8L2xpPgoJCTxsaT5tb25zdGVy aWQ6IGEgZ2VuZXJhdGVkICYjODIxNjttb25zdGVyJiM4MjE3OyB3aXRoIGRpZmZlcmVudCBj b2xvcnMsIGZhY2VzLCBldGM8L2xpPgoJCTxsaT53YXZhdGFyOiBnZW5lcmF0ZWQgZmFjZXMg d2l0aCBkaWZmZXJpbmcgZmVhdHVyZXMgYW5kIGJhY2tncm91bmRzPC9saT4KCQk8bGk+cmV0 cm86IGF3ZXNvbWUgZ2VuZXJhdGVkLCA4LWJpdCBhcmNhZGUtc3R5bGUgcGl4ZWxhdGVkIGZh Y2VzPC9saT4KCTwvdWw+CgoJPGg0PmZvcmNlIChkZWZhdWx0OiAwKTwvaDQ+CgoJPHVsPgoJ CTxsaT4xOiBhbHdheXMgcmV0dXJucyB0aGUgR3JhdmF0YXIgaW4gdGhlIGZvcm0gY2hvc2Vu IGFzIHRoZSBkZWZhdWx0LjwvbGk+CgkJPGxpPjA6IHJldHVybnMgdGhlIEdyYXZhdGFyIGFz IG5vcm1hbDwvbGk+Cgk8L3VsPgoKCTxoND5kaXNhYmxlIChkZWZhdWx0OiAwKTwvaDQ+CgoJ PHVsPgoJCTxsaT4xOiBub3RoaW5nIGlzIHJldHVybmVkPC9saT4KCQk8bGk+MDogcmV0dXJu cyB0aGUgR3JhdmF0YXIgYXMgbm9ybWFsPC9saT4KCTwvdWw+CgoJPGgzPkltYWdlIGFuZCBS ZWxhdGVkIEF0dHJpYnV0ZXM8L2gzPgoKCTxoND5pbWFnZSAoZGVmYXVsdDogMSk8L2g0PgoK CTx1bD4KCQk8bGk+MTogcmV0dXJucyB0aGUgaW1hZ2UgdGFnIG9mIHRoZSBHcmF2YXRhcjwv bGk+CgkJPGxpPjA6IHJldHVybnMgdGhlIHVybCBvZiB0aGUgR3JhdmF0YXI8L2xpPgoJPC91 bD4KCgk8aDQ+YWx0IChkZWZhdWx0OiBlbXB0eSk8L2g0PgoKCTxwPkNvbnRlbnQgb2YgdGhl IGFsdCBhdHRyaWJ1dGUgb2YgdGhlIGltYWdlIHRhZy48L3A+CgoJPGg0PmNsYXNzIChkZWZh dWx0OiBlbXB0eSk8L2g0PgoKCTxwPkNvbnRlbnQgb2YgdGhlIGNsYXNzIGF0dHJpYnV0ZSBv ZiB0aGUgaW1hZ2UgdGFnLjwvcD4KCgk8aDQ+aWQgKGRlZmF1bHQ6IGVtcHR5KTwvaDQ+CgoJ PHA+Q29udGVudCBvZiB0aGUgaWQgYXR0cmlidXRlIG9mIHRoZSBpbWFnZSB0YWcuPC9wPgoK CTxoND5zdHlsZSAoZGVmYXVsdDogZW1wdHkpPC9oND4KCgk8cD5Db250ZW50IG9mIHRoZSBz dHlsZSBhdHRyaWJ1dGUgb2YgdGhlIGltYWdlIHRhZy48L3A+CgoJPGg0PnRpdGxlIChkZWZh dWx0OiBlbXB0eSk8L2g0PgoKCTxwPkNvbnRlbnQgb2YgdGhlIHRpdGxlIGF0dHJpYnV0ZSBv ZiB0aGUgaW1hZ2UgdGFnLjwvcD4KCgk8aDI+RXhhbXBsZXM8L2gyPgoKPHByZT48Y29kZT4m bHQ7dHhwOm1rcF9ncmF2YXRhciAvJmd0OzsKPC9jb2RlPjwvcHJlPgoKPHByZT48Y29kZT4m bHQ7dHhwOm1rcF9ncmF2YXRhciBzaXplPSZxdW90OzYwJnF1b3Q7IGRlZmF1bHQ9JnF1b3Q7 aHR0cDovL3d3dy5leGFtcGxlLmNvbS9pbWFnZXMvZ3JhdmF0YXIucG5nJnF1b3Q7IGNsYXNz PSZxdW90O2dyYXZhdGFyJnF1b3Q7IC8mZ3Q7Owo8L2NvZGU+PC9wcmU+CgoJPHA+VXNlZCBp biB0aGUgZm9ybSBjb21tZW50cyBpdCB3aWxsIHNob3cgdGhlIEdyYXZhdGFyIG9mIHRoZSBj dXJyZW50IGNvbW1lbnRhdG9yPC9wPgoKPHByZT48Y29kZT4mbHQ7dHhwOm1rcF9ncmF2YXRh ciBlbWFpbD0mcXVvdDthZGRyZXNzQGV4YW1wbGUuY29tJnF1b3Q7OyAvJmd0Owo8L2NvZGU+ PC9wcmU+CgoJPHA+U2hvd3MgdGhlIEdyYXZhdGFyIGZvciBhZGRyZXNzQGV4YW1wbGUuY29t LjwvcD4KCgk8aDM+UmVsZWFzZSBIaXN0b3J5PC9oMz4KCgk8cD5WZXJzaW9uIDEuMDogU2Vw dGVtYmVyIDE2dGgsIDIwMTQ8L3A+IjtzOjM6Im1kNSI7czozMjoiZDBmYjg0N2FiNjJiYjYx NmRkMjg5MTY3NDQ5Y2Y0NGEiO30=