{"id":17996706,"url":"https://github.com/zk/xmpp-clj","last_synced_at":"2025-12-12T01:17:38.000Z","repository":{"id":62435220,"uuid":"592156","full_name":"zk/xmpp-clj","owner":"zk","description":"A lightweight clojure wrapper around the smack jabber/XMPP library","archived":false,"fork":false,"pushed_at":"2012-11-28T04:44:19.000Z","size":306,"stargazers_count":42,"open_issues_count":4,"forks_count":21,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-24T00:42:00.952Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-04-02T19:23:08.000Z","updated_at":"2025-03-05T13:11:13.000Z","dependencies_parsed_at":"2022-11-01T21:02:38.888Z","dependency_job_id":null,"html_url":"https://github.com/zk/xmpp-clj","commit_stats":null,"previous_names":["zkim/xmpp-clj"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zk%2Fxmpp-clj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zk%2Fxmpp-clj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zk%2Fxmpp-clj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zk%2Fxmpp-clj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zk","download_url":"https://codeload.github.com/zk/xmpp-clj/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245589132,"owners_count":20640232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-29T21:15:35.690Z","updated_at":"2025-10-07T12:42:02.772Z","avatar_url":"https://github.com/zk.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xmpp-clj\n\nxmpp-clj allows you to write simple jabber bots in idiomatic clojure by providing a lightweight wrapper around the [smack](http://www.igniterealtime.org/projects/smack/) library.\n\n## Lein\n\n    [xmpp-clj \"0.3.1\"]\n\n\n## Usage\n\nCreate a temporary jabber account for your bot.  I've used gmail here, but there are a bunch of free providers\n\u003cbr /\u003e  \n  \nCreate a leiningen project and cd into the project directory\n\n    lein new mybot\n    cd ./mybot\n\u003cbr /\u003e  \n  \nAdd xmpp-clj to your deps (project.clj):\n\n    (defproject mybot \"0.1.0\"\n      :description \"FIXME: write\"\n      :dependencies [[xmpp-clj \"0.3.1\"]])\n\u003cbr /\u003e\n  \nOpen up src/mybot/core.clj and require the xmpp lib:\n\n    (ns mybot.core\n      (:require [xmpp-clj :as xmpp]))\n\u003cbr /\u003e\n\nDefine a handler and start the bot. Handlers accept a single parameter\n-- the message map -- and should return a string with a message back\nto the sender. Return `nil` to omit a response.  Here's a very simple\nexample:\n\n    ;; This bot always responds with the message 'Ermahgerd!!!'\n\n    (xmpp/start-bot :username \"testclojurebot@gmail.com\"\n                    :password \"clojurebot12345\"\n                    :host \"talk.google.com\"\n                    :domain \"gmail.com\"\n                    :handler (fn [m] \"Ermahgerd!!!\")\n\nNext, fire up your chat client, add your new bot buddy, and send him /\nher a message.  The response should look someting like this:\n\n\u003e me: hello chatbot  \n\n\u003e chatbot: Ermahgerd!!!\n\n\u003cbr /\u003e\n\n    ;; Stop the bot when you're done:\n\n    (xmpp/stop-bot)\n\n\n\n    ;; You can use a name to start / stop multiple bots in the same\n    ;; process:\n\n    (xmpp/start-bot :name :bot1\n                    :username ...)\n\n    (xmpp/start-bot :name :bot2\n                    :username ...)\n\n    (xmpp/stop-bot :bot1)\n    (xmpp/stop-bot :bot2)\n\n\n\n    ;; And names can be any value / object:\n\n    (xmpp/start-bot :name 0\n                    :username ...)\n\n    (xmpp/start-bot :name 1\n                    :username ...)\n\n\n\nSee the `src/xmpp_clj/examples` folder for additional examples. If\nyou'd like to manually manage connections, see the `xmpp-clj.bot`\nnamespace.\n\n\u003cbr /\u003e  \n\n## Problems?\n\nOpen up an [issue](http://github.com/zkim/xmpp-clj/issues)\n\n## License\n\n[Eclipse Public License v1.0](http://www.eclipse.org/legal/epl-v10.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzk%2Fxmpp-clj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzk%2Fxmpp-clj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzk%2Fxmpp-clj/lists"}