Chat-iFly

 view release on metacpan or  search on metacpan

lib/Chat/iFly.pm  view on Meta::CPAN

=item name

The name or username of the user.

=item is_admin

Defaults to 0. Can be set to 1 if the user should have chat admin privileges.

=item custom_roles

Defaults to C<normal>. Ignored entirely if C<is_admin> is set to 1. You can also pass in a hash of custom roles (not admin or normal) that will be used as CSS classes for styling. For example:

 {
    1   => 'cool',
    2   => 'slick',
 }

=item avatar_uri

A URI string that references a picture used to identify the user.

=item profile_uri

A URI string that will link other users to this user's profile on the web site.

=item relationships_set

This allows you to set up buddy lists within the chat. It is a hash reference taking the form of:

 {
    1   => {
        name        => 'friend',
        plural      => 'friends',
        valid_uids  =>  ['user_id_1', 'user_id_5', 'user_id_3']
    },
    2   => {
        name        => 'co-worker',
        plural      => 'co-workers',
        valid_uids  =>  ['user_id_3', 'user_id_4', 'user_id_2']
    },
 }


=back

=back 

=cut

sub get_key {
    my ($self, $user) = @_;
    my $result = from_json($self->post('/p/', {
        api_key         => $self->api_key,
        uname           => $user->{name},
        uid             => $user->{id} || 0,
        image_path      => $self->static_asset_base_uri.'/themes/'.$self->theme.'/images',
        isLog           => JSON::true,
        whichTheme      => 'blue',
        enableStatus    => JSON::true,
        role            => $user->{is_admin} ? 'admin' : ((exists $user->{custom_roles}) ? $user->{custom_roles} : 'normal'),
        validState      => ['available','offline','busy','idle'],
        up              => (exists $user->{avatar_uri}) ? $user->{avatar_uri} : $self->static_asset_base_uri.'/themes/'.$self->theme.'/images/default_avatar.png',
        upl             => (exists $user->{profile_uri}) ? $user->{profile_uri} : '#',
        rel             => (exists $user->{relationships_set}) ? 1 : undef,
        valid_uids      => $user->{relationships_set},
    }));
    $result->{uid} = $user->{id} || 0;
    $result->{name} = $user->{name};
    return $result;
}

=head2 update_settings( )

Updates the iFly servers with all the configured settings you passed into the constructor of this object. This must be called when you first start using this module, and also each time that you make changes to your settings.

=cut

sub update_settings {
    my ($self) = @_;
    return $self->post('/z/', {
        api_key                     => $self->api_key,
        enable_chatroom             => $self->enable_chatroom,
        theme                       => $self->theme,
        notify_sound                => $self->notification_sound,
        smileys                     => $self->enable_smiley,
        log_chat                    => $self->log_messages,
        chat_topbar_color           => $self->chat_topbar_color,
        chat_topbar_text_color      => $self->chat_topbar_text_color,
        font_color                  => $self->font_color,
        chat_list_header            => $self->chat_list_header,
        public_chatroom_header      => $self->public_chatroom_header,
        version                     => 'perl',
        show_admin_list             => $self->show_admin_list,        
        delmessage                  => $self->allow_clear_room_history,
        clear                       => $self->allow_single_message_delete,
        ufc                         => $self->allow_user_font_color,
        guest_prefix                => $self->anon_prefix,
        use_stop_word_list          => $self->use_stop_word_list,
        stop_word_list              => $self->stop_word_list,
    });
}

=head2 get_message_thread(uid1, uid2)

Returns a hash reference of a message thread between two users.

=over

=item uid1

Required. The unique user id of the first user in the discussion.

=item uid2

Required. The unique user id of the second user in the discussion.

=back

=cut

sub get_message_thread {



( run in 2.060 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )