kioku-space

As a personal memory space.

Building a Discord Chatbot with Python (3) - Adding Your Bot to Discord

In this article, we’ll walk through the Discord settings for your chatbot.

If you don’t already have a Discord account, start by creating one.
For a guide on account creation, check out this link.

Next, set up the Discord server where your chatbot will operate.

  1. Click the ‘+’ icon in the top-left corner.

  2. Choose “Create My Own”.

  3. Select “For me and my friends”.

Building a Discord Chatbot with Python (2) - Setting Up the Development Environment

In this article, we’ll prepare the development environment to build a Discord chatbot in Python.

We’ll be utilizing the discord.py library.
Ensure you have Python version 3.8 or higher to use this library.

Let’s begin by creating a working directory named discord-chatbot.
All our operations will be performed within this directory.

Building a Discord Chatbot with Python (1) - An Introduction

In this guide, we’ll create a “chatbot”, a program that automatically responds to messages in a chat using Python.

Developing a chatbot is a rewarding next step for beginners who have just completed their basic tutorials or courses.
Over the course of several articles, we’ll add various features to our chatbot, making it more versatile and interactive.

Throughout this series, we aim to add the following functions to our chatbot:

Implementing TTL Cache in Python (3)

In this article, we will extend our previously implemented TTL cache decorator with a toggle feature for enabling and disabling the cache.

Here are the specifications for the new cache toggle feature:

  1. Functions decorated with lru_cache will have an additional use_cache argument, allowing one to toggle the cache functionality.
  2. If use_cache is set to False, the function will execute without using the cache,
    but its result will still be stored in the cache.
  3. If toggled back to use_cache=True, the cached content will be utilized.

There are various possible ways to implement this feature. Here’s how I approached it: