Commit 24922c81 authored by Kiste's avatar Kiste
Browse files

Cleanup

parent e635e7e0
# Stud.SAUGER
Der [Stud.SAUGER](https://git.finf.uni-hannover.de/kiste/studsauger) lädt alle Dateien der eigenen Veranstaltungen aus [Stud.IP](http://www.studip.de/) mittels der [Rest.IP](https://studip.github.io/studip-rest.ip/)-API herunter.
Der [Stud.SAUGER](https://git.finf.uni-hannover.de/kiste/studsauger) lädt alle
Dateien der eigenen Veranstaltungen aus [Stud.IP](http://www.studip.de/) mittels
der [Rest.IP](https://studip.github.io/studip-rest.ip/)-API herunter.
## Authentifizierung
Rest.IP unterstützt zur Authentifizierung `3-legged OAuth`, `Session` per Cookie oder `HTTP Basic Authentication`. Letzteres verwendet der Stud.SAUGER. Das Passwort kann entweder per Kommandozeilenparameter übergeben werden, z.B. in verbindung mit dem Passwortmanager [pass](https://www.passwordstore.org/)
Rest.IP unterstützt zur Authentifizierung `3-legged OAuth`, `Session` per Cookie
oder `HTTP Basic Authentication`. Letzteres verwendet der Stud.SAUGER. Das
Passwort kann entweder per Kommandozeilenparameter übergeben werden, z.B. in
Verbindung mit dem Passwortmanager [pass](https://www.passwordstore.org/)
$ studsauger --password "$(pass user@studip)"
oder direkt als Parameter, **dann landet es aber in der Shell-History**. Es kann auch in der `config.yaml` hinterlegt werden, **dann liegt es allerdings im Klartext im Dateisystem**. Es empfiehlt sich die Verwendung eines [Keyrings](https://pypi.python.org/pypi/keyring). Der Key kann mit
oder direkt als Parameter, **dann landet es aber in der Shell-History**. Es kann
auch in der `config.yaml` hinterlegt werden, **dann liegt es allerdings im
Klartext im Dateisystem**. Es empfiehlt sich die Verwendung eines
[Keyrings](https://pypi.python.org/pypi/keyring). Der Key kann mit
$ keyring set studsauger $user
......
......@@ -12,7 +12,6 @@ setup(
author_email = 'christian.buschau@stud.uni-hannover.de',
packages = ['studsauger'],
install_requires = [
'colorama',
'keyring',
'requests',
'PyYAML'
......
......@@ -3,7 +3,6 @@
import os
import shutil
import requests
from colorama import Fore
def mkdir(directory):
if not os.path.exists(directory):
......@@ -28,25 +27,21 @@ def logik(path, user, password, blacklist, allsemesters):
def fetchsemester(path, s, blacklist, cursemester):
semester_id = cursemester['semester_id']
semester_title = cursemester['title']
print(Fore.YELLOW + semester_title)
jcourses = s.get(BASEURL + '/courses/semester/' + semester_id)
for course in jcourses.json()['courses']:
course_id = course['course_id']
course_title = course['title']
if any(course_title in s for s in blacklist):
if course_title in blacklist:
continue
print(Fore.GREEN + course_title)
mkdir(path + '/' + course_title)
jfolder = s.get(BASEURL + '/documents/' + course_id + '/folder')
for folder in jfolder.json()['folders']:
folder_id = folder['folder_id']
folder_name = folder['name']
print(Fore.BLUE + folder_name)
jfiles = s.get(BASEURL + '/documents/' + course_id + '/folder/' + folder_id)
for file in jfiles.json()['documents']:
document_id = file['document_id']
filename = file['filename']
print(Fore.RED + filename)
f = path + '/' + course_title + '/' + filename
if not os.path.isfile(f):
fdl = s.get(BASEURL + '/documents/' + document_id + '/download', stream=True)
......
......@@ -79,8 +79,6 @@ def main():
print('Kein Semesterauswahl angegeben!')
exit(1)
print(allsemesters)
logik(path, user, password, blacklist, allsemesters)
if __name__ == '__main__':
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment