{
"info": {
"author": "Matt Long",
"author_email": "matt@mattlong.org",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: ISC License (ISCL)",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Operating System :: Unix",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "# hermes\n\nHermes is an extensible XMPP-based chatroom server written in Python.\nEasily setup and manage chatrooms for friends or colleagues.\n\n## How it Works\n\nSupply your own XMPP-based accounts (Google accounts work great!) to serve as chatroom hosts, add a bit of configuration, and that's it.\nAll chatroom members are invited to chat with the chatroom host which will in turn broadcast their messages to all other members.\n\n## Usage\n\nThe \"Hello World\" usage of Hermes looks like this. Put the following in `chatserver.py`, update the user and chatroom info, and run it:\n\n from hermes.api import run_server\n \n brain = { 'JID': 'brain@wb.com', 'NICK': 'brain', 'ADMIN': True }\n pinky = { 'JID': 'pinky.suavo@wb.com', 'NICK': 'pinky' }\n \n chatrooms = {\n 'world-domination-planning': {\n 'JID': 'world.domination.planning@wb.com',\n 'PASSWORD': 'thesamethingwedoeverynight',\n 'SERVER': ('talk.google.com', 5223,),\n 'MEMBERS': [pinky, brain],\n },\n }\n \n run_server(chatrooms)\n\n## Installation\n\nAvailable from PyPI: . pip is the recommended installation method:\n\n pip install hermes\n\n## Commands\n\nHermes interprets some messages as commands:\n\n* `/mute` - Mute the chatroom. Messages are queued up for whenever you unmute the chatroom.\n\n* `/unmute` - Unmute the chatroom. Receive all messages that were queued while the chatroom was muted.\n\n* `/invite ` - Invite members to the chatroom. Available to admins only.\n\n* `/kick ` - Kick members from the chatroom. Available to admins only.\n\n* `/marco` - Not sure if you're still connected to the chatroom? Chatroom replies to you (and only you) with \"polo\".\n\n## Extensibility\n\nYou can extend the base chatroom class `hermes.Chatroom` to modify or add extra functionality.\n\nAdding a `command_patterns` static property to your class should be particularly useful for extensions.\nIt's a list of regular expression/method name pairs. Each incoming message is tested against the regexes until a match is found.\nOn a match, the named instance method is invoked to handle the message instead of the default message-handling pipeline.\n\nSpecify the path to your creation as a string or the Class itself as the `CLASS` of your chatroom:\n\n from hermes.api import run_server, Chatroom\n\n class BillyMaysChatroom(Chatroom):\n \tcommand_patterns = ((r'.*', 'shout'),)\n\n \tdef shout(self, sender, body, match):\n body = body.upper() #SHOUT IT\n self.broadcast(body)\n\n chatrooms = {\n 'world-domination-planning': {\n 'CLASS': 'BillyMaysChatroom',\n 'JID': 'world.domination.planning@wb.com',\n 'PASSWORD': 'thesamethingwedoeverynight',\n 'SERVER': ('talk.google.com', 5223,),\n 'MEMBERS': [pinky, brain],\n },\n }\n\t\n\trun_server(chatrooms)\n\n## Upcoming Features\n\n* **Persistence**: Allow chatroom configuration/state/history to be persisted\n\n## Is it any good?\n\nYes.\n\nElaborate, you say? Hermes has been successfully used \"in production\" to run several chatrooms for the Crocodoc team since the first commit. It's good to have guinea pigs.\n\n## License\n\nHermes is an ISC licensed library. See LICENSE for more details. If you insist on compensating me, I'd let you buy me a beer. Or just donate money to a good cause...that'd probably be best.\n\n## Can I Contribute?\n\nYes, please do. Pull requests are great. I'll totally add a CONTRIBUTORS.txt when Hermes gets its first contributor.\n",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/mattlong/hermes",
"keywords": null,
"license": "ISC",
"maintainer": null,
"maintainer_email": null,
"name": "hermes",
"package_url": "https://pypi.org/project/hermes/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/hermes/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "https://github.com/mattlong/hermes"
},
"release_url": "https://pypi.org/project/hermes/0.3.0/",
"requires_dist": null,
"requires_python": null,
"summary": "Hermes is an extensible XMPP-based chatroom server written in Python.",
"version": "0.3.0"
},
"last_serial": 792881,
"releases": {
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "77d6858f7bc4502d167fd0223a07139f",
"sha256": "a2c4f9cdc77dbe07fb5939795b527ac86b9dba6ec5e2231b3d75fc9da9f4f86f"
},
"downloads": -1,
"filename": "hermes-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "77d6858f7bc4502d167fd0223a07139f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4601,
"upload_time": "2012-04-27T09:17:43",
"url": "https://files.pythonhosted.org/packages/88/01/116a3fbd88cde57de5d7a8d88d41ece3abc6eda9e0f5d3c9db2c06a8ed88/hermes-0.2.2.tar.gz"
}
],
"0.2.4": [
{
"comment_text": "",
"digests": {
"md5": "d9dd363727e9f34c36a5a522582740fc",
"sha256": "02368365283ef3656226c9a8bb65aabeb3cf95cdc9fae795f5057c5a7b64cd75"
},
"downloads": -1,
"filename": "hermes-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "d9dd363727e9f34c36a5a522582740fc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7320,
"upload_time": "2012-09-17T05:33:10",
"url": "https://files.pythonhosted.org/packages/b5/04/0a6da4d688ea0b0db134133436c93c80dd03dead7450a3bd5e2f461915c9/hermes-0.2.4.tar.gz"
}
],
"0.2.5": [
{
"comment_text": "",
"digests": {
"md5": "b77db9fcb1866e527193f31787b7b374",
"sha256": "70dcd65f5954967fd834edc9f89ba899d2761325fd563f46f3b3b2a50b0ab4ba"
},
"downloads": -1,
"filename": "hermes-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "b77db9fcb1866e527193f31787b7b374",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6971,
"upload_time": "2012-09-17T05:51:26",
"url": "https://files.pythonhosted.org/packages/ff/4f/aeb5a73e05a569c3871a00a29a56d870c346c1f0e86f47cfaeed090f0537/hermes-0.2.5.tar.gz"
}
],
"0.2.6": [
{
"comment_text": "",
"digests": {
"md5": "8f281eb77c30bc16cdab0808ca678d3d",
"sha256": "f4b5270b9dcbfc2ca11b56615edcab2c9e547987c26c5cfe4ec99b156b77a042"
},
"downloads": -1,
"filename": "hermes-0.2.6.tar.gz",
"has_sig": false,
"md5_digest": "8f281eb77c30bc16cdab0808ca678d3d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7031,
"upload_time": "2012-09-17T18:11:38",
"url": "https://files.pythonhosted.org/packages/bb/6e/2a66f28c1badc0029c45f643b4998f306cb8b6229b7901e6503aeb009fb2/hermes-0.2.6.tar.gz"
}
],
"0.2.7": [
{
"comment_text": "",
"digests": {
"md5": "fce34cdc7594d33aa97e4ff9389ab228",
"sha256": "d3f8b6ccc5ac558e1a3b0d68f3290da1ef15c382dd2e94a4a4c49df2aadefb39"
},
"downloads": -1,
"filename": "hermes-0.2.7.tar.gz",
"has_sig": false,
"md5_digest": "fce34cdc7594d33aa97e4ff9389ab228",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7043,
"upload_time": "2012-09-26T22:54:33",
"url": "https://files.pythonhosted.org/packages/e0/6b/12cd279213b00d462af01d1bd0cf334f933524195ed02239a6f23d4700ef/hermes-0.2.7.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "823bf880f13081f32b632516acd9367a",
"sha256": "62327bbbf1d41b2d3d186bfec023b5c4e98497aa7ca0e93a29e7296592e8810f"
},
"downloads": -1,
"filename": "hermes-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "823bf880f13081f32b632516acd9367a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7090,
"upload_time": "2013-03-19T19:06:13",
"url": "https://files.pythonhosted.org/packages/03/99/ca7a8565973af70ddcbb75b78ba8d9322c5b85ea705ab0158c310a4d4b18/hermes-0.3.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "823bf880f13081f32b632516acd9367a",
"sha256": "62327bbbf1d41b2d3d186bfec023b5c4e98497aa7ca0e93a29e7296592e8810f"
},
"downloads": -1,
"filename": "hermes-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "823bf880f13081f32b632516acd9367a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7090,
"upload_time": "2013-03-19T19:06:13",
"url": "https://files.pythonhosted.org/packages/03/99/ca7a8565973af70ddcbb75b78ba8d9322c5b85ea705ab0158c310a4d4b18/hermes-0.3.0.tar.gz"
}
]
}