Commit graph

202 commits

Author SHA1 Message Date
umherirrender
cdfd91d85f Add list=allfileusages
This allows the client to enumerate through entries of the imagelinks
table.

This can be useful to find images from foreign repos used on the own
wiki.

Change-Id: I2ad0579e3521868d39f7d495ea9c83a2cd9731d6
2013-10-08 15:32:05 +00:00
Mark Holmquist
d94d29a920 Add meta=filerepoinfo for getting file repo info
We currently only return the image repository name for imageinfo, which
is not particularly useful, especially since image repositories aren't
accessible via the API. This patch adds meta=filerepoinfo, which will
return a list of repositories and relevant information (like the API URL
for ForeignAPIRepo ones)

Also returns the local repo now, and defaults to "all" in a more useful
fashion.

Change-Id: I1aaed0895d2a0bc224c82e93975ecf6afd8cb6b8
2013-09-27 13:53:34 -07:00
umherirrender
5da19f4b3a Add helpurls to some api modules
Change-Id: I41cc20ea5daf089e5fb26d1548d3b58cfe5f4d31
2013-05-16 09:08:18 +02:00
umherirrender
4975761eb2 API: Add new hook 'APIGetPossibleErrors'
This allows extensions to modify the array.

This completes the serie of hooks for similar get methods in ApiBase.

Change-Id: Ib398f5815ab57f25d56356b0997c55a03fd96874
2013-04-19 15:25:58 +02:00
umherirrender
b1bee4e276 Call ApiPageSet::getFinalParamDescription
This allows extensions to modify the param description of the ApiPageSet
params at once for each module, which used the ApiPageSet.

Change-Id: I2ed6f3ad38d3d84182b8525a6b247f721be7f460
2013-04-05 17:09:18 +02:00
Siebrand Mazeland
a72cc6afbc Remove unused local variables
Change-Id: I8eb774c2857dcc87404fd8a7e5fb66c5a4c9643e
2013-04-01 17:42:01 +00:00
Alexandre Emsenhuber
15833dafdf Fix case of some Title methods
Change-Id: I1a37ffb0e8cde4deac027721b0e463585b58d634
2013-03-26 10:54:15 +01:00
Tyler Anthony Romeo
4dcc7961df Fixed @param tags to conform with Doxygen format.
Doxygen expects parameter types to come before the
parameter name in @param tags. Used a quick regex
to switch everything around where possible. This
only fixes cases where a primitve variable (or a
primitive followed by other types) is the variable
type. Other cases will need to be fixed manually.

Change-Id: Ic59fd20856eb0489d70f3469a56ebce0efb3db13
2013-03-11 13:15:01 -04:00
Yuri Astrakhan
0aa24ae558 Fixed many small spelling mistakes and php docs, var decl.
Change-Id: I1508ed7eb77e5e4f700fb63955d626c4f5915840
2013-03-10 23:45:51 -04:00
Yuri Astrakhan
68820277af API continue param to streamline iteration of complex queries
Greatly simplifies query result iteration by the clients
by providing a mechanism to track sub-iterations (props in generated set)

Assuming the client has the param=>value dictionary with the original request
parameters, client will only need to perform this operation in their language
to get all results from the server regardless of what query they make.

  $request = array_merge( $request, $result['continue'] );

Related changes:
* Moved dieContinueUsageIf() from ApiQueryBase to ApiBase
* Internal calls will also return unused param warnings
* Reworked query unit tests for easier testing

Change-Id: Ieb45241fc6db2109f1d92fa3381165ec30701b63
2013-03-01 19:06:46 -05:00
Brad Jorsch
307ac55e50 Add PagesWithProp special page and API module
It would be useful to be able to list pages using a particular page
property, particularly in light of the new Disambiguator extension.

This adds a special page Special:PagesWithProp and an API query module
list=pageswithprop to do just this. It also adds an API query module
list=pagepropnames to list the prop names currently in use on the wiki.

Change-Id: Ib0d4e17f22b8d0cb9894eac6095962315480e809
2013-02-26 00:24:31 +00:00
Yuri Astrakhan
96a9603eea API Remove $wgAPIGeneratorModules - it's dynamic now
* $wgAPIGeneratorModules is now obsolete and will be ignored
* Removed generator tests - obsolete because there is no more list

Change-Id: I014260a42226854a2178345dc3cd0f50b41b3c08
2013-02-19 11:27:13 -05:00
Alex Monk
bf7b7908ea (bug 45017) Check whether this request is a POST before allowing a query module to run, if required by the query module
Change-Id: Ie08fd3a887390e2ead6f6d6fe1e16fa8f8617a2c
2013-02-15 20:54:00 +00:00
Yuri Astrakhan
62216932c1 API PageSet allows generator for non-query modules
* PageSet can now be used in any action to process titles/pageids/revids
or any generator, redirects resolution, and converttitle functionality.
* action=purge proper usage of MustBePosted()
* Add supports for all pageset capabilities - generators, redirects, converttitles to
  action=purge and action=setnotificationtimestamp
