Mobile web projects/Collections Backend
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. This is a failed proposal related to Gather. |
Overview
[edit]This documentation should correspond with the http://localhost:8080/w/api.php?action=help&modules=editlist%7Cquery+lists%7Cquery+listpages
action=editlist
[edit]Create, edit, or delete a list. If list ID is given, treat this as an edit request. If only label is given, treat as a creation request. All other parameters are optional. If given, they set/modify list information. If missing, no changes are done to them. To delete an existing list, use the deletelist=1 parameter.
This action also allows pages to be added or removed from the list. Just like action=watch, it supports titles, pagids, revids, and generator queries.
Result |
---|
{
"editlist": {
"id": "12345",
"status": "created"
}
}
|
Result |
---|
{
"editlist": {
"id": "12345",
"status": "updated"
}
}
|
Parameters
[edit]id
: List ID of the existing list you want to edit.label
: Title of the list you want to create (if id is not given), or new label if it already exists.description
: List description (optional)remove
: If set, pages will be removed rather than added (optional,id
must be present)deletelist
: Boolean - if given, the list will be deleted (optional,id
must be present)token
: A "watch" token retrieved from action=query&meta=tokens (TBD)- To specify titles for addition (or removal with
remove=
), use any of the title querying methods liketitles
,pageids
, orgenerator
.
Notes
[edit]- Each list must have a non-empty label
- Legacy watchlist's label is always the localized word "Watchlist" and cannot be changed
- Legacy watchlist ID is a regular non-zero list ID, but can also be accessed by setting id=0
Statuses
[edit]- created: new list was created
- updated: existing list was updated. This status is returned even if no actual changes were done to the list
- unchanged: the new values are the same as existing, no changes were made
- deleted: list was deleted
Errors
[edit]- badid: list id does not exist
- exists: a list with this label already exists
- noidlabel: either label or id must be given
- noid: id must be given
action=query & list=lists
[edit]List all available lists. For now, lists only lists that belong to a current user. Eventually might make it possible to enumerate lists of other users.
Result |
---|
{
"query": {
"lists": [
{
"id": 12345,
"label": "Heroes",
"desc": "Some description"
},
...
]
}
}
|
Parameters
[edit]lstprop
: Optional list of values to get in addition to id. Default = label. Can be label, desc, eventually - flags, etc.lstids
: Optional list id to limit info to just these listslstlabel
: Optional list label to limit info to just one list
action=query & list=listpages
[edit]List all pages in a list. This list can be used as a generator. Eventually this module may support the same parameters as in query/allpages, and/or replace the query/watchlistraw.
Result |
---|
{
"query": {
"listpages": [
{
"pageid": 5678902,
"ns": 0,
"title": "Superman"
},
...
]
}
}
|
Parameters
[edit]lspid
: Which list to show. By default shows list 0 (watchlist)lsplabel
: Optional list label to limit info to just one list
Archive
[edit]This is a draft space for Collections, spring zero backend spike results
Non-MVP Collections schema draft
[edit]Collections table:
- collection_id ( auto increment )
- user_id ( index )
- label
- description
- private flag ( default false )
- timestamp ( time created )
Collection_pages table
- item id ( auto increment )
- collection id ( index )
- page id
- order ( default 0 )
- timestamp ( time added )