User:PerfektesChaos/js/externalLinkProblem/query
query is a dependant sub-module of externalLinkProblem.js.
Provide data to be displayed by /gui on content pages. This code will ask by generated URL and react when answer arrives.
Mechanism
edit- A tool is supposed to answer a query with project
dbname
andpageid
with database results of observed URL with problems.- The query might be applied via interactive form, too, which should resolve current page names as well.
- Since collection of observations will be done over months and request could happen a year later, the database will be organized by pageid rather than by page title, which could have been changed meanwhile.
- Results can be called by a certain URL. One output mode might be something like
js-mw
which means JavaScript in MediaWiki context. That should generate a snippet as shown below.- If any results found, the
problems
component is expected to deliver detailed information. If no problems known, this should be missing or set tofalse
. Details of theproblems
array are listed on /gui page.
- If any results found, the
Snippet
edit( function ( mw ) {
var problems = [
{ url: "http://example.com/unavailable.html" }
// etc. etc.
];
mw.hook( "externalLinkProblem/query.answer" ).fire( problems );
}( window.mediaWiki ) );
- The answer has to provide
text/javascript
MIME type. - A JSON object could be provided as another output mode.
- This is safer and reduced to a pure data object which is not executable.
- However, the
wmflabs.org
is deliberately separated from domains likewikipedia.org
to avoid malicious effects. By same origin policy etc. JSON won’t be accepted. - An executable snippet as described below might be necessary to cross domain borders, if CORS was not established.
- The application has to show open source code to make clear that no undesired statements are embedded into the answer.
Codes
editSource code |
|
ResourceLoader |
|
Namespaces |
|
mw.libs
|
externalLinkProblem
|