[PYTHON] Erstellen Sie einen BOT, der die Discord-URL verkürzt

Wie der Titel schon sagt Wenn die URL lang ist und die Vorschau unter der YouTube-URL angezeigt wird, ist die obige Nachricht für diejenigen, die ein Smartphone verwenden, nicht sichtbar. Ich habe diesen BOT gemacht, weil ich dachte, dass es unpraktisch ist. Hergestellt von Python

Fertiges Produkt

ピー - コピー.PNG ↑ BOT, wenn die URL in der Nachricht wie dieser enthalten ist, wird sie verkürzt, wenn die Reaktion der unteren Kette gedrückt wird

Ergebnis ↓ キャプチャ.PNG

Das ganze Programm

import discord
import re
import asyncio
from urllib.parse import urlparse

#Es ist für diesen TOKEN-Test vorgesehen, sodass Sie ihn separat verwenden können.
TOKEN = "NzA2MzQwNTMwMDE5MjM3OTQ0.Xq405w.pwRREjj-8N4MKph3QcV9NGb5EIM"
client = discord.Client()

@client.event
async def on_ready():
    print("Bereit")

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

    pattern = "https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"
    url_list = re.findall(pattern, message.content)
    if url_list != []:
        await message.add_reaction("⛓")
        return

@client.event
async def on_reaction_add(reaction, user):
    channel = client.get_channel(reaction.message.channel.id)
    if reaction.count >= 2 and reaction.emoji == "⛓":
        if reaction.count >= 3:
            pass
        else:
            s = reaction.message.content

            pattern = "https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"
            url_list = re.findall(pattern, s)
            url_list[0]
            mes = s.strip(url_list[0])
            parsed_url = urlparse(url_list[0])
            site = '{uri.scheme}://{uri.netloc}/'.format(uri=urlparse(url_list[0]))


            embed = discord.Embed(title=f"{mes}",
                description=f"[Kurze URL]({url_list[0]})",
                color=0x87cefa)
            embed.set_author(name=reaction.message.author.display_name,
                icon_url=reaction.message.author.avatar_url_as(format="png"))
            embed.set_footer(text=f"{site}")

            await channel.send(embed=embed)
    return

client.run(TOKEN)

(Ich habe es schwer geschrieben) Kommentar

** Erster **

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

    #Dies ↑ das ↓
    pattern = "https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"
    url_list = re.findall(pattern, message.content)
    if url_list != []: #Ob die Liste leer ist
        await message.add_reaction("⛓")
        return

Dies ist der Ort, der aufgerufen wird, wenn eine Nachricht kommt, und der Favorit ist von diesem ↑ diesem ↓. Das Programm von diesem ↑ diesem ↓ fügt die in der Nachricht enthaltene URL in die Liste ein. Wenn die Liste leer ist, fügen Sie eine Reaktion hinzu. Der URL-Typ http://trelab.info/python/python-%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%A7url%E3%81%AE%E4%B8%80%E8%87%B4%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%80%81%E6%8A%BD%E5%87%BA%E3%82%92%E8%A1%8C%E3%81%86/ Siehe ... Nein, tut mir leid.

Der Zweite

@client.event
async def on_reaction_add(reaction, user):
    channel = client.get_channel(reaction.message.channel.id)
    if reaction.count >= 2 and reaction.emoji == "⛓":
        if reaction.count >= 3:
            pass
        else:
            s = reaction.message.content
            #Dies ↑ das ↓
            pattern = "https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"
            url_list = re.findall(pattern, s)
            url_list[0]
            mes = s.strip(url_list[0])
            parsed_url = urlparse(url_list[0])
            site = '{uri.scheme}://{uri.netloc}/'.format(uri=urlparse(url_list[0]))


            embed = discord.Embed(title=f"{mes}",
                description=f"[Kurze URL]({url_list[0]})",
                color=0x87cefa)
            embed.set_author(name=reaction.message.author.display_name,
                icon_url=reaction.message.author.avatar_url_as(format="png"))
            embed.set_footer(text=f"{site}")

            await channel.send(embed=embed)
    return

Wo es ein Programm gibt, um eine verkürzte URL zu senden. Wird aufgerufen, wenn eine Reaktion angehängt ist. Der Favorit kommt von dem Ort, an dem dieses ↑ dieses ↓ geschrieben steht Davor derjenige, der bestimmt, ob die Reaktion eine Kette ist Danach ↑ dies ↓

pattern = "https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"
url_list = re.findall(pattern, s)
url_list[0]
#Dies ↑ das ↓
mes = s.strip(url_list[0])#URL aus Nachricht übernehmen
parsed_url = urlparse(url_list[0])#Entfernen Sie das Extra aus der URL
site = '{uri.scheme}://{uri.netloc}/'.format(uri=urlparse(url_list[0]))

Ist fast das gleiche wie das, was ich im ersten gemacht habe Nehmen Sie danach ↑ this ↓ die URL aus der Nachricht und entfernen Sie das Unnötige aus der URL. Derjenige, der das Extra aus der URL entfernt https://www.python.ambitious-engineer.com/archives/35 Beziehen auf ...

