{"id":46469581,"url":"https://github.com/eccleria/ewibot","last_synced_at":"2026-03-06T06:04:13.331Z","repository":{"id":37038469,"uuid":"446073889","full_name":"Eccleria/ewibot","owner":"Eccleria","description":"Funny Discord bot for La Quête d'Ewilan server.","archived":false,"fork":false,"pushed_at":"2026-02-27T17:58:07.000Z","size":2928,"stargazers_count":3,"open_issues_count":42,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-27T21:38:07.877Z","etag":null,"topics":["bot","discord-bot","nodejs","yarn"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/Eccleria.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-01-09T11:52:13.000Z","updated_at":"2026-02-27T17:56:03.000Z","dependencies_parsed_at":"2023-02-19T10:00:46.362Z","dependency_job_id":"7d4cf424-cfec-41a5-a235-dd7e1a18191e","html_url":"https://github.com/Eccleria/ewibot","commit_stats":null,"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"purl":"pkg:github/Eccleria/ewibot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eccleria%2Fewibot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eccleria%2Fewibot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eccleria%2Fewibot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eccleria%2Fewibot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eccleria","download_url":"https://codeload.github.com/Eccleria/ewibot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eccleria%2Fewibot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30164532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T04:43:31.446Z","status":"ssl_error","status_checked_at":"2026-03-06T04:40:30.133Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","discord-bot","nodejs","yarn"],"created_at":"2026-03-06T06:03:48.220Z","updated_at":"2026-03-06T06:04:13.148Z","avatar_url":"https://github.com/Eccleria.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ewibot\n\n[![Version badge](https://badgen.net/github/release/Eccleria/ewibot)](https://github.com/Eccleria/ewibot) [![Version badge](https://badgen.net/github/branches/Eccleria/ewibot)](https://github.com/Eccleria/ewibot)\n\n- [Documentation](#documentation)\n- [How to Contribute](#how-to-contribute)\n\nEwibot is a Discord Bot used only on the official *La Quête d'Ewilan* Discord Server.\nThis bot aim to enhance the social interactions between users. All moderation tools have been removed from this bot.\n\n## Documentation\nEwibot is written in Javascript. The tree is devided into 4 main parts: \n\n- [pics](#pics)\n\t- concrete\n\t- vest\n- [db](#database)\n- [source code](#source-code)\n\t- [admin](#admin)\n\t- [commands](#commands)\n\t- [helpers](#helpers)\n- [static code](#static-code)\n\n### Pics\nThe [pics folder](./pics) contains all the pictures required or generated by Ewibot for some features.\n\u003e Note: the generated content ***is not*** uploaded on github.\n\n- It includes the [concrete folder](./pics/concrete), which is for the concrete command. It is used by Ewibot users to\nmake a gif containing a falling concrete block and the specified user profile picture. It is inspired by the \n*La Quête d'Ewilan* book.\nThe [concrete jpgs folder](./pics/concrete/jpgs) regroups all the necessary pictures used to create the requested concrete gif. It contains 50 frames.\nThe gifs created by the code are stored in the [concrete gifs folder](./pics/concrete/gifs).\n- It includes the [vest folder](./pics/vest). This one regroups the pics for the `/vest` command.\n\n\n### Database\nThe [database folder](./db) contains the database files required. The DB system is a .json file.   \n*db.json* file is the database file used by the bot.\nAll the database values are stored inside of it. Note: this folder *is not* uploaded on github, for privacy concerns.  \n[db.json.example](./db/db.json.example) is a template file. This allows to share a template between developers without sharing all users' information online.\n\n### Source Code\nThe [src folder](./src) is the folder containing all the source code for Ewibot.\n\u003e Source means that its javascript (.js) files.\n\nIt is divided into 4 parts: \n[admin](#admin), [commands](#commands), [helpers](#helpers) and the [main code](#main-code).\n\n#### Admin\nThe [admin folder](./src/admin) regroups the file aiming to have an administrative action in the Discord Server. Admin means mostly roles interaction.\n\n#### Commands\nThere are different commands available for the users. All are inside the files of the [commands folder](./src/commands). \n\n#### Helpers\nThe [folder](./src/helpers) is dedicated to regroup every file having smaller functions or methods used in more important files.\n\n#### Main Code\nMain code refers to all the files in the src folder. It includes 5 files:\n* _[bot.js](./src/bot.js)_ is the principal file containing all the major Discord features required to make the bot \nfunctional, such as `client` login and event `listeners`.\n* _[commons.js](./src/commons.js)_ is where the `Commons` Class is declared. This class allows Ewibot to find the correct ids/emotes to use, according to the current guild where Ewibot is working.\n* _[fun.js](./src/fun.js)_ regroups features that are only for fun/entertainment purpose, such as Ewibot `reacting` to some specific user words, or its `activity`.\n* _[listeners.js](./src/listeners.js)_ is a file regrouping all functions associated to the events Ewibot is responding to.\n* _[personality.js](./src/personality.js)_ is the file where the `Personality` Class is declared. This class allows Ewibot to chose the correct text to send to users. It will also allow admins to change Ewibot personality, but is still work in progress.\n* _[stats.js](./src/stats.js)_ is the main file handling the stats system. This needs a complete rework (written at 6.5.1) \n\n### Static Code\nThe [static folder](./static) is including the json files used.\n\n[commons.json](./src/commons.json) contains all the IDs used in the main file, like guild, channels or emoji IDs. \nIt allows the distinction between 2 modes:\n* _test_ is the development mode, used to have the data of the Discord *Test Server*.\n* _prod_ is the Ewibot mode, which is using all the data from *La Quête d'Ewilan* Discord Server. \n* _shared_ includes all ids that are common to both Ewibot modes.\n\nThe [personalities](./src/personalities) folder includes all the texts send by the bot in Discord channels. \nThe texts are written according to different personalities but for now only one is used.\n\n## How to contribute\nWe welcome every contribution. If you want to contribute to Ewibot, you will have to follow the next instructions.\n\n### Setup process\nYou need to install nodejs **v20.19.4**.\nThen on your code editor you can clone the Ewibot repository, using this command on your terminal: `git clone https://github.com/Eccleria/ewibot.git`.\nYou will need to install yarn with the follow command: ```npm install --global yarn```.\n\nNext, you need to download every dependancy that the bot need. To do so, you need to go in the ewibot folder and use the command in the terminal: ```yarn```.\n\u003e This command installs all the libraries required, such as `discord.js`.\n\nNow, you need to setup the `.env` file. Create it with `touch .env`and use the [.env.example](.env.example) as a template (you can copy the `.env.example` content and paste it in `.env` file).\nThe *DEBUG* line needs to be set as **yes** if you have only a bot used for development (used on a Discord test server), and **no** if you will host Ewibot on the `Ewilan` Discord Server.\n\nFor the database, you need to create the `.db.json` file in the [database folder](./db).\nWhen created, you can repeate the same process for `.env` file: copy the content of the [.db.json.example](./db/db.json.example) and paste it in the newly created file.\n**Remove the comments, otherwise you will get an error.**\n\n2 folders need to be created:\n- `gifs`, in the [concrete folder](./pics/concrete). Nothing to add inside.\n- `pngs`, in the [vest folder](./pics/vest). Nothing to add inside too.\n\n\u003e Note: if you use an IDE that create local setup files, you shall add it to the [.gitignore file](.gitignore).\nIt is the case with _Visual Studio 2019_ that create the `.vs` folder locally, or `.vscode` for _Visual Studio Code_.\n\n### Contribution\nTo contribute, you can do so by different ways. You can contribute on existing branches or by creating a new branch. \n\nFor an existing branch, **please ask to contributors** if there are commits under way before adding yours. \n\nFor a new branch, you will need to create a *Pull Request*(PR) in order to have this branch merged into master.\nThe PR cannot be merged without the approval of at least one other contributor.\nIf the branch is still under development, you can set the PR as a draft. When it is ready, undraft it and request an approval.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feccleria%2Fewibot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feccleria%2Fewibot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feccleria%2Fewibot/lists"}