Clickbait: Choptones - 10th Anniversary Discount

Discussion in 'Internet for Musician' started by Edi Tharebeu, Feb 20, 2024.

  1. Edi Tharebeu

    Edi Tharebeu Newbie

    Joined:
    Feb 20, 2024
    Messages:
    5
    Likes Received:
    0
    Choptones recently started to collect your email-adresses with a spin-wheel game, promising up to 60% discount. But they play unfair, you will never reach more than 40%! It´s poorly implemented and generated at the backend, you just have to refresh (F5) this link again and again (best with Firefox, it does format the response): https://www.choptones.com/apps/[email protected]&emailAndSMS=&extraFields=[]

     
  2.  
  3. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    1,029
    Likes Received:
    773
    People say JST and Spitfire did the exact same thing with their spin to win games around Christmas/ New Years.
     
  4. Edi Tharebeu

    Edi Tharebeu Newbie

    Joined:
    Feb 20, 2024
    Messages:
    5
    Likes Received:
    0
    Here is ChatGPT-generated python-script which proofs it, you can run it for hours and never hit 50% or 60%:
    Code:
    import requests
    import random
    import time
    import sys
    import logging
    
    logging.basicConfig (filename="ChoptonesDiscount.log",
                    filemode='a',
                    format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
                    datefmt='%H:%M:%S',
                    level=logging.INFO)
    
    def fetch_and_parse_json (url):
        try:
            headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0"}
            response = requests.get(url, headers=headers)
            response.raise_for_status()  # raise an exception for bad status codes
    
            # Parse JSON data
            json_data = response.json()
    
            return json_data
    
        except requests.exceptions.RequestException as e:
            print (f"Error fetching data from {url}: {e}")
            logging.info (f"Error fetching data from {url}: {e}")
            return None
    
    def main():
        website_url = "https://www.choptones.com/apps/ea-spin-wheel/api/submitEmailOrSmsAndGetDiscount?shop=choptones.myshopify.com&[email protected]&emailAndSMS=&extraFields=[]"
        max_amount = 60
    
        counter = 1
        while True:
    
            # Fetch and parse JSON data
            json_data = fetch_and_parse_json (website_url)
    
            if json_data:
                try:
                    discType = json_data['selectedWheelOption']['discType']
                    if (discType == "% Discount"):
                        discAmount = json_data['selectedWheelOption']['discAmount']
                        discCode = json_data['discountCode']
                        endTime = json_data['validityPeriod']['end']
                        chance = json_data['selectedWheelOption']['chance']
                        # process the JSON data
                        print (f"{discAmount}% : {discCode} : {endTime} (run: {counter}, chance: {chance})")
                        logging.info (f"{discAmount}% : {discCode} : {endTime} (run: {counter}, chance: {chance})")
                        if (discAmount == max_amount or discAmount == str(max_amount)):    # 10 (better next time) comes as numerical, other discounts come as strings
                            print (f"\n######## FOUND {max_amount}%: {discCode} ########\n")
                            logging.info (f"\n######## FOUND {max_amount}%: {discCode} ########\n")
                            sys.exit()
                    elif (discType == "No Discount"):
                        print (f"----- Better next time! ----- (run: {counter}, type: {discType})")
                        logging.info (f"----- Better next time! ----- (run: {counter}, type: {discType})")
                    else:
                        print (f">>>>> Unknown Type >>>>> (run: {counter}, type: {discType})")
                        logging.info (f">>>>> Unknown Type >>>>> (run: {counter}, type: {discType})")
                except Exception as e:
                    print (f"Exception: {e}")
                    logging.info (f"Exception: {e}")
    
            counter += 1
    
            # random delay before the next request
            sleepTime = random.uniform (100, 500)
            time.sleep (sleepTime / 1000)
    
    if __name__ == "__main__":
        main()
     
  5. shinyzen

    shinyzen Rock Star

    Joined:
    Sep 28, 2023
    Messages:
    560
    Likes Received:
    385
    lame trickery!
     
  6. choptones

    choptones Newbie

    Joined:
    Feb 21, 2024
    Messages:
    2
    Likes Received:
    0
    Best Answer
    Hi there!
    This is totally fake, because several customers got a 60% discount. Obviously is not easy as take a smaller discount, but definitely is possible.
    The main issue is who cheats trying to force the system, like you’ve just tried to do.
     
  7. odod

    odod Rock Star

    Joined:
    Jun 5, 2011
    Messages:
    816
    Likes Received:
    401
    i just tried it .. didnt get anything :( aka better luck next time
     
  8. choptones

    choptones Newbie

    Joined:
    Feb 21, 2024
    Messages:
    2
    Likes Received:
    0
    You could fairly try again everyday, and definitely the chance to get a discount is way bigger than get nothing :)
     
  9. Tuvaq

    Tuvaq Newbie

    Joined:
    Feb 22, 2024
    Messages:
    1
    Likes Received:
    0
    First of all: I really like your products and winning a discount is always highly appreciated by me! :)

    Cheater is a strong word, especially in this case. Just be better and do your job well! I've checked the approach described in the first post. My thoughts:
    • How can someone be a cheater when the rules of the game are not properly explained to them, nor have to be accepted? When you open the page, a popup appears and off you go...
    • How can someone be a cheater just because they press F5? You can easily get the link to play if you press F12 in the browser and check the data that is sent back and forth from and to you. With F5 you can submit over and over again
    • Why don't you install effective countermeasures?
    1. Check how many times per day the same email address is played?
    2. Check HTTP referrer?
    3. Registration? But from then on, fishing for email addresses wouldn't be as effective, right? ;)
    • Your argument that everyone can win 50% or 60% does not correspond to a realistic practice. You ask why? You make the mistake of transferring the winning-probability to the browser when you transmit the spinning-result. Everyone can see the information! In the result you say that there is a 1% chance to win a 40% discount, then what are the chances of getting 50% or even 60%? Let me answer for you: 0
     
Loading...
Similar Threads - Clickbait Choptones 10th Forum Date
Out Now: Choptones Metal Pack vol 3 Cabinet IR Guitars Aug 25, 2022
Loading...