{ "info": { "author": "Bart Thate", "author_email": "bthate@dds.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: Unix", "Programming Language :: Python", "Topic :: Utilities" ], "description": "\nOBJ.BOTS is a framework part of the OBJ namespace. You can use it to program your own bots.\n\nOBJ is a pure python package that provides an object class that can save/load objects in JSON format to disk.\nFiles are saved with a timestamp in their filename, so searching in a time related manner becomes possible.\n\nOBJ has a \"no-clause MIT license\" that should be the most liberal license you can get at the year 2018.\n\n| pypi: https://pypi.org/project/obj | source: http://bitbucket.org/bthate/obj | email: bthate@dds.nl\n\nmodules\n=======\n\nOBJ contains the following modules:\n\n::\n\n base\t\t- the base module containing the Object class providing load/save to JSON functionality.\n bots\t\t- bots package.\n bus\t\t- send text to a list of registered handlers.\n cli\t\t- the command line interface bot giving access to the bot from the shell.\n cmds\t\t- commands subpackage containing the above listed commands.\n db\t\t- database functionality that can search through objects stored on disk.\n event\t\t- the Event class generated on bots when data is read from the socket.\n handler\t- the event handler of the bot.\n loader\t\t- Loader class to load modules from ob space into the program.\n shell\t\t- shell related startup, cli arguments parsing and logging.\n thr\t\t- thread module to launch, kill threads.\n users\t\t- provides user management code.\n\nusage\n=====\n\nThe basic class is Object that inherits from object and add load/save methods to a standard object:\n\n >>> from obj.base import Object\n >>> o = Object()\n >>> p = o.save()\n >>> oo = Object()\n >>> oo.load(p) \n >>> o == oo\n >>> True\n\nNext class is Obj, a dict combined with Object provides a usable \"dotted access\" dict:\n\n >>> from obj.base import Obj\n >>> o = Obj()\n >>> o.test = \"test1\"\n >>> p = o.save()\n >>> oo = Obj()\n >>> oo.load(p)\n >>> oo.test == \"test1\"\n >>> True\n\nshell\n=====\n\nYou can get a OBJ shell working by running python3 -m obj.bots.shell.\n\nOBJ shell has the following commands::\n\n cfg\t\t- show config files.\n cmds\t\t- show list of commands.\n deleted\t- show deleted objects.\n ed\t\t- edit saved objects.\n exit\t\t- stop the CLI.\n find\t\t- find objects in the datastore.\n fleet\t\t- show list of registered handlers.\n kill\t\t- stop a thread.\n last\t\t- show last record of a object.\n load\t\t- load a module.\n log\t\t- log some text.\n ls\t\t- list subdirectories in the workdir.\n meet\t\t- add a user\n perm\t\t- change permissions of a user.\n ps\t\t- show running threads.\n reboot\t\t- reboot the CLI.\n rm\t\t- set the deleted flag on an object.\n rmperm\t\t- remove permissions.\n test\t\t- echo test response.\n todo\t\t- store a todo item.\n unload\t\t- unload a module.\n uptime \t- show uptime.\n user\t\t- user lookup.\n version\t- show OBJ version.\n\nprogramming\n===========\n\nProgramming your own commands for the CLI is easy, your can load modules with the -m option.\nA command is a function with one argument, the event that was generated on the bot::\n\n def mycommand(event):\n\n <<< your code here >>>\n\nYou can use event.reply() to send response back to the user.\n\n \n ", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/bthate/obj.bots", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "obj.bots", "package_url": "https://pypi.org/project/obj.bots/", "platform": "", "project_url": "https://pypi.org/project/obj.bots/", "project_urls": { "Homepage": "https://bitbucket.org/bthate/obj.bots" }, "release_url": "https://pypi.org/project/obj.bots/11/", "requires_dist": null, "requires_python": "", "summary": "Framework to program bots", "version": "11" }, "last_serial": 4629558, "releases": { "1": [ { "comment_text": "", "digests": { "md5": "b2ae76b40241d3dc5cb90311786c7022", "sha256": "ce87b613f27875ed26797e8dc33c7ae5f65db9ae602a5edbe54effeb3e105189" }, "downloads": -1, "filename": "obj.bots-1.tar.gz", "has_sig": false, "md5_digest": "b2ae76b40241d3dc5cb90311786c7022", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10877, "upload_time": "2018-06-29T12:29:38", "url": "https://files.pythonhosted.org/packages/47/23/525bf33dbfcb1415749a0e2e3e529db2ee2bc6db3eb2128250ed5d6f6f57/obj.bots-1.tar.gz" } ], "10": [ { "comment_text": "", "digests": { "md5": "e0c824c4586ae1cd522ba6740a1ec58f", "sha256": "0fae4846a437f0586b63ab96ec8b18d000611068c9a2b3341db69a9d2ab3f6ef" }, "downloads": -1, "filename": "obj.bots-10.tar.gz", "has_sig": false, "md5_digest": "e0c824c4586ae1cd522ba6740a1ec58f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18219, "upload_time": "2018-10-12T11:43:52", "url": "https://files.pythonhosted.org/packages/82/d6/17f000991e0639f58c387ce8508fb8281660d80c4667069ba4910fe576ce/obj.bots-10.tar.gz" } ], "11": [ { "comment_text": "", "digests": { "md5": "c6ff379f3fd85d20a701ef5dcb0b56b2", "sha256": "77cb1e7c283a8417baf406f05dc0ad9e8d77172e153928988cb40925174d8bd6" }, "downloads": -1, "filename": "obj.bots-11.tar.gz", "has_sig": false, "md5_digest": "c6ff379f3fd85d20a701ef5dcb0b56b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11494, "upload_time": "2018-12-23T14:16:45", "url": "https://files.pythonhosted.org/packages/04/dc/694f256a9259915778c978a16c37f72129e01c28ae8b01c7d1c3b55f7602/obj.bots-11.tar.gz" } ], "2": [ { "comment_text": "", "digests": { "md5": "8da75b1765584d7173d7f893179c3ada", "sha256": "431a19e4fdf49febae81d61e9abbe61c4413c72ec346fbd2530a2972e402d6f0" }, "downloads": -1, "filename": "obj.bots-2.tar.gz", "has_sig": false, "md5_digest": "8da75b1765584d7173d7f893179c3ada", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11406, "upload_time": "2018-06-29T12:41:37", "url": "https://files.pythonhosted.org/packages/c9/fa/f0ca057e941e216082f624af90696055acad1a5a9e137dd3ac618246dcce/obj.bots-2.tar.gz" } ], "3": [ { "comment_text": "", "digests": { "md5": "951b98636ca13e6d4da9dbdbf314136e", "sha256": "bcbe525dd3418dfe1879b18f20346bd93fa984bf5c6089d018a4bc30f9a2f59e" }, "downloads": -1, "filename": "obj.bots-3.tar.gz", "has_sig": false, "md5_digest": "951b98636ca13e6d4da9dbdbf314136e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11382, "upload_time": "2018-06-29T13:50:30", "url": "https://files.pythonhosted.org/packages/9d/59/26b79148ebd0371f21fbe4f50abe116b15f06f4becf0ed364bfd256def96/obj.bots-3.tar.gz" } ], "4": [ { "comment_text": "", "digests": { "md5": "84fce1b8061900d2783f9e1cb0baf80f", "sha256": "84ab904515c473f1a44364fb06d2e6347d87a1bd95538bccb94e25e4517fbcb2" }, "downloads": -1, "filename": "obj.bots-4.tar.gz", "has_sig": false, "md5_digest": "84fce1b8061900d2783f9e1cb0baf80f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13501, "upload_time": "2018-06-29T20:50:54", "url": "https://files.pythonhosted.org/packages/23/d4/e4ef7ab9c26da86d7bb5707fd01df3d721dad5bb819d881f390c04bf76d6/obj.bots-4.tar.gz" } ], "5": [ { "comment_text": "", "digests": { "md5": "1b1e3624a9dc10f28113e5d387fcda71", "sha256": "724ab6f07e52e6dec02fd405842455663a7694f08e72951352b4021254720780" }, "downloads": -1, "filename": "obj.bots-5.tar.gz", "has_sig": false, "md5_digest": "1b1e3624a9dc10f28113e5d387fcda71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13597, "upload_time": "2018-06-29T21:17:43", "url": "https://files.pythonhosted.org/packages/f0/e3/6f315634e13768b10ccb75af946d8dd547541965ae526650810201db029e/obj.bots-5.tar.gz" } ], "6": [ { "comment_text": "", "digests": { "md5": "d2ae64e4eae7575db848ab25a2539011", "sha256": "bc6a76a04c75555f4e8fdbd0397223fcf1c34f8b00550a400d19952d09da28de" }, "downloads": -1, "filename": "obj.bots-6.tar.gz", "has_sig": false, "md5_digest": "d2ae64e4eae7575db848ab25a2539011", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8972, "upload_time": "2018-09-25T11:26:31", "url": "https://files.pythonhosted.org/packages/84/5a/339a0eef319564212a19e1e1f0795e1d712515e6f433a433f2f6cb5363a9/obj.bots-6.tar.gz" } ], "8": [ { "comment_text": "", "digests": { "md5": "5f41938f370302cbfe94082be36e43f3", "sha256": "af04df9f23ed8569ed34b679bc8e7be17b140a70501bd3c08edf36b55b0fa128" }, "downloads": -1, "filename": "obj.bots-8.tar.gz", "has_sig": false, "md5_digest": "5f41938f370302cbfe94082be36e43f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7028, "upload_time": "2018-09-25T16:01:39", "url": "https://files.pythonhosted.org/packages/6f/d0/42eb9570641ebbfd62bf5ee0382a92d01a486fb93bc06eaa98b1fa11a45e/obj.bots-8.tar.gz" } ], "9": [ { "comment_text": "", "digests": { "md5": "d51461506f8d924817599b7986796926", "sha256": "b2a3249a6eee89e8247208d469b9b2e4f0c32099c54d148cf08c939640805a42" }, "downloads": -1, "filename": "obj.bots-9.tar.gz", "has_sig": false, "md5_digest": "d51461506f8d924817599b7986796926", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7037, "upload_time": "2018-09-26T13:50:51", "url": "https://files.pythonhosted.org/packages/3b/7b/e872936201813c5ff0040d34bdcb078546123c3609a8887cfda97b256434/obj.bots-9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c6ff379f3fd85d20a701ef5dcb0b56b2", "sha256": "77cb1e7c283a8417baf406f05dc0ad9e8d77172e153928988cb40925174d8bd6" }, "downloads": -1, "filename": "obj.bots-11.tar.gz", "has_sig": false, "md5_digest": "c6ff379f3fd85d20a701ef5dcb0b56b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11494, "upload_time": "2018-12-23T14:16:45", "url": "https://files.pythonhosted.org/packages/04/dc/694f256a9259915778c978a16c37f72129e01c28ae8b01c7d1c3b55f7602/obj.bots-11.tar.gz" } ] }