* BREAKING CHANGE: ApiPageSet constructor now has two params instead of three, with only the
  first one keeping its meaning. ApiPageSet is now derived from ApiBase.
* BREAKING CHANGE: ApiQuery::newGenerator() and executeGeneratorModule() were deleted.

Change-Id: I7a3d7b6eb015d21ec1a9b9d9c6af9d97663f3f9a
2013-02-08 15:42:21 -05:00
Brad Jorsch
7d78386657 API: Fix using the same module as generator and prop
Change Ie2dee41e introduced a bug when using the same module as both
generator and prop, e.g.
?action=query&titles=Main_Page&generator=categories&prop=categories

The generator should be an uncached instance of the module.

Change-Id: I80c8b3a715f266a61614c1e1d02aa80b72643ec8
2013-02-05 15:08:12 -05:00
Yuri Astrakhan
a97bb3acfa API module manager and help rewrite
This is a non-versioned part of the larger patch #41014
https://gerrit.wikimedia.org/r/#/c/41014
It will allow help subsystem optimization (merging paraminfo and help),
path towards per-module or per-system versioning, removal of the
manually maintained generator lists.

Changes:
* ApiModuleManager now handles all submodules (actions,props,lists) and instantiation
* ApiModuleManager maintains a cache of all instantiated modules
* Query stores prop/list/meta as submodules
* action=help suports generalized submodules (modules=query+value), querymodules obsolete

Change-Id: Ie2dee41e44a29cd5d5935eeaa5240b708d95a8f0
2013-02-05 01:52:55 -05:00
Yuri Astrakhan
503cd2f4ae (bug 35885) remove api version string and parameter
API was using SVN's version keyword which GIT does not support.
All related methods were either removed, or for those that
could have been used from extensions, emptied out.
api.php?version now shows unrecognized param warning.

Change-Id: I910ca1448ed2ed697ac19b17c486d130aa1d7e03
2013-01-18 12:41:18 -05:00
Yuri Astrakhan
e6df970dd8 API list=alltransclusions, rm unique+gen & continue restrict
* list=alltransclusions added to enumerate every instance of page embedding
* list=alllinks & alltransclusions now allow both 'from' and 'continue' in
  the same query. When both are present, 'from' is simply ignored.
* list=alllinks & alltransclusions now allow 'unique' in generators, to yield
  a list of all link/template target pages instead of source pages.

Change-Id: I4137e2d790f988e0cef638703d9d6961a47fe662
2012-12-28 14:19:41 -05:00
umherirrender
82375631c2 Fix tabs inside/between statements/text
This tabs are strange and a space there is better

Change-Id: I0885dff575ee2fcd0668d08fef3226e132c5b319
2012-10-26 18:18:59 +02:00
Reedy
7358afdde1 (bug 39665) optimize API query generator list
List of query generators is now not built using reflection, instead it
is defined in code. Per Domas, make this a hard coded list instead of
loading all the child classes.

Added $wgAPIGeneratorModules for people to register their API generator
modules.

Change-Id: I12da92da33527e414c9b125a50b82c9bdbb3ed99
2012-10-12 20:24:15 +00:00
umherirrender
eb41fc9dc1 Add User to Title::userCan calls in api
Change-Id: I86ee1398abe4a790796d61aba1e1739bc55e565b
2012-09-22 13:33:33 +02:00
Reedy
92ff0e4a33 Alpha-sort lists of api modules in ApiQuery
$ocd++;

Change-Id: I3dbf763d360822f2c39e97622b2ca32b9c322ee5
2012-09-06 19:26:23 +01:00
Reedy
0b53b320c4 * (bug 39665) Cache AllowedGenerator array so it doesn't autoload all query classes on every request.
Change-Id: I541ecf931a2bbe766bf31f569f81cc92308e35e1
2012-09-05 23:34:23 +01:00
Reedy
249e22b721 Followup c17651/bug 39032
makeHelpMsgHelper made a list of "allowed generators" at the same
time as generating stuff that was used to build the api help docs.

Change-Id: Idcc0b19ff62ab8da95c09c75a5222d3116ed0dc5
2012-08-07 20:25:30 +01:00
Reedy
52861ea3a1 * Bug 39032 - ApiQuery generates help in constructor.
Functions called unnecesserily, as their return values aren't used
or even cached.

Removing them to reduce the pointless overhead of calling them

Change-Id: I0d8ddab9492ea79d5de4118944e77ac774275506
2012-08-04 14:35:23 +01:00
umherirrender
e913e285a8 make list of 'Languages that support variant conversion' dynamic
see bug 33223. Placing this list in LanguageConverter,
so people see the list, when adding new Converters

