Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter spam users from node.cached_likes calculations #8639

Closed
5 tasks
first-timers bot opened this issue Oct 20, 2020 · 2 comments · Fixed by #8645
Closed
5 tasks

Filter spam users from node.cached_likes calculations #8639

first-timers bot opened this issue Oct 20, 2020 · 2 comments · Fixed by #8645
Labels
first-timers-only They need to be well-formatted using the First-timers_Issue_Template. help wanted requires help by anyone willing to contribute

Comments

@first-timers
Copy link

first-timers bot commented Oct 20, 2020

Hi, this is a first-timers-only issue. This means we've worked to make it more legible to folks who either haven't contributed to our codebase before, or even folks who haven't contributed to open source before.

If that's you, we're interested in helping you take the first step and can answer questions and help you out as you do. Note that we're especially interested in contributions from people from groups underrepresented in free and open source software!

We know that the process of creating a pull request is the biggest barrier for new contributors. This issue is for you 💝

If you have contributed before, consider leaving this one for someone new, and looking through our general help wanted issues. Thanks!

🤔 What you will need to know.

Nothing. This issue is meant to welcome you to Open Source :) We are happy to walk you through the process.

📋 Step by Step

  • 🙋 Claim this issue: Comment below. If someone else has claimed it, ask if they've opened a pull request already and if they're stuck -- maybe you can help them solve a problem or move it along!

  • 📝 Update the file app/models/node.rb in the plots2 repository (press the little pen Icon) and edit the line as shown below.

See this page for some help in taking your first steps!

About this change

I noticed that we aren't filtering out spam users in the node.cached_likes calculation, which shows how many people liked a page (or node) -- this is affecting some page bugs like #8598 - but it's an easy fix!

Below is a "diff" showing in red (and a -) which lines to remove, and in green (and a +) which lines to add:

@@ -1037,11 +1037,16 @@ def is_liked_by(user)
   end
 
   def toggle_like(user)
-    nodes = NodeSelection.where(nid: id, liking: true).size
+    node_likes = NodeSelection.where(nid: id, liking: true)
+                              .joins(:user)
+                              .references(:rusers)
+                              .where(liking: true)
+                              .where('rusers.status': 1)
+                              .size
     self.cached_likes = if is_liked_by(user)
-                          nodes - 1
+                          node_likes - 1
                         else
-                          nodes + 1
+                          node_likes + 1
                         end
   end
 
  • 💾 Commit your changes

  • 🔀 Start a Pull Request. There are two ways how you can start a pull request:

  1. If you are not familiar with GitHub or the pull request model, here is a guide you can follow on how GitHub works.

  2. If you are familiar with the terminal or would like to learn to use it, here is a great tutorial on how to send a pull request using the terminal.

  3. You can also edit files directly in your browser and open a pull request from there.

  • 🏁 Done Ask in comments for a review :)

Please keep us updated

💬⏰ - We encourage contributors to be respectful to the community and provide an update within a week of claiming a first-timers-only issue. We're happy to keep it assigned to you as long as you need if you update us with a request for more time or help, but if we don't see any activity a week after you claim it we may reassign it to give someone else a chance. Thank you in advance!

If this happens to you, don't sweat it! Grab another open issue.

Is someone else already working on this?

🔗- We encourage contributors to link to the original issue in their pull request so all users can easily see if someone's already started on it.

👥- If someone seems stuck, offer them some help! Otherwise, take a look at some other issues you can help with. Thanks!

🤔❓ Questions?

Leave a comment below!

@first-timers first-timers bot added first-timers-only They need to be well-formatted using the First-timers_Issue_Template. help wanted requires help by anyone willing to contribute labels Oct 20, 2020
@AnneThor
Copy link
Contributor

Hi @jywarren, thank you for getting back to me so quickly! I would love to take this one! Much appreciated :)

@AnneThor
Copy link
Contributor

@jywarren let me know if there are any issues with that! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
first-timers-only They need to be well-formatted using the First-timers_Issue_Template. help wanted requires help by anyone willing to contribute
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant