Redid Dolly's code
This commit is contained in:
15
dolly/commands.py
Normal file
15
dolly/commands.py
Normal file
@ -0,0 +1,15 @@
|
||||
import discord
|
||||
from discord import app_commands
|
||||
from .database import add_project, add_task
|
||||
|
||||
class DollyProjectTrackerCommands(app_commands.Group):
|
||||
|
||||
@tree.command(name="create-project", description="Create a new project in the database.")
|
||||
async def create_project(self, interaction: discord.Interaction, name: str, description: str):
|
||||
await add_project(name, description)
|
||||
await interaction.response.send_message(f"Project `{name}` created successfully.")
|
||||
|
||||
@tree.command(name="add-task", description="Add a new task to a project in the database.")
|
||||
async def add_task(self, interaction: discord.Interaction, project_name: str, description: str, assignee: str, deadline: str, status: str, priority: str):
|
||||
await add_task(project_name, description, assignee, deadline, status, priority)
|
||||
await interaction.response.send_message(f"Task `{description}` added to project `{project_name}` successfully.")
|
35
dolly/database.py
Normal file
35
dolly/database.py
Normal file
@ -0,0 +1,35 @@
|
||||
import aiosqlite
|
||||
from datetime import datetime
|
||||
|
||||
DATABASE = "dolly.db"
|
||||
|
||||
async def setup_db():
|
||||
async with aiosqlite.connect(DATABASE) as db:
|
||||
await db.execute('''CREATE TABLE IF NOT EXISTS projects (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name TEXT UNIQUE,
|
||||
description TEXT)'''
|
||||
)
|
||||
await db.execute('''CREATE TABLE IF NOT EXISTS tasks (
|
||||
id INTEGER PRIMARY KEY,
|
||||
project_id INTEGER,
|
||||
description TEXT,
|
||||
assignee text,
|
||||
deadline DATE,
|
||||
status TEXT,
|
||||
priority TEXT,
|
||||
FOREIGN KEY(project_id) REFERENCES projects(id))'''
|
||||
)
|
||||
await db.commit()
|
||||
|
||||
async def add_project(name, description):
|
||||
async with aiosqlite.connect(DATABASE) as db:
|
||||
await db.execute("INSERT INTO projects (name, description) VALUES (?, ?)", (name, description))
|
||||
await db.commit()
|
||||
|
||||
async def add_task(project_id, description, assignee, deadline, status, priority):
|
||||
deadline_date = datetime.strptime(deadline, '%Y-%m-%d').date()
|
||||
async with aiosqlite.connect(DATABASE) as db:
|
||||
await db.execute("INSERT INTO tasks (project_id, description, assignee, deadline, status, priority) VALUES (?, ?, ?, ?, ?, ?)",
|
||||
(project_id, description, assignee, deadline_date, status, priority))
|
||||
await db.commit()
|
16
dolly/dolly.py
Normal file
16
dolly/dolly.py
Normal file
@ -0,0 +1,16 @@
|
||||
import discord
|
||||
from discord import app_commands
|
||||
from .commands import DollyProjectTrackerCommands
|
||||
|
||||
class Dolly(discord.Client):
|
||||
|
||||
def __init__(self):
|
||||
super().__init__(intents=discord.Intents.default())
|
||||
self.tree = app_commands.CommandTree(self)
|
||||
self.tree.add_command(DollyProjectTrackerCommands())
|
||||
|
||||
async def setup_hook(self):
|
||||
await self.tree.sync()
|
||||
|
||||
async def on_ready(self):
|
||||
print(f"Logged in as {self.user} (ID: {self.user.id})\n------")
|
14
main.py
Normal file
14
main.py
Normal file
@ -0,0 +1,14 @@
|
||||
from dolly.dolly import Dolly
|
||||
from dolly.database import setup_db
|
||||
import asyncio
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
TOKEN = os.getenv('DISCORD_BOT_TOKEN')
|
||||
|
||||
async def main():
|
||||
await setup_db()
|
||||
client = Dolly()
|
||||
await client.start(TOKEN)
|
||||
|
||||
asyncio.run(main())
|
Reference in New Issue
Block a user