{ "info": { "author": "Cristian Varela", "author_email": "cvarelaruiz@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Natural Language :: English", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.7", "Topic :: Other/Nonlisted Topic" ], "description": "# owi2plex\nExporter of EPG from OpenWebif to XMLTV to use with Plex\n\n## Dependencies\n* Python 2.7/3.7\n* The following Enigma2 Plugins need to be installed \n * OpenWebif Server Plugin\n * HRTunerProxy Pluging\n* Plex (to use the XMLTV file) with a Premium Subscription\n\n## Installation\n### Via PIP\nrun the following command:\n\n`pip install owi2plex`\n\n### Cloning this Repo\nClone this repository locally (suggest you do into a folder where your Plex server runs or at least where it can get the output file via a network mount/share).\n\nInstall the requirements with:\n\n`pip install -r requirements.txt`\n\n## Usage\n```\nowi2plex --help\nUsage: owi2plex [OPTIONS]\n\nOptions:\n -b, --bouquet TEXT The name of the bouquet to parse. If not specified\n parse all bouquets.\n -u, --username TEXT OpenWebIf username.\n -p, --password TEXT OpenWebIf password.\n -h, --host TEXT OpenWebIf host.\n -P, --port INTEGER OpenWebIf port.\n -o, --output-file TEXT Output file.\n -c, --continuous-numbering BOOLEAN Continuous numbering across bouquets.\n -l, --list-bouquets Display a list of bouquets.\n -V, --version Displays the version of the package.\n -O, --category-override TEXT Category override YAML file. See documentation for file format.\n --help Show this message and exit.\n```\n\n## Examples\n\nIf OpenWebif server is running in 192.168.0.150:80 with no auth and you want to output the file to c:\\tmp\\:\n\n`owi2plex -h 192.168.0.150 -o c:\\\\tmp\\\\epg.xml`\n\nIf you have a bouquet called TV and you only want to generate the XMLTV for the channels in that bouquet:\n\n`./owi2plex -b TV -h 192.168.0.150 -o /tmp/epg.xml`\n\n## Scheduling\n\nFor now the script doesn't handle scheduling but you can use crontab in Linux or Windows' Task Scheduler. Ensure that the script runs daily *after* your OpenWebif box has refreshed the EPG.\n\nDepending on your machine and network speed the generation time varies but for my modest set-up it takes about 45 seconds for a bouquet with 100+ channels.\n\n## Program Category Overrides\nYou can specify a YAML override file to force the category for programms with specific title patterns as the EPG provders and OpenWebIf don't provide accurate categories in many cases. For example, give the following cat_overrides.yml file:\n\n```\nNews: \n - \"News: One O'Clock\"\n - \"News: Six One\"\n - \"News: Nine O'Clock\"\n - \"ITV News:\"\n - \"Weather for the Week Ahead\"\n - \"BBC News\"\n\nSports:\n - \"Champions League\"\n - \"Cycling:\"\n - \"The NFL Show\"\n - \"NFL This Week\"\n\nFootball: \n - \"Champions League\"\n\nSeries:\n - \"The NFL Show\"\n - \"NFL This Week\"\n\n```\n\nyou can run the following command: \n\n`./owi2plex -b TV -h 192.168.0.150 -o /tmp/epg.xml -O ./cat_overrides.yml`\n\nTo assign one or more categories to programs based on their title.\n\nPlease note the following:\n\n* The file needs to be UTF-8 encoded, specially if the title patterns include special characters.\n* The overrides are *not* appended to the categories in the EPG. In other words, if the title matches an override pattern it'll ignore the catogries parsed from the EPG.\n* The titles are matched partially. For example, in the case of the file above, programs titled `Champions League Magazine` and `Champions League Live Tonight` with have their categories overriden.\n* The title patterns are *not* case sensitve.\n\n\nEnjoy\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/cvarelaruiz/owi2plex", "keywords": "plex openwebif xmltv", "license": "MPL-2.0", "maintainer": "", "maintainer_email": "", "name": "OWi2Plex", "package_url": "https://pypi.org/project/OWi2Plex/", "platform": "", "project_url": "https://pypi.org/project/OWi2Plex/", "project_urls": { "Homepage": "https://github.com/cvarelaruiz/owi2plex" }, "release_url": "https://pypi.org/project/OWi2Plex/0.1a8/", "requires_dist": [ "click (==7.0)", "requests (==2.21.0)", "lxml (==4.3.2)", "future (==0.17.1)", "pyyaml (==5.1.2)" ], "requires_python": "", "summary": "Exporter of EPG from OpenWebif to XMLTV to use with Plex", "version": "0.1a8" }, "last_serial": 5902278, "releases": { "0.1a0": [ { "comment_text": "", "digests": { "md5": "ae12377e50fad1262fc3bbdbf86a4fca", "sha256": "c376f71a79667a24cb6031b349098fb59e80b5ceb6216c23888ec4623ee6c686" }, "downloads": -1, "filename": "OWi2Plex-0.1a0-py3-none-any.whl", "has_sig": false, "md5_digest": "ae12377e50fad1262fc3bbdbf86a4fca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11404, "upload_time": "2019-03-22T23:03:26", "url": "https://files.pythonhosted.org/packages/16/87/260dfd3220d6bf0c36823531dfe6bd654cdda4e988258521899e9bc9fe19/OWi2Plex-0.1a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29d778235e9c2200b57f2afec3d7d007", "sha256": "429c223cf085bc5fbe66377e45bbe6f493967312ed1a3cfd0bbb6dd72af3c13e" }, "downloads": -1, "filename": "OWi2Plex-0.1a0.tar.gz", "has_sig": false, "md5_digest": "29d778235e9c2200b57f2afec3d7d007", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5432, "upload_time": "2019-03-22T23:03:28", "url": "https://files.pythonhosted.org/packages/7c/f0/5ef25d68fd1c87f5b01d12fc40d646aad0014982b21891092414523072e2/OWi2Plex-0.1a0.tar.gz" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "029b50b33b371acb0748dd49fcdcae75", "sha256": "aeea37a0fbe8aecaf407164b0168999190346332850e3fdec7f7804e412b4794" }, "downloads": -1, "filename": "OWi2Plex-0.1a2-py2-none-any.whl", "has_sig": false, "md5_digest": "029b50b33b371acb0748dd49fcdcae75", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11676, "upload_time": "2019-03-25T22:05:13", "url": "https://files.pythonhosted.org/packages/6a/c0/8ed4dd3ed690da3a69a9d0a46aa76a7850d103785442145d31197fcb0d53/OWi2Plex-0.1a2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8dc053fee26768068a1a6fcf8bf96347", "sha256": "a2ad935d0dc94805080c14edc051ffda6416e3a68ca88c54241f3a89ffe8ff0f" }, "downloads": -1, "filename": "OWi2Plex-0.1a2-py3-none-any.whl", "has_sig": false, "md5_digest": "8dc053fee26768068a1a6fcf8bf96347", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11666, "upload_time": "2019-03-25T22:05:15", "url": "https://files.pythonhosted.org/packages/07/a4/ac1640c11bd97afe944f622fbc328ba95d0eb1d725920f4a8b159ef3c532/OWi2Plex-0.1a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7abb2f8034ada89e0b0afdd28e8902b5", "sha256": "58154fe41116a1201880879eca27c0e36933c1b576aca91aca026b5db1516b42" }, "downloads": -1, "filename": "OWi2Plex-0.1a2.tar.gz", "has_sig": false, "md5_digest": "7abb2f8034ada89e0b0afdd28e8902b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5725, "upload_time": "2019-03-25T22:05:16", "url": "https://files.pythonhosted.org/packages/65/8c/601925d75d549adf39723bc929472e814644cdbdb42ec238b2a9d0537f9c/OWi2Plex-0.1a2.tar.gz" } ], "0.1a3": [ { "comment_text": "", "digests": { "md5": "69ddd68d8a76c7ccc9f56bdc60c03d0b", "sha256": "9c6f3eca2fceda6b5ca3c960aff4e2800fc1832a7ccb6d36d880f96fade79ea6" }, "downloads": -1, "filename": "OWi2Plex-0.1a3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69ddd68d8a76c7ccc9f56bdc60c03d0b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11726, "upload_time": "2019-03-26T09:02:01", "url": "https://files.pythonhosted.org/packages/05/38/9ba52cb722c30ca4eb8a637e731d59ca7261c05967f8404cc42262e03df7/OWi2Plex-0.1a3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "604e41d0299db8c8044d8088fb27cd07", "sha256": "1147bc5cbe319ead03887e002d918c638ad434c53d73b9c193ca3173ee14ab5e" }, "downloads": -1, "filename": "OWi2Plex-0.1a3.tar.gz", "has_sig": false, "md5_digest": "604e41d0299db8c8044d8088fb27cd07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5785, "upload_time": "2019-03-26T09:02:03", "url": "https://files.pythonhosted.org/packages/e9/54/3674f381952bdd4f6fd9316ef0330799310f805e658a8241e75f07d81949/OWi2Plex-0.1a3.tar.gz" } ], "0.1a4": [ { "comment_text": "", "digests": { "md5": "19cccaa01c038b06146a3f061719ecd1", "sha256": "246200e22caebcb4548ae08442a93d583a701233df9d4f668f6dcba94a1342a0" }, "downloads": -1, "filename": "OWi2Plex-0.1a4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19cccaa01c038b06146a3f061719ecd1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11908, "upload_time": "2019-04-03T22:07:22", "url": "https://files.pythonhosted.org/packages/93/87/d66d7838ad95f8a491d9b3ccafa06fe6567955bbc2db865bb59578d6dc7d/OWi2Plex-0.1a4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "647dab6efe1dce359f5cb7d2cd5cf7a2", "sha256": "1292e967c0afbd1fd5352b49283fac8c2bbee96f280ff6294b0226459ae2e618" }, "downloads": -1, "filename": "OWi2Plex-0.1a4.tar.gz", "has_sig": false, "md5_digest": "647dab6efe1dce359f5cb7d2cd5cf7a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5962, "upload_time": "2019-04-03T22:07:23", "url": "https://files.pythonhosted.org/packages/d6/3b/f1704b90aeb466fcdd97459ef5f239d5b024eb31417221d664c9af1d3718/OWi2Plex-0.1a4.tar.gz" } ], "0.1a5": [ { "comment_text": "", "digests": { "md5": "a20e2732cc7d31e3166d75745922dc23", "sha256": "ccf3fb0262da10d89dd251e6aab60614982b46be080bb5d10318e40a90b6a6f0" }, "downloads": -1, "filename": "OWi2Plex-0.1a5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a20e2732cc7d31e3166d75745922dc23", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12229, "upload_time": "2019-08-26T10:01:22", "url": "https://files.pythonhosted.org/packages/de/81/a5a3e561af9b4068f8452214dda6a7a0619da63ad83a34430e078339816c/OWi2Plex-0.1a5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27600db3455fc8c785ed1169d2a9da26", "sha256": "bc1dbe9657e30e893f073a133dc0ce91a5285e94ebddc150c0e3ad2fbb17b781" }, "downloads": -1, "filename": "OWi2Plex-0.1a5.tar.gz", "has_sig": false, "md5_digest": "27600db3455fc8c785ed1169d2a9da26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6279, "upload_time": "2019-08-26T10:01:23", "url": "https://files.pythonhosted.org/packages/3e/05/1954162d1094e131922c26080f096d72eea0b45b26b047001090cc28a2ec/OWi2Plex-0.1a5.tar.gz" } ], "0.1a7": [ { "comment_text": "", "digests": { "md5": "f44a2dccb2c529797d23d7694a9d1c52", "sha256": "14a72e7d3ee72c19a4b12ce65149b5e47256c7ce9a2a620987a3ed88c7f0781f" }, "downloads": -1, "filename": "OWi2Plex-0.1a7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f44a2dccb2c529797d23d7694a9d1c52", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13174, "upload_time": "2019-09-13T23:29:26", "url": "https://files.pythonhosted.org/packages/72/8c/ec5f1e6a7775565d9863fdc0868b60058dd44c3db4244315158fe013c369/OWi2Plex-0.1a7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85448130145d39b7bd62f0f563c9cc2c", "sha256": "d02a0a7760df0512bc301bc94f8ea316193db99dc3c7eb6827622b274280961e" }, "downloads": -1, "filename": "OWi2Plex-0.1a7.tar.gz", "has_sig": false, "md5_digest": "85448130145d39b7bd62f0f563c9cc2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7370, "upload_time": "2019-09-13T23:29:28", "url": "https://files.pythonhosted.org/packages/24/f7/ff3734d08c6bdaf63c81c000210af50a414dd5db51f95433300109fe86aa/OWi2Plex-0.1a7.tar.gz" } ], "0.1a8": [ { "comment_text": "", "digests": { "md5": "4dedb617fa43fad790dc4c0aa7956081", "sha256": "56885e9ac109720f7e3b1b168ec8b4fb4d1033392d3c0ebcee80e8b13ac8d4cf" }, "downloads": -1, "filename": "OWi2Plex-0.1a8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4dedb617fa43fad790dc4c0aa7956081", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13201, "upload_time": "2019-09-29T10:02:15", "url": "https://files.pythonhosted.org/packages/56/c9/26b9184bbc018a345f0e4340e08bc365e9c1d7ae75e781d9bb44515cf551/OWi2Plex-0.1a8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d30449ca8f9ea9b9eb001bd99f208aa", "sha256": "0b3939024ddc69292c3f2c0c8fc84f8fd7643726448e2da6b266b9b7fb5e67e3" }, "downloads": -1, "filename": "OWi2Plex-0.1a8.tar.gz", "has_sig": false, "md5_digest": "0d30449ca8f9ea9b9eb001bd99f208aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7394, "upload_time": "2019-09-29T10:02:17", "url": "https://files.pythonhosted.org/packages/8f/83/e6e916c7d777ac06c69a5ffb3b4e6d1c5bcd1455c7232f69fc2a07758678/OWi2Plex-0.1a8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4dedb617fa43fad790dc4c0aa7956081", "sha256": "56885e9ac109720f7e3b1b168ec8b4fb4d1033392d3c0ebcee80e8b13ac8d4cf" }, "downloads": -1, "filename": "OWi2Plex-0.1a8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4dedb617fa43fad790dc4c0aa7956081", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13201, "upload_time": "2019-09-29T10:02:15", "url": "https://files.pythonhosted.org/packages/56/c9/26b9184bbc018a345f0e4340e08bc365e9c1d7ae75e781d9bb44515cf551/OWi2Plex-0.1a8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d30449ca8f9ea9b9eb001bd99f208aa", "sha256": "0b3939024ddc69292c3f2c0c8fc84f8fd7643726448e2da6b266b9b7fb5e67e3" }, "downloads": -1, "filename": "OWi2Plex-0.1a8.tar.gz", "has_sig": false, "md5_digest": "0d30449ca8f9ea9b9eb001bd99f208aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7394, "upload_time": "2019-09-29T10:02:17", "url": "https://files.pythonhosted.org/packages/8f/83/e6e916c7d777ac06c69a5ffb3b4e6d1c5bcd1455c7232f69fc2a07758678/OWi2Plex-0.1a8.tar.gz" } ] }