TomaHawK IRC V0.107

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
HeX0R
Beiträge: 3056
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

TomaHawK IRC V0.107

Beitrag von HeX0R »

Moin,

habe meinen IRC Clienten nun soweit, dass ich keine eigenen Bugs mehr finde.
Was natürlich nicht heissen soll, da wären keine mehr... oooh nein ;)

Aber ne breite Masse sieht nun mal mehr, als ich alleine, also haut rein...

Weitere Infos gibts ->hier<-.

Kommentare selbstverständlich erwünscht

NEW in 0.105 (thx to B€ND0R for the bugreports):
-Fixed:Changing MDI-Menu-Language + Tooltipps of ToolBar
-Fixed:Idle Time in WHOIS Message
-Fixed:When going away without a selected awaynick the active nick will be used
-Fixed:CTCP-Menu MenuBar deleted
-Added:Windows can be hidden when minimized, see: Preferences Miscellanious
Zuletzt geändert von HeX0R am 27.08.2005 22:36, insgesamt 2-mal geändert.
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Beitrag von FloHimself »

Hi,

habe keine Zeit mir das nun groß anzusehen, sieht aber schon recht gut und komplex aus ;)

Was für IRC Funktionen benutzt du? Eine lib oder in PB geschrieben?
Benutzeravatar
HeX0R
Beiträge: 3056
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Das is alles reines PB, ohne irgendwelche Libs.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Wie hast du zwischen Server-Message(blabla joined blabla, channel created on datum) und Usermessage unterschieden?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

@DarkDragon: Hä? Das steht doch alles in der Nachricht, die der Server sendet! Zum Beispiel sendet der Server imo ein JOIN an den Clienten, wenn jemand einen Channel betreten hat und ein PRIVMSG, wenn jemand eine Nachricht gesendet hat.
Benutzeravatar
HeX0R
Beiträge: 3056
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Hier is die RFC zu finden, für die interessierten.
(Obwohl ich ja eigentlich Feedback wollte...)
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Leo hat geschrieben:@DarkDragon: Hä? Das steht doch alles in der Nachricht, die der Server sendet! Zum Beispiel sendet der Server imo ein JOIN an den Clienten, wenn jemand einen Channel betreten hat und ein PRIVMSG, wenn jemand eine Nachricht gesendet hat.
Nein, ich mein jetzt wenn man den channel betritt steht da immer die Serverinformation(500 Zeilen lang)....
Der Server selbst übergibt ja nicht das JOIN noch an die anderen clienten. Ich weiß selbst wie so ein IRC Server funzt, siehe meine IRC Prozeduren aus dem Code, Tipps und Tricks Forum. Aber wie unterscheidet man zwischen

bahuba.blubber.net (305) Hallo ich bin der Server
bahuba.blubber.net (305) Hallo ich bin der Server
bahuba.blubber.net (305) Hallo ich bin der Server
bahuba.blubber.net (305) Hallo ich bin der Server
bahuba.blubber.net (305) Hallo ich bin der Server
bahuba.blubber.net (305) Hallo ich bin der Server
bahuba.blubber.net (305) Hallo ich bin der Server
bahuba.blubber.net (305) Hallo ich bin der Server
bahuba.blubber.net (305) Channel Created on Friday ...
bahuba.blubber.net (305) USERLIST Blabla Ich Du Er Sie Es /ENDLIST

und dem normalen gequatsche im channel. Außerdem ist die Zahl nicht immer die selbe und der Server den man angewählt hat kann auch irc.blubber.org sein. Manchmal steht nichtmal der Anfang da.... Im RFC hab ich auch wochen lange gesucht, aber da standen manchmal sachen die sind bei anderen servern anders.

[EDIT]
Und darf man keine Fragen zu deinem Program stellen?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
HeX0R
Beiträge: 3056
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Klar darf man Fragen stellen :)

Aber so ganz komm ich immernoch nicht dahinter... in der verlinkten RFC steht eigentlich ganz genau, wie solche Messages aufgebaut sind, und somit ist es auch sehr easy die Messages zu unterscheiden!

Z.B. gibts nen Sack voll Raw-Messages, wo dann jede Nummer einer bestimmten Message zugeordnet is:
317 = IdletTime
321 = Start von List
322 = List
323 = Ende von List
...

Ansonsten gibts halt JOIN, PART, PRIVMSG, usw...

Die dann auseinanderzuklammbustern is nicht besonders schwierig, sie aber in eine ordentliche GUI zu pressen schon.

Gruss
HeX

[Edit]
Kleines Beispiel, wie so ne IRC-Zeile auseinandergenommen wird:

Code: Alles auswählen

raw$ = Trim(DelLead(raw$))
  Nick$ = Trim(StringField(raw$, 1, "!"))
  If FindString(Nick$, " ", 1)
    Nick$        = ""
    Ident$       = StringField(raw$, 1, " ")
    Instruction$ = DelLead(StringField(raw$, 2, " "))
    Chan$        = DelLead(StringField(raw$, 3, " "))
    Text$        = DelLead(Trim(RemoveString(raw$, Ident$ + " " + Instruction$ + " " + Chan$, 1)))
  Else
    Ident$       = RemoveString(StringField(raw$, 1, " "), Nick$ + "!", 1)
    Instruction$ = DelLead(StringField(raw$, 2, " "))
    Chan$        = DelLead(StringField(raw$, 3, " "))
    Text$        = DelLead(Trim(RemoveString(raw$, Nick$ + "!" + Ident$ + " " + Instruction$ + " " + Chan$, 1)))
  EndIf
raw$ = Eine Zeile
DelLead() - löscht (falls vorhanden) den Doppelpunkt am Anfang des Strings
Dann musst nur noch die verschiedenen Instruction$ checken.

Chan$ ist natürlich auch nicht immer der Chan, das muss dann logischerweise mit dem jeweiligen Befehl abgeglichen werden

Manche Befehle verstecken sich auch im Ident$, z.B. ERROR (naja kein Befehl ;) ) oder PING
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Beitrag von FloHimself »

Das is alles reines PB, ohne irgendwelche Libs.
Ich habe gefragt, weil ich gute Erfahrungen mit libircclient gemacht habe:
http://sourceforge.net/projects/libircclient/
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

:lol: Naja, also das mit den messages ist ein wenig komplizierter, da kommt noch ASCII Art rein und .... Egal, ich mach sowieso im moment nichtsmehr damit. Den IRC Clienten finde ich cool ;) .
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten