{"id":15051446,"url":"https://github.com/pojntfx/nextcloud-talk-bot-framework","last_synced_at":"2025-10-04T14:32:16.513Z","repository":{"id":57521500,"uuid":"251731087","full_name":"pojntfx/nextcloud-talk-bot-framework","owner":"pojntfx","description":"A framework for writing Nextcloud Talk chatbots with every language that supports gRPC.","archived":true,"fork":false,"pushed_at":"2023-02-26T04:52:00.000Z","size":808,"stargazers_count":25,"open_issues_count":2,"forks_count":12,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-12-16T17:52:03.159Z","etag":null,"topics":["bot","chat-bot","chatbot","chatbot-framework","jitsi","jitsi-meeting","nextcloud","nextcloud-talk","nextcloud-talk-bot-framework","nxtalkproxyd","video-chat-meetings","videochat"],"latest_commit_sha":null,"homepage":"https://pojntfx.github.io/nextcloud-talk-bot-framework/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pojntfx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-31T21:03:26.000Z","updated_at":"2024-10-16T00:02:48.000Z","dependencies_parsed_at":"2024-06-19T00:07:31.791Z","dependency_job_id":"d0470956-39d9-41b4-949d-8413751ebd26","html_url":"https://github.com/pojntfx/nextcloud-talk-bot-framework","commit_stats":null,"previous_names":["pojntfx/nextcloud-talk-jitsi-bot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pojntfx%2Fnextcloud-talk-bot-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pojntfx%2Fnextcloud-talk-bot-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pojntfx%2Fnextcloud-talk-bot-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pojntfx%2Fnextcloud-talk-bot-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pojntfx","download_url":"https://codeload.github.com/pojntfx/nextcloud-talk-bot-framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235264982,"owners_count":18962464,"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":["bot","chat-bot","chatbot","chatbot-framework","jitsi","jitsi-meeting","nextcloud","nextcloud-talk","nextcloud-talk-bot-framework","nxtalkproxyd","video-chat-meetings","videochat"],"created_at":"2024-09-24T21:35:17.760Z","updated_at":"2025-10-04T14:32:11.222Z","avatar_url":"https://github.com/pojntfx.png","language":"Go","readme":"# Nextcloud Talk Bot Framework\n\nA framework to realize Nextcloud Talk chatbots in a client/server model, where sessions exchange data via gRPC stubs.\n\nThe bot has bin re-written as `nctalkbot-jitsi`. It takes advantage of the new framework and implements the client side.\nPlease have a look at at [pojntfx/nextcloud-talk-bot-jitsi](https://github.com/pojntfx/nextcloud-talk-bot-jitsi).\nThe server part is available as `nctalkproxyd`. The source-code is provided in this repo.\n\nTake a look at the following introduction video:\n\n[![thumbnail](https://i3.ytimg.com/vi/WRYlHDGApZo/maxresdefault.jpg)](https://www.youtube.com/watch?v=WRYlHDGApZo)\n\n## Overview\n\nThe Nextcloud Talk Bot Framework discribes a client/server infrastructure to realize Nextcloud chatbots,\nthat interact via gRPC sessions. Shown here is an example for [`nctalkbot-jitsi`](https://github.com/pojntfx/nextcloud-talk-bot-jitsi).\n\n- **Server side**:\n  `nctalkproxyd` implements a server instance written in the **Go** language. This component\n  handles all the interaction with the Nextcloud API. It will listen for new chat requests while\n  monitoring the associated rooms. Chat requests will be processed and the relavant data are proxied\n  via gRPC messages to the client side. The new session will be advertised inside the addressed Nextcloud chat.\n\n- **Client side**:\n  In order to create a chatbot, a client counterpart has to be implemented in any gRPC supported language.\n  This Client will interacts with `nctalkproxyd` sending and recieving messages. The latter will will take care\n  of all the heavy lifting (eg. handling the Nextcloud Talk API, keeping track of participants).\n  `nctalkbot-jitsi` is a reference implementation written in **JavaScript**.\n\n- **Jitsi-Meet**:\n  Participants will connect to the initiated Jitsi meeting inside a new window of their browser session.\n  `jitsi-meet-node` will take care to process the needed steps. The communication with the Jitsi-Meet server\n  follows the [JitsiMeetExternal API](ttps://github.com/jitsi/jitsi-meet/blob/master/doc/api.md).\n  The framework is taking care to preset the Session parameters (eg. Name, password), beside participant\n  specicfic options (participant name, language, etc).\n\nThe following image try to illustrate the major components and its workflow.\n\n![nctalkbot-framework.png](./images/nctalkbot-framework.png)\n\n## Installation\n\n### Go Package\n\nA Go package [is available](https://pkg.go.dev/mod/github.com/pojntfx/nextcloud-talk-bot-framework).\n\n### Docker Image\n\nA Docker image is available at [Docker Hub](https://hub.docker.com/r/pojntfx/nctalkproxyd).\n\n### Others\n\nIf you're interested in using alternatives like OCI images, see [OCI](./OCI.md).\n\n## Usage\n\nThe API will asure fast and secure messsage exchange via gRPC using protocol buffers. The protocol description\nitself is defined in [pkg/protos/nextcloud_talk.proto](./pkg/protos/nextcloud_talk.proto).\n\n[`nctalkbot-jitsi`](https://github.com/pojntfx/nextcloud-talk-bot-jitsi) is a pretty advanced chatbot implementation,\nusing this framework. Take it as a reference.\n\n`nctalkproxyd` will integrate itself in the Nextcloud Talk infrastructure while authenticating as a dedicated user.\nIn order to use the bot, this user (e.g. name it \"jitsibot\") needs to be added as a participent in every Nextcloud Talk room.\nYou will handle that as an admin user from within the Nextcloud GUI.\n\nThe following code will interconnect a `nctalkproxyd` docker container with a `nctalkbot-jitsi`container.\nPlease adapt variables to meet your production/testing needs. The given values are just examples:\n\n```bash\n% docker volume create nctalkproxyd\n% docker network create nctalkbots\n% docker run \\\n\t-p 1969:1969 \\\n\t-v nctalkproxyd:/var/lib/nctalkproxyd \\\n\t-e NCTALKPROXYD_DBPATH=/var/lib/nctalkproxyd \\\n\t-e NCTALKPROXYD_USERNAME=botusername \\\n\t-e NCTALKPROXYD_PASSWORD=botpassword \\\n\t-e NCTALKPROXYD_ADDRREMOTE=https://mynextcloud.com \\\n\t--network nctalkchatbots \\\n\t--name nctalkproxyd \\\n\t-d pojntfx/nctalkproxyd\n% docker run \\\n\t-e NCTALKBOT_BOT_NAME=botusername \\\n\t-e NCTALKBOT_COMMANDS=\\#videochat,\\#videocall,\\#custom \\\n\t-e NCTALKBOT_SLEEP_TIME=20 \\\n\t-e NCTALKBOT_JITSI_ADDR=meet.jit.si \\\n\t-e NCTALKBOT_JITSI_ROOM_PASSWORD_BYTE_LENGTH=1 \\\n\t-e NCTALKBOT_NCTALKPROXYD_ADDR=localhost:1969 \\\n\t--network nctalkbots \\\n\t-d pojntfx/nctalkbot-jitsi\n```\n\n## License\n\nNextcloud Talk Bot Framework (c) 2020 Felicitas Pojtinger\n\nSPDX-License-Identifier: AGPL-3.0\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpojntfx%2Fnextcloud-talk-bot-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpojntfx%2Fnextcloud-talk-bot-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpojntfx%2Fnextcloud-talk-bot-framework/lists"}