Es erscheint praktisch, ein Bild sofort wie einen LINE-Stempel ausgeben zu können. Ich habe es geschafft, weil ich dachte
1 Registrieren Sie zuerst das Bild
2 Geben Sie den Namen an, der bei der Registrierung verwendet wurde! In der zu sendenden Nachricht. Dann wird das Bild gesendet.
Um das registrierte Bild zu löschen, gehen Sie wie folgt vor! Del [Name]
#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.
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
Ich kann nicht daran denken das Ende