Coder Social home page Coder Social logo

dhravya / spacebot Goto Github PK

View Code? Open in Web Editor NEW
41.0 3.0 11.0 29.64 MB

An open-source, multipurpose, configurable discord bot that does it all (that's the plan, at least)

Home Page: https://dsc.gg/spacebt

License: MIT License

Python 99.73% Dockerfile 0.27%
discord discordpy lavalink lavalink-musicbot discord-api

spacebot's Introduction


Spacebot - Discord Bot
Spacebot - Discord Bot

Spacebot is getting costlier to host!

ko-fi

Music, Moderation, Fun, Utilities, Games and Fully Configurable.

Discord Server PyPI - Python Version pycord

Code Style: Black

OverviewContributingSelf hosting • Documentation (not ready- send a PR!) • CommunityLicense

Overview

Spacebot is an open source discord bot that is designed to be fun, easy to use, and replace every other discord bot out there!! Feel free to add a star ⭐ to the repository to promote the project!

Features

  • ALL IN ONE !
  • ✉️ Support for commands in direct messages
  • ⚙️ Guild configuration (prefix, roles, etc.)
  • 😀 Commands made pleasant thanks to the many emojis
  • 🗳️ Rewards for voting on the bot on top.gg
  • Self hostable - a little programming knowledge required though

Commands

Spacebot has 200+ commands! Slash and non-slash included.

  • 🎵 Music - Play music from youtube, spotify, soundcloud, http links, vimeo, and a lot more! - NOW WITH FILTERS!
  • 😊 Fun - Random, joke, AI, and more to engage communities!
  • 🔧 Utilities - Helpful commands to make your life easier!
  • 🎮 Games - Play games with the bot!
  • ⚒️ Moderation - Moderation commands to help keep the server safe!
  • ⚙️ Configurable - Configure the bot to your liking!
  • 📷 Image manipulation - Make memes, filter images, convert file types and more!

Contributing

Spacebot is open source on github. Feel free to make a PR! Make sure to read the guidelines but dont stress it!

Self hosting

You can self host the bot for your own server, but you will need to have a lavalink server, discord bot account and the API keys for a ton of stuff. its just better to invite spacebot to your own server and use it!

  • Read this guide to make a bot account.
  • Make a Lavalink server you will need this for the music to work.
  • create a dotenv in the main directory file with the following contents:
REDDIT_CLIENT=  
REDDIT_SECRET=
BOT_TOKEN = 
GOOGLE_KEY =
GOOGLE_CX=
WOLFRAM_API_KEY=
IMGUR_API_KEY=
AFP_KEY=
TENOR_API_KEY=
AI_HOST =
AI_KEY = 
SPOTIPY_ID = 
SPOTIPY_SECRET = 
LAVALINK_HOST =
LAVALINK_PASSWORD= 

Note: You can choose not to put in certain API keys if you dont want the corresponding features.

Community

Spacebot has a discord server! Stop by to say hello! Discord Server

Future plans

These are some planned features for Spacebot:

  • 📃 Documentation
  • Modmail
  • Ticket system
  • Automod
  • Moderation logging

If you can contribute and help me do any of these features, feel free to comment on the corresponding issues that you are working on it! After you are done, you can submit a PR and i'll add it to spacebot!

License

Spacebot is licensed under the MIT license

Also check : ABLETON - by INFINIX

Thanks for showing your interest in Spacebot!! While you are here, why not give it a ⭐?

spacebot's People

Contributors

27saumya avatar dhravya avatar imgbotapp avatar infernum1 avatar omlanke avatar panquesito7 avatar sifte avatar spacecypher avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

spacebot's Issues

Make a dockerfile

Does anyone know how to make a dockerfile for this project?? I was reading through some open source projects and saw "Dockerfile" in them. Upon asking someone, they just said that its not important and not to worry about it
But then one dude explained me how important they are for open source projects

Now, the issue is, i have no idea how to make a dockerfile 💀

stop command

stop command to stop music and clear the playlist

AI command

make something to stop the ai chat, i recommend checking for if message.content == "stop": #stop the char

Nightcore in lavalink music?

Is there a way to get the "Nightcore" filter in Lavalink music? I'm pretty sure it exists because I saw it in a lavalink music bot but how to do it? Can someone help?

new feature for Meme cmd

remove the subreddits you liked from the code in utilities cog and let people add their favourite subreddits so the memes are more appropriate and as they like

Modmail system

Add a simple modmail system where if the user uses .modmail in bot's DM, all the messages henceforth are forwarded to the mod channel (and vice-versa) . This will need a new mod_channel column in the database.
This feature is very similar to the Discomegle feature in cogs/misc.py. If someone is looking to contribute, Please comment below.

Fix vote reminder

Vote reminder currently is giving this error:

2|main  |   File "/root/PythonProjects/spacebot/src/cogs/backgroundtasks.py", line 317, in send_vote_reminder
2|main  |     last_voted_datetime = datetime.strptime(
2|main  |   File "/usr/lib/python3.8/_strptime.py", line 568, in _strptime_datetime
2|main  |     tt, fraction, gmtoff_fraction = _strptime(data_string, format)
2|main  |   File "/usr/lib/python3.8/_strptime.py", line 349, in _strptime
2|main  |     raise ValueError("time data %r does not match format %r" %
2|main  | ValueError: time data '2021-12-10 09:07:45.594144' does not match format '%Y-%m-%dT%H:%M:%S.%f'

Now, I don't see any problem with the syntax, is it a version issue? Here is the snippet thats causes the errror:

@tasks.loop(minutes=10)
async def send_vote_reminder(self):
await self.bot.wait_until_ready()
self.bot.dbcursor.execute(f"SELECT id, vote_reminder, last_voted FROM Users")
users = self.bot.dbcursor.fetchall()
for user in users:
if user[1] == 0:
continue
last_voted_datetime = user[2]
last_voted_datetime = datetime.strptime(
last_voted_datetime, "%Y-%m-%dT%H:%M:%S.%f"
)
now = datetime.now()
delta = now - last_voted_datetime
# If delta is more than 12 hours then send reminder
if 43800 > delta.total_seconds() > 43200:
user_id = user[0]
user = self.bot.get_user(user_id)
if user is not None:
await user.send(
"Hey there! You haven't voted for Spacebot yet. Click this link in order to vote: https://top.gg/bot/881862674051391499/vote.",
view=Votelink,
)

Remind command

A command that sets a reminder for a specific task
/remind 5 minutes Check the announcement polls

Universal Translate utility

Is there a way we can make spacebot so that it automatically detects the language and translate to english?

To take it a step furthur, is there a way to make those "app commands" sort of a thing, but for translate?
image

Ticket system

A ticket system where if a user clicks on a button (in the specific channel where the admins have set up), A new channel is created where only the user has the permission to speak with the moderators. When done, moderators can close the tickets and they get an option to get an html log of the conversation.

I'm looking for a collaborator on this project, since I'm working on Millenia right now.

If you can help with the issue, kindly comment down below!!

Usage of sqlite

sqlite is not async and since dpy and its forks are all working in async environments it is recommended to use asiosqlite instead of sqlite

Usage of Discord-Together

From what I briefly checked, you are using Pycord Alpha. Yet you seem to be using Discord-Together for creating Embedded Activity Invites.

Pycord provides a channel.create_activity_invite method on Voice Channels
Usage can be-

channel_invite = await channel.create_activity_invite(application_id) #You can find application ids from the source code of Discord Together. Maybe store and find it from somewhere.
await ctx.send(f"Invite is {channel_invite}")

This way, you can rely less on 3rd party libraries that could lead to bugs/errors which are difficult to trace.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.