Skip to content
This repository has been archived by the owner on Nov 21, 2022. It is now read-only.

Build Is misogynistic & Isn't misogynistic buttons and send tweet to external database #66

Open
6 tasks
malteserteresa opened this issue Nov 23, 2019 · 8 comments

Comments

@malteserteresa
Copy link
Member

malteserteresa commented Nov 23, 2019

Objective
Add buttons that allow the individual to correctly label a tweet and send this information to the external database.

Description

  • Depends on building a separate endpoint
  • Depends on GDPR** /[WIP] GDPR of alpha testing start-here#19
    In order to better understand the mis labelled tweets, we want to implement buttons that will update the status of the falsely labeled tweet and also inform us of the incorrect labeling, allowing us to better understand the false positives and negatives of our model

Flows
Only the cross-through functionality is available. When the user uses Twitter and they find:

  1. A tweet that is labeled as misogynistic and is not misogynistic
    They click isn't misogynistic button
    Tweet is sent to new API

  2. A tweet that is labeled as misogynistic and is misogynistic
    They do nothing

  3. A tweet that is not labeled as misogynistic and is not misogynistic
    They do nothing

  4. A tweet that is not labeled as misogynistic and is misogynistic
    They click is misogynistic button
    Tweet is sent to new API

Skills
JS

Tools
PFA wireframe:
report_buttons.pdf

Time Estimation

Task

  • Create separate branch called alpha (this is not to be merged into master as is only for specific users)
  • Disable make text invisible and completely remove options
  • Add buttons to each tweet -> is misogynistic/isn't misogynistic
  • Once clicked disable buttons
  • Hide/unhide the text locally
  • Send to endpoint
@malteserteresa malteserteresa added this to the Version 0.0.1 milestone Nov 23, 2019
@malteserteresa malteserteresa changed the title Build Opt Out button to remove misogynistic content Build Opt Out button to remove mis labelled misogynistic content and send tweet to external database Nov 24, 2019
@muaazsaleem
Copy link
Collaborator

corresponding backend change is: opt-out-tools/public_api#5

@malteserteresa
Copy link
Member Author

Relies on /pull/64 to be complete

@malteserteresa malteserteresa changed the title Build Opt Out button to remove mis labelled misogynistic content and send tweet to external database Build Opt Out & Opt In buttons and send tweet to external database Dec 6, 2019
@malteserteresa malteserteresa changed the title Build Opt Out & Opt In buttons and send tweet to external database Build Is misogynistic & Isn't misogynistic buttons and send tweet to external database Dec 6, 2019
ribicn-softerrific added a commit to ribicn-softerrific/opt-out that referenced this issue Dec 11, 2019
…istic` buttons

-disabled all other functionality except crossed-trough
-added injectReportMisogynisticButtons function
-found and inspected issue with memory leak
-fixed memory leak issue caused by repeated sending of already sent server requests
-added css for reportMisogynisticButtons and reportMisogynisticButtonsHolder
-added isn't and is misogynistic buttons creation in injectReportMisogynisticButtons function
-added event listener for clicks on document from reportMisogynisticButtons
-added reportMisogyny function for sending request for reporting tweet
-added permission in manifest.json for reporting tweet api
-fixed bug where text sent to prediction api has html code
ribicn-softerrific added a commit to ribicn-softerrific/opt-out that referenced this issue Dec 11, 2019
-add tweetId to sent object for api endpoint
-fixed hide/unhide locally
@ribicn-softerrific
Copy link
Collaborator

I have resolved tasks:

  • Disable make text invisible and completely remove options
  • Add buttons to each tweet -> is misogynistic/isn't misogynistic
  • Hide/unhide locally
  • Send to endpoint

I'll need a separate branch Alpha so I could make PR to it.

Questions:

  • For cases 1 and 4 when the user reports incorrect labels. After the button is clicked, should it be disabled after the click, so the user can't abuse it by sending multiple requests to the server??

  • In the current flow, the script injects two buttons (is and isn't misogynistic) to tweet.
    For example, we use case number 1, where the tweet is labeled as misogynistic and is not misogynistic.
    So isn't misogynistic button will send to server report that tweet actually isn't misogynistic, which is fine.
    But what should other button do, for the same tweet?
    a) Should it send to server report that tweet actually is misogynistic( so this can be abused as it can send opposite reports to the server)
    b) or should it do nothing, since tweet is already marked as misogynistic (maybe not add button at all)

Or did I understood wrong, and should inject only one button instead of two on a tweet?

  • Regarding the API:

For needed values:
text (string): the text of the tweet (html removed?)
tweet_id (string): ID of the tweet
prediction_value(float): the prediction value the model returned for the tweet
user_threshold (float): the current threshold value the user has set
model_version(int): the model version the prediction was made with

..I can generate text, and tweet_id, but those other 3 values I don't know what are they and should I generate them or not,
Also, how do I send to the server if the tweet is reported as misogynistic or not, and if I should send it at all since if we don't use other button or disable it (previous question) then I just need to send tweet text and id, and the server marks it opposite of what is currently marked?

@malteserteresa
Copy link
Member Author

  1. Branch: 0.1alpha

  2. Once the button has been clicked can we disable both buttons? That should stop any mis-labeling/abuse?

  3. These are values that the api is not sending up yet but will do, can you just put them in without values currently?

@ribicn-softerrific
Copy link
Collaborator

Thank you. That's what i needed.

@djbusstop
Copy link
Contributor

How is this implemented? A task this sprint is to document backend. Do we have an endpoint for this?

@djbusstop
Copy link
Contributor

Todo:
Backend
Product considerations
Design

@djbusstop
Copy link
Contributor

Stretch goal: personalised content that is hidden or not based on personal labelling

@djbusstop djbusstop added the epic label Apr 3, 2020
@djbusstop djbusstop removed this from the 0.1 milestone Apr 3, 2020
@ribicn-softerrific ribicn-softerrific added this to the 1.0.5 milestone May 19, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants