def run_code(code, language_id): ideone_api = Ideone( constants.IDEONE_USERNAME, constants.IDEONE_PASSWORD, api_url='http://ronreiter.compilers.sphere-engine.com/api/1/service.wsdl') code = ideone_api.create_submission(code, language_id=language_id, std_input="")["link"] result = None while True: time.sleep(1) result = ideone_api.submission_details(code) if result["status"] in [1,3]: continue break data = { "code" : code } if result["stderr"] or result["cmpinfo"]: data["output"] = "exception" if result["cmpinfo"]: data["text"] = result["cmpinfo"] elif result["stderr"]: data["text"] = result["stderr"] else: data["output"] = "text" data["text"] = result["output"] return data
def run_code(code, language): ideone_api = Ideone( constants.IDEONE_USERNAME, constants.IDEONE_PASSWORD, api_url='http://ronreiter.compilers.sphere-engine.com/api/1/service.wsdl') code = ideone_api.create_submission(code, language_name=language, std_input="")["link"] result = None while True: time.sleep(1) result = ideone_api.submission_details(code) if result["status"] in [1,3]: continue break data = { "code" : code } if result["stderr"] or result["cmpinfo"]: data["output"] = "exception" if result["cmpinfo"]: data["text"] = result["cmpinfo"] elif result["stderr"]: data["text"] = result["stderr"] else: data["output"] = "text" data["text"] = result["output"] return data
def code_solution_compile_status(request): link = request.GET.get('link', None) if not link: return { 'status_code': 500, 'error': u'Wystąpił nieoczekiwany błąd podczas kompilacji rozwiązania.' } ide = Ideone(settings.IDEONE_USER, settings.IDEONE_PASSWORD) details = ide.submission_details(link) # Jeśli status jest inny niż 0, trzeba poczekać na zakończenie kompilacji/uruchomienia # po stronie Ideone if details.get('status', -1) != 0: return { 'status_code': 200, } result = details.get('result', None) # Jeśli result jest inny niż 15, oznacza to, iż program zakończył się niepowodzeniem. if result != 15: error_message = u'Program nie mógł zostać uruchomiony z nieznanych przyczyn. \ Proszę skontaktować się z administratorem serwisu.' if result == 11: error_message = u'Program nie mógł zostać uruchomiony z powodu błędów kompilacji.' elif result == 12: error_message = u'Program zakończył działanie z powodu nieoczekiwanego błędu wykonania.' elif result == 13: error_message = u'Czas działania programu przekroczył dopuszczalny limit.' elif result == 17: error_message = u'Maksymalny limit pamięci został przekroczony. Zoptymalizuj \ kod źródłowy.' elif result == 19: error_message = u'Program wykorzystuje odwołania do niedozwolonych operacji i funkcji \ systemowych.' elif result == 20: error_message = u'Wystąpił nieoczekiwany błąd komipilacji. Prosimy o pilnt kontakt z \ administratorem serwisu.' std_error = cgi.escape(details.get('stderr', '')) return { 'status_code': 500, 'error': u'{}<br /><br />{}'.format(error_message, std_error), } return { 'status_code': 200, 'output': details.get('output', ''), 'time': details.get('time', 0), }
def code_solution_compile(request): source_code = request.POST.get('source_code', None) language = request.POST.get('language', None) if not (source_code and language): return { 'status_code': 500, 'error': u'Wybierz język programowania oraz podaj kod źródłowy.' } last_submit = cache.get(IDEONET_CACHE_KEY % request.user.id) if last_submit: last_submit_diff = datetime.now() - last_submit if last_submit_diff.seconds <= IDEONET_CACHE_TIME: return { 'status_code': 500, 'error': u'Ponowna kompilacja będzie możliwa za {}s.'\ .format(IDEONET_CACHE_TIME - last_submit_diff.seconds) } ide = Ideone(settings.IDEONE_USER, settings.IDEONE_PASSWORD) try: submission = ide.create_submission(source_code, language_name=language, private=True) except IdeoneError: code_language = CodeLanguage.objects.get(code=language) submission = ide.create_submission(source_code, language_name=code_language.name, private=True) cache.set(IDEONET_CACHE_KEY % request.user.id, datetime.now(), IDEONET_CACHE_TIME) if submission.get('error', 'OK') != 'OK': return { 'status_code': 500, 'error': submission.get('error', u'Wystąpił błąd podczas kompilowania rozwiązania'), } link = submission.get('link', '') return { 'status_code': 200, 'link': link, }
D AWK gawk-3.1.6 AWK mawk-1.3.3 COBOL 85 Forth Prolog bc Clojure JavaScript Go Unlambda Python 3 R COBOL Oz Groovy Nimrod Factor F# Falcon ''' sys.exit(1) lang = sys.argv[1] print "Paste: and CTRL+D to End the paste..." paste = sys.stdin.read() i = Ideone('username', 'APIKey') res = i.create_submission(paste, lang) link = res['link'] print "http://www.ideone.com/" + link
import cgi import urllib import hashlib import time import functools from flask import Flask, render_template, request, make_response, session #import pymongo #import redis import sys from ideone import Ideone import constants ideone_api = Ideone(constants.IDEONE_USERNAME, constants.IDEONE_PASSWORD) #cache = redis.Redis(host=constants.CACHE_HOST) # mongo connection #client = pymongo.MongoClient(host=constants.DB_HOST) #users = client.tutorials.users # Flask app app = Flask(__name__) app.secret_key = constants.SECRET_KEY sections = re.compile( r"Tutorial\n[=\-]+\n+(.*)\n*Tutorial Code\n[=\-]+\n+(.*)\n*Expected Output\n[=\-]+\n+(.*)\n*Solution\n[=\-]+\n*(.*)\n*", re.MULTILINE | re.DOTALL) WIKI_WORD_PATTERN = re.compile('\[\[([^]|]+\|)?([^]]+)\]\]') DEFAULT_DOMAIN = constants.LEARNPYTHON_DOMAIN if not len(
import os from ideone import Ideone i = Ideone(os.getenv("IDEUSER"), os.getenv("IDEPASS")) print i.create_submission("print(42)", language_name="python", run=False)
from ideone import Ideone import time i = Ideone('antonsemenov', 'abc123123') def checkSolution(code, checkers, langId): p = {} p['result'] = 'This is win!' for e in checkers: currSubmission = i.create_submission(code, language_id = langId, std_input=e.input_value) while (i.submission_status(currSubmission['link'])['status'] != 0): time.sleep(1) if (i.submission_details(currSubmission['link'])['result'] != 15): p['result'] = 'Fail, sorry' break return p
import os from ideone import Ideone i = Ideone(os.getenv('IDEUSER'), os.getenv('IDEPASS')) print(i.create_submission('print(42)', language_name='python', run=False))
import urllib import urllib2 from collections import OrderedDict from docutils import nodes from docutils.parsers.rst import Directive from ideone import Ideone IDEONE_AUTHENTICATED = False CODE_MAP_JSON = 'codemap.json' try: ideone_auth = Ideone('APIUSER', 'APIPASSWORD') except Exception as e: IDEONE_AUTHENTICATED = False else: IDEONE_AUTHENTICATED = True class RunCodeBlock(nodes.General, nodes.FixedTextElement): pass class RunCode(Directive): has_content = False required_arguments = 1 optional_arguments = 0 option_spec = dict(codesite=str, language=str, run=True)
import urllib import hashlib import time import functools from flask import Flask, render_template, request, make_response, session #import pymongo #import redis import sys from ideone import Ideone import constants ideone_api = Ideone( constants.IDEONE_USERNAME, constants.IDEONE_PASSWORD, api_url='http://ronreiter.compilers.sphere-engine.com/api/1/service.wsdl') #cache = redis.Redis(host=constants.CACHE_HOST) # mongo connection #client = pymongo.MongoClient(host=constants.DB_HOST) #users = client.tutorials.users # Flask app app = Flask(__name__) app.secret_key = constants.SECRET_KEY sections = re.compile( r"Tutorial\n[=\-]+\n+(.*)\n*Tutorial Code\n[=\-]+\n+(.*)\n*Expected Output\n[=\-]+\n+(.*)\n*Solution\n[=\-]+\n*(.*)\n*", re.MULTILINE | re.DOTALL) WIKI_WORD_PATTERN = re.compile('\[\[([^]|]+\|)?([^]]+)\]\]')