{ "info": { "author": "Philip 'Hanse00' Mallegol-Hansen", "author_email": "philip@mallegolhansen.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: No Input/Output (Daemon)", "Environment :: Web Environment", "Intended Audience :: Education", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Education", "Topic :: Office/Business :: Scheduling", "Topic :: Utilities" ], "description": "# LecToCal\n\n[![CircleCI](https://circleci.com/gh/Hanse00/LecToCal.svg?style=svg)](https://circleci.com/gh/Hanse00/LecToCal)\n[![Coverage Status](https://coveralls.io/repos/github/Hanse00/LecToCal/badge.svg?branch=master)](https://coveralls.io/github/Hanse00/LecToCal)\n\nLecToCal is a python module for syncronizing Lectio schedules into Google Calendar.\n\nBy writing the schedule into Calendar in the native format, it supports notifications, viewing from Android and iOS, and everything else normally possible with a Google Calendar.\n\n## Installation\n\nInstallation is easiest using pip, as LecToCal is availble on Pypi as a package (http://pypi.org/project/lectocal/). Simply run `pip install lectocal`.\n\nFor more details on using pip, check out [the official documentation](https://packaging.python.org/tutorials/installing-packages/).\n\nAlternatively the source code can be downloaded straight from GitHub, using the \"Clone or download\" button in the top right.\n\n## Usage\n\n### Dependencies\n\nIf the package is installed via pip, dependencies will be handled automatically.\n\nOtherwise, these dependencies will need to be downloaded manually - We recommend using [pipenv](https://docs.pipenv.org) and installing the packages as listed in the [Pipfile](Pipfile).\n\n### Invocation\n\nAfter installation, the module can be invoced with:\n\n```\npython -m lectocal.gauth\npython -m lectocal.run\n```\n\nIf installed via setuptools (pip does this) two executables will also be generated:\n```\nlectocal.gauth\nlectocal.run\n```\n\nThese can be executed by the system directly.\n\n### Parameters\n\nFor all the parameters supported, run the intended module with the -h or --help parameters.\n\n### Example use\n\n1. Generating Calendar OAuth credentials.\n\n The first step is to generate OAuth credentials for the Google account, to which the schedule must be written.\n\n This is done by running `lectocal.gauth`, and following the steps in the browser. \n\n These steps authorize lectocal to get a credential which gives full calendar access, so new events can be written, and old ones deleted.\n\n1. Syncronizing the schedule.\n\n After the OAuth credential exists, LecToCal can now write into the calendar using the API.\n\n Running `lectocal.run` at this point, scrapes the schedule for the chosen individual, and writes it to the calendar.\n\n1. Repeat.\n\n To keep a calendar up to date, step 2 will need to be repeated at a given interval.\n This can for example be done using cron, or a similar task scheduling system.\n\n As long as the OAuth credentials are not deleted from the system, or revoked from the Google account, step 1 should not need to be re-run.\n\n**Note**\n\nThe generated Google Calendar should not be deleted or renamed, this may cause the system to break, or act in unexpected ways, such as creating a duplicate calendar.\n\n## Development\n\nWe love Pull Requests!\n\nIf you're interested in the project, and have an idea for something that can be improved, please feel welcome to contribute.\n\nIf you're not sure if your idea would be approved, open an issue on GitHub, or use the mailing list first.\n\nOnce you have the source, we strongly recommend using Pipenv.\n\nPipenv makes it easy to install the correct dependencies, so you can start working with the code.\n\nOnce you have pipenv installed on your system, navigate to the directory where this project is stored, then run:\n`pipenv install --dev`\n\nThis will create a pipenv with the right python version (If installed on your system) and all required dependencies.\n\nAt which point `pipenv shell` will put you in a shell where all those are available.\n\nHappy coding!\n\n## Bugs, Feedback, Thoughts, etc.\n\nFor bugs or pull requests, please use the builtin GitHub issue tracker.\n\nFor everything else use lectocal@googlegroups.com.\n\n## Donations\n\nIf you'd like to buy me a coffee - Awesome!\nIf you're not in a position to do that, please enjoy the software just the same - It's free for a reason.\n\nCurrently I accept BTC at: 3P4bzcKTvkz4Ey3QrAdiPa1zBKWVwsVqMb\n\n## License\n\nLecToCal is licensed under the Apache 2.0 license, see [LICENSE](LICENSE) or\napache.org for details.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Hanse00/LecToCal", "keywords": "lectio google calendar sync utility", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "lectocal", "package_url": "https://pypi.org/project/lectocal/", "platform": "", "project_url": "https://pypi.org/project/lectocal/", "project_urls": { "Homepage": "https://github.com/Hanse00/LecToCal" }, "release_url": "https://pypi.org/project/lectocal/1.2.1/", "requires_dist": [ "google-api-python-client", "requests", "lxml", "pytz", "python-dateutil", "oauth2client" ], "requires_python": ">=3", "summary": "Syncronize Lectio schedules to Google Calendar.", "version": "1.2.1" }, "last_serial": 4279097, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "8f3adc7896e201c49ce821d1fafab0cf", "sha256": "0123a765d63ebdaa3efb0c530f052a1cb7f291a19b3243f253e3e06ab9d7a923" }, "downloads": -1, "filename": "lectocal-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8f3adc7896e201c49ce821d1fafab0cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12500, "upload_time": "2018-05-27T13:57:43", "url": "https://files.pythonhosted.org/packages/52/5e/ef77292a3df60f6264e8933643322644d64751b06f56b92751aadc0e64a1/lectocal-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d967c4fd05471d62e0d7cc5b6908bc9", "sha256": "2decd427026431526172a39ea27ad0d881750c0524e49e1fdaece7a3b1a09120" }, "downloads": -1, "filename": "lectocal-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9d967c4fd05471d62e0d7cc5b6908bc9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 13255, "upload_time": "2018-05-27T13:57:45", "url": "https://files.pythonhosted.org/packages/38/13/54c81db1db47f2dfdb68f5f010dcc5d0adefcea66d540502cbe3c6f765a0/lectocal-1.0.0.tar.gz" } ], "1.0.0a1": [ { "comment_text": "", "digests": { "md5": "1b66dd031e8be997355ef8eca423c0f1", "sha256": "da9ba8c87e563781383d8350803e3e0e4b2eaaa6b5d49d398522af74d04147ba" }, "downloads": -1, "filename": "lectocal-1.0.0a1-py3-none-any.whl", "has_sig": false, "md5_digest": "1b66dd031e8be997355ef8eca423c0f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15374, "upload_time": "2016-03-28T13:11:44", "url": "https://files.pythonhosted.org/packages/4e/e9/abee1f17bb1d626710c0ec3cbaa3309e73082678524da4fd11db3f91c597/lectocal-1.0.0a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd6810f985afc5db3d98de37e38bb42d", "sha256": "34e322964f7143ca282988575083607651c79fc365984f21ba5d6b7e8608a601" }, "downloads": -1, "filename": "lectocal-1.0.0a1.tar.gz", "has_sig": false, "md5_digest": "dd6810f985afc5db3d98de37e38bb42d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13366, "upload_time": "2016-03-28T13:11:57", "url": "https://files.pythonhosted.org/packages/1e/13/1789d1d1e866b502b631802eab1370f47360b3de3de13991a340fd152ce3/lectocal-1.0.0a1.tar.gz" } ], "1.0.0a2": [ { "comment_text": "", "digests": { "md5": "75bf3275510c6f1142c3c3835c6504e0", "sha256": "d93ed85c3e5cea657a4ece0e5f1fd32859966e831de2642b21257a277da2ce3a" }, "downloads": -1, "filename": "lectocal-1.0.0a2-py3-none-any.whl", "has_sig": false, "md5_digest": "75bf3275510c6f1142c3c3835c6504e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15830, "upload_time": "2016-03-28T13:57:20", "url": "https://files.pythonhosted.org/packages/79/50/7695c045951df9a5520a5d912b7a2407914986fe1afcfbba7f91316b3abe/lectocal-1.0.0a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "103a9899e83dfd3bf01bb875be02e5dd", "sha256": "afd902e5dd4d3877744bdecb7bda207f062775f40844f8e8f504c01b6b7ffd5a" }, "downloads": -1, "filename": "lectocal-1.0.0a2.tar.gz", "has_sig": false, "md5_digest": "103a9899e83dfd3bf01bb875be02e5dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13316, "upload_time": "2016-03-28T13:57:30", "url": "https://files.pythonhosted.org/packages/4a/84/dc22fb97988eb713ccfcf825013be499de2db9ac79c6d4db628f094488db/lectocal-1.0.0a2.tar.gz" } ], "1.0.0a3": [ { "comment_text": "", "digests": { "md5": "45186aa30a246e2266ad69be1efb5fb1", "sha256": "1f108536498b3fe12229c7b833b139ecb8962827ee7e772dd8123f0a3c46e938" }, "downloads": -1, "filename": "lectocal-1.0.0a3-py3-none-any.whl", "has_sig": false, "md5_digest": "45186aa30a246e2266ad69be1efb5fb1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16162, "upload_time": "2016-03-30T12:58:05", "url": "https://files.pythonhosted.org/packages/bb/96/225b70580e129f07a37248305a31c80b3d114778285cbe9d03ed32b3be0c/lectocal-1.0.0a3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "297a97f6cee3611c01ab456e7a074987", "sha256": "668be6f67d50b2fb03d8f60e3b24590679c8823658e5c4e2ad6da5a3c42ca132" }, "downloads": -1, "filename": "lectocal-1.0.0a3.tar.gz", "has_sig": false, "md5_digest": "297a97f6cee3611c01ab456e7a074987", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13541, "upload_time": "2016-03-30T12:58:13", "url": "https://files.pythonhosted.org/packages/35/73/21e984d4d4537257a83969a9cc0a73b392f6c1d7744cbaf094c23a184de0/lectocal-1.0.0a3.tar.gz" } ], "1.0.0a4": [ { "comment_text": "", "digests": { "md5": "c3f048ea1caed3826ec70d7e6e694b03", "sha256": "12e650a496bf6aa420feda897691e02149158ab4ad4a1946c7c6bbac2b7c06ca" }, "downloads": -1, "filename": "lectocal-1.0.0a4-py3-none-any.whl", "has_sig": false, "md5_digest": "c3f048ea1caed3826ec70d7e6e694b03", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10753, "upload_time": "2018-04-21T15:00:45", "url": "https://files.pythonhosted.org/packages/77/3a/9d2fa978356d4663e7f2637e02a1962d325030437f3ef48deea1af9ff4f5/lectocal-1.0.0a4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "987646848b66b69fa63f187f818924e1", "sha256": "3523cc0324b5aecff0d0e2504ef807898d2b3e1589bd2867850dc9c2759b37f5" }, "downloads": -1, "filename": "lectocal-1.0.0a4.tar.gz", "has_sig": false, "md5_digest": "987646848b66b69fa63f187f818924e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10552, "upload_time": "2018-04-21T15:00:47", "url": "https://files.pythonhosted.org/packages/94/66/b9197a5b2089aa91e58f0f3e30bfada3573f769b9a51625ada4a829a59a1/lectocal-1.0.0a4.tar.gz" } ], "1.0.0a5": [ { "comment_text": "", "digests": { "md5": "37b55569cc6c4e8ae5228ed5e467d06a", "sha256": "5216dcb42920ca1fe2836f37cc76a424e7e705716075c12e456d01304c32a7ab" }, "downloads": -1, "filename": "lectocal-1.0.0a5-py3-none-any.whl", "has_sig": false, "md5_digest": "37b55569cc6c4e8ae5228ed5e467d06a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 13212, "upload_time": "2018-05-26T14:05:31", "url": "https://files.pythonhosted.org/packages/f4/ec/41b7e23f9b8cf866a61d3981aa4612d1726bc71c675035e9f50a0b9e783f/lectocal-1.0.0a5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e5750fc579677e47b3e40e86c4ae384", "sha256": "de3c3bd4e0077bebc6fe5cddd7cfd7b58479936dd9c896964d9fcf13872ac7bd" }, "downloads": -1, "filename": "lectocal-1.0.0a5.tar.gz", "has_sig": false, "md5_digest": "4e5750fc579677e47b3e40e86c4ae384", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 15888, "upload_time": "2018-05-26T14:05:33", "url": "https://files.pythonhosted.org/packages/ff/c0/30a2b0bad77ea8009d8e44659f4b21b859e615b7c4f5a4ea250fb2eb63a5/lectocal-1.0.0a5.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "4777aae06c5196dcfa2604d95f9bbec6", "sha256": "584fbe5f70e82ef36d4719a8914d01349e824bdde82c4377405b4f27b58867c8" }, "downloads": -1, "filename": "lectocal-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4777aae06c5196dcfa2604d95f9bbec6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12527, "upload_time": "2018-05-27T13:59:57", "url": "https://files.pythonhosted.org/packages/e9/3e/4869cbe062095e32d11923782c959485c054da919662fc71e5a2fb3f5707/lectocal-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1252638caf64f1223584c89c673260e1", "sha256": "bbf5eef84e8bf5a50ea5f9cd7da7a4748e987088219d019a4c822107eb1ca6c0" }, "downloads": -1, "filename": "lectocal-1.0.1.tar.gz", "has_sig": false, "md5_digest": "1252638caf64f1223584c89c673260e1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 13294, "upload_time": "2018-05-27T13:59:58", "url": "https://files.pythonhosted.org/packages/c0/7e/716829fcd572d6d6153aeacefaf74330f74325fe793ed818c932a9e0d80d/lectocal-1.0.1.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "fdfd6d51c43bafaa1c2d50c74522eb7a", "sha256": "6647042772354c92c04cc5edb243a8272667be7d1fa192bc677bb06154033b8b" }, "downloads": -1, "filename": "lectocal-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fdfd6d51c43bafaa1c2d50c74522eb7a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12708, "upload_time": "2018-09-09T18:22:14", "url": "https://files.pythonhosted.org/packages/16/bf/db979ae616f6d5b503b8a29411ffd086551da57619d7bcea3c907d9b539e/lectocal-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26824cfe623e5e1ec6f3f5609ac8e400", "sha256": "a59152ddf497b74ccc15e15172a649b13db3255c9553ae661e6a8bc360f279af" }, "downloads": -1, "filename": "lectocal-1.1.tar.gz", "has_sig": false, "md5_digest": "26824cfe623e5e1ec6f3f5609ac8e400", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 13311, "upload_time": "2018-09-09T18:22:15", "url": "https://files.pythonhosted.org/packages/33/5e/235d3eaee100fa6ab96ad0e70752714f28ffc1e5fbeb5e124e8f4b22f32b/lectocal-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "d5dade1e4deab9edfbb052a00ffef97e", "sha256": "a231596d180627338394c996836cb8ac4313b17df58718cdde4638665479f9b5" }, "downloads": -1, "filename": "lectocal-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d5dade1e4deab9edfbb052a00ffef97e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12711, "upload_time": "2018-09-10T09:42:23", "url": "https://files.pythonhosted.org/packages/a4/fa/1d626529cd0af810aac137fb6e9ae90dafa8eeae10d01f22dea56385b717/lectocal-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "57ce377f1136190980e369d312387cd4", "sha256": "ded00cd7c7b2e67c19a11fc937a2de05a86b766a6c5d918cfb03003be650c4a2" }, "downloads": -1, "filename": "lectocal-1.2.tar.gz", "has_sig": false, "md5_digest": "57ce377f1136190980e369d312387cd4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 13313, "upload_time": "2018-09-10T09:42:24", "url": "https://files.pythonhosted.org/packages/d4/7f/38ba81969a8d3b1ecd341773c6e3a9314a0b6fe17eae3a8aa08de60125b8/lectocal-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ca8a3e20ff9cc5dc9b9310029db5e270", "sha256": "354e9a1a0fbbf5b68ac3202248c843546ece52e0c0ce5d226ec0e0f563ca6248" }, "downloads": -1, "filename": "lectocal-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ca8a3e20ff9cc5dc9b9310029db5e270", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12751, "upload_time": "2018-09-17T11:37:55", "url": "https://files.pythonhosted.org/packages/6b/25/51109306f7fa1be4859da598764a39be612bfea633cab0278567d7a40424/lectocal-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "479f0115a188f0818df916696b81b98b", "sha256": "e4a35e5c0fb6133acd507692f53ae85b2876eec6d9acf064f5bd4959f5f28917" }, "downloads": -1, "filename": "lectocal-1.2.1.tar.gz", "has_sig": false, "md5_digest": "479f0115a188f0818df916696b81b98b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 15355, "upload_time": "2018-09-17T11:37:57", "url": "https://files.pythonhosted.org/packages/7d/43/f944ec68ea5704e81b9c02b17d948ab46d9252a3a49a34d6103a3cd483b2/lectocal-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ca8a3e20ff9cc5dc9b9310029db5e270", "sha256": "354e9a1a0fbbf5b68ac3202248c843546ece52e0c0ce5d226ec0e0f563ca6248" }, "downloads": -1, "filename": "lectocal-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ca8a3e20ff9cc5dc9b9310029db5e270", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12751, "upload_time": "2018-09-17T11:37:55", "url": "https://files.pythonhosted.org/packages/6b/25/51109306f7fa1be4859da598764a39be612bfea633cab0278567d7a40424/lectocal-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "479f0115a188f0818df916696b81b98b", "sha256": "e4a35e5c0fb6133acd507692f53ae85b2876eec6d9acf064f5bd4959f5f28917" }, "downloads": -1, "filename": "lectocal-1.2.1.tar.gz", "has_sig": false, "md5_digest": "479f0115a188f0818df916696b81b98b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 15355, "upload_time": "2018-09-17T11:37:57", "url": "https://files.pythonhosted.org/packages/7d/43/f944ec68ea5704e81b9c02b17d948ab46d9252a3a49a34d6103a3cd483b2/lectocal-1.2.1.tar.gz" } ] }