def run(options): """ executes the purpose of this program having options into account """ courseid = str(options.courseid) themeid = str(options.themeid) exercises = [] for path in options.files: if not path.endswith(".html"): print "WARNING: unsuported format %s (ignored)"%path continue if not os.path.isfile(path): print "WARNING: file not found %s (ignored)"%path continue with open(path) as f: soup = BeautifulSoup(f.read()) title = unicode(soup.title.text).strip().encode("utf-8") description = "\n".join(str(c).strip() for c in soup.body.div.contents if not c == None and len(str(c).strip())> 0 and not c.name == "h1") exercise = MoodleExercise(title, description) if options.duedate: exercise.set_allowsubmissionsfromdate(options.fromdate) exercise.set_duedate(options.duedate) exercises.append(exercise) if len(exercises)>0: moodle = MoodleScrapper() moodle.submit_exercises_on_theme(courseid, themeid, exercises) moodle.disconnect()
form = tema.find("form", attrs={"id":formid}) select = form.find("select", attrs={"name":"jump"}) for option in select.find_all("option"): if option.text.strip() == "Tasca": value = option["value"] break else: print "No s'ha trobat l'opció pel formulari de creació de tasca" moodle.disconnect() sys.exit() moodle.submit_form({"jump":[value]}) moodle.br.select_form(nr=0) exercici = MoodleExercise("Exercici de prova avui", "Descripció de <b>prova</b>") exercici.set_allowsubmissionsfromdate("20/9/2016 14:55") exercici.set_duedate("21/10/2017 15:50") exercici.set_cutoffdate("19/11/2017 13:45") exercici.add_file("try.py") moodle.submit_exercise(exercici) # Desconnexió moodle.disconnect() print "URL : ", moodle.response.geturl() # print "Body: ", response.read() #print "headers: ", moodle.response.info()
#! /src/bin/env python # encoding: utf-8 # Test MoodleExercise class from exercise import MoodleExercise exercise = MoodleExercise("un", "dos") exercise.set_allowsubmissionsfromdate("20/10/2016 14:55") exercise.set_duedate("21/11/2017 15:50") exercise.set_cutoffdate("19/9/2017 13:45") print exercise.data