Skip to content
Edsby doesn't have any sort of public API, so I made a wrapper/library for it.
Python
Branch: master
Clone or download
ctrezevant Merge pull request #9 from BlazingAsher/master
Fixed KeyErrors in parseInstanceMetadata
Latest commit 3be8652 Jun 29, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Python3 Compatibility + Fix sendDirectMessage() May 4, 2017
.gitignore Add getProfilePicDownloadURL, getSchedule; fix multi-part grades Jun 2, 2017
LICENSE.txt Add licensing information May 1, 2017
README.md Remove sass. May 11, 2017
edsby.py Fixed ":" being included in the value Jun 28, 2018

README.md

PyEdsby

Edsby doesn't have any sort of public API, so I did a little snooping to make a wrapper/library for it.

Quickstart:

import requests, json
from edsby import Edsby

edsby = Edsby(host='your_edsbyhost.edsby.com', username='your_username', password='your_password')
print json.dumps( edsby.getAllClassAverages() )

You can also check out more examples here.

Getting Started

Everything you need to know is explained comprehensively in the Wiki. If you have any questions, feel free to open an issue or send me an email. Definitely check that documentation out first, though, because it's pretty extensive.

Notes

Currently, Edsby does not expose any kind of public API (at least not for underprivileged users), so PyEdsby has to scrape data from the actual page content returned by Edsby's XDS endpoints. I tried to abstract it all away as nicely as I could, but it's still a little crufty in places. With this library, however, it's much easier to work with. For this reason, I tried to keep the amount of processing done on the data returned minimal. Should a publicly accessible API become available, however, PyEdsby will be updated appropriately.

Secondly, I can only guarantee that this works with my school's own Edsby instance. I'm assuming they're all more or less the same, but I've only got one instance to test with. The endpoints seem nonspecific enough, but I can't rule out the possibility that you might still need to make some minor tweaks to fit your specific environment.

App Ideas

PyEdsby implements more or less every major feature of the web interface, and then some. You can access all the important data visible on the web that you, as a student, would be interested in. Check out the documentation for a list of available methods.

Using PyEdsby, you could:

  • Create a tool to find common classmates in each of your periods,
  • Write a lambda function to expose a webhook that posts in class feeds for you,
  • Automatically crawl class feeds, and download attachments any time a teacher posts a new one,
  • Write a script that notifies you whenever your grades drop below a certain point,
  • Automatically post a message or link in the feed for a specific class,
  • Write a script that forwards Edsby direct messages to your phone,
  • And so much more!

The only limits are your imagination. If you make something cool, let me know!

Best of luck, and enjoy! Pull requests are always welcome:)

The Edsby trademark and brand are property of CoreFour, Inc. This software is unofficial and not supported by CoreFour in any way. I do not work for CoreFour.

You can’t perform that action at this time.