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()
Exemplo n.º 2
0
def run(options):
    """ executes the purpose of this program having options into account """
    moodle = MoodleScrapper()
    mycourses = moodle.get_my_courses()
    if len(mycourses) == 0:
        print "No courses found"
        return
    if options.jsonformat:
        for course in mycourses:
            print course
    else:
        print ",".join('"%s"'%c for c in mycourses[0].__dict__.keys())
        for course in mycourses:
            print ",".join('"%s"'%c for c in course.__dict__.values())
Exemplo n.º 3
0
                        <a role="button" title="Afegeix..." href="#">
                            <img src="http://agora.xtec.cat/insjoandaustria/moodle/theme/image.php/xtec2/core/1441294536/a/add_file" alt="Add file" />
                        </a>
                    </div>

"""

import sys

from moodlescrap import MoodleScrapper
from exercise import MoodleExercise

cursid_escollit = "142"
temaid_escollit = "1"

moodle = MoodleScrapper()

moodle.jump_to_theme_by_id(cursid_escollit, temaid_escollit)


# activa l'edició
moodle.follow_link("Activa edició")

# Troba tema per nom
soup = moodle.contents
# print soup
# moodle.disconnect()
# sys.exit()

formid = "section%s"%temaid_escollit
Exemplo n.º 4
0
#! /src/bin/env python
# encoding: utf-8
# Demostració d'obtenció de la llista de temes d'un curs en Moodle
import sys

from moodlescrap import MoodleScrapper
from exercise import MoodleExercise

curs_escollit = "TEST"
tema_escollit = "Tema de Test"

# obtenció de les dades de connexió
#url, username, password = obte_params_conf()
moodle = MoodleScrapper()

# Mostra la llista de cursos
moodle.show_mycourses()

# Obtenció de la pàgina amb el curs
moodle.jump_to_course_by_name(curs_escollit)

# Mostra temes del curs
moodle.show_themes_of_course()
#print "List of themes"
#soup = moodle.contents
#for tema in soup.find_all("h3", attrs={"class":"section-title"}):
#    print tema.a.text
#print soup
#for tema in soup.find_all("li", attrs={"aria-label":tema_escollit}):
#    print "\tTema [%s]:%s"%(tema[id], tema.h3.a.text)
#    #formid = "section%s"%tema["id"][len("section-")]
Exemplo n.º 5
0
# Demostració de connexió i desconnexió de Moodle
import os, base64
import mechanize
from moodlescrap import MoodleScrapper

fitxer_config = ".config/moodlescrap.dat"
# Obtenció de les dades de connexió
def obte_params_conf():
    """ obté els paràmetres url, usuari i pasword del fitxer de configuració """
    url = username = pasword = None
    if os.path.exists(fitxer_config):
        f = open(fitxer_config)
        url=f.readline().strip()
        username=f.readline().strip()
        password=base64.b64decode(f.readline().strip())
        f.close()
    return url, username, password

# obtenció de les dades de connexió
url, username, password = obte_params_conf()
moodle = MoodleScrapper(url, username, password)
print moodle.br.title()

# Desconnexió
moodle.disconnect()
print "URL    : ", moodle.response.geturl()
# print "Body: ", response.read()
#print "headers: ", moodle.response.info()