Giter Club home page Giter Club logo

grouch's Introduction

Grouch

About

A registration aid for Oscar. Simple, effective, and customizable. No login necessary. Grouch is a Python library for getting registration info for all your classes. It sends notifications using py-notifier to your computer.

Oscar is a garbage site, but at least they allow students to see course info without logging in (thanks to a little trick I picked up from Sana's snipe bot). It's important to note that web scraping is extremely unstable since websites are updated often โ€” even Oscar, which might be shocking considering it looks and feels like it's from the early 2000s. Literally any minor change to the layout or names or style can screw the entire scraping process. If something goes wrong, please open an issue ASAP so I can get it fixed.

Installation

To use this project, you need Python 3.8+ installed as well as pip on your device.

  • Clone the library git clone https://github.com/JIceberg/grouch.git

  • Open the root of the project and open a CLI (command line interface) like powershell

  • Install the necessary requirements pip install -r requirements-<os>.txt (note that mac users need to use requirements-unix.txt)

And that's it! The library is now installed and ready to be used.

Usage

Tracker

The simplest usage is to simply run python src/tracker.py [SEASON] CRN-1 CRN-2 ... in the CLI. For the season, use 'spring', 'fall', or 'summer'. An example call is below

user@computer:~$ python src/tracker.py fall 82693 89515 ...

If you're a bit more advanced (i.e. you know at least some basic Python 3), then you can use the tools in the library to configure your own notifications and reminders. Grouch comes equipped with notifier and courses handlers for easy use.

An example of a custom program would be

from courses import Course, WaitlistNotifier

myCourse = Course(crn, 'fall')
notif = WaitlistNotifier(myCourse)

notif.run()

To run it, just do python path/to/file.py.

Info

From the CLI, run python src/info.py [SEASON] CRN-1 CRN-2 ... and a notification will be sent containing information for the class. This does not loop, unlike the tracker.

grouch's People

Contributors

jiceberg avatar adithya-gv avatar

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.