# Kā izveidot Python Discord botu

Sava „Discord“ servera uzturēšana var prasīt daudz darba, tāpēc ir populāri boti, kas veic administratīvās funkcijas. Tu vari viegli izveidot savu botu, izmantojot Python bibliotēku „discord.py“ un piemērojot pamata Python zināšanas.

## Soli pa solim uz savu Python Discord botu

Pirms sākt bota programmēšanu, tev ir jāizveido Discord bots. Tu vari **izveidot savu lietojumprogrammu ar Discord palīdzību**, un, tiklīdz tas būs izdarīts, nekas vairs nekavēs tavu Discord bota darbību. Kods, kas tev nepieciešams Discord botam, ir atkarīgs no uzdevumiem, kurus vēlies automatizēt. Šajā apmācībā aprakstītais bots ir paredzēts **lomu pievienošanai Discord serverī**.

### 1. solis: instalējiet discord.py

Lai izveidotu savu botu, Python bibliotēka „discord.py“ ir neaizstājams rīks. Pirms sākt darbu, tā jāinstalē sistēmā, izmantojot „pip“, kā tas ir ierasts Python vidē. Windows vidē instalēšanai jāizmanto šāda termināļa komanda:

```python
py -3 -m pip install -U discord.py
```

### 2. solis: izveidojiet Python dokumentu

Izveidojiet jaunu Python dokumentu, lai programmētu savu botu. Python faila izveidei varat izmantot dažādus koda redaktorus vai **integrētu attīstības vidi (IDE)**, piemēram, Pycharm.

### 3. solis: izveidojiet savienojumu ar Discord

Vispirms importējiet Discord bibliotēku savā Python programmā. Iestatiet bota atslēgu, ko saņēmāt **, reģistrējot savu Discord botu** Discord izstrādātāju vietnē. Lai to izdarītu, aizstājiet vietas turētāju ar savu bota atslēgu:

```python
import discord
TOKEN = token_placeholder
```

Lai sazinātos ar Discord API, tev ir nepieciešama bibliotēka. Lai izveidotu savienojumu ar Discord, tev būs nepieciešams tā saucamā klienta objekta eksemplārs. Lai to izveidotu, izmanto šādu kodu:

```python
client = discord.Client()
```

### 4. solis: Pārliecinieties, ka savienojums ir izveidots veiksmīgi

Lai nodrošinātu, ka jūsu bots ir pareizi savienots ar Discord serveri, iekļaujiet savā Python failā asinhrono metodi. To var panākt, reaģējot uz notikumu `on_ready`, kas ir definēts discord.py API. Lai jūsu funkcija darbotos kā notikuma apstrādātājs, izmantojiet Python dekoratoru `@client.event` “.

```python
@client.event
async def on_ready():
    print(f'{client.user} is connected to the following server:\n')
    for server in client.guilds:
        print(f'{server.name}(id: {server.id})')
```

Note Discord bota programmēšanā bieži tiek izmantotas asinhronās funkcijas. Tas nodrošina, ka funkcija darbojas atsevišķā, no galvenā pavediena nošķirtā pavedienā, ļaujot paralēli izpildīt bota uzdevumus, neblokējot galveno pavedienu.

### 5. solis: pievienojiet savam botam funkcijas

Lai īstenotu bota funkcionalitāti programmā „discord.py“, tiek izmantots **notikums`on_message`** “. Šis notikums tiek izraisīts ikreiz, kad jūsu Discord bots saņem ziņojumu. Lai apstrādātu šo notikumu, jūsu metodei vispirms jānosaka ziņojuma sūtītājs un pēc tam jāizpilda vēlamā darbība, piemēram, lomu pievienošana.

```none
@client.event
async def on_message(message):
    if message.author == client.user:
        return
    if message.content.startswith('!add_role'):
        # Find role name
        role_name = message.content.split(' ')[1]
        # search corresponding Discord role
        role = discord.utils.get(message.guild.roles, name=role_name)
        # Check if the role exists
        if role is None:
            await message.channel.send(f'Role "{role_name}" does not exist)
            return
        # Role assignment
        await message.author.add_roles(role)
        await message.channel.send(f'Role "{role_name}" was added to {message.author}')
```

Sākumā funkcija pārbauda, vai saņemto ziņojumu ir nosūtījis pats Discord bots. Ja tas tā ir, funkcija tiek pārtraukta, izmantojot `return` teikumu.

Nākamais solis ir **ziņojuma satura rūpīgāka pārbaude**. Ja ziņojums sākas ar teksta virkni `!add_role`, bots to atpazīst kā komandu. Tas nozīmē, ka servera lietotājiem pieprasījumi Discord botam jāuzsāk ar teksta virkni `!add_role` “. Lai gan par komandu var izmantot jebkuru teksta virkni, ieteicams izmantot tās, kas **dabiskajā valodā netiek plaši lietotas**.

Bots nosaka vēlamo lomas nosaukumu, pareizi interpretējot komandu ar Python funkcijas split() palīdzību. Pēc tam tas atrod attiecīgo lomu jūsu serverī. To var izdarīt, izmantojot objektu `message`, kura laukā `message.guild` ir iekļauta dažāda informācija par jūsu serveri.

Ja loma nepastāv un tādējādi tās vērtība ir „None“, tiek ģenerēts kļūdas ziņojums un funkcija tiek pārtraukta, izmantojot `return` rindu. Ja loma pastāv, tā tiek piešķirta atbilstoši vajadzībai. Šim nolūkam mēs izmantojam `add_roles` funkciju no bibliotēkas „discord.py“, kas ir definēta arī `message` objektā.

Note Jūsu Discord bots spēj veikt jebkuras uzdevumus, ko tam uzticēsiet. Jūs varat izstrādāt botus, kas pilda funkcijas, līdzīgas tām, ko piedāvā labi pazīstamais čata un moderēšanas bots MEE6, vai pat programmēt savus Discord mūzikas botus. Mēs to esam parādījuši, izmantojot vienkāršu piemēru, ko iesācēji var viegli izprast.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/serveris/prasmes-un-zinasanas/python-discord-bots/](https://www.ionos.com/lv-lv/digitalguide/serveris/prasmes-un-zinasanas/python-discord-bots/) for AI/LLM consumption.