Zuverlässig Links erkennen - wie?

OP (Firma: RUB) #4234488
Lesenswert?
• ▲
▼
Hallo Leute,

ich habe folgendes Problem:
Ich bin viel auf der Streamingplatform www.twitch.tv (Spielestreams) 
unterwegs, und diese Platform bietet neben Stream auch immer bei jedem 
Kanal einen Chat an, damit ein Streamer mit seinen Zuschauern 
"interagieren" kann.
Für diese Chats gibt es Bots (z.B. der Nightbot), die die Chats in einem 
gewissen Maße moderieren können, unter anderem können diese Bots 
gepostete Links löschen (zum Schutz der Zuschauer).

Und genau hier liegt auch das Problem:
Oftmals werden Nachrichten gelöscht, mit der Bemerkung, das ein Link 
gepostet wurde, obwohl dies nicht der Fall war. Wenn man in einen Post 
z.B. Sachen einbaut wie: "... a.k.a. ...", dann ist der Bot der Meinung, 
das wäre ein Link und löscht den Post.

Die Begründung für dieses Verhalten ist in etwa so:
die Bots reagieren darauf, wenn ein Wort nen Punkt in der Mitte hat, 
ohne Leerzeichen. Das ist normalerweise nur bei Links der Fall.

Das ist meiner Meinung nach aber nicht so wirklich das gelbe vom Ei und 
bedarf einer Verbeserung.

Und jetzt stell ich mir die Frage:
Wie kann man Links zuverlässig von solchen Sachen unterscheiden?

Auf eine Endung bzw, ein Vorkommen von .de, .com usw. kann man sich in 
Zeiten von Linkshortener, wie Bitly und Co., nicht verlassen.
Auf ein Vorkommen des Protokolls (z.B. http oder https) oder auf das 
Vorkommen vom Berühmten "www" kann man sich ebenfalls nicht verlassen, 
denn ich kann z.B. einfach "mikrocontroller.net" Posten, und der Link 
funktioniert.

Ein gülltiger Link wäre z.B. ( bit(dot)ly/1MoWCHj -> führt auf 
mikrocontroller.net | Das (dot) musste ich einbauen, weil die 
Forensoftware sonst Mekert :) )
Dieser Link enthält weder Protokoll, noch www, noch tld...

Habt ihr eine Idee, wie man sowas zuverlässig hinbekommen könnte?

Die Chats auf twitch.tv sind per IRC erreichbar, d.h. als Sprache für 
einen entsprechenden Bot könnte man z.B. Python nehmen.

Grüße
Gast #4234511
Lesenswert?
• ▲
▼
Kaj G. schrieb:
> Bei mir vielleicht nicht, für den "twitchchat" aber schon, also die
> Adresse wird "anklickbar" und es öffnet sich die Seite zu

dann müsste mal halt den Algorithmus wissen den twitchchat einsetzt um 
ein link zu erzeugen. Wenn der BOT html versteht, kann er ja auch 
einfach prüfen on es ein link ist, ohne das er den "text" verstehen 
muss.
OP (Firma: RUB) #4234548
Lesenswert?
• ▲
▼
Peter II schrieb:
> dann müsste mal halt den Algorithmus wissen den twitchchat einsetzt um
> ein link zu erzeugen.
Danke für diesen Hinweis Peter.

Ich hab mal mit dem Twitchchat gespielt und rausgefunden, das praktisch 
jeder Mist in einen "Link" umgewandelt wird. (siehe Bild)
Es muss lediglich ein Punkt und danach mind. 2 Buchstaben ohne 
Leerzeichen kommen, schon wird es zu einem Link gemacht.
kommt nach dem ersten Punkt mind. 2 Buchstaben und dann ein "/" können 
beliebig viele weitere Punkte enthalten sein.
Also
1
a.k.a
2

3
// oder auch
4

5
http://dk/
wird nicht in einen Link umgewandelt, aber
1
a.ka/de.was.wauch.immer
sehr wohl.

Anhand dessen scheint es mir unmöglich, Links wirklich zuverlässig zu 
erkennen. Damit hat sich das ganze dann eigentlich schon wieder 
erledigt.
Die Chatfunktionalität basiert auf JavaScript.

Naja, trotzdem Danke für die Hilfe :)

Grüße
Angehängte Dateien:
Gast #4234559
Lesenswert?
• ▲
▼
Kaj G. schrieb:
> dann müsste mal halt den Algorithmus wissen den twitchchat einsetzt

Twitchchat ist Open Source, einfach unten in Helper.java nachsehen.
"The regex String for finding URLs in messages"
Da versteht man zwar auch nichts, weil Regexe sogar Perl in Bezug auf 
Write-Only-Qualitäten übertreffen, kann den Wust aber einfach kopieren, 
falls Java keine speziellen Regexe benutzt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren