# lastfm_tagcloud v0.3 # The plugin shows a typical tagcloud with the last songs listened at last.fm by one user # Fran Garcia # http://frangarcia.f2o.org/ # ...................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ...................................................................... YTo5OntzOjQ6Im5hbWUiO3M6MTU6Imxhc3RmbV90YWdjbG91ZCI7czo3OiJ2ZXJzaW9uIjtz OjM6IjAuMyI7czo2OiJhdXRob3IiO3M6MTE6IkZyYW4gR2FyY2lhIjtzOjEwOiJhdXRob3Jf dXJpIjtzOjI2OiJodHRwOi8vZnJhbmdhcmNpYS5mMm8ub3JnLyI7czoxMToiZGVzY3JpcHRp b24iO3M6ODc6IlRoZSBwbHVnaW4gc2hvd3MgYSB0eXBpY2FsIHRhZ2Nsb3VkIHdpdGggdGhl IGxhc3Qgc29uZ3MgbGlzdGVuZWQgYXQgbGFzdC5mbSBieSBvbmUgdXNlciI7czo0OiJ0eXBl IjtpOjA7czo0OiJoZWxwIjtzOjkwNzoiCjxzdHJvbmc+TGFzdC5mbSB0YWdjbG91ZDwvc3Ry b25nPjxicj48YnI+CgpUaGUgb3JpZ2luYWwgaWRlYSBvZiB0aGlzIHBsdWdpbiB3YXMgb2J0 YWluZWQgZnJvbSB0aGUgY29kZSBvZiA8YSBocmVmPSJodHRwOi8vd3d3LmxvbG8uZXMvYmxv Zy8yMDA2LzAyLzIzL2xhc3RmbS10YWctY2xvdWQvIj5Mb2xvPC9hPi4KVGhpcyBwbHVnaW4g c2hvd3MgYSB0YWcgY2xvdWQgb2YgdGhlIHRvcCBhcnRpc3QgcGxheWVkIGJ5IGFuIHVzZXIg aW4gbGFzdC5mbS48YnI+PGJyPgoKPHN0cm9uZz5Vc2FnZTogPC9zdHJvbmc+ICZsdDt0eHA6 bGFzdGZtX3RhZ2Nsb3VkIHVzZXJuYW1lPWZyYW5nYXJjaWEgbGlzdHR5cGU9dG9wdHJhY2tz IG1heGFydGlzdHM9MjUvJmd0Owo8YnI+PGJyPgo8c3Ryb25nPk9wdGlvbnM6PC9zdHJvbmc+ Cjx1bD4KPGxpPjxzdHJvbmc+dXNlcm5hbWU6PC9zdHJvbmc+IHlvdSBtdXN0IHNwZWNpZnkg eW91ciB1c2VybmFtZSBhdCBsYXN0LmZtIHNlcnZpY2UuIFRoZSBkZWZhdWx0IHZhbHVlIGlz IGZyYW5nYXJjaWEuPC9saT4KPGxpPjxzdHJvbmc+bWF4YXJ0aXN0czo8L3N0cm9uZz4geW91 IGNhbiBzcGVjaWZ5IGEgbWF4aW0gbnVtYmVyIG9mIGFydGlzdHMgdG8gc2hvdy4gVGhlIGRl ZmF1bHQgdmFsdWUgaXMgMTAwLjwvbGk+CjxsaT48c3Ryb25nPmxpc3R0eXBlOjwvc3Ryb25n PiB5b3UgY2FuIHNwZWNpZnkgdGhlIGtpbmQgb2YgdGFnY2xvdWQgdGhhdCB5b3Ugd2FudC4g VGhlc2UgYXJlIHRoZSBwb3NzaWJsZSB0eXBlczoKPHVsPgoJPGxpPnRvcGFydGlzdHM8L2xp PgoJPGxpPnRvcGFsYnVtczwvbGk+Cgk8bGk+dG9wdHJhY2tzPC9saT4KCTxsaT5mcmllbmRz PC9saT4KCTxsaT5uZWlnaGJvdXJzPC9saT4KCTxsaT5yZWNlbnR0cmFja3M8L2xpPgo8L3Vs Pgo8L2xpPgo8L3VsPiI7czo0OiJjb2RlIjtzOjI1NjA6IgoJZnVuY3Rpb24gbGFzdGZtX3Rh Z2Nsb3VkKCRhdHRzKSB7CgkJZXh0cmFjdChsQXR0cyhhcnJheSgKCQkJJ3VzZXJuYW1lJyAg PT4gJ2ZyYW5nYXJjaWEnLAoJCQknbWF4YXJ0aXN0cycgPT4gMTAwLAoJCQknbGlzdHR5cGUn ID0+ICd0b3BhcnRpc3RzJywKCQkpLCRhdHRzKSk7CgoJCSRzb2NrZXRUaW1lb3V0ID0gMzsK CQkvLyBtaW5fc2l6ZSA9PSBtaW5pbXVuIHNpemUgb2YgZm9udCAoaW4gJSkKCQkvLyBtYXhp bXVuIHNpemUgb2YgZm9udCAoaW4gJSkgPT0gbWluX3NpemUgKyBvZmZzZXRfc2l6ZQoJCS8v IEJ5IGRlZmF1bHQsIGZvbnQgaXMgYmV0d2VlbiAxMDAlIGFuZCAyMDAlCgkJJG9mZnNldF9z aXplID0gMTAwOwoJCSRtaW5fc2l6ZSA9IDEwMDsKCgkJQGluaV9zZXQoImRlZmF1bHRfc29j a2V0X3RpbWVvdXQiLCAkc29ja2V0VGltZW91dCk7CgkJJHRvcEFydGlzdHMgPSBAZmlsZV9n ZXRfY29udGVudHMoImh0dHA6Ly93cy5hdWRpb3Njcm9iYmxlci5jb20vMS4wL3VzZXIvJHVz ZXJuYW1lLyRsaXN0dHlwZS50eHQiKTsKCgoJCS8vJHRvcEFydGlzdHMgPSBmaWxlX2dldF9j b250ZW50cygkbGFzdGZtQ2FjaGUpOwoJCS8vJHRvcEFydGlzdHMgPSB1dGY4X2RlY29kZSgk dG9wQXJ0aXN0cyk7IC8vIFVURjggaDgKCgkJJGFsbF9saW5lcyA9IGV4cGxvZGUoIlxuIiwg JHRvcEFydGlzdHMpOwoJCSRpID0gMDsKCQkkbWF4X2ZyZXEgPSAwOwoJCXN3aXRjaCAoJGxp c3R0eXBlKXsKCQkJCQljYXNlICJ0b3BhcnRpc3RzIjoKCQkJCQljYXNlICJ0b3BhbGJ1bXMi OgoJCQkJCWNhc2UgInRvcHRyYWNrcyI6CgkJCQkJCQl3aGlsZSAoJGFsbF9saW5lc1skaV0g JiYgJGk8JG1heGFydGlzdHMpIHsKCQkJCQkJCQkJJGxpbmUgPSBleHBsb2RlKCIsIiwgJGFs bF9saW5lc1skaV0pOwoJCQkJCQkJCQkkcmVzdWx0WyRpXVswXSA9ICRsaW5lWzJdOwoJCQkJ CQkJCQkkcmVzdWx0WyRpXVsxXSA9ICRsaW5lWzFdOwoJCQkJCQkJCQlpZiAoJHJlc3VsdFsk aV1bMV0gPiAkbWF4X2ZyZXEpCgkJCQkJCQkJCQkJJG1heF9mcmVxID0gJHJlc3VsdFskaV1b MV07CgkJCQkJCQkJCSRpKys7CgkJCQkJCQl9CgoJCQkJCQkJdXNvcnQoJHJlc3VsdCwgImNv bXBhcmUiKTsKCgkJCQkJCQlmb3IgKCR6ID0gMDsgJHogPCAkaTsgJHorKykgewoJCQkJCQkJ CQkkb3V0cHV0IC49ICI8YSBocmVmPVwiaHR0cDovL3d3dy5sYXN0LmZtL2dyb3Vwcy8/c19i aW89IjsKCQkJCQkJCQkJJG91dHB1dCAuPSBzdHJfcmVwbGFjZSgiICIsICJfIiwgJHJlc3Vs dFskel1bMF0pLiJcIj4iOwoJCQkJCQkJCQkkb3V0cHV0IC49ICIgICA8Zm9udCBzdHlsZT1c ImZvbnQtc2l6ZToiLihyb3VuZCgoJHJlc3VsdFskel1bMV0vJG1heF9mcmVxKSokb2Zmc2V0 X3NpemUpKyRtaW5fc2l6ZSkuIiVcIj4iLiRyZXN1bHRbJHpdWzBdLiI8L2ZvbnQ+ICI7CgkJ CQkJCQkJCSRvdXRwdXQgLj0gIjwvYT4iOwoJCQkJCQkJfQoJCQkJCQkJYnJlYWs7CgkJCQkJ Y2FzZSAiZnJpZW5kcyI6CgkJCQkJCQl3aGlsZSAoJGFsbF9saW5lc1skaV0gJiYgJGk8JG1h eGFydGlzdHMpIHsKCQkJCQkJCQkJJG91dHB1dCAuPSAiPGEgaHJlZj1cImh0dHA6Ly93d3cu bGFzdC5mbS91c2VyLyIuJGFsbF9saW5lc1skaV0uIlwiPiIuJGFsbF9saW5lc1skaV0uIjwv YT48YnI+IjsKCQkJCQkJCQkJJGkrKzsKCQkJCQkJCX0KCQkJCQkJCWJyZWFrOwoJCQkJCWNh c2UgIm5laWdoYm91cnMiOgoJCQkJCQkJd2hpbGUgKCRhbGxfbGluZXNbJGldICYmICRpPCRt YXhhcnRpc3RzKSB7CgkJCQkJCQkJCSRsaW5lID0gZXhwbG9kZSgiLCIsICRhbGxfbGluZXNb JGldKTsKCQkJCQkJCQkJJG91dHB1dCAuPSAiPGEgaHJlZj1cImh0dHA6Ly93d3cubGFzdC5m bS91c2VyLyIuJGxpbmVbMV0uIlwiPiIuJGxpbmVbMV0uIjwvYT4gIjsKCQkJCQkJCQkJJGkr KzsKCQkJCQkJCX0KCQkJCQkJCWJyZWFrOwoJCQkJCWNhc2UgInJlY2VudHRyYWNrcyI6CgkJ CQkJCQl3aGlsZSAoJGFsbF9saW5lc1skaV0gJiYgJGk8JG1heGFydGlzdHMpIHsKCQkJCQkJ CQkJJGxpbmUgPSBleHBsb2RlKCIsIiwgJGFsbF9saW5lc1skaV0pOwoJCQkJCQkJCQkkcGFy dHMgPSBleHBsb2RlKCIg4oCTICIsICRsaW5lWzFdKTsKCQkJCQkJCQkJJG91dHB1dCAuPSAi PGEgaHJlZj1cImh0dHA6Ly93d3cubGFzdC5mbS9tdXNpYy8iOwoJCQkJCQkJCQkkb3V0cHV0 IC49IHN0cl9yZXBsYWNlKCIgIiwgIisiLCB0cmltKCRwYXJ0c1swXSkpLiIvXy8iOwoJCQkJ CQkJCQkkb3V0cHV0IC49IHN0cl9yZXBsYWNlKCIgIiwgIisiLCB0cmltKCRwYXJ0c1sxXSkp LiJcIj4iLiRsaW5lWzFdLiI8L2E+IHwgIjsKCQkJCQkJCQkJJGkrKzsKCQkJCQkJCQkJfQoJ CQkJCWJyZWFrOwoJCX0KCQkvLyBUaGUgcmV0dXJuZWQgdmFsdWUgd2lsbCByZXBsYWNlIHRo ZSB0YWcgb24gdGhlIHBhZ2UKCQlyZXR1cm4gJG91dHB1dDsKCX0KCgkvLyBUbyBvcmRlciBh bHBoYWJldGljYWxseQoJZnVuY3Rpb24gY29tcGFyZSgkYSwgJGIpIHsKICAgIAlyZXR1cm4g KHN0cnRvdXBwZXIoJGFbMF0pID49IHN0cnRvdXBwZXIoJGJbMF0pKSA/IDEgOiAtMTsKCX0K CgoiO3M6MzoibWQ1IjtzOjMyOiJmZWM3NWY4ZTc4YjY0ZWU0YzZlZGYzZjAyNTQ1MDFhYiI7 fQ==