Skip to content

Conversation

@CubesterYT
Copy link
Member

Hello all!

The time has finally come, the long awaited successor to the horrendous extension that is "TurboHook". Under code name "TurboHook V2", this extension took time to develop as I waited for certain APIs to happen (extension storage my beloved), and also just forgetting about the extension in the first place 😅. I deemed it smart to make this a whole new extension entirely, and TurboHook will now be hidden.

Video Example:

2025-01-16.23-49-59.mp4

Honestly, I'm going to consider this extension my Magnum Opus at the moment, since this represents my growth since I first contributed here. The difference between TurboHook and this extension is insane.

@CubesterYT CubesterYT requested a review from a team January 17, 2025 06:43
@github-actions github-actions bot added the pr: new extension Pull requests that add a new extension label Jan 17, 2025
@CubesterYT CubesterYT requested a review from a team January 18, 2025 00:14
Copy link
Collaborator

@SharkPool-SP SharkPool-SP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems good now

Thebloxers998

This comment was marked as abuse.

@CubesterYT CubesterYT requested a review from a team January 18, 2025 21:12
@CubesterYT CubesterYT requested a review from a team January 19, 2025 03:03
Thebloxers998
Thebloxers998 previously approved these changes Jan 19, 2025
Copy link

@yuri-kiss yuri-kiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

last change then im gonna review the docs

Copy link
Member

@GarboMuffin GarboMuffin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you need to await prompt() so that it works in the desktop app

ill read the rest of it later today

@CubesterYT
Copy link
Member Author

CubesterYT commented Jan 20, 2025

you need to await prompt() so that it works in the desktop app

ill read the rest of it later today

OHHHH SO THAT'S WHY IT BROKE IN THE DESKTOP APP DURING MY TESTING

I'll get to fixing it

…ense since it wont be null when restoring storage that already exists
@GarboMuffin GarboMuffin changed the title Webhooks extension (The defacto TurboHook replacement) New extension: Webhooks (TurboHook replacement) Jan 20, 2025
@GarboMuffin
Copy link
Member

GarboMuffin commented Jan 20, 2025

  1. make a project with a webhook
  2. save it
  3. reload the page
  4. load saved project
  5. all the blocks are still hidden

@GarboMuffin
Copy link
Member

dont like how empty try/catch is being used everywhere to handle errors

as it is right now a project can make a block that contains something like toString as the menu name and then store data on Object.prototype.toString.DATA and Object.prototype.toString.TYPE which probably doesn't break anything but it's definitely not great to do that. better to check if the webhook exists first

@GarboMuffin
Copy link
Member

TurboHook still has functionality that this doesn't have, specifically the ability to send to arbitrary webhooks not known until runtime

@CubesterYT
Copy link
Member Author

This is for sending webhooks, which is already possible, this is just a more elegant way

Do you want webhooks the other direction?

@GarboMuffin I think I mentioned this in passing a year ago during TurboHook, but I had an idea where we could have our own webhook system as well to allow users to make their own Webhooks and receive data. We could incorporate this with this extension.

@Brackets-Coder
Copy link
Contributor

This is for sending webhooks, which is already possible, this is just a more elegant way

Do you want webhooks the other direction?

Yes, I'm aware it was already possible, I'm just remarking at how much better this extension is than TurboHook

I think webhooks in both directions would be fantastic

@yuri-kiss

This comment was marked as abuse.

@GarboMuffin
Copy link
Member

Using this pull request to test something with the bot !format

@github-actions
Copy link

github-actions bot commented Feb 7, 2025

The formatting bot didn't find any formatting issues. It currently only checks the extensions folder. To format all files, the pull request's author can manually run the 'Format pull request' workflow from the 'Actions' tab on the fork.

SharkPool-SP
SharkPool-SP previously approved these changes Feb 7, 2025
@GarboMuffin GarboMuffin dismissed stale reviews from SharkPool-SP and Thebloxers998 November 17, 2025 23:21

Dismissing old approvals so that moving forward everything follows #2327

@CubesterYT
Copy link
Member Author

What's the status of this PR as of right now?

@SharkPool-SP
Copy link
Collaborator

You need to restart the review process cuz if the new rules

@CubesterYT CubesterYT requested review from a team and removed request for GarboMuffin December 14, 2025 17:59
@SharkPool-SP
Copy link
Collaborator

SharkPool-SP commented Dec 18, 2025

  • I verified that the extension follows all acceptance criteria and guidelines in CONTRIBUTING.md.
  • I believe the block list is well-designed and intuitive.
  • I tested all functionality and found no bugs, security flaws, or unintuitive behavior.
  • I reviewed the code and believe it is well-written and easy to maintain or extend in the future, even without help from the original author.
  • I have no additional concerns.

@CubesterYT
Copy link
Member Author

!format

@Brackets-Coder
Copy link
Contributor

I'll have to take a look tomorrow

Copy link
Contributor

@Brackets-Coder Brackets-Coder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I verified that the extension follows all acceptance criteria and guidelines in CONTRIBUTING.md.

  • I believe the block list is well-designed and intuitive. - see note on hidden blocks, otherwise it's fine

  • I tested all functionality and found no bugs, security flaws, or unintuitive behavior. - haven't tested this yet, this is a skim review

  • I reviewed the code and believe it is well-written and easy to maintain or extend in the future, even without help from the original author.

  • I have no additional concerns.

If you could clarify some of my confusion I'd appreciate it, thanks so much!

@CubesterYT
Copy link
Member Author

@Brackets-Coder Have you even tried loading the extension into TurboWarp, lol?

  • The extension storage data doesn't exist till runtime, so ignore the type check
  • addWebhook isn't a block, it's a button. The entire palette is hidden unless you have a webhook added already. The button is meant for adding webhooks, etc. Think of it like the variables or lists categories.
  • Thanks! I made the banner in inkscape.

@CubesterYT
Copy link
Member Author

If anything, the video attached to this PR shows exactly how this works.

@Brackets-Coder
Copy link
Contributor

I have in the past and I did just now, the review a few minutes ago was a quick skim

Sorry for the confusion about the hidden blocks

My concern about the security of sending user data still applies. Am I simply misunderstanding something again? Can the JSON parsing be exploited or is basically everything sanitized before posting? (Of course, most URLs would also have validation on their end...)

@CubesterYT
Copy link
Member Author

This extension only sends data to the defined URLs. There is no security needing to be done on our part, because we're assuming the URLs that get data pushed through accept only the data that it needs (like usual)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr: new extension Pull requests that add a new extension

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants