-
Couldn't load subscription status.
- Fork 3
Description
The current implementation for picking a name from the YorubaName dictionary and tweeting it is not efficient.
Right now, the bot follows the following steps to tweet:
- Queries the YorubaName end point for 5000 names
- (by calling http://www.yorubaname.com/v1/names?count=5000)
- Randomly picks a name from the returned 5000 names
- (by shuffling the returned array and picking the first element)
- Tweeting the picked name
Having to query the API for 5000 names, only to pick one to tweet is very inefficient.
Another thing being omitted is the status of the name to be tweeted. Currently, there is no check in place to ensure that the randomly selected name is actually in a PUBLISHED state. Only names in PUBLISHED state should be tweeted as those are the ones publicly available in the dictionary.
This GitHub issue is to note this short-comings and to provide a fix by implementing a more efficient way to retrieve name to be tweeted while taking into consideration the published state.
The current API of YorubaName does not make it straightforward to randomly pick a name, but a suggestion that would be more efficient than the current implementation would be to:
- Instead of using only the
countquery parameter on the/v1/namesendpoint, use a combination of the following supported query parameters:page,countandstateto build a more efficient query, eg:
v1/names?count=[random count with a reasonable upper limit]&page=[random selected page number]&state=PUBLISHED
Check the YorubaName Swagger API page to explore the available endpoints.