{ "info": { "author": "Ethan Chan", "author_email": "metakirby5@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Web Environment", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Topic :: Utilities" ], "description": "========\n webcon\n========\n\n|Preview|\n\nControl your computer through shell commands from a barebones web interface.\n\nExample configuration: `config.yaml`_\n\n::\n\n __variables__:\n mpvfifo: ~/.local/share/mpv/fifo\n mpv:\n rewind: echo seek -5 > {mpvfifo}\n play/pause: echo cycle pause > {mpvfifo}\n fast forward: echo seek 5 > {mpvfifo}\n announcer:\n greet: say hello\n part: say farewell\n\nInstallation\n------------\n\n::\n\n pip3 install webcon\n\nTab completion\n--------------\n\n::\n\n sudo activate-global-python-argcomplete\n\nIf you installed via pip, you may need to run the following before autocompletion works:\n\n::\n\n grep 'PYTHON_ARGCOMPLETE_OK' \"$(which webcon)\" &>/dev/null || sudo sed -i \"1a # PYTHON_ARGCOMPLETE_OK\" \"$(which webcon)\"\n\nUsage\n-----\n\n::\n\n usage: webcon [-h] [--host HOST] [-p PORT] [config_file]\n\n Control your computer through shell commands from a barebones web interface.\n\n Configuration goes in ~/.config/webcon/config.yaml, or an alternate location\n may be provided by command line argument.\n\n Configuration format:\n\n - Throughout the configuration, order of each mapping is taken into account to\n ensure the layout does not deviate from expectations.\n - The top level of the configuration is a mapping.\n - Variables in the top-level key `__variables__` will be substituted once via\n `str.format` throughout the entire file. This may be used to extract long\n constants, etc.\n - Every other top-level key will define a service, and its value shall be a\n mapping of the actions it supports.\n - Each action shall define a label/command pair, in the the form of\n `label: command`.\n\n Example configuration:\n\n __variables__:\n mpvfifo: ~/.local/share/mpv/fifo\n mpv:\n rewind: echo seek -5 > {mpvfifo}\n play/pause: echo cycle pause > {mpvfifo}\n fast forward: echo seek 5 > {mpvfifo}\n announcer:\n greet: say hello\n part: say farewell\n\n Explanation:\n\n - Define `mpvfifo` as a variable holding the location of a mpv fifo.\n - Define a service `mpv`.\n - This service exports the actions `rewind`, `play/pause`, and\n `fast forward`. The actions are different echoes to `mpvffo`.\n - Define a service `announcer`.\n - This service exports the actions `greet` and `part`. The actions are\n different phrases which will be synthesized through `say`.\n\n positional arguments:\n config_file The config file to use. Default:\n /Users/echan/.config/webcon/config.yaml\n\n optional arguments:\n -h, --help show this help message and exit\n --host HOST The server host. Default: 0.0.0.0\n -p PORT, --port PORT The server port. Default: 8080\n\n.. |Preview| image:: https://i.imgur.com/YWVbGoc.png\n :target: https://i.imgur.com/YWVbGoc.png\n :alt: Preview of webcon.\n.. _config.yaml: config.yaml\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/metakirby5/webcon", "keywords": "web controller config yaml", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "webcon", "package_url": "https://pypi.org/project/webcon/", "platform": "", "project_url": "https://pypi.org/project/webcon/", "project_urls": { "Homepage": "https://github.com/metakirby5/webcon" }, "release_url": "https://pypi.org/project/webcon/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "Control your computer from a web interface", "version": "1.0.2" }, "last_serial": 3455004, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "8d270f72af41cd9533df8e30a98a049d", "sha256": "7e3e0aae4aa03485a01af76f30255406bd44da5c49600d92d9c1dbcb024f643f" }, "downloads": -1, "filename": "webcon-0.0.3-py36-none-any.whl", "has_sig": false, "md5_digest": "8d270f72af41cd9533df8e30a98a049d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14079, "upload_time": "2017-11-27T01:49:12", "url": "https://files.pythonhosted.org/packages/e8/c4/fcf405ce46d74940487f970a30e981dcbc72a82faa5f948585b37cc09df2/webcon-0.0.3-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8cf87b34764d03a8010032a9e15094b6", "sha256": "95034408d0aa9bb40776e479cd1d2e1f85d8bfcbf7686be8c88d120646ab8d15" }, "downloads": -1, "filename": "webcon-0.0.3.tar.gz", "has_sig": false, "md5_digest": "8cf87b34764d03a8010032a9e15094b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11379, "upload_time": "2017-11-27T01:49:10", "url": "https://files.pythonhosted.org/packages/63/d2/69cbb36b4d281481ec412f313f1372f9be0e25ce0ecc494e0eab9b866cb6/webcon-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "247e4b94ebd12afbd43c646a7224cc23", "sha256": "470d1fe066ce0e6ac0ce8fd205cabfc30a54fb06531570e60361cc15b9dbea7a" }, "downloads": -1, "filename": "webcon-0.0.4-py36-none-any.whl", "has_sig": false, "md5_digest": "247e4b94ebd12afbd43c646a7224cc23", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14161, "upload_time": "2017-11-27T02:09:27", "url": "https://files.pythonhosted.org/packages/33/dc/24864d1e7eba66913be90a0b60a55fe9e6c801ace7c64cd2318f0ee40ab1/webcon-0.0.4-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "539815fe2deb5d056f4a02141d6cedfa", "sha256": "fa83654d48d1331dadee07cd5d113058cf54a530414c064e493d3d4904aa6f06" }, "downloads": -1, "filename": "webcon-0.0.4.tar.gz", "has_sig": false, "md5_digest": "539815fe2deb5d056f4a02141d6cedfa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11446, "upload_time": "2017-11-27T02:09:25", "url": "https://files.pythonhosted.org/packages/2d/05/09eb84b36f6e5e43328d6a8deeea5cbb852a281c492c7260aa18d4d71ce7/webcon-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "77acbf782b8ee2a507283155741e4d1d", "sha256": "70579b69b41a46fdad226bcea8e9b9f3b4e1d4bbb37785f4c1b89f70be1b7c1d" }, "downloads": -1, "filename": "webcon-0.0.5-py36-none-any.whl", "has_sig": false, "md5_digest": "77acbf782b8ee2a507283155741e4d1d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15322, "upload_time": "2017-11-27T04:08:42", "url": "https://files.pythonhosted.org/packages/05/3c/bae74568caef362b3ea6933d722f35a844d8da41277980d12621235c88e4/webcon-0.0.5-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a730b83da64df99a5e18510c9b70e39", "sha256": "86cc8ffe2c25057f50c2a65bd8c8e75f9936608ecbd4d03ad78482ef0d39b846" }, "downloads": -1, "filename": "webcon-0.0.5.tar.gz", "has_sig": false, "md5_digest": "0a730b83da64df99a5e18510c9b70e39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12321, "upload_time": "2017-11-27T04:08:40", "url": "https://files.pythonhosted.org/packages/c7/47/12c18b2e278dbc0f810640c92bccd9c26eb7df876c5d41bde8cb30a13615/webcon-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "73d0e4bac6147fb8aded0c9aef155f24", "sha256": "3bf12c5012e6fff179681beed0741b0447e2649a2000b9d12515983066a0b20c" }, "downloads": -1, "filename": "webcon-0.0.6-py36-none-any.whl", "has_sig": false, "md5_digest": "73d0e4bac6147fb8aded0c9aef155f24", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15359, "upload_time": "2017-11-28T02:08:09", "url": "https://files.pythonhosted.org/packages/f9/cd/d28ace015ab34b291f818fff33990488c72b701d1665197a85249c398043/webcon-0.0.6-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "741e090d81a0a9e61628270e6515683d", "sha256": "d6adfb6acf579621a229c3499ae2dc0b5b19f0ad822ee91425cc234239dfdbdf" }, "downloads": -1, "filename": "webcon-0.0.6.tar.gz", "has_sig": false, "md5_digest": "741e090d81a0a9e61628270e6515683d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12387, "upload_time": "2017-11-28T02:08:07", "url": "https://files.pythonhosted.org/packages/47/ad/cc93d2ac3e4382c87d01a4d7decc6acb362bc3106efe41a76d3ad0592fe4/webcon-0.0.6.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "a50eda4e685fe241beca79388427e061", "sha256": "e623b09583b7d3dd3e59a82d1faa27a98818d312f56b1b935e200bf60cb1f80b" }, "downloads": -1, "filename": "webcon-1.0.0-py36-none-any.whl", "has_sig": false, "md5_digest": "a50eda4e685fe241beca79388427e061", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15445, "upload_time": "2018-01-01T00:54:50", "url": "https://files.pythonhosted.org/packages/2e/2c/8416d5776422bb8be8a0f26a11684a9f5ebcc91a29807b73c0fb63caaf5a/webcon-1.0.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4e5f931f7b2b20d29f2adef0d8986e0", "sha256": "61fcee3582dc6967ec3340e03a6aa40a4e662c656e0fb8ccc42420a9f12bca7d" }, "downloads": -1, "filename": "webcon-1.0.0.tar.gz", "has_sig": false, "md5_digest": "a4e5f931f7b2b20d29f2adef0d8986e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12465, "upload_time": "2018-01-01T00:54:48", "url": "https://files.pythonhosted.org/packages/a1/d4/2f546ba0b96e864d0af83adbeadc41e3be97ab6cbeb3340af89df61c8aef/webcon-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "f177ee261a53754f022b34262f791648", "sha256": "340b392feaf28e87fc8423304fef3b6f816ee055c3ecd3698720da681759fa3e" }, "downloads": -1, "filename": "webcon-1.0.1-py36-none-any.whl", "has_sig": false, "md5_digest": "f177ee261a53754f022b34262f791648", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15448, "upload_time": "2018-01-01T01:50:45", "url": "https://files.pythonhosted.org/packages/87/66/d507fbf75425d94dc32199a1a81c44e75c67989c1185d79c833155f17618/webcon-1.0.1-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60218a7ac769b72c8214dfef74def4ba", "sha256": "8db230edd103242e5b62b6764882f93fdb4c260841689936ba6db09dc93214f1" }, "downloads": -1, "filename": "webcon-1.0.1.tar.gz", "has_sig": false, "md5_digest": "60218a7ac769b72c8214dfef74def4ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12465, "upload_time": "2018-01-01T01:50:44", "url": "https://files.pythonhosted.org/packages/7e/a8/d6d4351635866b90578aa8c04401541563afac8d426501f72772d727a2ef/webcon-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "b512a4f69112d4e4da64b899d2a606d9", "sha256": "7e11a614ab1302e066e5b8b73c31b668a44578eea17207e1391575c42211cbcd" }, "downloads": -1, "filename": "webcon-1.0.2-py36-none-any.whl", "has_sig": false, "md5_digest": "b512a4f69112d4e4da64b899d2a606d9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15474, "upload_time": "2018-01-01T21:06:11", "url": "https://files.pythonhosted.org/packages/1b/c9/41a8c0af0234ba7af889542686beeace6e414ac2b4dc80e2a9bc753fa19f/webcon-1.0.2-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9bc102dfbf1bcfeb4cb438c8dee0148", "sha256": "174b4a93136907f558adfcbb0a1a759d2ca5be539b42564952a7c95d10e51e7e" }, "downloads": -1, "filename": "webcon-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d9bc102dfbf1bcfeb4cb438c8dee0148", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12488, "upload_time": "2018-01-01T21:06:08", "url": "https://files.pythonhosted.org/packages/58/11/4a22cdedac41e83e8c9b9f5d0023ae930eca70c4205f12fcceabdd063a61/webcon-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b512a4f69112d4e4da64b899d2a606d9", "sha256": "7e11a614ab1302e066e5b8b73c31b668a44578eea17207e1391575c42211cbcd" }, "downloads": -1, "filename": "webcon-1.0.2-py36-none-any.whl", "has_sig": false, "md5_digest": "b512a4f69112d4e4da64b899d2a606d9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15474, "upload_time": "2018-01-01T21:06:11", "url": "https://files.pythonhosted.org/packages/1b/c9/41a8c0af0234ba7af889542686beeace6e414ac2b4dc80e2a9bc753fa19f/webcon-1.0.2-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9bc102dfbf1bcfeb4cb438c8dee0148", "sha256": "174b4a93136907f558adfcbb0a1a759d2ca5be539b42564952a7c95d10e51e7e" }, "downloads": -1, "filename": "webcon-1.0.2.tar.gz", "has_sig": false, "md5_digest": "d9bc102dfbf1bcfeb4cb438c8dee0148", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12488, "upload_time": "2018-01-01T21:06:08", "url": "https://files.pythonhosted.org/packages/58/11/4a22cdedac41e83e8c9b9f5d0023ae930eca70c4205f12fcceabdd063a61/webcon-1.0.2.tar.gz" } ] }