Skip to content

arazimproject/tau-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

29 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ“ TAU Tools

A python library to retrieve information about the various plans and courses at Tel Aviv University, and interact with the various servers.

๐Ÿ› ๏ธ Installation ย ยทย  ๐Ÿ’ก Features ย ยทย  ๐Ÿš— Roadmap

Installation

You can get the latest version of TAU Tools by running pip install tau-tools!

Features

Moodle API

Here's an example of using the TAU Tools moodle package:

from tau_tools.moodle import Moodle

m = Moodle("username", "123456789", "password", "session.json")
courses = m.get_courses()
print(courses)
print(m.get_recordings(courses[0]))

Full documentation will be available soon!

IMS API

Here's an example of using the TAU Tools ims package:

from tau_tools.ims import IMS

ims = IMS("username", "123456789", "password")
grades = ims.get_all_grades([2023, 2024])
print(grades)

Lobby Dashboard

You can get information about exams happening today by running python3 -m tau_tools.lobby_dashboard.

Example:

[
    ExamInfo(
        course_id='03682162',
        course_name='ืžืขืจื›ื•ืช ื”ืคืขืœื”',
        group='08',
        semester=2,
        start_hour='09:00',
        end_hour='12:00',
        building="ืื•ื“ื™ื˜ื•ืจ' ืœื‘",
        room='009',
        surname_letters='ื - ื“'
    ),
    ...
]

Scrapers

You can get mostly up to date data from the following URLs:

You can also get rolled-up information about all of the courses in https://arazim-project.com/data/courses.json, using the collect script.

Get course details

You can get all details about a specific year's courses by running python3 -m tau_tools.courses or python3 -m tau_tools.courses 2025!

Example:

{
    "03005031": {
        "name": "ืžื‘ื•ื ืœื‘ื™ื•ืœื•ื’ื™ื” ืœื›ื™ืžืื™ื",
        "faculty": "ืžื“ืขื™ื ืžื“ื•ื™ืงื™ื/ืคืงื•ืœื˜ื” ืœืžื“ืขื™ื ืžื“ื•ื™ืงื™ื",
        "exams": [
            {
                "moed": "ื",
                "date": "08/02/2024",
                "hour": "",
                "type": "ื‘ื—ื™ื ื” ืกื•ืคื™ืช"
            },
            ...
        ],
        "groups": [
            {
                "group": "01",
                "lecturer": "ื“\"ืจย ืžืื™ื•ย ืœื™ืื•ืจ",
                "lessons": [
                    {
                        "day": "ื”",
                        "time": "09:00-10:00",
                        "building": "ืงืคืœื•ืŸ",
                        "room": "118",
                        "type": "ืฉื™ืขื•ืจ"
                    },
                    ...
                ]
            },
            ...
        ]
    },
    ...
}

Get the available plans

You can get all details about the current (and past) study plans in Tel Aviv University by running python3 -m tau_tools.plans or python3 -m tau_tools.plans 2025!

Example:

{
    "ื”ืคืงื•ืœื˜ื” ืœืžื“ืขื™ ื”ื—ื‘ืจื” ืข\"ืฉ ื’ืจืฉื•ืŸ ื’ื•ืจื“ื•ืŸ": {
        "ืชื•ื›ื ื™ืช ืœืชื•ืืจ ืฉื ื™ ื‘ืชืงืฉื•ืจืช ื‘ืžืกืœื•ืœ ืžื—ืงืจื™": {
            "ืงื•ืจืกื™ ืชื•ืืจ ืฉื ื™ - ืงื•ืจืกื™ ืœื™ื‘ื”": ["10854101", "10854102"],
            "ืงื•ืจืกื™ ืชื•ืืจ ืฉื ื™ - ืงื•ืจืกื™ ืžืชื•ื“ื•ืœื•ื’ื™ื”": ["10854203", "10464101"],
            ...
        },
        ...
    },
    ...
}

Get the Moodle exam bank

You can get links to all of the exams hosted on Moodle (copying the exams themselves is prohibited) by running python3 -m tau_tools.moodle_exams!

Example:

{
    {
        "results": [
            [
                "0321-1100-ืืœื’ื‘ืจื” ืœื™ื ืืจื™ืช ืœืคื™ื–-ืžื•ืขื“ ื.pdf",
                "https://moodle.tau.ac.il/pluginfile.php/421164/mod_folder/content/0/0321-1100-%D7%90%D7%9C%D7%92%D7%91%D7%A8%D7%94%20%D7%9C%D7%99%D7%A0%D7%90%D7%A8%D7%99%D7%AA%20%D7%9C%D7%A4%D7%99%D7%96-%D7%9E%D7%95%D7%A2%D7%93%20%D7%90.pdf"
            ],
            ...
        ],
        "year": 2024
    },
    ...
}

Collect the data together

Running python3 -m tau_tools.collect will go over all courses and moodle exams JSONs in the current directory and place the moodle exam data into the courses jsons. It also creates a summary courses.json which contains rolled-up information from all of the courses jsons.

An optional corrections.json file is available to account for errors in the moodle exam bank.

The current corrections are:

{
  "03514321": "03514312",
  "03662016": "03662106",
  "03211110": "03211100",
  "032121012": "03213101",
  "03683035": "03683058",
  "03664841": "03724841",
  "03724453": "03724553",
  "03513118": "03653118",
  "03664041": "03684041",
  "03651105": "03681105",
  "03684229": "03684429",
  "03214308": "03213804",
  "03664117": "03214117",
  "03664127": "03214127"
}

Roadmap

  • Get courses
  • Get plans
  • Create a nicer interface to the IMS
  • Create a nicer interface to the Moodle
  • Make the scripts accept command-line parameters
  • Add the package to PyPI for a simpler installation
  • Show progress bars during scraping

Acknowledgements

This repository contains modified versions of the following tools:

About

Unofficial tools for accessing and using Tel Aviv University websites

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors