npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@econome-tests/carfigures-upstream

v1.0.0

Published

![CarFigures Logo](assets/logos/Banner.png) [![Array's Profile](https://img.shields.io/badge/Array's%20Profile-ffffff?style=for-the-badge&logo=github&logoColor=black)](https://github.com/arrayunderscore/) [![Discord.py](https://img.shields.io/badge/Discor

Downloads

59

Readme

CarFigures - The Better Alternative.

CarFigures Logo Array's Profile Discord.py Pull Requests Top.gg Server Invite

CarFigures (The CF Project) was born out of frustration with the BallsDex team's decisions. Initially, I had no particular liking for the idea; it was more about a response to dissatisfaction. The BallsDex team wasn't keen on implementing the features many of us wanted. I knew that merely complaining wouldn't lead to any change, as hundreds of others had already done so to no avail.

Determined to make a difference, I decided to take matters into my own hands. By forking BallsDex and applying my own changes and preferences, CarFigures came into existence.

CarFigures aims to address the community's frustrations and provide an alternative base to use and build their bots on. It's a project driven by a desire for improvement and a commitment to providing a better user experience.

Prerequisites

Before starting the installation, ensure you have the following tools installed:

  • Git: Used for cloning the project and updating your bot to the latest versions. Download Git
  • Docker Desktop: Provides an easy way to run your bot in isolated containers. Download Docker Desktop
  • Discord Bot Instance: Required to create and manage your bot on Discord. Create a Discord Bot

Note: If you are using Linux as your main desktop (like me) or hosting the bot on a Linux server, it is generally better to use Docker Engine.

Installing

Now since all this is done, let's start!

clone the project using git, preferrably also cloning into a new folder with the name of ur bot, like:

    git clone https://github.com/thecfproject/CarFigures showerdex

Note: The config.toml isn't updated by default when updating the bot files, you are required to check if any changes happened to the toml file by yourself, it's your responsibility.

CarFigures is designed to be highly customizable, allowing you to tailor the bot's behavior and appearance to your liking!

This is part of CF's philosophy to make customizing your instance as easy as possible. For now, it's not much, but I'm planning for more soon! :3

now, time to start making that file, So in ur Bot files, create a new file called config.toml Read the comments I left in there to help you out!

Here’s a brief overview of the main configuration sections:

  • [settings]: General bot settings, such as the bot token and command prefix.
  • [team]: Configuration for bot team like superusers and owners.
  • [appearance.interface]: Customizable namings in the bot interface.
  • [appearance.commands.names]: Names of individual commands.
  • [appearance.commands.descs]: Descriptions of individual commands.
  • [information]: Information about the project like social links and contributors.
  • [prometheus]: Settings for Prometheus metrics collection.
# Configuration file for CarFigures Discord Bot

[settings]
botToken = ""
botDescription = "Catch, collect and exchange cars in your server!"
botName = "CarFigures"
prefix = "!"
maxFavorites = 50
spawnAlert = true
minimalProfile = true
defaultEmbedColor = "5865F2"
spawnChanceRange = [22, 55]
bonusRate = [-50, 50]
exclusivityChance = 0.05 # 1 being 100% chance and 0 being 0% chance

[team]
# This section is meant for administrator commands logging and staff purposes.

# If enabled and the application is under a team, all team members will be considered as owners
teamMembersAreOwners = false

# A list of IDs that must be considered owners in addition to the application/team owner
# Separate IDs with commas (,)
co-owners = [877557616094638112]

# List of guild IDs where the privilaged commands should be registered
# and a List of role IDs that have access to the commands
# Separate IDs with commas (,)
superGuilds = [1127508116150439958]
superUsers = [1216684684340236398]

# Log channel ID for Admin Commands logging
logChannel = 1144639514296459316


[appearance.interface]
collectibleSingular = "carfigure"
collectiblePlural = "carfigures"
cartype = "CarType"
country = "Country"
exclusive = "Exclusive"
horsepower = "Horsepower"
weight = "Weight"
kg = "KG"
hp = "HP"

[appearance.commands.names]
cars = "cars"
sudo = "sudo"
garage = "garage"
exhibit = "exhibit"
show = "show"
info = "info"
last = "last"
gift = "gift"

[appearance.commands.descs]
garage = "Show Your garage!"
exhibit = "Show your showroom in the bot."
show = "Display info from your carfigures collection."
info = "Display info for a specific carfigure."
last = "Display info of your or another user's last caught carfigure."
gift = "Give a carfigure to a user."

[information]
## This section is also one of bot's main factures that provides information about the bot which can help others to find more information about the bot.

repositoryLink = "https://github.com/The-CF-Project/CarFigures"
serverInvite = "https://discord.com/invite/PVFyN34ykA"
termsOfService = "https://codeberg.org/array_ye/CarFigures/src/branch/stable/assets/TERMS_OF_SERVICE.md"
privacyPolicy = "https://codeberg.org/array_ye/CarFigures/src/branch/stable/assets/PRIVACY_POLICY.md"

# While this is made to make it easier to include yourself and your team/contributors
# you are NOT allowed to remove El Laggron or Array_YE.
# Separate names with commas (,)
developers = [
    "El Laggron",
    "Array_YE",
]
contributors = [
    "_Metr_",
    "HiboMan",
]

[prometheus]
# Enable Prometheus metrics collection (default: false)
enabled = false
# Host for Prometheus metrics (default: 0.0.0.0)
host = "0.0.0.0"
# Port for Prometheus metrics (default: 15260)
port = 15260

Start by getting docker desktop up and running, then open your file explorer and head to the bot files. demo3

To access the command prompt pointed to this bot folder, go to the navigation bar and edit it (you can do that by click the empty part once) to type cmd or powershell then press enter, this will open a new command prompt instance that is pointed to the bot place: demo1 demo2

After opening the terminal or command prompt, its time for you to build the project image (the image the contains your database which stores all your bot's progress, the code and more) using docker compose build. demo3 Start by getting the Docker desktop up and running, then open your file explorer and head to the bot files. demo4

And now, it is time to start up your bot!
Using docker compose up will make the docker start all the containers and functions, creating connections to the discord's APIs, and allowing the bot to be alive! And after doing it, the final results should be like this, with the end line saying "(your bot name) is now operational!" demo4

You should just cd to the place, open a terminal and cd to the folder, if your bot folder is in the documents folder, usually you do cd ~/Documents/(your bot folder name).

After opening the terminal, its time for you to build the project image (the image the contains your database which stores all your bot's progress, the code and more) using docker compose build. demo3

And now, its time to start up your bot!
Using docker compose up will make the docker starts all the containers and functions to start making connections to the discord's apis, allowing the bot to be alive! And after doing it, the final results should be like this, with the end line saying "(your bot name) is now operational!" demo4

That's it! You are all set to rock and roll with CarFigures, If you run into any trouble, don't hesitate to ask for help. We're here to make sure you have a smooth ride.

Here's how you can jump in and help make this project even better:

How to Contribute

There are several ways you can contribute to the CarFigures project:

  1. Open Issues: Found a bug or have a feature request? Open an issue to let us know. This helps us identify and fix problems or consider new features.
  2. Help with Documentation: Improve the documentation to make it easier for others to get started and understand the project. This includes tutorials, guides, and updating the README.
  3. Submit Pull Requests: Fix bugs, add features, or improve existing code. See below for guidelines on how to submit a pull request.
  4. Provide Feedback: Test the project and give feedback on your experience. This helps us understand what works well and what needs improvement.
  5. Spread the Word: Share the project with others who might be interested in using or contributing to it.
  6. Join Discussions: Participate in discussions on GitHub issues or the Discord server to help shape the future direction of the project.
  1. Go to the Issues section of the repository.
  2. Click on the "New Issue" button.
  3. Provide a clear and descriptive title for the issue.
  4. Include detailed information in the body, such as steps to reproduce the bug or a detailed description of the feature request.
  1. Fork the repository to your GitHub account.
  2. Create a new branch for your documentation changes: git checkout -b improve-docs
  3. Make your changes and commit them with descriptive messages: git commit -m 'Improve documentation for installation process'
  4. Push your changes to your branch: git push origin improve-docs Open a pull request (PR) against the stable branch of the original repository.
  1. Fork the repository to your GitHub account.
  2. Create a new branch for your feature or bug fix: git checkout -b new-feature
  3. Make your changes and commit them with descriptive messages: git commit -m 'Add new feature'
  4. Push your changes to your branch: git push origin new-feature Open a pull request (PR) against the upstream branch of the original repository.

Pull Request (PR) Guidelines

To make sure your PR can be checked out and merged smoothly, please follow these guidelines:

  • Clearly describe the purpose of the PR and the changes made. This will make it easy for me to judge the PR. Usually, I don't refuse them, but more clarity = faster response.
  • Provide tests and documentation for any new features or changes in functionality. This is good practice to always debug your code before pushing it.
  • Include screenshots showing before/after states of any visual changes if possible. This can make it easier for me to review stuff, but I like reading changes too, so no worries about this section.
  • Ensure that all existing tests pass without failure.
  • Make sure your code follows the project's coding standards and style because code that doesn't correlate with the project's style makes it weird for me to review, and I end up formatting it to look like the rest of the codebase, so please save me some time.
  • Go with the least amount of line changes and commits as possible, this will be easier to track and validate, which allows me to review it fast and give small comments if necessary.

Help and Feedback

If you need help, have questions, or want to share your thoughts, don't hesitate to open an issue or ask about it in the dev category inside the CarFigures Discord server.
I'm here to support you every step of the way.

I'm stoked about every contribution from the community. Let's join forces and make the project even more rad!

I'm excited about the future of the project and all the bots that use it!
Here are some features and improvements I have planned:

Future Plans

  • Switch from fastapi_admin to our own tech-stack.
  • Implementing QoL features for extension developers.
  • Combine some existing commands into one (e.g., /user privacy and /user donation policy into /user settings)

I am incredibly grateful to everyone who contributes to The CF Project. Whether you provide code, suggest features, report bugs, or offer emotional support, your efforts are deeply appreciated. Knowing I am not alone in this project and having a supportive community means the world to me.

Thank you all from the bottom of my heart ❤️

Let's continue making this project an awesome and valuable project for everyone!