embed = discord.Embed(title=f"{mes}",
    description=f"[Kurze URL]({url_list[0]})",
    color=0x87cefa)
embed.set_author(name=reaction.message.author.display_name,
    icon_url=reaction.message.author.avatar_url_as(format="png"))
embed.set_footer(text=f"{site}")

await channel.send(embed=embed)

Dies ist derjenige, der den verkürzten mit Einbettung sendet

Damit ist der Vorgang abgeschlossen

Schließlich

Hmm kann mir nicht vorstellen

das Ende

Recommended Posts

Erstellen Sie einen BOT, der die Discord-URL verkürzt
Machen wir einen Discord Bot.
Erstellen Sie mit MeCab mit Discord einen Bot, der nur das Ergebnis der morphologischen Analyse zurückgibt
Ich habe einen schlaffen Bot gemacht, der mich über die Temperatur informiert
Erstellen Sie einen Discord Bot, der Bilder suchen und einfügen kann
Kopieren Sie die Liste in Python
Erstellen Sie einen BOT, der die Anzahl der infizierten Personen in der neuen Corona anzeigt
Ich habe versucht, einen Übersetzungs-BOT zu erstellen, der mit Discord unter Verwendung von Googletrans funktioniert
[Bot dekodieren] Ich habe versucht, einen Bot zu erstellen, der mir den Rassenwert von Pokemon angibt
Die Geschichte, einen Line Bot zu erstellen, der uns den Zeitplan für die Wettbewerbsprogrammierung erzählt
So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht
Die Geschichte des Starts eines Minecraft-Servers von Discord
Eine Geschichte, die den Aufwand für Betrieb / Wartung reduziert
[Python] Ein Programm, das die Anzahl der Täler zählt
Notieren Sie sich die Liste der grundlegenden Verwendungszwecke von Pandas
#Eine Funktion, die den Zeichencode einer Zeichenfolge zurückgibt
LINE Bot, der Sie über die interessierenden Aktien informiert
Erzeugen Sie diese Form des Bodens einer Haustierflasche
Eine Geschichte, die die Lieferung von Nico Nama analysierte.
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
Die weltweit am einfachsten zu verstehende Erklärung zur Herstellung von LINE BOT (1) [Kontoerstellung]
Machen Sie einen LINE BOT (Chat)
Ich habe einen Zwietrachtbot gemacht
Ein Werkzeug, das die Gacha von Soshage automatisch dreht
Lassen Sie uns die Analyse der sinkenden Daten der Titanic so durchführen
Lassen Sie uns den Befehl pünktlich mit dem Bot der Zwietracht ausführen
Lassen Sie uns einen Roboter bauen, der den Zauberwürfel löst! 2 Algorithmus
Lassen Sie uns einen Roboter bauen, der den Zauberwürfel löst! 3 Software
Lassen Sie uns einen Roboter bauen, der den Zauberwürfel löst! 1. Übersicht
Die Geschichte, wie man mit discord.py einen Fragenkasten-Bot erstellt
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
[Abgeschlossen] Bot, der eine Benachrichtigung über den Start der Live-Übertragung von Nico Nico an Discord auf discord.py sendet
[Konzept] Bot, der eine Benachrichtigung über den Beginn der Live-Live-Übertragung von Nico Nico an Discord auf discord.py sendet
So erstellen Sie einen interaktiven LINE BOT 004 (beantworten Sie den Stichtag eines börsennotierten Unternehmens)
Beim Inkrementieren des Werts eines Schlüssels, der nicht vorhanden ist
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
pandas Ruft den Namen einer Spalte ab, die ein bestimmtes Zeichen enthält
Ich habe einen Linienbot erstellt, der das Geschlecht und das Alter einer Person anhand des Bildes errät
Eine Formel, die einfach das Alter ab dem Geburtsdatum berechnet
Wie man einen lockeren Bot macht
Erstellt einen Discord-Bot, um Sie über Aktualisierungen zu informieren und Romanautor zu werden
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Die Geschichte der Erstellung einer Website, auf der die Veröffentlichungsdaten von Büchern aufgeführt sind
Rufen Sie die URL des von der Jira-Python-Bibliothek erstellten JIRA-Tickets ab
Ich habe einen Discord-Chat-Lesebot erstellt, indem ich das Erscheinungsbild nachgeahmt habe
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
Die Geschichte des Exportierens eines Programms
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
Die Geschichte des Erstellens eines Bots, der aktive Mitglieder in einem bestimmten Slack-Kanal mit Python anzeigt
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Erstellen Sie einen Bot, der die Anzahl der Personen, die für das neue Corona-Virus in Tokio positiv sind, an Slack sendet
Erstellen Sie einen BOT, der mit Discord registrierte Bilder wie Piktogramme aufrufen kann
[Python] Ein Programm, das die Anzahl der Schokoladensegmente berechnet, die die Bedingungen erfüllen
Die Geschichte, wie man mit Python einen 100-Yen-Frühstücks-Bot für die Universität macht
Ich habe einen Kalender erstellt, der den Verteilungsplan von Vtuber automatisch aktualisiert
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
Wie man einen Janken-Bot macht, der leicht bewegt werden kann (Kommentar)
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert