UPDATE: Sadly, or perhaps, happily, I have noticed that sometime during the first half of 2024, the University of Canterbury decided to retire the use of the MRBS software for room bookings. They now use a cloud-based service called TimeEdit instead. Therefore, this repository will no longer work correctly and will be archived.
This is a project that I worked on during the final year of my Computer Engineering degree for COSC475 (Independent Course of Study; Advanced Operating Systems) at the University of Canterbury. It is a Fuse filesystem that uses the university's library room booking system to store its data.
The contents of each file is private however a sizeable amount of metadata is leaked due to the booking titles remaining viewable by all (even those without credentials).
(Click the image to watch on YouTube)
Edit the src/.env.h
file and place your UC username and password in the relevant macros.
This is your username without the email address on it.
It's a bit ugly, but it works fine for now.
You need the following dependencies:
- Make
- GCC
- Pkg Config
- Fuse
- Curl
If you're using Nix you can use the following command to spin up a shell with the dependencies installed:
nix-shell -p gnumake gcc pkg-config fuse curl
Then, to build:
make mrfs
To mount the folder foo
at the room booking in room 215 at 6:30pm on the 21st of December 1902:
mkdir foo
./mrfs ./foo 1902 12 21 18 30 215
You can learn the different room codes by hovering the mouse over the +
(create new booking) button in the room booking UI and looking at the room
query parameter.
You can either press Ctrl+C
to kill the program or run:
fusermount -u ./foo
- 2023 October: Updated to use (the excellent!) libcurl as the HTTP library since the university has begun to use HTTPS instead of HTTP.
- 2020 October: First release