Page 1 of 2 1 2 LastLast
Results 1 to 15 of 21

Thread: irc client

  1. #1
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564

    irc client

    Ik ben nu bezig met een irc client te maken. Beetje tobben met indy 9, best wel erg leuk!

    Maybe iemand hier die de (nog erg buggy en niet complete source) wil hebben?

    (ik zag wat mensen heel happig reageren op een topic van psychokoe, dus ik dacht ik plak het er ff op hierzo).

    packs die je geinstalled moet hebben : jvpack van jedi, en uiteraard indy9


    ps, mocht iemand erachter komen, how the hell krijg je door wie ops en wie voice is?

  2. #2
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564
    hmm shit ik vergat de zip file, en dat kan je niet attachen met edit, dus een nieuwe poging
    Attached Files Attached Files

  3. #3
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Ik had de Jedi VCL hier even niet, maar heb die gradientcaption er maar even uitgehaald om toch te kunnen kijken. Het eerste wat me opviel was frmMain.Position = poDesigned en frmMain.Left = 1463, dat schiet niet echt op op een 1024x768 display, heb 'm dus maar op poDesktopCenter gezet, dan krijg ik 'm tenminste in beeld

    Daarnaast merktte ik dat het nog een vrij vroege versie is, of tenminste, dat hoop ik . Het begin is er, en het laat leuk zien hoe makkelijk IdIRC eigenlijk werkt, maar voorderest is er nog een hoop werk te doen
    Qui custodiet ipsos custodes

  4. #4
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564
    Originally posted by PsychoMark
    Ik had de Jedi VCL hier even niet, maar heb die gradientcaption er maar even uitgehaald om toch te kunnen kijken. Het eerste wat me opviel was frmMain.Position = poDesigned en frmMain.Left = 1463, dat schiet niet echt op op een 1024x768 display, heb 'm dus maar op poDesktopCenter gezet, dan krijg ik 'm tenminste in beeld

    Daarnaast merktte ik dat het nog een vrij vroege versie is, of tenminste, dat hoop ik . Het begin is er, en het laat leuk zien hoe makkelijk IdIRC eigenlijk werkt, maar voorderest is er nog een hoop werk te doen

    ow die left.. gloeps , ik draai op 2 monitoren (een delphi, een trilian/irc ), niet bij stil gestaan.

    Maar idd hele vroege versie. En heel simpel ook , KISS principe. Maar evengoed erg leuk om mee te spelen, en zo zijn al voor een aantal mensen vervelende obstakels genomen.

  5. #5
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Ik tegenwoordig ook 2 monitoren, maar secondary staat aan de linkerkant, vandaar dat ik 'm juist niet zag
    Qui custodiet ipsos custodes

  6. #6
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564

    Talking

    wehehehe , kleinigheidje lol.


    Weet jij misschien in welk event die op/voice info verstopt zit psychokoe?

  7. #7
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Nog niet, maar ik ga het even uitzoeken vandaag, zit er toch aan te denken om het IRC protocol te gaan gebruiken voor chat binnenkort
    Qui custodiet ipsos custodes

  8. #8
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564
    en weet je het al ?

  9. #9
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Kijk eens wat ik in de Indy source vond:


    Code:
      { Op and Voice status are declared by @ and + symbols.  If a person has voice
        only, then the + is placed before the nick.  If the person has ops, then the
        @ symbol is placed before the nick.  If the person has ops and voice (rather
        pointless, but can happen) then the @ goes in front and the + goes at the
        end. }
    

    Edit: alleen een probleem zie ik, Indy verwijderd die tekens, dus ik ga even op zoek naar waar hij die data opslaat
    Qui custodiet ipsos custodes

  10. #10
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Ok, hier is ie dan, het is een ongetest stukje code eerlijk gezegd, maar gekeken naar hoe Indy werkt zou het moeten kloppen. Ik zou zeggen, kijk of het een beetje wil werken, en anders hoor ik het wel



    Code:
    implementation
    type
      TIRCUserState   = (ircOp, ircVoice);
      TIRCUserStates  = set of TIRCUserState;
    
    const
      IRC_OP    = 1;
      IRC_VOICE = 2;
    
    {$R *.dfm}
    
    function SneakyGetUserState(Data: Integer): TIRCUserStates;
    begin
      Result  := [];
    
      if (Data and IRC_OP) <> 0 then
        Include(Result, ircOp);
    
      if (Data and IRC_VOICE) <> 0 then
        Include(Result, ircVoice);
    end;
    
    procedure TForm1.IdIRC1Names(Sender: TObject; AUsers: TIdIRCUsers;
      AChannel: TIdIRCChannel);
    var
      iUser:      Integer;
      iIndex:     Integer;
      pState:     TIRCUserStates;
    
    begin
      for iUser := 0 to AUsers.Count - 1 do begin
        // Zoek de gebruiker...
    if AChannel.Find(AUsers.Items[iUser].Nick, iIndex) then begin
          // Even een sneaky 'hack' om de status te krijgen
    pState  := SneakyGetUserState(Integer(AChannel.Names.Objects[iIndex]));
    
          if ircOp in pState then begin
            // Het is een Operator!
    end;
    
          if ircVoice in pState then begin
            // Het is een Voice ofzo!
    end;
        end;
      end;
    end;
    
    Qui custodiet ipsos custodes

  11. #11
    Senior Member
    Join Date
    May 2002
    Location
    Almere-Stad
    Posts
    150
    Leuk zo'n irc client. Ik heb hem helaas niet kunnen uitvoeren omdat ik indy 9 nog niet geinstalleert heb (en de jedi overgens ook nie)

    /me graaft in zijn geheugen en tovert een screenshot van zijn oude irc client... ongeveer 4 maanden geleden aan gewerkt... Source+binairy's kan ik helaas niet meer met jullie delen (Nieuwe hd, en dan vergeet je wel eens wat te backupen....) http://www.kazaalite.nl/~thomas/utopiaonline.jpg

  12. #12
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564
    indy nog niet geinstalleerd? man gewoon doen, doet geen zeer en kost geen geld , beetje nederlands meedenken


    Btw jv is alleen een gradient, ik zal hem er is uitslopen .



    koetje, is het jouw gelukt met die ops? Ik moet nog ff kijken dus als het lukt zal ik het ff pasten hierzo (mocht er wat veranderen in je code).

  13. #13
    Senior Member
    Join Date
    May 2002
    Location
    Almere-Stad
    Posts
    150
    Heb indy wel, alleen niet versie 9 (met die irc dinge)

    Die ops gegevens was zeer primitief. Ik toonde in elk venster een userlijst (zoals mirc) met daarin de users met status. Voorbeeld:
    @OperatorUser
    %HalfOperator
    +GevoicedeUser
    NormaleUser
    enz enz
    Ik keek dus simpel weg naar het eerste karakter in de nick... eigenlijk best dom als je nagaat dat een user tegelijkertijd gevoict en geopt kan zijn

    Momenteel werk ik ook aan een irc client. Alleen deze zal niet de optie's kenne om users te open/voice enzenz. Het wordt slechts een klein chat programmatje om snel een chat kanaal te bereiken van een forum. Voor de nieuwsgierige....

  14. #14
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Dat was dus het probleem bij Indy 9: die verwijderd die characters uit de string, maar slaat ze gelukkig wel op, en theoretisch zou je die met de code die ik hierboven gaf terug moeten kunnen krijgen
    Qui custodiet ipsos custodes

  15. #15
    Bite me! Tommy's Avatar
    Join Date
    Jan 2002
    Location
    Rdam
    Posts
    564
    voor een of andere duistere reden ploft mn code elke keer op deze procedure, iemand een helder idee?

    Code:
    procedure TfrmMain.IdIRC1Names(Sender: TObject; AUsers: TIdIRCUsers;
      AChannel: TIdIRCChannel);
    var
      Index, Cnt: Integer;
      iUser:      Integer;
      iIndex:     Integer;
      pState:     TIRCUserStates;
    begin
      if Assigned(AChannel) then
      begin
        TfrmClient(windowlijst.Objects[Index]).listbox1.items.clear;
        Index:= windowlijst.IndexOf(AChannel.Name);
        if Index > -1 then
        begin
          for iUser := 0 to AUsers.Count - 1 do
          begin
            if AChannel.Find(AUsers.Items[iUser].Nick, iuser) then
            begin
              pState  := SneakyGetUserState(Integer(AChannel.Names.Objects[iIndex]));
              if ircOp in pState then
              begin
                TfrmClient(windowlijst.Objects[Index]).listbox1.items.AddObject(AUSers.Items[Cnt].Nick,AUSers.Items[Cnt]);
              end;
              if ircVoice in pState then
              begin
                TfrmClient(windowlijst.Objects[Index]).listbox1.items.AddObject(AUSers.Items[Cnt].Nick,AUSers.Items[Cnt]);
              end;
            end;
          end;
        end;
      end
    end;

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. IRC client: Gebruikers uit kanaal in Listbox
    By Steph@n in forum Algemeen
    Replies: 11
    Last Post: 19-Jul-04, 20:22
  2. Irc Client
    By Sbstn in forum Algemeen
    Replies: 7
    Last Post: 15-Sep-03, 18:03
  3. IRC Client op basis van windows sockets
    By Frozen in forum Algemeen
    Replies: 3
    Last Post: 27-Mar-03, 20:49
  4. NLDelphi XML client
    By Marcel in forum XML client
    Replies: 1
    Last Post: 20-May-02, 02:00

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •