[PYTHON] Erstellen Sie einen BOT, der mit Discord registrierte Bilder wie Piktogramme aufrufen kann

Zunaechst(?)

Es erscheint praktisch, ein Bild sofort wie einen LINE-Stempel ausgeben zu können. Ich habe es geschafft, weil ich dachte

Fertiges Produkt

1 Registrieren Sie zuerst das Bild キャプチャ.PNG

2 Geben Sie den Namen an, der bei der Registrierung verwendet wurde! In der zu sendenden Nachricht. Dann wird das Bild gesendet. キャプチャ2.PNG

Um das registrierte Bild zu löschen, gehen Sie wie folgt vor! Del [Name]

Programm

#coding=utf-8
import discord
import re
import os
import glob

client = discord.Client()

@client.event
async def on_ready():
    print('In Verbindung gebracht')

@client.event
async def on_message(message):
    if message.author.bot:
        return

    word = re.compile("s!add (.+)").search(message.content)
    if word:
        wo = word.group(1)
        await message.channel.send("einrichten...")
        picu = message.attachments[0].url
        file = str(message.guild.id) + "/" + wo + ".txt"
        try:
            os.mkdir(f"./{str(message.guild.id)}")
        except FileExistsError:
            pass
        with open(file, mode='w') as f:
            f.write(str(picu))
        await message.channel.send("Stempel hinzugefügt.")
        f.close()
        return

    wordd = re.compile("s!del (.+)").search(message.content)
    if wordd:
        woo = wordd.group(1)
        file = str(message.guild.id) + "/" + woo + ".txt"
        if (os.path.exists(file)):
            await message.channel.send("Löschen...")
            os.remove(file)
            await message.channel.send("Der Stempel wurde gelöscht.")
        else:
            await message.channel.send("Der Stempel wurde nicht gefunden.")
        return

    pe = re.compile('s!list (.+)').search(message.content)
    if pe:
        casfo = glob.glob(str(message.guild.id) + "/*")
        nopas = str(message.guild.id)
        lis = []
        for file in casfo:  #Dateiliste
            prii = file.lstrip(nopas)
            pri = prii.rstrip(".txt")
            pr = pri.rstrip("/")
            p = pr.lstrip("\\")
            lis.append(p)
        pa = int(pe.group(1))
        no = len(lis)
        embed = discord.Embed(title="Stempelliste", description=f"{str(pa)}Seite Seite\n Anzahl der Briefmarken:{len(lis)}", color=0x4682b4)
        c = 0
        cc = 0
        if pa > 1:
            ccc = pa*10
            c = ccc - 10
        while True:
            try:
                naiy = lis[c]
            except:
                if pa == 1:
                    await message.channel.send("Es gibt noch keinen Stempel.")
                    return
                await message.channel.send(f"{str(pa)}Es gibt noch keine Seite")
                return
            c = c + 1
            embed.add_field(name=str(c), value=naiy)
            if c == pa * 10:
                await message.channel.send(embed=embed)
                return
            if c == len(lis):
                break
        await message.channel.send(embed=embed)
        return

    s = message.content
    if s.count("!") == 2:
        x = s.find("!")
        y = s.find("!", x+2)
        sta = s[x + 1 : y]
        if sta == None:
            return
        pas = str(message.guild.id) + "/" + sta + ".txt"
        if os.path.exists(pas) == False:
            return
        with open(pas) as f:
            url = f.read()
        f.close()
        await message.channel.send(url)
        return

print('Anschließen...')
#Da es für den Test TOKEN ist, kann es auslaufen
client.run("NzA2MzQwNTMwMDE5MjM3OTQ0.Xq405w.pwRREjj-8N4MKph3QcV9NGb5EIM")

Es ist sehr lang, weil ich nicht das Vokabular (?) Des Codes habe.

Wie es funktioniert

Erstellen Sie beim Registrieren von Bildern einen Ordner mit der Server-ID und Erstellen Sie einfach eine Textdatei mit der URL des Bildes und dem Namen des Bildes. Was passiert, wenn Sie einen Stempel senden? Wenn es zwei gibt, überprüfen Sie den Text zwischen den beiden! Lesen Sie dann die Textdatei mit dem Namen des Satzes zwischen! Im Ordner dieser Server-ID. Senden Sie die URL des darin enthaltenen Bildes. Komplett

Erklärung des Wichtigsten in diesem Programm ↑ this ↓ Derjenige, der den Text zwischen den beiden untersucht!

s = message.content #Weil es lang ist, setzen Sie es in s
if s.count("!") == 2:
    x = s.find("!")
    y = s.find("!", x+2)
    sta = s[x + 1 : y]
    if sta == None:
        return
    pas = str(message.guild.id) + "/" + sta + ".txt"
    if os.path.exists(pas) == False:
        return
    with open(pas) as f:
        url = f.read()
    f.close()
    await message.channel.send(url)
    return

In der Nachricht! Der Teil, um die beiden nachzuschlagen und den Namen von ihnen umgeben.

Wie es funktioniert: 1 Erstens, wenn s.count ("!") == 2: Überprüfen Sie, ob es zwei gibt! 2 Finden Sie die Anzahl der ersten! Und zweiten! Standorte mit x = s.find ("1") und y = s.find ("!", X + 2). 3 Untersuche die Zeichen in dem Bereich, der von! At sta = s [x + 1: y] umgeben ist. 4 Wenn sta == Keine: Bestätigen Sie, dass es nicht leer ist 5 pas = str(message.guild.id) + "/" + sta + ".txt" Ist der Pfad der Textdatei, in der die URL des registrierten Bildes aufgezeichnet wird 6 if os.path.exists(pas) == False: Überprüfen Sie, ob die Datei mit dem Pfad 5 vorhanden ist 7 with open(pas) as f: Lesen Sie den Inhalt der Textdatei mit 5 Pfaden und senden Sie ihn

Am Ende

Ich kann nicht daran denken das Ende

Recommended Posts

Erstellen Sie einen BOT, der mit Discord registrierte Bilder wie Piktogramme aufrufen kann
Erstellen Sie eine Web-API, die Bilder mit Django liefern kann
Erstellen Sie mit Selenium ein Programm, mit dem Sie Ihr Lieblingsbild erstellen können
Erstellen Sie einen Discord Bot, der Bilder suchen und einfügen kann
Erstellen Sie einen Discord-Bot, der einseitig mit Python benachrichtigt (nur Anfragen und JSON werden verwendet).
Erstellen Sie mit MeCab mit Discord einen Bot, der nur das Ergebnis der morphologischen Analyse zurückgibt
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Erstellen Sie einen Bot, der Twitter-Trends verstärkt
Erstellen Sie eine Web-App, die mit Plotly Dash einfach visualisiert werden kann
Erstellen Sie solche Testdaten mit Python (Teil 1)
Erstellen Sie mit AWS Lambda einen Bot, der Instanzen mit bestimmten Tags automatisch startet / stoppt
Erstellen Sie mit Minette für Python einen LINE BOT
Ich habe PyQCheck, eine Bibliothek, die QuickCheck mit Python ausführen kann, in PyPI registriert.
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
Sie können auch mit Python problemlos eine GUI erstellen
Schritte zum Erstellen eines Twitter-Bots mit Python
Konvertieren Sie Bilder aus dem FlyCapture SDK in ein Formular, das mit openCV verwendet werden kann
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Erstellen Sie einen Chatbot, der die kostenlose Eingabe mit Word2Vec unterstützt
Erstellen Sie einen Stapel von Bildern und blasen Sie sie mit ImageDataGenerator auf
Erstellen Sie einen Slack Bot
Eine Geschichte, bei der es mir schwer gefallen ist, mit der ersten Webanwendung eine "App zu erstellen, die Bilder wie Gemälde konvertiert"
Erstellen Sie eine Web-App, die Zahlen mit einem neuronalen Netzwerk erkennt
Erstellen Sie eine PythonBox, die nach der PEPPER-Eingabe mit Random ausgegeben wird
Erstellen Sie eine Funktion zum Anzeigen von Bildern wie Jupyter / RStudio [Docker]
Erstellen Sie eine App für maschinelles Lernen mit ABEJA Platform + LINE Bot
Erstellen Sie einen Mastodon-Bot mit einer Funktion, die automatisch mit Python antwortet
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Erstellen Sie ein Lebensspiel, das manuell mit tkinter aktualisiert wird
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
Tornado - Erstellen wir eine Web-API, die JSON problemlos mit JSON zurückgibt
Ich habe ein Plug-In erstellt, das "Daruma-san Fell" mit Minecraft ausführen kann
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
Machen wir einen Discord Bot.
Erstellen Sie eine Homepage mit Django
Ich habe einen Zwietrachtbot gemacht
Erstellen Sie ein Verzeichnis mit Python
[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Ich habe ein Paket erstellt, das morphologische Analysegeräte mit Python vergleichen kann
[Road to Intermediate Python] Rufen Sie eine Klasseninstanz wie eine Funktion mit __call__ auf
Erstellen Sie eine Spinbox, die mit Tkinter in Binär angezeigt werden kann
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
Erstellen Sie ein Währungsdiagramm, das mit Plotly (2) verschoben werden kann.
Erstellen Sie eine Spinbox, die mit Tkinter in HEX angezeigt werden kann
Erstellen Sie ein Währungsdiagramm, das mit Plotly (1) verschoben werden kann.
Einführung des Befehls lsix, mit dem eine Liste von Bildern angezeigt werden kann