Cygnus issueshttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues2017-12-19T00:04:54Zhttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/7Get a uniform format for API-Urls2017-12-19T00:04:54ZLuke081515luke081515@tools.wmflabs.orgGet a uniform format for API-UrlsWhen formatting an API URL there are several ways at the moment, one is putting all the extra rubish in one line. That's not that readable, additionally phpcs freaks out when it sees that. So we need a good way to format all these URLs. What format do you prefer?
I prefer something like:
```
$data = 'action=watch'
. '&format=json'
. '&unwatch=' . $unwatch
. '&titles=' . urlencode($title)
. '&token=' . urlencode($token)
. '&assert=' . $this->assert
. '&maxlag=' . $this->maxlag;
```
(From merge request 5)
Easy to read, but tends to get long.When formatting an API URL there are several ways at the moment, one is putting all the extra rubish in one line. That's not that readable, additionally phpcs freaks out when it sees that. So we need a good way to format all these URLs. What format do you prefer?
I prefer something like:
```
$data = 'action=watch'
. '&format=json'
. '&unwatch=' . $unwatch
. '&titles=' . urlencode($title)
. '&token=' . urlencode($token)
. '&assert=' . $this->assert
. '&maxlag=' . $this->maxlag;
```
(From merge request 5)
Easy to read, but tends to get long.Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/4Allow the use of the watchlist2018-01-22T11:30:29ZLuke081515luke081515@tools.wmflabs.orgAllow the use of the watchlistIn general you can track changes with the watchlist. It can be useful to use this feature. We should:
* [x] create a function that allows watching and unwatching of pages
* [x] make sure that no other functions are watching or unwatching pages
* [ ] create a function that reads out the watchlistIn general you can track changes with the watchlist. It can be useful to use this feature. We should:
* [x] create a function that allows watching and unwatching of pages
* [x] make sure that no other functions are watching or unwatching pages
* [ ] create a function that reads out the watchlistVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/79Use similar layout for the docu2018-01-29T01:19:19ZLuke081515luke081515@tools.wmflabs.orgUse similar layout for the docuCurrently the order of @param, @author etc. is different, it would be useful to make that similar.
I'd say we can do:
```php
/** method name
* Short description
* @author Authorname
* @param $param - text here
* @param $param - [default: default value] - text
* @return type: text
*/
```Currently the order of @param, @author etc. is different, it would be useful to make that similar.
I'd say we can do:
```php
/** method name
* Short description
* @author Authorname
* @param $param - text here
* @param $param - [default: default value] - text
* @return type: text
*/
```Version 2.1Luke081515luke081515@tools.wmflabs.orgLuke081515luke081515@tools.wmflabs.orghttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/14Write automatic tests for each function2017-11-09T15:12:30ZLuke081515luke081515@tools.wmflabs.orgWrite automatic tests for each functionIt would be great if we can build a script which checks every function against each single return possiblity, and then submit this script to the pipeline for each new commit.It would be great if we can build a script which checks every function against each single return possiblity, and then submit this script to the pipeline for each new commit.Version 2.2Luke081515luke081515@tools.wmflabs.orgLuke081515luke081515@tools.wmflabs.orghttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/28Generate CodeCoverage Report2018-01-10T21:30:29ZLuke081515luke081515@tools.wmflabs.orgGenerate CodeCoverage ReportIt would be nice if pipeline can generate a CodeCoverage report, phpunit supports that, but needs to be configured.It would be nice if pipeline can generate a CodeCoverage report, phpunit supports that, but needs to be configured.Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/32General handling for warnings2017-11-09T14:27:53ZLuke081515luke081515@tools.wmflabs.orgGeneral handling for warningsAs seen in #31 it would be nice if we can display or log warnings. In this case I discovered that problem only because I ran debug with the new verbose-debug mode. That is optimal, as warnings may useful as well for the developers. Additionally, if we are handling warnings better, we can make unit tests fail as well.
What's better, displaying or logging warnings? And at which place to we want to catch them? Each function or maybe httpRequest? httpRequest has the problem of different formats, if old functions are using format=php, httpRequest can't search for the json part. Or implement an extra function for that?
@freddy2001 Your thoughts?As seen in #31 it would be nice if we can display or log warnings. In this case I discovered that problem only because I ran debug with the new verbose-debug mode. That is optimal, as warnings may useful as well for the developers. Additionally, if we are handling warnings better, we can make unit tests fail as well.
What's better, displaying or logging warnings? And at which place to we want to catch them? Each function or maybe httpRequest? httpRequest has the problem of different formats, if old functions are using format=php, httpRequest can't search for the json part. Or implement an extra function for that?
@freddy2001 Your thoughts?Version 2.2FreddyFreddyhttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/33make the bot able to read/write from wikibase2018-01-30T22:29:41ZLuke081515luke081515@tools.wmflabs.orgmake the bot able to read/write from wikibaseoriginally from https://rcm-2.wmflabs.org/T905
The bot should be able to interact with wikibase. Not sure if we should insert that into BotCore or write a seperate class.originally from https://rcm-2.wmflabs.org/T905
The bot should be able to interact with wikibase. Not sure if we should insert that into BotCore or write a seperate class.FreddyFreddyhttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/39All write methods should check AllowBots2017-12-19T00:04:40ZLuke081515luke081515@tools.wmflabs.orgAll write methods should check AllowBotsWe have already `AllowBots()`, it's checking pages, if editing them. But we should also check on deleting, protecting etc.We have already `AllowBots()`, it's checking pages, if editing them. But we should also check on deleting, protecting etc.Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/41Implement massmessage2017-12-20T21:33:13ZLuke081515luke081515@tools.wmflabs.orgImplement massmessageAPI-function massmessage should be implementedAPI-function massmessage should be implementedVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/43Implement function "revisiondelete"2017-12-20T21:35:21ZLuke081515luke081515@tools.wmflabs.orgImplement function "revisiondelete"Write a function to use that API-functionWrite a function to use that API-functionVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/45Implement function "setPageLanguage"2017-12-20T21:36:56ZLuke081515luke081515@tools.wmflabs.orgImplement function "setPageLanguage"Should be implemented to use that functionShould be implemented to use that functionVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/46Implement function "clientlogin"2017-12-20T21:38:45ZLuke081515luke081515@tools.wmflabs.orgImplement function "clientlogin"To support logging in via normal data without botpasswords.To support logging in via normal data without botpasswords.Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/47Implement function "prop=deletedrevisions"2017-12-20T21:39:50ZLuke081515luke081515@tools.wmflabs.orgImplement function "prop=deletedrevisions"It should be possible to query deleted versionsIt should be possible to query deleted versionsVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/48Implement function "fileusage" / "globalusage"2017-12-20T21:40:44ZLuke081515luke081515@tools.wmflabs.orgImplement function "fileusage" / "globalusage"for querying file datafor querying file dataVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/49Implement function "pro=pageviews"2017-12-20T21:41:40ZLuke081515luke081515@tools.wmflabs.orgImplement function "pro=pageviews"Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/50Implement function "list=alldeletedrevisions"2017-12-20T21:42:49ZLuke081515luke081515@tools.wmflabs.orgImplement function "list=alldeletedrevisions"For usage like: get all deleted revisions where the author is user xFor usage like: get all deleted revisions where the author is user xVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/51Implement list=checkuser / list=checkuserlog2017-12-20T21:43:24ZLuke081515luke081515@tools.wmflabs.orgImplement list=checkuser / list=checkuserlogVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/52Implement list=logevents2017-12-20T21:44:19ZLuke081515luke081515@tools.wmflabs.orgImplement list=logeventsto read out logs etc.to read out logs etc.Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/53Implement list=usercontrib2017-12-20T21:45:46ZLuke081515luke081515@tools.wmflabs.orgImplement list=usercontribVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/56Write tutorial for Cygnus2017-12-25T22:21:14ZFreddyWrite tutorial for CygnusA tutorial with the basic functions of Cygnus (read, edit, ...) would be helpful for someA tutorial with the basic functions of Cygnus (read, edit, ...) would be helpful for somehttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/57Implement system to show API-Warnings2018-01-30T22:28:03ZLuke081515luke081515@tools.wmflabs.orgImplement system to show API-WarningsIf there are API warnings these should get shown to the user. Currently these warnings are not handeled.If there are API warnings these should get shown to the user. Currently these warnings are not handeled.Version 2.1Luke081515luke081515@tools.wmflabs.orgLuke081515luke081515@tools.wmflabs.orghttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/59Add functions to DBCore2018-06-11T09:29:51ZFreddyAdd functions to DBCoreSome functions for DBCoreSome functions for DBCoreVersion 2.2FreddyFreddyhttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/73Write a generic query continue2018-01-09T19:41:46ZLuke081515luke081515@tools.wmflabs.orgWrite a generic query continue!77 inspired me. What do you think of:
**A generic query continue!**
The concept itself is simple and nice, implementation may be not.
# What the function does
## Conditions for using
Query functions often have more results then the limit allows, so continue is needed. Currently the functions are doing this until all results are fetched. This may be useless if the user only needs 7000 for example.
## Calling it
Functions are reciving the continue. This continue has a name as well (if using rawcontinue, we may switch to the other continue), so the continue engine can get called, with the params `continuename `and `api-call url` at least. The function will start fetching everything then. It would be useful to implement that recursive, but PHP allows only 50 levels of recursive functions IIRC
# Nice additional features
The user can specify a limit, and the function tries to fetch as much as possible data, if [limit] > [limit of data to fetch in one request]. Then, the function will continue, until the limit is reached.
Please share your opinion on this proposal with me.!77 inspired me. What do you think of:
**A generic query continue!**
The concept itself is simple and nice, implementation may be not.
# What the function does
## Conditions for using
Query functions often have more results then the limit allows, so continue is needed. Currently the functions are doing this until all results are fetched. This may be useless if the user only needs 7000 for example.
## Calling it
Functions are reciving the continue. This continue has a name as well (if using rawcontinue, we may switch to the other continue), so the continue engine can get called, with the params `continuename `and `api-call url` at least. The function will start fetching everything then. It would be useful to implement that recursive, but PHP allows only 50 levels of recursive functions IIRC
# Nice additional features
The user can specify a limit, and the function tries to fetch as much as possible data, if [limit] > [limit of data to fetch in one request]. Then, the function will continue, until the limit is reached.
Please share your opinion on this proposal with me.Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/75Put generic API-params in a function2018-01-30T12:43:13ZLuke081515luke081515@tools.wmflabs.orgPut generic API-params in a functionEach function needs maxlag. Each function needs assert, or at least most. It would be nice if we can put this to a function that get called on each api-call.Each function needs maxlag. Each function needs assert, or at least most. It would be nice if we can put this to a function that get called on each api-call.Version 2.2Luke081515luke081515@tools.wmflabs.orgLuke081515luke081515@tools.wmflabs.orghttps://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/81Ban serialized arrays as return value2018-01-12T23:53:10ZLuke081515luke081515@tools.wmflabs.orgBan serialized arrays as return valueSerialized Arrays as return value are bad. The user needs to take care of the API-Answer then. The function should do that for him instead.
Current functions using serialized Arrays:
* [ ] `movePage()`
* [ ] `getCatMembers()`
* [ ] `getPageCats()`
* [ ] `getAllEmbedings()`
* [ ] `getAllPages()`Serialized Arrays as return value are bad. The user needs to take care of the API-Answer then. The function should do that for him instead.
Current functions using serialized Arrays:
* [ ] `movePage()`
* [ ] `getCatMembers()`
* [ ] `getPageCats()`
* [ ] `getAllEmbedings()`
* [ ] `getAllPages()`Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/82Implement action=clientlogin2018-01-13T00:12:33ZLuke081515luke081515@tools.wmflabs.orgImplement action=clientloginSee #31 for the original issue. We maybe want to implement action=clientloginSee #31 for the original issue. We maybe want to implement action=clientloginVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/90Check if a username looks like an IP2018-02-11T12:08:01ZLuke081515luke081515@tools.wmflabs.orgCheck if a username looks like an IPSee https://gitlab.wmflabs.org/Cygnus/Cygnus/issues/11#note_854See https://gitlab.wmflabs.org/Cygnus/Cygnus/issues/11#note_854Version 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/97Take assert to the password2018-06-11T09:29:31ZLuke081515luke081515@tools.wmflabs.orgTake assert to the passwordMost accounts have a botflag or not, so it would be useful to set the assert value with the account credentials in Password.phpMost accounts have a botflag or not, so it would be useful to set the assert value with the account credentials in Password.phpVersion 2.2https://gitlab.wmflabs.org/Cygnus/Cygnus/-/issues/98Ensure user is logged in2018-06-11T09:29:21ZLuke081515luke081515@tools.wmflabs.orgEnsure user is logged inEnsure that the user is still logged in, or do a relogin.Ensure that the user is still logged in, or do a relogin.Version 2.2