Giter Club home page Giter Club logo

lectio-api's Introduction

Lectio-API

Lectio har opdateret deres sikkerhed, hvilket resultere i at man ikke længere kan se folks skema hvis man ikke er logget ind, hvilket dette API bygger på. Det resultere i at API'et ikke længere fungere medmindre man på en eller anden måde logger ind.

Opdateret version af dette github repository, oprindeligt lavet af Henrik Pedersen og Daniel Poulsen, nu vedligeholdt af mig, Krede

Dette er et simpelt, uofficielt API for Lectio som tillader at hente forskellige offentlige data. API'et kan kun hente offentligt-tilgængeligt data som gymnasier, elever, lærere, hold og skemaer. Den kan derfor ikke bruges til at måle fravær, tjekke opgaver eller andre private oplysninger

API'et, ligesom den tidligere version, bruger Simple HTML Dom og Regular Expressions til at finde brikker og andet information på Lectio's mange sider. Jeg har ændret det således at den ikke bruger cURL men istedet file_get_contents.

Denne version er testet på en installation af PHP 7.0. Den virker muligvis på tidligere versioner.

Dette API er gratis og frit at bruge og lave ændringer til såfremt at Licensen og Copyright bliver overholdt.

Eksempel

require('lectio.php');
$lectio = new lectio('simple_html_dom.php');
$schools = $lectio->get_schools(); // Henter alle skoler fra Lectio
print_r($schools); // Print skolerne og deres gymnasie kode

Liste over funktioner

Alle de her funktioner henter skemaet for forskellige brugere/hold som et Array.

->get_schedule_student($gymnasie_id, $lectio_id, $unixtime)
->get_schedule_class($gymnasie_id, $lectio_id, $unixtime)
->get_schedule_teacher($gymnasie_id, $lectio_id, $unixtime)

Denne funktion henter alle skoler som anvender Lectio-platformen. Arrayet har navnet som key og dets gymnasie_id som value.

->get_schools()

Disse funktioner giver alle lokaler og deres tilsvarende id, get_empty_rooms viser kun de lokaler som ikke er i brug. Arrayet har lokalets navn som key og dets id som value.

->get_rooms($gymnasie_id)
->get_empty_rooms($gymnasie_id, $unixtime)

get_empty_rooms kan være meget langsom alt efter hvor mange klasselokaler skolen har da den loader en ny side per lokale. Man kan cache resultatet hvis man har lyst, det ødelægger bare lidt ideen med hurtigt at finde et tomt lokale.

Disse tre funktioner hiver hhv. elever, hold og lærer ud fra et givent gymnasie som et Array. Arrayet har personens/holdets navn som key og deres lectio_id som value.

->get_students($gymnasie_id)
->get_classes($gymnasie_id)
->get_teachers($gymnasie_id)

Jeg vil foreslå at cache resultaterne når man bruger get_students() da den skal loade en ny side for hver forbogstav, hvilket vil sige at det gøres 30 gange for hver gang den bliver kørt

De her funktioner får du nok ikke brug for, da de tillader at hente et skema fra en hvilken som helst URL man selv konstruerer, samt at hente elever fra en given side hvis man f.eks. kun vil have elever hvis navn begynder med B.

->get_schedule($url_til_skemaet)
->get_students_page($url_til_elevsiden)

Forklaringer på parametre

gymnasie_id er den talkode hvert gymnasie har. Den kan ses i toppen af URL'et når man er på en vilkårlig side på et gymnasie. Feks. her er Nakskov Gymnasiums URL: "http://www.lectio.dk/lectio/402/default.aspx". 402 er gymnasiekoden i dette tilfælde.

lectio_id refererer til det ID som Lectio tilegner hver elev, lærer eller hold. Det kan enten findes i toppen af URL'et når man er logget ind eller ved brug af de tre ovenstående funktioner til at finde elever, lærere og hold.

unixtime er tiden i sekunder siden d. 1 Januar 1970. Idag ville f.eks. være 1534785460 (20-8-2018 19:17:40)

lectio-api's People

Contributors

kredegc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

savler420

lectio-api's Issues

Login

Hej Krede.
Ville høre om du arbejder på en måde, hvorpå man kan angive sine loginoplysninger, så denne api igen virker? Har en lille drøm om at lave en applikation der tjekker hvorvidt et lokale er frit til studiemodulet.

Problemer med arrays

Jeg har nu testet din php fil som ser super smart ud, men er stødt ind i et problem.
Når jeg bruger funktionen: ->get_schedule_student($gymnasie_id, $lectio_id, $unixtime)
Og indsætter de passende variable f.eks. ($gymnasie_id="402" og $lectio_id="studentensid" og vores unixtime lyder på "1536580800".

Når jeg så prøver at hente elevens skema vha:

require('lectio.php');
$lectio = new lectio('simple_html_dom.php');
$schedule = $lectio->get_schedule_student($gymnasie_id, $lectio_id, $unixtime);

echo $schedule['schedule'][1]['lessons'][1]['title'];

Hvis jeg bruger echo $schedule['schedule'] står der "Array", men jeg ved ikke hvordan jeg kan få vist indholdet inde i arrayet såsom modul navn, tid og lokale osv..

Jeg har også prøvet funktionen:

print_r($lectioObject->get_schedule_student($gymnasie_id, $lectio_id, $unixtime));
Hvilket ikke giver noget resultat.

Jeg har dog prøvet funktionen:

echo "<pre>";
var_dump($schedule);

Som giver disse resultater:

array(7) {
  ["title"]=>
  NULL
  ["week"]=>
  int(0)
  ["year"]=>
  int(0)
  ["day"]=>
  string(0) ""
  ["weekdays"]=>
  array(0) {
  }
  ["schedule"]=>
  array(0) {
  }
  ["dayschedule"]=>
  array(0) {
  }
}

Det er nok mig som har lavet en fejl, da jeg er forholdvis ny til php, håber du kan hjælpe.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.