{"id":18348658,"url":"https://github.com/averagehelper/pippin","last_synced_at":"2025-08-09T03:24:04.109Z","repository":{"id":178485180,"uuid":"661504299","full_name":"AverageHelper/Pippin","owner":"AverageHelper","description":"A Discord bot for managing a movie request list. (Read-only Git mirror) ","archived":false,"fork":false,"pushed_at":"2024-01-30T18:11:44.000Z","size":948,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-15T14:53:56.212Z","etag":null,"topics":["mirror"],"latest_commit_sha":null,"homepage":"https://git.average.name/AverageHelper/Pippin","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AverageHelper.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":"FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://average.name/support"}},"created_at":"2023-07-03T02:57:51.000Z","updated_at":"2023-12-15T04:55:11.000Z","dependencies_parsed_at":"2024-01-30T19:38:49.752Z","dependency_job_id":null,"html_url":"https://github.com/AverageHelper/Pippin","commit_stats":null,"previous_names":["averagehelper/pippin"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AverageHelper%2FPippin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AverageHelper%2FPippin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AverageHelper%2FPippin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AverageHelper%2FPippin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AverageHelper","download_url":"https://codeload.github.com/AverageHelper/Pippin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248128664,"owners_count":21052441,"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":["mirror"],"created_at":"2024-11-05T21:18:44.640Z","updated_at":"2025-04-09T23:28:42.624Z","avatar_url":"https://github.com/AverageHelper.png","language":"TypeScript","funding_links":["https://average.name/support"],"categories":[],"sub_categories":[],"readme":"# Pippin\n\n\u003e \"What about second breakfast?\"\n\u003e\n\u003e - J. R. R. Tolkien\n\nPippin is a suggestion box for movies. Pretty simple: people request movies, and Pippin organizes the submissions into a spreadsheet for you.\n\nThis project is based on [Gamgee](https://github.com/AverageHelper/Gamgee).\n\n## Authors \u0026 Contributors\n\nIt's only me for now. Most of this code was copied from [Gamgee](https://github.com/AverageHelper/Gamgee), and you can thank those contributors for their contributions. I'll add contributors here as they crop up!\n\n## Prerequisites\n\nThis project requires [NodeJS](https://nodejs.org/) (version 18.17 or later), [NPM](https://npmjs.org/), and a [Discord bot account token](https://www.howtogeek.com/364225/how-to-make-your-own-discord-bot/).\nTo make sure you have them available on your machine,\ntry running the following command:\n\n```sh\n$ npm -v \u0026\u0026 node -v\n9.6.7\nv18.17.1\n```\n\n## Clone the Repo\n\n```sh\n$ cd path/to/parent\n$ git clone https://git.average.name/AverageHelper/Pippin.git\n$ cd Pippin\n```\n\n## Table of contents\n\n- [Pippin](#Pippin)\n  - [Authors \u0026 Contributors](#authors--contributors)\n  - [Prerequisites](#prerequisites)\n  - [Clone the Repo](#clone-the-repo)\n  - [Table of contents](#table-of-contents)\n  - [Usage](#usage)\n    - [Get your own bot token](#get-your-own-bot-token)\n    - [Invite your bot to your server](#invite-your-bot-to-your-server)\n    - [Compile the bot](#compile-the-bot)\n    - [Register Slash Commands](#register-slash-commands)\n    - [Run the bot](#run-the-bot)\n      - [Selecting a database file location](#selecting-a-database-file-location)\n    - [Autogenerated Files](#autogenerated-files)\n    - [Supported Media Platforms](#supported-media-platforms)\n  - [Commands](#commands)\n    - [`help`](#help)\n    - [`ping`](#ping)\n    - [`suggest`](#suggest-url)\n    - [`test`](#test)\n    - [`version`](#version)\n  - [Contributing](#contributing)\n  - [Built With](#built-with)\n  - [License](#license)\n\n## Usage\n\nPippin is designed for use in one Discord server (or \"guild\") at a time. If used in multiple guilds, movie submissions and user limits will be shared between them in a global queue.\n\nTo get your own Movie Suggestions queue, you can run your own instance of the bot:\n\n### Get your own bot token\n\nNote that, by running Pippin, you agree to be bound by the Discord's [Developer Terms of Service](https://support-dev.discord.com/hc/en-us/articles/8562894815383) and [Developer Policy](https://support-dev.discord.com/hc/en-us/articles/8563934450327), as well as [Pippin's own license](/LICENSE). With that in mind, you'll need a token for a Discord bot account. See [this awesome tutorial on how to get one](https://www.howtogeek.com/364225/how-to-make-your-own-discord-bot/).\n\nCreate a file called `.env` in the root of this project folder. Paste the following info into that file:\n\n```sh\n# .env\n\nDISCORD_TOKEN=YOUR_TOKEN_GOES_HERE\n# required, token for your Discord bot\n\nLOG_LEVEL={silly | debug | verbose | info | warn | error}\n# optional, the level of logs you should see in the console\n# must be one of [silly, debug, verbose, info, warn, error]\n# defaults to `info` in production mode, `error` in test mode, and `debug` in any other mode\n\nDATABASE_SHEET_URL=\"https://sheets.google.com/1234\"\n# required, the Google Sheets doc where the database tables should live.\n```\n\n**Do not commit this file to git** or your bot _will_ get \"hacked\".\n\n### Invite your bot to your server\n\nGo to https://discordapi.com/permissions.html#377957215296 and paste in your bot's client ID to get an invite link.\n\n### Compile the bot\n\nThe first time you download the source, and each time the source code changes, you'll need to run this command before you run the bot:\n\n```sh\n$ npm run setup\n```\n\n### Register Slash Commands\n\nIf you want support for Discord [Slash Commands](https://support.discord.com/hc/en-us/articles/1500000368501-Slash-Commands-FAQ), you'll need to deploy the commands directly.\n\nOnce you have your bot's account token in the .env file, run the following command to tell Pippin to tell Discord about our commands:\n\n```sh\n$ npm run commands:deploy\n```\n\n### Run the bot\n\nSince Pippin is just a Node script, any Node process manager will do.\n\n```sh\n$ node .\n# or\n$ npm start\n# or\n$ pm2 start .\n```\n\n### Autogenerated Files\n\nPippin generates some files as needed. This is normal, and you should not bother with most of them.\n\n- `node_modules/` contains our dependent packages. This folder is _massive_, and that's on purpose. You don't need to worry about what's behind this curtain.\n- `dist/` contains the compiled bot code. What, did you think we ran the TypeScript directly? SMH my head, mate.\n- `logs/` contains log files for events that the server thinks might be useful one day. Most of these have to do with the many smol-but-important things Pippin does in the background that you shouldn't worry about. Feel free to look in here if you're ever curious. These logs rotate automatically every day, with only the last 30 days retained.\n\n### Supported Media Platforms\n\nWe only support [TheMovieDB](https://www.themoviedb.org/) for now, because their API is reasonable.\n\nIf you'd like us to support another platform, please [submit an issue](https://git.average.name/AverageHelper/Pippin/issues/new?template=.gitea%2fISSUE_TEMPLATE%2ffeature_request.md)!\n\n## Commands\n\nWe use Discord Slash Commands. Type `/` in any Discord chat to see all available commands.\n\n### `help`\n\nPrints instructions for how to use the media request queue. Anyone may use this command.\n\n### `ping`\n\nResponds with \"Pong!\"\n\n#### `suggest \u003curl\u003e`\n\nSubmits a movie to the queue. For media to be considered, submissions must be a valid media link from a [supported platform](#supported-music-platforms).\n\n### `test`\n\nRuns test queries against each of our [supported platforms](#supported-music-platforms), and responds with useful statistics. This is handy for making sure that Pippin still knows how to talk to external services whose API may change without notice.\n\n### `version`\n\nDisplay's the current version of Pippin Core. (see [package.json](https://git.average.name/AverageHelper/Pippin/src/branch/main/package.json#L3))\n\n## Contributing\n\nThis project lives primarily at [git.average.name](https://git.average.name/AverageHelper/Pippin). Read-only mirrors also exist on [Codeberg](https://codeberg.org/AverageHelper/Pippin) and [GitHub](https://github.com/AverageHelper/Pippin). Issues or pull requests should be filed at [git.average.name](https://git.average.name/AverageHelper/Pippin). You may sign in or create an account directly, or use one of several OAuth 2.0 providers.\n\nThis project is entirely open source. Do with it what you will. If you're willing to help me improve this project, consider [filing an issue](https://git.average.name/AverageHelper/Pippin/issues/new/choose).\n\nSee [CONTRIBUTING.md](/CONTRIBUTING.md) for ways to contribute.\n\n## Built With\n\n- [Visual Studio Code](https://code.visualstudio.com/)\n- [Discord.js](https://discord.js.org/)\n- Love\n\n## License\n\nPippin's source is licensed under the [GNU General Public License v3.0](LICENSE).\n\nFurthermore, by installing and running an instance of Pippin yourself, you agree\nto be bound by the terms of the [Discord Developer Terms of Service](https://support-dev.discord.com/hc/en-us/articles/8562894815383) and the [Discord Developer Policy](https://support-dev.discord.com/hc/en-us/articles/8563934450327). If you wish not to be bound by these terms, and instead use a hosted instance of Pippin, send a DM to [@oddmusicpony](https://twitter.com/oddmusicpony) on Twitter.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faveragehelper%2Fpippin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faveragehelper%2Fpippin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faveragehelper%2Fpippin/lists"}