{"id":16386934,"url":"https://github.com/im-calvin/mittens","last_synced_at":"2026-01-23T08:04:00.773Z","repository":{"id":160114069,"uuid":"633273876","full_name":"im-calvin/Mittens","owner":"im-calvin","description":"A discord bot used to allow users to subscribe certain YouTube channels and receive notifications when they put up new schedules and go live. ","archived":false,"fork":false,"pushed_at":"2024-11-18T19:15:21.000Z","size":1110,"stargazers_count":2,"open_issues_count":15,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-19T00:47:22.447Z","etag":null,"topics":["discordjs","docker","node","sql","typeorm","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/im-calvin.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,"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":"2023-04-27T06:38:00.000Z","updated_at":"2024-10-15T07:30:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"fc2d07da-e964-47a4-a239-c197786da854","html_url":"https://github.com/im-calvin/Mittens","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/im-calvin/Mittens","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/im-calvin%2FMittens","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/im-calvin%2FMittens/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/im-calvin%2FMittens/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/im-calvin%2FMittens/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/im-calvin","download_url":"https://codeload.github.com/im-calvin/Mittens/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/im-calvin%2FMittens/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28684003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"last_error":"SSL_read: 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":["discordjs","docker","node","sql","typeorm","typescript"],"created_at":"2024-10-11T04:24:15.799Z","updated_at":"2026-01-23T08:04:00.759Z","avatar_url":"https://github.com/im-calvin.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mittens \n[![fork with dotenv-vault](https://badge.dotenv.org/fork.svg?r=1)](https://vault.dotenv.org/project/vlt_a88b4b86e3be377976336d5bc2d9f508d0792bbfd9cce02ce5af9879e452e3ca/example)\n[![Docker](https://github.com/im-calvin/Mittens/actions/workflows/docker.yml/badge.svg)](https://github.com/im-calvin/Mittens/actions/workflows/docker.yml)\n\n[Add Mittens here!](https://top.gg/bot/631663182397702146)\n\n\nIf you have an issue or a feature request feel free to reach out to `calv.` on Discord.\n\nThis is version 2 of Mittens boasting a 200% speed increase over [version 1 of Mittens](https://github.com/im-calvin/mittens_bot_v1) through the use of a proper SQL database and a lot of code optimizations.\n\n## What does Mittens do?\n\nMittens will monitor your chat for sentences and translates text from Japanese to English when required. In addition, Mittens keeps a schedule of (for now) Hololive streamers to notify you and your friends when someone on your following list goes live!\nMittens uses slash commands with autocomplete. Below is a list of commands supported:\n- `add`: adds a streamer to your following list. You will get notifications in the channel you sent the command in\n- `remove`: removes a streamer from your following list\n- `list`: gets your current subscription list in your current discord channel\n- `schedule [streamer], [group], [org]`: gets the scheduled streams (stream reservations) for a particular streamer, group, or organization. See [database](#database) for more info.\n\n\n## Building \u0026 Running\n\nYou can either build it locally or use the Docker Hub Image \n\n### Locally\n\n1. Install required packages with `npm i`\n\n2. Install `SQLite3` following [this documentation](https://www.sqlite.org/download.html)\n\n3. Get a `.env` file by forking the repository and filling it out.\n\n4. Run `npm start`\n\n### Pull and Run with Docker\n\n1. Pull: `docker pull imcalvin/mittens:latest`\n\n2. Fill out the `.env` file on dotenv-vault and acquire a `DOTENV_KEY` for the next step\n\n3. Run: `docker run -d -e DOTENV_KEY=\u003cYOUR_DOTENV_KEY\u003e imcalvin/mittens:latest`\n\n### Building for Docker\nFirst login: `docker login`\n\nBuild \u0026 Tag: `docker -t imcalvin/mittens:VER_NUM .`\n\nPush: `docker push imcalvin/mittens:VER_NUM`\n\n## Database \n\nThe database uses SQLite with TypeORM. Notes on the tables:\n- The `languages` table refers to the organization (ex: Hololive) as well as the language (ex: English). \n- The `groups` table is more specific and refers to a specific generation (ex: Hololive English Council)\n\n\n![Database Diagram](/static/dbdiagram.png)\n\n## CI/CD\n\n![CI/CD Pipeline](/static/Mittens_CI_CD.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fim-calvin%2Fmittens","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fim-calvin%2Fmittens","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fim-calvin%2Fmittens/lists"}