Opened 11 years ago
Closed 11 years ago
#157 closed defect (bug) (fixed)
Invalid Plugin Contributors JSON from WP.org Plugin API
Reported by: | bpetty | Owned by: | |
---|---|---|---|
Milestone: | Priority: | low | |
Component: | API | Keywords: | |
Cc: |
Description
Migrating from #wp23822:
Under some rare conditions, some plugins can break the plugin API with invalid JSON, specifically in regards to the list of contributors returned. This is likely because of the string encoding used to either parse or store the values returned from the plugin file headers.
Basically though, it results in using a null name for a JSON object member where there absolutely needs to be a string.
For example, the "Aaaaah Lek Lek" plugin (aaaaaaah-lek-lek) returns the following JSON:
{ "name": "Aaaaah Lek Lek", "slug": "aaaaaaah-lek-lek", "version": "1.0", "author": "<a href=\"http:\/\/valeriosouza.com.br\">Valério Souza<\/a>", "author_profile": "http:\/\/profiles.wordpress.org\/valeriosza", "contributors": { null: "" }, "requires": "3.0.1", "tested": "3.5.1", "compatibility": [ ], "rating": 0, "num_ratings": 0, "downloaded": 20, "last_updated": "2013-03-12", "added": "2013-03-12", "homepage": "http:\/\/valeriosouza.com.br", "sections": { "description": "<p>Coloque a frase da música LekLek em seu WordPress, dentro do painel administrativo.<\/p>", "installation": "<p>Siga para Instalar<\/p>\n\n<ol>\n<li>Faça Upload <code>aaaaaaah-lek-lek<\/code> para a pasta <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Ative no menu 'Plugins' no seu WordPress<\/li>\n<\/ol>", "changelog": "<h4>1.0<\/h4>\n\n<ul>\n<li>Lançada Versão 1.<\/li>\n<\/ul>", "faq": "<h4>What about foo bar?<\/h4>", "other_notes": "<h3>Arbitrary section<\/h3>" }, "short_description": "Coloque o Lek Lek no seu WordPress", "download_link": "http:\/\/downloads.wordpress.org\/plugin\/aaaaaaah-lek-lek.zip", "tags": { "frases": "frases", "leklek": "leklek" } }JSONLint comes back with:
Parse error on line 7: ...ibutors": { null: "" }, ----------------------^ Expecting 'STRING', '}'These plugin details come from these files:
- http://plugins.svn.wordpress.org/aaaaaaah-lek-lek/trunk/readme.txt
- http://plugins.svn.wordpress.org/aaaaaaah-lek-lek/trunk/leklek.php
(it mentions a stable tag, but there are no actual tags)
You might also notice that Extend is unable to display these details correctly either: http://wordpress.org/extend/plugins/aaaaaaah-lek-lek/
comment 1:
FWIW, that
readme.txt
file is in Windows-1252 instead of UTF-8.
comment 2:
I could still use a fix on this btw...
Additionally, here's the full list of plugins that trigger this same error for the same reason:
aaaaaaah-lek-lek snapicious-for-wordpress wp-jqtransform-archive check-links-intercambios flogmaker envato-referral tres-noticias-principais landing-sites flash-tag-cloud single-categories wice-contact-for-wordpress chatbot-widget flashblogHere's another plugin with this encoding problem, but with tags rather than contributors:
sns
I modified the /plugins/info api to do UTF-8 encoding on the contributor name field in the response. This won't necessarily guarantee correct results, but it will at least prevent that non-ascii data from buggering up the json.