Changeset 5832


Ignore:
Timestamp:
07/04/09 18:18:00 (3 years ago)
Author:
submersible_toaster
Message:

still mildly to largely broken

Location:
trunk/Padre-Plugin-Swarm/lib/Padre
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Padre-Plugin-Swarm/lib/Padre/Swarm/Service.pm

    r5826 r5832  
    3030    croak "No use_transport defined" unless exists $self->{use_transport}; 
    3131    my $transports = $self->{use_transport}; 
     32     
    3233    while ( my ($class,$args) = each %$transports ) { 
    3334        Class::Autouse->autouse($class); 
     
    3536        $self->set_transport( $transport ); 
    3637    } 
     38    $self->transport->subscribe_channel( $_ , 1 ) 
     39        for $self->service_channels; 
     40   
    3741} 
    3842 
  • trunk/Padre-Plugin-Swarm/lib/Padre/Swarm/Service/Chat.pm

    r5831 r5832  
    2828    Padre::Util::debug('Starting chat service'); 
    2929    my $config = Padre::Config->read; 
     30 
    3031    $self->_attach_transports; 
    3132    Padre::Util::debug('Chat transports attached');   
    3233    Padre::Util::debug( $self->transport ); 
    3334     
    34     $self->transport->subscribe_channel( $_ ) 
    35         for $self->service_channels; 
     35 
    3636     
    3737    Padre::Util::debug('Channels subscribed'); 
  • trunk/Padre-Plugin-Swarm/lib/Padre/Swarm/Transport/IRC.pm

    r5831 r5832  
    2424     
    2525    my $con = AnyEvent::IRC::Client->new; 
     26 
    2627    $con->connect ( 
    2728        "irc.perl.org" => 6667 , 
     
    3132        } 
    3233    ); 
    33      
     34    $self->_register_irc_callbacks($con); 
    3435    $self->{connection} = $con; 
    35     $self->_register_irc_callbacks($con); 
     36 
    3637    my $c = AnyEvent->condvar; 
    3738    $self->{condvar} = $c; 
     
    4546    $self->connection->disconnect; 
    4647    delete $self->{connection}; 
     48    delete $self->{condvar}; 
    4749} 
    4850 
     
    5961          } 
    6062 
    61 #       $con->register(  
    62 #         $self->nickname, 
    63 #         'Padre-Swarm-Transport-IRC', 
    64 #         , getlogin()  
    65 #       ); 
    66  
    67         $self->update_channels; 
     63        $con->register(  
     64          $self->nickname, 
     65          'Padre-Swarm-Transport-IRC', 
     66          , getlogin()  
     67        ); 
    6868         
    6969       }, 
     
    7171          warn "Oh, got a disconnect: $_[1], exiting...\n"; 
    7272          $self->condvar->broadcast; 
     73       }, 
     74       registered => sub { 
     75        warn "REGISTERED!!"; 
     76        $self->update_channels; 
    7377       } 
    7478    ); 
     
    8084           
    8185          my $body = join (' ',@{ $ircmsg->{params} } ); 
    82           my $msg = {  
    83             user => $ircmsg->{prefix},  
    84             message => $body ,  
    85             type => 'chat', 
    86            }; 
    8786           my $frame = { 
    8887               address => $handle, 
    8988               channel => $channel, 
    9089           }; 
    91            warn "Publick message in $channel from $handle"; 
    92            push @{ $self->{incoming_buffer}{$channel} }, [$msg,$frame]; 
     90           $body =~ s/\Q$channel\E //; 
     91           warn "Publick message in $channel '$body'"; 
     92           push @{ $self->{incoming_buffer}{$channel} }, [$body,$frame]; 
    9393             
    9494       } 
     
    106106} 
    107107 
     108 
     109use Data::Dumper; 
    108110sub update_channels { 
    109111    my ($self) = @_; 
    110     while ( my ($channel,$loop) = each %{ $self->channels } ) { 
    111         $self->subscribe_channel($channel,$loop); 
     112    while ( my ($channel,$loopback) = each %{ $self->subscriptions } ) { 
     113        $self->_connect_channel( $channel, $loopback ); 
    112114    } 
    113115     
     
    117119sub poll { 
    118120    my ($self,$time) = @_; 
    119 #   warn "Polling for $time:"; 
     121    #warn "Polling for $time:"; 
    120122    my $c = AnyEvent->condvar; 
    121123    my $timer = AnyEvent->timer( after=>$time, 
    122124        cb=>sub{ $c->send } ); 
     125    #warn "$timer running"; 
    123126    $c->recv; 
    124 #   warn "Returned from poll wait"; 
     127    #warn "Returned from poll wait"; 
    125128    if ( keys %{ $self->{incoming_buffer} } ) { 
    126         warn "DATA IN BUFFER!"; 
    127         return keys %{ $self->{incoming_buffer} }; 
     129        warn "DATA IN BUFFER!", %{ $self->{incoming_buffer} }; 
     130        return (keys %{ $self->{incoming_buffer} }); 
    128131    } 
     132    return; 
    129133 
    130134} 
    131135 
     136use Data::Dumper; 
    132137sub receive_from_channel { 
    133138    my ($self,$channel) = @_; 
     139    warn "Search for $channel"; 
    134140    return unless exists $self->{incoming_buffer}{$channel}; 
    135     shift @{ $self->{incoming_buffer}{$channel} }; 
    136141     
     142    my @queue = @{ delete $self->{incoming_buffer}{$channel} }; 
     143    my $d = shift @queue; 
     144    $self->{incoming_buffer}{$channel} = \@queue 
     145        if @queue; 
     146    my ($msg,$frame) = @$d; 
    137147} 
    138148 
  • trunk/Padre-Plugin-Swarm/lib/Padre/Wx/Swarm/Chat.pm

    r5831 r5832  
    6060    my $service = Padre::Swarm::Service::Chat->new( 
    6161        use_transport => { 
    62             'Padre::Swarm::Transport::Multicast'=>{ 
    63             #'Padre::Swarm::Transport::IRC'=>{ 
     62            #'Padre::Swarm::Transport::Multicast'=>{ 
     63            'Padre::Swarm::Transport::IRC'=>{ 
    6464                nickname => $config->identity_nickname 
    6565            }, 
Note: See TracChangeset for help on using the changeset viewer.