This program downloads all files of a Stud.IP users current semester.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.7 KiB

  1. #!/bin/env python3
  2. import os
  3. import argparse
  4. import studip
  5. import mysql
  6. parser = argparse.ArgumentParser(description='Download Files from StudIP.')
  7. parser.add_argument('-o', '--output', type=str,
  8. default='./data', help='path to output directory')
  9. parser.add_argument('-u', '--user', type=str,
  10. help='studip username', required=True)
  11. parser.add_argument('-p', '--passwd', type=str,
  12. help='studip password', required=True)
  13. parser.add_argument('-s', '--url', type=str, help='studip url', required=True)
  14. parser.add_argument('--chunk', type=int, default=1024 *
  15. 1024, help='chunksize for downloading data')
  16. parser.add_argument('-r', '--reset_dl_date', action='store_true', help='downloads everything and ignores last download date')
  17. parser.add_argument('--host', type=str, default='localhost', help='mysql host')
  18. parser.add_argument('--port', type=int, default=3306, help='mysql port')
  19. parser.add_argument('--db_name', type=str, default='studip', help='mysql database name')
  20. parser.add_argument('--db_user', type=str, default='root', help='mysql database user')
  21. parser.add_argument('--db_passwd', type=str, default='secret-pw', help='mysql database password')
  22. args = parser.parse_args()
  23. BASE_DIR = os.path.abspath(args.output)
  24. USERNAME = args.user
  25. PASSWORD = args.passwd
  26. db = mysql.Database()
  27. db.HOST = args.host
  28. db.PORT = args.port
  29. db.DB_NAME = args.db_name
  30. db.USER = args.db_user
  31. db.PASSW = args.db_passwd
  32. db.RESET_DL_DATE = args.reset_dl_date
  33. db.setup_db()
  34. crwlr = studip.Crawler(db)
  35. crwlr.CHUNK_SIZE = args.chunk
  36. crwlr.STUDIP_DOMAIN = args.url
  37. crwlr.USER = (USERNAME, PASSWORD)
  38. crwlr.download_curr_courses(BASE_DIR)