Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Scratchy Extensions
- // @namespace http://aputurk.tk/
- // @include http://scratch.mit.edu/*
- // @version 0.0.1
- // @grant none
- // ==/UserScript==
- (function(){
- enabled = false;
- activate = function(){
- if(enabled)return true;
- var str = ($("#instructions textarea").length > 0) ? $("#instructions textarea").text() : $("#instructions .overview").text();
- var matches = str.match(/\$\{.+?\}/);
- console.log(matches);
- if(matches==null || matches.length==0)return 0;
- var jsonm = JSON.parse(matches[0].substring(1));
- if(jsonm.hasOwnProperty("requires") && jsonm['requires'] instanceof Array){
- var warning = "Warning! Loading arbitrary scripts can be dangerous! Make sure you trust the following extensions before continuing:\n\n";
- for(i in jsonm['requires'])warning+=jsonm['requires'][i]+"\n";
- warning+="\nClick OK to continue, or Cancel to prevent loading these extensions";
- if(confirm(warning)){
- for(i in jsonm['requires']){
- var scriptElement = document.createElement('script');
- scriptElement.src = jsonm['requires'][i].replace(/raw.githubusercontent.com/g, "cdn.rawgit.com");
- document.head.appendChild(scriptElement);
- }
- enabled = true;
- $("#enable-extensions").text("Enabled :)").css("background","#eee").css("border", "1px solid #ccc").css("color", "gray");
- return 1;
- }
- return -1;
- } else return 0;
- };
- $(document).ready(function(){
- if(location.href.match(/scratch.mit.edu\/projects\/[0-9]+/).length > 0){
- $("<div id='enable-extensions' class='button'><span>Enable Extensions</span></div>")
- .click(function(){
- var success = (activate)();
- if(success==0){
- $(this).text("No exts found").css("background","#eee").css("border", "1px solid #ccc").css("color", "gray");
- } else if(success==-1) {
- $(this).attr("style", "");
- }
- }).prependTo($("#project .buttons"));
- }
- });
- })();
Advertisement
Add Comment
Please, Sign In to add comment