{"id":15010625,"url":"https://github.com/vbauer/jabberjay","last_synced_at":"2025-06-12T01:39:19.233Z","repository":{"id":27983054,"uuid":"31476761","full_name":"vbauer/jabberjay","owner":"vbauer","description":"Simple framework for creating Jabber bots","archived":false,"fork":false,"pushed_at":"2018-11-16T22:09:42.000Z","size":37,"stargazers_count":37,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-02T18:26:41.235Z","etag":null,"topics":["clj","clojure","jabber","jabber-bot"],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vbauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-28T21:03:43.000Z","updated_at":"2024-05-31T07:56:15.000Z","dependencies_parsed_at":"2022-08-26T11:21:01.810Z","dependency_job_id":null,"html_url":"https://github.com/vbauer/jabberjay","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/vbauer/jabberjay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauer%2Fjabberjay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauer%2Fjabberjay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauer%2Fjabberjay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauer%2Fjabberjay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vbauer","download_url":"https://codeload.github.com/vbauer/jabberjay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauer%2Fjabberjay/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259379035,"owners_count":22848664,"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":["clj","clojure","jabber","jabber-bot"],"created_at":"2024-09-24T19:35:08.144Z","updated_at":"2025-06-12T01:39:19.188Z","avatar_url":"https://github.com/vbauer.png","language":"Clojure","readme":"# Jabberjay [![Build Status](https://travis-ci.org/vbauer/jabberjay.svg)](https://travis-ci.org/vbauer/jabberjay)\n\n\u003cimg src=\"misc/jabberjay.png\" width=\"300\" height=\"300\" align=\"right\" style=\"margin-left: 15px\" /\u003e\n\n\u003e Jabberjays are a type of muttation that consist of all male birds that were created in the Capitol labs to spy on enemies and rebels of the Capitol. Jabberjays had the ability to memorize and repeat entire human conversations, and were used as spies, to gather words and information. - The Hunger Games\n\n**Jabberjay** is a Clojure micro-framework for creating [Jabber](http://www.jabber.org/faq.html#jabber) bots.\n\nProgramming your own Jabber bot can be helpful and fun.\nYou can use your Jabber bot to provide information about some running systems or to make your services interact with users.\n\n\n## Configuration\n\nDefault configuration is stored in project resources (config.edn) in [EDN format](https://github.com/edn-format/edn):\n```edn\n{:jabber {:username \"Fill me up!\"\n          :password \"Fill me up!\"\n          :host \"Fill me up!\"\n          :domain \"Fill me up!\"}\n :scripts {:folder \"scripts\"\n           :watchdog 1000}}\n```\n\nBefore using, it is necessary to configure the following parameters:\n* :username (ex: \"jabberjay@gmail.com\")\n* :password (ex: \"iddqd\")\n* :host (ex: \"talk.google.com\")\n* :domain (ex: \"gmail.com\")\n\nIt is also possbile to use user-base configuration file, which should be located in `~/jabberjay.edn`.\nAll parameters from this file override default config parameters.\n\n\n## Development\n\nTo develop Jabber command, you need to create Clojure file in the script `:folder`.\nWhen `:watchdog` parameter is defined, then FS watchdog will check changes and reload scripts in runtime each *N* milliseconds.\nIt could be useful in development mode, but you can switch if off in production mode (using `:watchdog` equals 0).\n\nIt is necessary to follow several rules during Jabber command development:\n\n* Each command should be implemented in separate script file (with the same namespace).\n* Command name is the file name (ignoring case).\n* It is possible to use all artifacts from Jabberjay's classpath.\n* Last function in the script file is the entry point.\n* Result of the last function is the answer message, it will be sent to user.\n\n\n### Script context\n\nEach script receives context parameters, for example:\n\n```clojure\n{:subject nil\n :from \"bauer.vlad@gmail.com/gmail.3167A379\"\n :to \"jabberjay@gmail.com\"\n :thread nil\n :error nil\n :packet-id \"5A19D18217BBD43_1\"\n :type :chat\n :from-name \"bauer.vlad@gmail.com\"\n :body \"Hi Bot\"\n :text \"Bot\"}\n```\n\n\n### Example\n\nThis simple command always returns \"Hello, `your jabber account`\", when client sends \"Hi\" (\"HI\", \"hi\", \"hI\"):\n\n```clojure\n(ns hi)\n\n(defn init\n  \"Simple module for greating\"\n  [data]\n  (str \"Hello, \" (or (:from-name data)\n                     (:from data))))\n```\n\nAnother example: [scripts/weather.clj](scripts/weather.clj).\n\n\n## Usage\n\nTo grab a JAR from [latest release](https://github.com/vbauer/jabberjay/releases/latest):\n```bash\ncurl -L -O https://github.com/vbauer/jabberjay/releases/download/0.2.0/jabberjay.jar\n```\n\nTo build executable JAR from sources:\n```bash\nlein do clean, uberjar\n```\n\nTo run the bot, simply do:\n```bash\njava -jar target/jabberjay.jar \u0026\n```\n\n\n## Might also like\n\n* [lein-plantuml](https://github.com/vbauer/lein-plantuml) - a Leiningen plugin for generating UML diagrams using PlantUML.\n* [lein-asciidoctor](https://github.com/asciidoctor/asciidoctor-lein-plugin) - a Leiningen plugin for generating documentation using Asciidoctor.\n* [lein-jshint](https://github.com/vbauer/lein-jshint) - a Leiningen plugin for running javascript code through JSHint.\n* [lein-jslint](https://github.com/vbauer/lein-jslint) - a Leiningen plugin for running javascript code through JSLint.\n* [lein-coffeescript](https://github.com/vbauer/lein-coffeescript) - a Leiningen plugin for running CoffeeScript compiler.\n* [lein-typescript](https://github.com/vbauer/lein-typescript) - a Leiningen plugin for running TypeScript compiler.\n* [coderwall-clj](https://github.com/vbauer/coderwall-clj) - a tiny CoderWall client for Clojure.\n\n\n## License\n\nCopyright © 2015 Vladislav Bauer\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n\n\nSee [LICENSE](LICENSE) for more details.\n","funding_links":[],"categories":["Frameworks and libraries"],"sub_categories":["XMPP / Jabber"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvbauer%2Fjabberjay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvbauer%2Fjabberjay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvbauer%2Fjabberjay/lists"}