Posts

Showing posts from December, 2019

Adding 'Favorite' System to Pokemon Showdown: External Pull Request and Final Week of OSD600

Image
Despite saying I wanted to work on a new repo for my final external pull request, after not being able to find a suitable issue, I ended up contributing to the Pokemon Showdown Client again. This time, I added an even larger feature than my last one: a 'favoriting' system that lets users quickly access users they play with frequently. The Issue Currently, the only way to match up with specific users on Pokemon Showdown is to either search them by username, or to find them in the chatrooms. However, the username search system requires an exact username, and turns up a result even if no user exists under that name. You'd only find out the account doesn't exist once you try to send a message or start a match. Opened chat even though user doesn't exist The Fix The solution I decided on was to allow users to 'Favorite' other users, allowing them to be quickly found later. Toggling favorite/unfavorite The first thing I did was add the '

Reading Level in Telescope: Internal Contribution

Image
Last week, I completed my internal pull request for this assignment: implementing reading-level. The Issue Lozinska suggested that we implement a feature to measure the writing level of blog posts, and  cyh0968 suggested we use the reading-level node. The Fix After installing reading-level,  I read up on the documentation to figure out how to use it and what it was returning. I learned that calling reading-level with the arguments 'full' and the text to be analyzed returns an object containing the reading level among other things. I created reading-level.js and exported the reading-level function. Exporting reading-level After finishing reading-level.js, I began creating tests for the feature. I found example data in the documentation and decided to use it for the tests, as I knew what the results should be. I decided to compare the unrounded reading level in the tests as I figured that was the most important value in the returned object. I also made sure to test