Change-Id: I088bc1f0ea01d7d6e02c736261311919a0956a57
2012-07-19 20:49:55 +02:00
Aaron Schulz
e6faa2fd76 Merge "escape HTML elements in docblock with double quotes" 2012-07-18 19:17:46 +00:00
Antoine Musso
4f5d2386f3 escape HTML elements in docblock with double quotes
Doxygen choke on text enclosed by '<' and '>' since it tries to
interpret them as HTML or XML elements. This patch adds double quotes
in includes/api/*.php files around the two following strings:

 <Firstname>.<Lastname>@gmail.com
 <Firstname><Lastname>@gmail.com

Which becomes:

 "<Firstname>.<Lastname>@gmail.com"
 "<Firstname><Lastname>@gmail.com"

Tested locally, it prevents doxygen 1.8.0 related warnings.

Change-Id: I36d82eb3fd4989ee3ffc65b0b527b83711d1ba69
2012-07-15 22:15:45 +02:00
Reedy
002d871048 Api method documentation tweaks
Change-Id: I43398b6016f64accf86921c72a6dac5e71e11c34
2012-07-12 16:53:00 +01:00
Petr Onderka
720c1b7be0 Corrected capitalization in the file and class names of API modules
Change-Id: I8f317e458ee0f8706434e43a7890cda530595e64
2012-04-16 23:53:56 +02:00
Sam Reed
e1d83d5721 Fixing some of the "@return true" or "@return false", need to be "@return bool" and then the metadata can say true if foo, false if bar
Other documentation improvements
2012-02-09 18:01:54 +00:00
Sam Reed
138ddc452f Fixing some of the "@return true" or "@return false", need to be "@return bool" and then the metadata can say true if foo, false if bar
Other documentation improvements
2012-02-09 17:42:35 +00:00
Sam Reed
f9aac8d3ba Related to bug 33223
Update static list of languages that support variants
2011-12-30 22:44:07 +00:00
Robin Pepermans
be2de16942 update all core usage of deprecated Title::userCanRead() 2011-12-13 11:05:30 +00:00
Sam Reed
2fc7279345 * (bug 32688) Paraminfo for parameter "generator" of the query module shows too many types
Pass prop and list through the generator filtering in the constructor
2011-11-28 20:35:32 +00:00
Sam Reed
53000baecf Oh noes, moar http:// -> https:// 2011-11-28 15:43:11 +00:00
John Du Hart
2e7d867478 Removed the 'eclipse helper' bit on top of every API module
It's a parctice that dates back to 2006 when the API was first written, and frankly isn't covered by the coding conventions. Same thing with the docblocks, they're all copypasted with some bits changed and don't even make sense if you look at them in the genereated code docs.
I don't feel that any of us depend on this anymore (get a better IDE), so in the inerest of consistancy it's time we said goodbye to it.
2011-11-16 00:17:26 +00:00
Aaron Schulz
6c4360c951 Make use of Title::isSpecialPage() in various places 2011-11-02 20:55:08 +00:00
Sam Reed
1ba364df99 Update documentation
Fix some context method calls which were considered deprecated
2011-10-28 18:10:41 +00:00
Sam Reed
d8957aca62 Refactor variables to give somewhat useful names 2011-09-16 18:28:24 +00:00
Sam Reed
478a95fb13 Give a list of modules to query and action into paraminfo 2011-09-16 18:11:47 +00:00
Roan Kattouw
d8a2733757 Make the PROTO_ parameter to wfExpandUrl() explicit in all calls. There are now no calls to wfExpandUrl() in core that rely on PROTO_CURRENT being the default. Also switch to using getCanonicalUrl() for.... rel="canonical" :D (I picked the right name, I KNEW IT) 2011-08-19 15:46:08 +00:00
Sam Reed
a5628f5734 Based on diff to wikia, set more functions consistently public rather than protected 2011-08-17 22:24:21 +00:00
Roan Kattouw
fbdba8b26f Revert r93802 per CR. Will avoid cache pollution by splitting the cache instead 2011-08-03 07:54:23 +00:00
Roan Kattouw
541aa4cbdd Followup r92044: force HTTP on URLs output by the API, now that wfExpandUrl() has a flag for this 2011-08-03 07:05:21 +00:00
Sam Reed
ac0ff8fb37 Followup r92396 rename method, fix boolean comparison that was supposed to be inverted when de-indenting 2011-07-17 16:23:29 +00:00
Sam Reed
d18c0dc315 * (bug 28817) Add reference help page link to API Modules
Start of this bug, fleshed out base code implemented, plus a few key modules (will finish rest up soon)

Tweaked/improved/updated some documentation as I went through also
2011-07-17 16:18:09 +00:00
Roan Kattouw
7b8b23e8b4 Per wikitech-l, run a bunch of URLs in the API output through wfExpandUrl(), so they become fully-qualified even if they were originally protocol-relative 2011-07-13 01:27:07 +00:00
Sam Reed
8edf4a2d92 Fix trailing whitespace
Swap methods that call $this->getResult() to use temporary variable
2011-06-29 23:46:39 +00:00
Sam Reed
536a49efd7 Followup r89539, per CR, we don't need to append iw string as it already exists in rawTitleStr 2011-06-17 15:24:40 +00:00