Autor Thema: (Diskussion) einzeilige Messageveränderungen (Parser)  (Gelesen 19108 mal)

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
(Diskussion) einzeilige Messageveränderungen (Parser)
« am: 17. Juni 2008, 01:35:00 »
Dieses ist der Diskussionsbereich,
der Entwicklungsbereich befindet sich hier.

Im Moment sieht der Parser für http://www.upload.de folgendermaßen aus:
message = message.replace(/http\:\/\/www.abload.de\/image.php\?img\=/g, 'http://www.abload.de/img/');
 
Der Parser für eMail-Adressen lautet:
message = message.replace(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/g, '<span style="color:#000000; text-decoration: underline;">$&</span>');

Alle Veränderungen sind durch reguläre Ausdrücke bewerkstelligt worden.

Die vollständige Datei ist im Entwicklungsbereich zu bekommen.

Mal sehen, was es noch so gibt.

Mfg Nem
« Letzte Änderung: 20. Dezember 2008, 13:11:55 von lastwebpage »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



DaSilva

  • Tastaturquäler
  • **
  • Beiträge: 485
  • Geschlecht: Männlich
    • Profil anzeigen
    • FreFel webservices - Webhosting
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #1 am: 17. Juni 2008, 18:20:17 »
Danke, funktioniert wunderbar.
Ich wollte das gleich mal um ImageShack erweitern aber leider geht das wohl nicht da im Link ein wichtiger Wert nicht angegeben wird.

Testbild: http://img236.imageshack.us/my.php?image=faviconxy5.png
Direktlink: http://img236.imageshack.us/img236/5046/faviconxy5.png

Wie man sehen kann kommt noch die 5046 hinzu beim Direktlink. Gibt es da eine Möglichkeit die irgendwie herauszubekommen?

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #2 am: 18. Juni 2008, 10:58:14 »
@DaSilva

Nein, man kann nur einen Link generieren, wenn dieser auch alle angaben bekommen kann. Das gute bei Imagehack ist, dass die den Direktlink zum Bild mit angeben, also warum dann umständlich über Imageshack gehen?

mfg Nem
« Letzte Änderung: 18. Juni 2008, 22:09:34 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



[UP]

  • Überall-Mitmischer
  • *
  • Beiträge: 189
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #3 am: 23. Juni 2008, 16:44:17 »
Täusche ich mich oder ersetzt der Parser bis jetzt nur alleine stehende E-Mail-Adressen und E-Mail-Adressen in Texten bleiben unberührt?

