%global _empty_manifest_terminate_build 0 Name: python-pymoodle-jku Version: 1.2.0 Release: 1 Summary: A client for the moodle page of JKU Linz. License: BSD 3-Clause URL: https://github.com/LeLunZ/pymoodle-jku-linz Source0: https://mirrors.aliyun.com/pypi/web/packages/08/81/5e40aa7942680be9defd75a1e9de2096de3758aa2a459806f98ba3739a14/pymoodle-jku-1.2.0.tar.gz BuildArch: noarch Requires: python3-argcomplete Requires: python3-cryptography Requires: python3-antimarkdown Requires: python3-keyring Requires: python3-io-uuid Requires: python3-lxml Requires: python3-pick Requires: python3-readchar Requires: python3-pytube Requires: python3-sty Requires: python3-urllib3 Requires: python3-requests Requires: python3-requests-futures Requires: python3-packaging Requires: python3-argparse Requires: python3-psutil %description # PyMoodle-JKU Linz A local python client for accessing the jku moodle page. Passwords aren't sent anywhere except to the official moodle page https://moodle.jku.at/jku/login/index.php! Optionally you can store them in the local system keyring. It's also a python library, which you can use in your project. ##### Table of Contents [Description](#Description)
[Install](#Install)
[Terminal Application](#Commandline-Scripts)
[Development](#Development)
[Dependencies and Unittests](#Good-To-Know)
[Unsupported](#Unsupported)
[Contribution](#Contribution)
[Planned](#Planned) ## Description What can you do with PyMoodle? A Short Overview. You can do all this from the commandline and much more: - Download files from moodle videos/pdf/folder/etc. and even **Exams** as markdown - List all your grades without needing to open the browser and search moodle - List your timetable from moodle. - Password of moodle can be stored in the local system keyring. No need to enter it every time! ## Install `pip3 install -U pymoodle-jku ` To Download streams, you need [ffmpeg](https://ffmpeg.org/download.html) installed. Can also be done after installing pymoodle. To get autocompletion working add this to your bash .bashrc/.zshrc/....: `eval "$(register-python-argcomplete pymoodle)"` If you are using fish/Tcsh or another shell, have a closer look [here](https://github.com/kislyuk/argcomplete#zsh-support). ## Commandline Scripts The commandline script is called **pymoodle**. With **pymoodle** you can call these Utilities: - download - grades - timeline - config **Just call `pymoodle` from the terminal to get the Help page.** You will also find everything you need if you call: `pymoodle --help` or `pymoodle {Utility} --help` Credentials won't be stored anywhere. If the username/password is entered while running Utilities (not with `-c`), you will be asked if you want to store your password in the keyring. The Keyring is a local Password Storage where all passwords are securely stored. ### Config With the config utility you can configure your environment. You can either specify arguments that should be changed ( see `pymoodle config --help`) or launch the config in interactive mode like this: `pymoodle config` Its **recommended** to configure your environment once if you want. You can also set a default download Path. (which needs to exist before downloading.) ### Download With the download utility you can download files and exams from moodle. There are multiple ways to select a course. If you run the `pymoodle download` without any arguments, you can pick the downloadable courses. But you can also Download everything from the current semester like this: `pymoodle download -a` To download really everything call `pymoodle download -a -o`. This will also download all older semesters. Or it's possible to search and download courses, which name includes the word "Logic" or "Daten" like this: `pymoodle download -s Logic -s Daten` To download stuff from old courses specify the `-o` option, else only running/current courses will be considered. In interactive mode you can press *M* or *m* to load old/more courses. **Only for people who used PyMoodle before** It seems like, Pymoodle had some problems. Thus a lot of not downloaded urls got written to 'urls.txt'. Just delete the file if you want to try a redownload. Or if you only want to redownload the exams/quizes call: `pymoodle download -e -o` ### Grades ![grades](https://user-images.githubusercontent.com/31982496/110263795-059fc980-7fb8-11eb-8724-4ded9c08ca09.mp4) Grades will launch automatically in interactive mode. It can give you a short overview about your grades, or you can look at the specific evaluations from a course. Just like {download} it's also possible to use `-o` for old courses or `-s` to search for courses. ### Timeline ![timeline](https://raw.githubusercontent.com/LeLunZ/pymoodle-jku-linz/main/assets/timeline.png) Timeline shows your next few moodle events from the moodle calendar. The only argument you could specify is the max limit of events to show (`--limits 15`). ## Development If you want to run pymoodle locally: `python3 -m pymoodle_jku.pymoodle` There are multiple examples how to use the PyMoodle package. Just look in the [examples](https://github.com/LeLunZ/pymoodle-jku-linz/tree/main/examples) folder and start with [moodle_client.py](https://github.com/LeLunZ/pymoodle-jku-linz/tree/main/examples/moodle_client.py). There are examples for: - Login - Courses (Data/Section/Urls from a course) - Valuation of a course. - Moodle Calendar - Downloads ## Good To Know ### Unittests I have set up multiple [unittests](https://raw.githubusercontent.com/LeLunZ/pymoodle-jku-linz/main/tests), to ensure that the next releases won't introduce bugs. ### Dependencies - argcomplete: Is for commandline auto completion. - cryptography: To encrypt cookies/session key with the users password. - antimarkdown: Converts HTML from Moodle to Markdown - [keyring](https://pypi.org/project/keyring/): Saves your password secure locally. (on windows called Credential Locker) - io-uuid: One of my own packages. Is for creating unique filenames. - lxml: Is to parse HTML. - pick: A simple Terminal Picker. - pytube: For downloads from youtube. - sty: Colors for the terminal. Still needs to be implemented. - urllib3: for parsing urls and so stuff. - requests: for sending requests - requests-futures: A Wrapper around future to send asynchrones requests. - psutil: For getting the network download transfers to check if we should download more. ## Unsupported - Downloading of Zoom streams of jku.zoom.us isn't supported for now. If somebody get it working please feel free to do a merge request. ## Contribution If you want to add something, create an issue and do a pull request. ### Install for testing * clones this repo * `pip3 install -r requirements.txt` ## Planned - [ ] Log file support - [ ] file uploader for assignments Something that also seems interesting would be a kusss integration: - [ ] a kusss integration for checking grades - [ ] a kusss integration for registering in courses (so you don't have struggles when the kusss webserver is dying) I don't really know if I want to integrate or should integrate that, if a few people are interested in that I am more willing to spend time on it. %package -n python3-pymoodle-jku Summary: A client for the moodle page of JKU Linz. Provides: python-pymoodle-jku BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pymoodle-jku # PyMoodle-JKU Linz A local python client for accessing the jku moodle page. Passwords aren't sent anywhere except to the official moodle page https://moodle.jku.at/jku/login/index.php! Optionally you can store them in the local system keyring. It's also a python library, which you can use in your project. ##### Table of Contents [Description](#Description)
[Install](#Install)
[Terminal Application](#Commandline-Scripts)
[Development](#Development)
[Dependencies and Unittests](#Good-To-Know)
[Unsupported](#Unsupported)
[Contribution](#Contribution)
[Planned](#Planned) ## Description What can you do with PyMoodle? A Short Overview. You can do all this from the commandline and much more: - Download files from moodle videos/pdf/folder/etc. and even **Exams** as markdown - List all your grades without needing to open the browser and search moodle - List your timetable from moodle. - Password of moodle can be stored in the local system keyring. No need to enter it every time! ## Install `pip3 install -U pymoodle-jku ` To Download streams, you need [ffmpeg](https://ffmpeg.org/download.html) installed. Can also be done after installing pymoodle. To get autocompletion working add this to your bash .bashrc/.zshrc/....: `eval "$(register-python-argcomplete pymoodle)"` If you are using fish/Tcsh or another shell, have a closer look [here](https://github.com/kislyuk/argcomplete#zsh-support). ## Commandline Scripts The commandline script is called **pymoodle**. With **pymoodle** you can call these Utilities: - download - grades - timeline - config **Just call `pymoodle` from the terminal to get the Help page.** You will also find everything you need if you call: `pymoodle --help` or `pymoodle {Utility} --help` Credentials won't be stored anywhere. If the username/password is entered while running Utilities (not with `-c`), you will be asked if you want to store your password in the keyring. The Keyring is a local Password Storage where all passwords are securely stored. ### Config With the config utility you can configure your environment. You can either specify arguments that should be changed ( see `pymoodle config --help`) or launch the config in interactive mode like this: `pymoodle config` Its **recommended** to configure your environment once if you want. You can also set a default download Path. (which needs to exist before downloading.) ### Download With the download utility you can download files and exams from moodle. There are multiple ways to select a course. If you run the `pymoodle download` without any arguments, you can pick the downloadable courses. But you can also Download everything from the current semester like this: `pymoodle download -a` To download really everything call `pymoodle download -a -o`. This will also download all older semesters. Or it's possible to search and download courses, which name includes the word "Logic" or "Daten" like this: `pymoodle download -s Logic -s Daten` To download stuff from old courses specify the `-o` option, else only running/current courses will be considered. In interactive mode you can press *M* or *m* to load old/more courses. **Only for people who used PyMoodle before** It seems like, Pymoodle had some problems. Thus a lot of not downloaded urls got written to 'urls.txt'. Just delete the file if you want to try a redownload. Or if you only want to redownload the exams/quizes call: `pymoodle download -e -o` ### Grades ![grades](https://user-images.githubusercontent.com/31982496/110263795-059fc980-7fb8-11eb-8724-4ded9c08ca09.mp4) Grades will launch automatically in interactive mode. It can give you a short overview about your grades, or you can look at the specific evaluations from a course. Just like {download} it's also possible to use `-o` for old courses or `-s` to search for courses. ### Timeline ![timeline](https://raw.githubusercontent.com/LeLunZ/pymoodle-jku-linz/main/assets/timeline.png) Timeline shows your next few moodle events from the moodle calendar. The only argument you could specify is the max limit of events to show (`--limits 15`). ## Development If you want to run pymoodle locally: `python3 -m pymoodle_jku.pymoodle` There are multiple examples how to use the PyMoodle package. Just look in the [examples](https://github.com/LeLunZ/pymoodle-jku-linz/tree/main/examples) folder and start with [moodle_client.py](https://github.com/LeLunZ/pymoodle-jku-linz/tree/main/examples/moodle_client.py). There are examples for: - Login - Courses (Data/Section/Urls from a course) - Valuation of a course. - Moodle Calendar - Downloads ## Good To Know ### Unittests I have set up multiple [unittests](https://raw.githubusercontent.com/LeLunZ/pymoodle-jku-linz/main/tests), to ensure that the next releases won't introduce bugs. ### Dependencies - argcomplete: Is for commandline auto completion. - cryptography: To encrypt cookies/session key with the users password. - antimarkdown: Converts HTML from Moodle to Markdown - [keyring](https://pypi.org/project/keyring/): Saves your password secure locally. (on windows called Credential Locker) - io-uuid: One of my own packages. Is for creating unique filenames. - lxml: Is to parse HTML. - pick: A simple Terminal Picker. - pytube: For downloads from youtube. - sty: Colors for the terminal. Still needs to be implemented. - urllib3: for parsing urls and so stuff. - requests: for sending requests - requests-futures: A Wrapper around future to send asynchrones requests. - psutil: For getting the network download transfers to check if we should download more. ## Unsupported - Downloading of Zoom streams of jku.zoom.us isn't supported for now. If somebody get it working please feel free to do a merge request. ## Contribution If you want to add something, create an issue and do a pull request. ### Install for testing * clones this repo * `pip3 install -r requirements.txt` ## Planned - [ ] Log file support - [ ] file uploader for assignments Something that also seems interesting would be a kusss integration: - [ ] a kusss integration for checking grades - [ ] a kusss integration for registering in courses (so you don't have struggles when the kusss webserver is dying) I don't really know if I want to integrate or should integrate that, if a few people are interested in that I am more willing to spend time on it. %package help Summary: Development documents and examples for pymoodle-jku Provides: python3-pymoodle-jku-doc %description help # PyMoodle-JKU Linz A local python client for accessing the jku moodle page. Passwords aren't sent anywhere except to the official moodle page https://moodle.jku.at/jku/login/index.php! Optionally you can store them in the local system keyring. It's also a python library, which you can use in your project. ##### Table of Contents [Description](#Description)
[Install](#Install)
[Terminal Application](#Commandline-Scripts)
[Development](#Development)
[Dependencies and Unittests](#Good-To-Know)
[Unsupported](#Unsupported)
[Contribution](#Contribution)
[Planned](#Planned) ## Description What can you do with PyMoodle? A Short Overview. You can do all this from the commandline and much more: - Download files from moodle videos/pdf/folder/etc. and even **Exams** as markdown - List all your grades without needing to open the browser and search moodle - List your timetable from moodle. - Password of moodle can be stored in the local system keyring. No need to enter it every time! ## Install `pip3 install -U pymoodle-jku ` To Download streams, you need [ffmpeg](https://ffmpeg.org/download.html) installed. Can also be done after installing pymoodle. To get autocompletion working add this to your bash .bashrc/.zshrc/....: `eval "$(register-python-argcomplete pymoodle)"` If you are using fish/Tcsh or another shell, have a closer look [here](https://github.com/kislyuk/argcomplete#zsh-support). ## Commandline Scripts The commandline script is called **pymoodle**. With **pymoodle** you can call these Utilities: - download - grades - timeline - config **Just call `pymoodle` from the terminal to get the Help page.** You will also find everything you need if you call: `pymoodle --help` or `pymoodle {Utility} --help` Credentials won't be stored anywhere. If the username/password is entered while running Utilities (not with `-c`), you will be asked if you want to store your password in the keyring. The Keyring is a local Password Storage where all passwords are securely stored. ### Config With the config utility you can configure your environment. You can either specify arguments that should be changed ( see `pymoodle config --help`) or launch the config in interactive mode like this: `pymoodle config` Its **recommended** to configure your environment once if you want. You can also set a default download Path. (which needs to exist before downloading.) ### Download With the download utility you can download files and exams from moodle. There are multiple ways to select a course. If you run the `pymoodle download` without any arguments, you can pick the downloadable courses. But you can also Download everything from the current semester like this: `pymoodle download -a` To download really everything call `pymoodle download -a -o`. This will also download all older semesters. Or it's possible to search and download courses, which name includes the word "Logic" or "Daten" like this: `pymoodle download -s Logic -s Daten` To download stuff from old courses specify the `-o` option, else only running/current courses will be considered. In interactive mode you can press *M* or *m* to load old/more courses. **Only for people who used PyMoodle before** It seems like, Pymoodle had some problems. Thus a lot of not downloaded urls got written to 'urls.txt'. Just delete the file if you want to try a redownload. Or if you only want to redownload the exams/quizes call: `pymoodle download -e -o` ### Grades ![grades](https://user-images.githubusercontent.com/31982496/110263795-059fc980-7fb8-11eb-8724-4ded9c08ca09.mp4) Grades will launch automatically in interactive mode. It can give you a short overview about your grades, or you can look at the specific evaluations from a course. Just like {download} it's also possible to use `-o` for old courses or `-s` to search for courses. ### Timeline ![timeline](https://raw.githubusercontent.com/LeLunZ/pymoodle-jku-linz/main/assets/timeline.png) Timeline shows your next few moodle events from the moodle calendar. The only argument you could specify is the max limit of events to show (`--limits 15`). ## Development If you want to run pymoodle locally: `python3 -m pymoodle_jku.pymoodle` There are multiple examples how to use the PyMoodle package. Just look in the [examples](https://github.com/LeLunZ/pymoodle-jku-linz/tree/main/examples) folder and start with [moodle_client.py](https://github.com/LeLunZ/pymoodle-jku-linz/tree/main/examples/moodle_client.py). There are examples for: - Login - Courses (Data/Section/Urls from a course) - Valuation of a course. - Moodle Calendar - Downloads ## Good To Know ### Unittests I have set up multiple [unittests](https://raw.githubusercontent.com/LeLunZ/pymoodle-jku-linz/main/tests), to ensure that the next releases won't introduce bugs. ### Dependencies - argcomplete: Is for commandline auto completion. - cryptography: To encrypt cookies/session key with the users password. - antimarkdown: Converts HTML from Moodle to Markdown - [keyring](https://pypi.org/project/keyring/): Saves your password secure locally. (on windows called Credential Locker) - io-uuid: One of my own packages. Is for creating unique filenames. - lxml: Is to parse HTML. - pick: A simple Terminal Picker. - pytube: For downloads from youtube. - sty: Colors for the terminal. Still needs to be implemented. - urllib3: for parsing urls and so stuff. - requests: for sending requests - requests-futures: A Wrapper around future to send asynchrones requests. - psutil: For getting the network download transfers to check if we should download more. ## Unsupported - Downloading of Zoom streams of jku.zoom.us isn't supported for now. If somebody get it working please feel free to do a merge request. ## Contribution If you want to add something, create an issue and do a pull request. ### Install for testing * clones this repo * `pip3 install -r requirements.txt` ## Planned - [ ] Log file support - [ ] file uploader for assignments Something that also seems interesting would be a kusss integration: - [ ] a kusss integration for checking grades - [ ] a kusss integration for registering in courses (so you don't have struggles when the kusss webserver is dying) I don't really know if I want to integrate or should integrate that, if a few people are interested in that I am more willing to spend time on it. %prep %autosetup -n pymoodle-jku-1.2.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pymoodle-jku -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 1.2.0-1 - Package Spec generated