Codeskulptor Brython

Add the Brython python interpreter to CodeSkulptor

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name       Codeskulptor Brython
// @namespace  http://mcimino.reaktix.com/
// @version    0.1
// @description  Add the Brython python interpreter to CodeSkulptor
// @match      http://www.codeskulptor.org/*
// @copyright  2012+, Saibotshamtul
// ==/UserScript==

function BrythonSetup(){
	__BRYTHON__.stdout={write:Sk.output};
	__BRYTHON__.stderr={write:Sk.debugout};
	__BRYTHON__.VFS.simplegui = [".js",Sk.builtinFiles.files['src/lib/simplegui/__init__.js']+";var $module=$builtinmodule;"];
	__BRYTHON__.VFS.simpleplot = [".js",Sk.builtinFiles.files['src/lib/simpleplot/__init__.js']+";var $module=$builtinmodule;"];
    
    brython({debug:1})
}

b = document.createElement("button")
b.id="runb"
b.accessKey="T"
b.title="Run using Brython (Accesskey T)"
b.className="tb-button-icon ui-button ui-widget ui-corner-all ui-button-icon-only ui-state-default"
b.style.cssText="background:#faa;border:1px solid #faa;"

$("#controls")[0].children[0].appendChild(b)

b.onmouseover=function(){
    runb.classList.remove("ui-state-default")
    runb.style.border="1px solid rgb(0,36,106)"
}
b.onmouseout=function(){
    runb.classList.add("ui-state-default")
    runb.style.border="1px solid #faa"
}
//b.onclick=function(){
//    brython(1)
//}
b.onfocus=function(){
    //this.onmouseout()
    runb.blur()
}
b.onblur=function(){
    //this.onmouseover()
}
a = document.createElement("span")
a.className="ui-button-icon-primary ui-icon ui-icon-play"
b.appendChild(a)

a = document.createElement("span")
a.className="ui-button-text"
b.appendChild(a)

//$("#controls")[0].children[0].appendChild(b)

a = document.createElement("script")
a.type="text/python"
a.id="brycode"
//c = "from browser import alert;alert('hi');"

c = (function(){/*
from browser import document,alert
import traceback

def runcode(ev):
    document["reset"].click()

    a = ""
    b=document.get(selector=".CodeMirror-code div pre")
    for z in range(len(b)):
        c=b[z].innerText
        a+=c+"\n"
    #print(a)
    try:
        eval(a)
    except:
        try:
            exec(a)
        except:
            traceback.print_exc()

document['runb'].bind('click',runcode)
*/}).toString().slice(14,-3)
a.innerHTML = c
document.body.appendChild(a)

$.getScript("http://brython.info/src/brython_dist.js",BrythonSetup)