{"id":19416836,"url":"https://github.com/ethanc/n31l","last_synced_at":"2025-04-24T13:33:05.448Z","repository":{"id":123989069,"uuid":"446242470","full_name":"EthanC/N31L","owner":"EthanC","description":"Utilitarian Discord bot for the Call of Duty server.","archived":false,"fork":false,"pushed_at":"2025-03-22T02:52:07.000Z","size":1356,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T05:41:30.714Z","etag":null,"topics":["application-commands","arc","automate","bot","call-of-duty","commands","defend","discord","filter","guild","hikari","interaction","moderation","moderator","n31l","python","server","slash-commands","spam"],"latest_commit_sha":null,"homepage":"https://discord.gg/CallofDuty","language":"Python","has_issues":false,"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/EthanC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yaml","license":"LICENSE","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},"funding":{"custom":["https://cash.app/$EthanChrisp","https://venmo.com/u/Mxtive"]}},"created_at":"2022-01-10T01:10:42.000Z","updated_at":"2025-03-22T02:52:11.000Z","dependencies_parsed_at":"2024-03-23T08:22:16.553Z","dependency_job_id":"aad0d758-d413-40a2-89dd-3622ed7e303b","html_url":"https://github.com/EthanC/N31L","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanC%2FN31L","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanC%2FN31L/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanC%2FN31L/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EthanC%2FN31L/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EthanC","download_url":"https://codeload.github.com/EthanC/N31L/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250636233,"owners_count":21463033,"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":["application-commands","arc","automate","bot","call-of-duty","commands","defend","discord","filter","guild","hikari","interaction","moderation","moderator","n31l","python","server","slash-commands","spam"],"created_at":"2024-11-10T13:05:46.229Z","updated_at":"2025-04-24T13:33:05.067Z","avatar_url":"https://github.com/EthanC.png","language":"Python","funding_links":["https://cash.app/$EthanChrisp","https://venmo.com/u/Mxtive"],"categories":[],"sub_categories":[],"readme":"# N31L\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/EthanC/N31L/ci.yaml?branch=main) ![Docker Pulls](https://img.shields.io/docker/pulls/ethanchrisp/n31l?label=Docker%20Pulls) ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/ethanchrisp/n31l/latest?label=Docker%20Image%20Size)\n\nN31L is a utilitarian Discord bot for the [Call of Duty server](https://discord.gg/CallofDuty).\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://i.imgur.com/geOC3Sz.png\" draggable=\"false\"\u003e\n\u003c/p\u003e\n\n## Features\n\nNotice: N31L is purpose-built, this means that its functionality is intended only for the Moderators of the [Call of Duty server](https://discord.gg/CallofDuty). This repository has been made open source for educational purposes, **N31L will likely not fit your needs**.\n\n-   Modern, interaction-based Discord bot utilizing the application commands API\n-   Designed to expand and enhance the Discord Moderator toolset\n-   Thread and forum post management\n-   LOTS of animal and food commands\n\n## Setup\n\n[Discord API](https://discord.com/developers/) credentials are required for functionality, and a [Discord Webhook](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) is recommended for notifications.\n\n### Docker (Recommended)\n\nRename `config_example.json` to `config.json`, then provide the configurable variables.\n\nModify the following `compose.yaml` example file, then run `docker compose up`.\n\n```yml\nservices:\n  n31l:\n    container_name: n31l\n    image: ethanchrisp/n31l:latest\n    environment:\n      LOG_LEVEL: INFO\n      LOG_DISCORD_WEBHOOK_URL: https://discord.com/api/webhooks/XXXXXXXX/XXXXXXXX\n      LOG_DISCORD_WEBHOOK_LEVEL: WARNING\n      DISCORD_TOKEN: XXXXXXXX\n      DISCORD_SERVER_ID: 0000000000\n      CAT_API_KEY: XXXXXXXXXX\n      DOG_API_KEY: XXXXXXXXXX\n      REDDIT_USERNAME: XXXXXXXXXX\n      REDDIT_PASSWORD: XXXXXXXXXX\n      REDDIT_CLIENT_ID: XXXXXXXXXX\n      REDDIT_CLIENT_SECRET: XXXXXXXXXX\n    volumes:\n      - /path/to/config.json:/n31l/config.json:ro\n    restart: unless-stopped\n```\n\n### Standalone\n\nN31L is built for [Python 3.13](https://www.python.org/) or greater.\n\n1. Install required dependencies using [uv](https://github.com/astral-sh/uv): `uv sync`\n2. Rename `.env.example` to `.env`, then provide the environment variables.\n3. Rename `config_example.json` to `config.json`, then provide the configurable variables.\n4. Start N31L: `python -OO n31l.py`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethanc%2Fn31l","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethanc%2Fn31l","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethanc%2Fn31l/lists"}