Posts

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

Setting Up for Second External Pull Request and Contribution to Telescope

Image
Our assignment for this week is the same as the assignment we had last week; to make a large contribution to one external project and to make a contribution to Telescope; our internal project. While I am still trying to decide on what issues I will tackle, I worked on a small fix for my contribution to Telescope from last week: spam-checker.js . The Issue In my last contribution, I created a spam checker that determined whether or no a post was spam using a combination of rules and a spam filter function. In my function, the blog post's body content was parsed before any of the checks were run, but if the blog's title was empty or marked as spam the body contents didn't need to be checked. A classmate suggested that I move the blog body parsing to after the title checks to save on resources if title checks failed and the body didn't need to be loaded. The original order of checks, body is parsed before any checks are run The Fix After moving the content par

External Pull Request and Creating a Spam Checker for Telescope

Image
This week I was working on two projects: fixing an error with Pokemon Showdown's downloaded match replays, and creating a spam checker for Telescope Pokemon Showdown Client The Issue   Resume button appears under Play button on launch The external issue I worked on was preventing the Resume button from appearing behind the Play button when viewing a downloaded replay from Pokemon Showdown: something I thought would be more complex than it ended up being, having worked with Pokemon Showdown before. The Fix After finding the class I had to work on, replay-embed.js,  I had to figure out how downloaded replays worked with replay-embed. While waiting for a response from Zarel, I tried generating a replay using my cloned version for Pokemon Showdown Client to no avail. Eventually, I learned from Zarel that the replay file has to be edited so that the script source points to my version of replay-embed. I changed the path to the filepath to my copy of replay-embed, but the bat

Starting on Telescope and Finding a New Issue

With Hacktoberfest behind us, our next assignments are to make a large contribution to an open source project, and to develop features for Telescope , a site where blog posts across numerous websites are condensed into a single feed. Working with Telescope Telescope requires the Redis database and caching service, meaning I will have to set up Redis on my system before working on any issues. Currently I'm running into issues with this, but I should be able to resolve it by the end of the weekend. Telescope Issue For my contribution to Telescope, I will be creating a spam checker that detects and removes blog posts that could potentially be spam. While setting up Redis, I have been reading up on spam checking methodology in order to get an idea of what rules I should implement. So far I have decided to check for image-only posts, as well as for posts that use excessive capitalization. I should also come up with a dictionary of phrases that indicate that a post is potentiall

Final Week of Hacktoberfest

Image
For the final week of Hacktober, I contributed to Quaco, a Content Management System, and continued my contribution to Pokemon Showdown from last week. Quaco As I would be working on 2 issues this week, I chose a simple task for my new pull request: editing a readme.  The Issue Section of the original readme Quaco is a Content Management System for building webpages, similar to Wordpress. The issue involved fixing spelling and grammatical errors in the readme, but I also tried to make the overall structure of their readme more consistent. The Fix Edited version of the readme I looked over the readme and fixed any spelling or grammatical errors I could find. In addition to this, I changed the format of the first 5 points to all be questions and changed the points under "10 reasons why Quaco might interest you" to be more about Quacos features rather than their ideals. Pokemon Showdown Client The larger portion of my contributions this week was towards worki

Week 3 of Hacktoberfest

Image
For the third week of Hacktoberfest, I submitted my own issue for the Pokemon Showdown Client , the client for Pokemon Showdown , a competitive Pokemon battling simulator. I then worked on and created a pull request for that issue. Pokemon Showdown's main menu The Issue While searching for a good project to contribute to, I was playing matches against a friend in Pokemon Showdown. After each match, I had to search for his username in order to rematch which I thought was inconvenient. I later learned that clicking on usernames outside the private message window's header lets you challenge a player more quickly, as well as that selecting rematch after a match still allows you to modify your team before entering a match. However, I still thought it was odd that you couldn't challenge someone from the private message window. No option to challenge without messages in the private message window After looking over the source code, I determined that implementin