Edit: Sollte eigentlich anders sein, aber iwie wills bei mir nicht... :-(

Edit2: Nachdem ich einige mir in dem Kontext unbekannte Zeichen aus dem Code gelöscht habe, funktioniert es nun immer.

Mein (veränderter) Code:   message = message.replace(/([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/g, '<span style="color:#000000; text-decoration: underline;">$&</span>');

Aber was bedeutete das ^ und das $ beim regulären Ausdruck?
« Letzte Änderung: 23. Juni 2008, 16:58:54 von [UP] »

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #4 am: 23. Juni 2008, 20:14:31 »
Oh, Du hast recht.
Habe Deinen Code genommen und werde somit den in die neue Parser.js-Datei mit rein schreiben.

Zitat
$ = Das Dollarzeichen kann einen Skalar einleiten oder bei Zeichenketten angeben, dass das voranstehende Suchmuster am Ende des Suchbereichs vorkommen muss.
^ = Das Dach- oder Hütchensymbol kann ansonsten eine Zeichenklasse verneinen oder bei Zeichenketten angeben, dass das nachfolgende Suchmuster am Anfang des Suchbereichs vorkommen muss.
Kommt von Selfhtml

http://de.selfhtml.org/perl/sprache/regexpr.htm

mfg Nem
« Letzte Änderung: 23. Juni 2008, 20:23:40 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



nevermind82

  • Gast
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #5 am: 24. Juni 2008, 18:02:48 »
mir is gerade aufgefallen, dass der email parser nicht funktioniert, wenn wenn vor der adresse ein absatz oder was andres kommt

puttee

  • Tastaturquäler
  • **
  • Beiträge: 355
  • Geschlecht: Männlich
  • www.puttee.de | Miranda Fusion
    • Profil anzeigen
    • www.puttee.de | www.miranda-fusion.de
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #6 am: 24. Juni 2008, 19:40:34 »
das wurde doch mit der neuen parser behoben. siehe hier: http://forum.miranda-im.de/index.php?topic=8199.0  :-\
Motto: Optimisten haben gar keine Ahnung von den freudigen Überraschungen, die Pessimisten erleben.

nevermind82

  • Gast
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #7 am: 25. Juni 2008, 10:28:19 »
klappt... aber ers nachdem ich die basicfile ausgetauscht habe ...  :o

puttee

  • Tastaturquäler
  • **
  • Beiträge: 355
  • Geschlecht: Männlich
  • www.puttee.de | Miranda Fusion
    • Profil anzeigen
    • www.puttee.de | www.miranda-fusion.de
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #8 am: 25. Juni 2008, 10:46:54 »
dann war in deiner alten basic.js der parser nicht aktiviert.
Motto: Optimisten haben gar keine Ahnung von den freudigen Überraschungen, die Pessimisten erleben.

nevermind82

  • Gast
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #9 am: 25. Juni 2008, 11:14:06 »
doch... einzeln gings ja wunderbar nur im text gings nich...

war die version der basicfile in der der parser integriert wurde... kanns mir höchstens so vorstellen, dass der die ersetzungen übernommen hat und ers garnix in die parser.js reinkam

aber egal wie ...jetz gehts

[UP]

  • Überall-Mitmischer
  • *
  • Beiträge: 189
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #10 am: 25. Juni 2008, 18:26:51 »
Der Parser macht im Moment Ärger mit den MSN-Custom Smilies... Bei diesen wird nämlich auch die E-Mail-Adresse geparset...

EDIT: \b könnte iwie helfen, aber ich bekomme das gerade nicht hin!
EDIT2: Problem ist, dass die E-Mail-Adresse eine Ordnerbezeichnung ist und deshalb von "\" umgeben ist. Das zählt als Wortende, womit \b nutzlos ist!

EDIT3: Problem gelöst! Neuer Parser: Das Zeichen hinter der E-Mail-Adresse wird nun überprüft und die Adresse nur ersetzt, wenn die E-Mail-Adresse als letzter Teil der Nachricht ($), vor einem Zeilenumbruch (< - als Beginn des
-Tags) oder vor einem Leerzeichen (\s) steht.

message = message.replace(/([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(?=(\s|<|$))/g, '<span style="color:#000000; text-decoration: underline;">$&</span>');
« Letzte Änderung: 25. Juni 2008, 19:34:16 von [UP] »

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #11 am: 25. Juni 2008, 23:20:04 »
@[UP]
Das Smileyproblem mit MSN ist mir gerade auch aufgefallen.
Wollte mich gerade dran setzen, wie gut, dass Du das schon vor mir hattest. :D
Habe Deine Version probiert. Die scheint zu funktionieren.
Werde die in der neuen perser jetzt hochladen.

gruß Nem

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



[UP]

  • Überall-Mitmischer
  • *
  • Beiträge: 189
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #12 am: 26. Juni 2008, 10:26:48 »
Ich habe in meinem Parser noch <DIV> und </DIV> entfernt. Das sind Konstrukte, die manchmal auftauchen, wenn ICQ-User Nachrichten aus ihrem Fenster kopieren und es in einen Chatverlauf an Miranda-User einfügen. Hier der Parser:

 // parser -DIV
  message = message.replace(/&lt;DIV&gt;/g,'');
  message = message.replace(/&lt;\/DIV&gt;/g,'');

flakinarist

  • Gelegenheitsposter
  • ***
  • Beiträge: 53
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #13 am: 26. Juni 2008, 11:40:30 »
da mich das thema interessiert, möchte ich mal fragen, wie ich den parser überhaupt benutze, da ich keine ahnung habe, wie ich ihn in mein miranda einbinden kann.
wäre schön, wenn mir jemand eine kurze anleitung geben könnte.
mfg

nevermind82

  • Gast
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #14 am: 26. Juni 2008, 13:12:43 »
einbinden kannst das ganze indem die parser.js in die ivt deines ieview skin einbindest... also im head teil

benutzen tut sie sich dann von allein...dh es werden entsprechende text teile durch den message replace befehl ersetzt

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #15 am: 26. Juni 2008, 13:30:36 »
@[UP]

Zu Testzecken werde ich Deine Messsage Parser mal ausprobieren.
Ich hatte bisher noch keine Probleme damit. Liegt aber wohl daran,
dass meine Kontakte keine Nachrichten kopieren und verschicken.

Hab mir mal selber von ICQ eine Message geschickt, aber da
taucht kein <DIV> auf.

Wenn ich die Test-Elemente des Parsers freischalte:
  message = message.replace(/</g,'[');
  message = message.replace(/>/g,']');
Müsste zumindestens die DIV erkannt werden, was aber auch nicht ist.

mfg Nem
« Letzte Änderung: 26. Juni 2008, 13:32:56 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



[UP]

  • Überall-Mitmischer
  • *
  • Beiträge: 189
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #16 am: 26. Juni 2008, 15:19:12 »
Also ich weiß, dass das auftaucht, da es zum einen recht häufig Beschwerden darüber gab. Aber es hängt wohl von einigen Faktoren ab. Meine Freundin kopiert recht häufig Chat-Verläufe mit anderen ICQ-Usern ins Nachrichtenfenster und wenn sie von vereinzelten Usern kopiert taucht das halt auf. Dann aber sehr extrem! Vergleiche hier: http://forums.miranda-im.org/showthread.php?t=18053

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #17 am: 26. Juni 2008, 16:54:48 »
@[UP]
Ok, habe es nun erstmal mit aufgenommen.

Wer im englischen Forum registriert ist, kann ja bei http://forums.miranda-im.org/showthread.php?t=18053 einen Hinweis zu den Pasern geben.

mfg Nem

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #18 am: 08. Juli 2008, 20:17:57 »
Hi

Was haltet ihr davon Wörter als Highlights in den Parser reinzubauen?

Folgende Möglichkeiten kann man benutzen:

message = message.replace(/XXXX/g,'<font color="red">XXXX</font>');   // XXXX wird in Farbe Rot dargestellt (andere Farben sind denkbar)
message = message.replace(/XXXX/g,'<font size="+2">XXXX</font>');     // XXXX wird vergrößert dargestellt (andere größen sind denkbar)
message = message.replace(/XXXX/g,'<font size="-2">XXXX</font>');     // XXXX wird verkleinert dargestellt (andere größen sind denkbar)
message = message.replace(/XXXX/g,'<B>XXXX</B>');                         // XXXX wird fett dargestellt
message = message.replace(/XXXX/g,'<I>XXXX</I>');                          // XXXX wird kursiv dargestellt
message = message.replace(/XXXX/g,'<U>XXXX</U>');                        // XXXX wird unterstrichen dargestellt
message = message.replace(/XXXX/g,'<S>XXXX</S>');                        // XXXX wird durchgestichen dargestellt

Kombinationen sind möglich.



zB:
// parser: Worthightlights
message = message.replace(/Aber/g,'<font color="red" size="+3"><B><I>Aber</I></B></font>');

Im Beispiel wird bei einer Message das Wort "Aber" dann rot, fett, kursiv und vergrößert geschrieben (Aber).

mfg Nem


EDIT:
welche Wörter sollten denn wie dargestellt werden?
« Letzte Änderung: 08. Juli 2008, 21:24:10 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



puttee

  • Tastaturquäler
  • **
  • Beiträge: 355
  • Geschlecht: Männlich
  • www.puttee.de | Miranda Fusion
    • Profil anzeigen
    • www.puttee.de | www.miranda-fusion.de
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #19 am: 08. Juli 2008, 21:37:04 »
naja, man könnte alle Wörter für Farben, in den entsprechenden Farben machen, also z.b. "der Baum ist grün"
Weiterhin z.B. das Wort "groß" in GROß schreiben; oder: z.b. ein dickes Lob oder: z.b. ACHTUNG!!!
mehr fällt mir grad nicht ein.
mfg
Motto: Optimisten haben gar keine Ahnung von den freudigen Überraschungen, die Pessimisten erleben.

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #20 am: 08. Juli 2008, 22:06:04 »
Wenn man schon Wörter nimmt, dann müssen auch die Konjunktionen berücksichtigt werden.
zB:
rot, roter, rotes

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



Bjbouss

  • Forenprediger
  • *****
  • Beiträge: 1.206
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #21 am: 08. Juli 2008, 22:18:53 »
mal so zwischendurch.
Ich finds ja klasse was hier hier so alles realisiert und veröffentlicht, danke dafür.

Aber ist das echt notwendig solche farben und andere highlights zu implementieren?
OK, da wären wir wieder beim alten thema, dem Sinn und Zweck...

Aber angenommen ich lade das alles runter und hab alles "an" (also dass er alle von euch realisierten features anwendet" drückt das nicht ungemein auf die Auslastung und verlangsamt mein System?

Denn diese Dateien müssen ja jede einzelne Nachricht, jedes Wort durchsuchen beim Empfangen und Senden um ggf. Dinge zu entdecken, die zur Ausführung von bestimmten Aktionen führt.
Ich habe davon zwar nicht viel Ahnung, aber denke mir doch, dass es ziemlich ressourcenfressend ist.

AImXOo0o

  • Überall-Mitmischer
  • *
  • Beiträge: 209
  • Geschlecht: Männlich
  • Hmmm
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #22 am: 08. Juli 2008, 22:27:19 »
Ist das normal, dass nachdem ich die .js Datei testwese entfernt habe, aber die Smileys immer noch gestreckt werden? Ergibt doch irgendwie keinen Sinn.

Nem

  • Forenfetischist
  • ****
  • Beiträge: 888
  • Geschlecht: Männlich
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #23 am: 08. Juli 2008, 22:44:27 »
@Bjbouss
Also ich denke mal, da man den Parser und alles andere selber anpassen kann, kann jeder selber entscheiden welche Erweiterung benutzt werden soll und welche nicht. Dafür muss aber erstmal die Möglichkeit geschaffen werden, dass ein User überhaupt wählen kann. Ich schreibe und überlege mir halt ein wenig was. Selber nutze ich auch nicht alles.

@AImXOo0o
Ja, denn in irgend einer anderen .js-Datei gab es die Smiley Erweiterung schon vorher, bevor diese in den Parser wanderte. Somit ist die .js-Datei veraltet. Frag mich jetzt nicht, welche Datei das war.
EDIT: War in der convert.js
Zeile9: text = text.replace(/<img class="img" src="file:\/\//g,'<img width="30" class="img" src="file://');
Also solltest Du die Aktuelle convert.js ziehen.

mfg Nem


EDIT2:
Mit folgendem würden nun alle Wörter, die mit "rot" beginnen in roter Farbe geschrieben:
message = message.replace(/(rot[a-zA-Z]*)/g,'<font color="red">$1</font>');


EDIT3:
Damit würden nun auch "rot", "Rot", "ROt" usw. gefunden.
message = message.replace(/([rR][oO][tT][a-zA-Z]*)/g,'<font color="red">$1</font>');Wenn dafür jemand was besseres weiß bitte bescheid geben, denn bisher muss für jeden einzelnen Buchstaben zwischen Groß- und Kleinschreibung eine Unterscheidung getroffen werden.
« Letzte Änderung: 09. Juli 2008, 01:21:04 von Nem »

Übersicht über die Java-Skripte: http://mirandanem.mi.funpic.de/



AImXOo0o

  • Überall-Mitmischer
  • *
  • Beiträge: 209
  • Geschlecht: Männlich
  • Hmmm
    • Profil anzeigen
Re: (Diskussion) einzeilige Messageveränderungen (Parser)
« Antwort #24 am: 09. Juli 2008, 13:33:07 »
@AImXOo0o
Ja, denn in irgend einer anderen .js-Datei gab es die Smiley Erweiterung schon vorher, bevor diese in den Parser wanderte. Somit ist die .js-Datei veraltet. Frag mich jetzt nicht, welche Datei das war.
EDIT: War in der convert.js
Zeile9: text = text.replace(/<img class="img" src="file:\/\//g,'<img width="30" class="img" src="file://');
Also solltest Du die Aktuelle convert.js ziehen.

mfg Nem
Ok, danke geht wieder.