Show
Ignore:
Timestamp:
11/18/07 07:51:04 (6 years ago)
Author:
xcezx
Message:

ごめんなさいごめんなさいごめんなさいごめんなさい

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Net-Twitter-FriendFinder/tags/0.03/lib/Net/Twitter/FriendFinder.pm

    r1737 r1738  
    55use UNIVERSAL::require; 
    66use base qw/Class::Accessor::Fast/; 
    7 __PACKAGE__->mk_accessors(qw/default from setting ids scores resources filters)/); 
     7__PACKAGE__->mk_accessors(qw/default from setting ids scores resources filters mask/); 
    88use Text::SimpleTable; 
    9 use Net::Twitter; 
    10  
    11 our $VERSION = '0.01_06'; 
    12  
    13 # Net::Twitter HACK. I know this is not good way to do this. 
    14 # REASON: Net::Twitter->following only allow to retrive 100 limit. 
    15 sub Net::Twitter::following_screen_names_ref { 
    16     my ( $self ) = @_; 
    17  
    18     my @screen_names = (); 
    19     # limit 20 pages for now.( 2000 twitters ) 
    20     my @pages = (1..20); 
    21     for my $page ( @pages ) { 
    22         my $url = $self->{apiurl} . "/statuses/friends.json?page=$page" ; 
    23         my $req = $self->{ua}->get($url); 
    24  
    25         die 'fail to connect to twitter. maybe over Rate limit exceeded' unless $req->is_success; 
    26         my $res = JSON::Any->jsonToObj($req->content) ; 
    27          
    28         last unless scalar @{ $res } ; 
    29  
    30         for my $item ( @{ $res } ) { 
    31             push @screen_names , $item->{screen_name}; 
    32         } 
    33     } 
    34  
    35     return \@screen_names; 
    36      
    37 } 
     9use Net::Twitter::Diff; 
     10 
     11our $VERSION = '0.03'; 
     12 
    3813 
    3914sub search { 
    4015    my $self = shift; 
    41     my $keyword = shift || 'twitter'; 
     16    my $keyword = shift; 
    4217 
    4318    $self->{keyword} = $keyword; 
     
    6843 
    6944    if( $self->{setting}{filter_already_followers} ) { 
    70         my $twitter = Net::Twitter->new( username=> $self->{setting}{username} , password => $self->{setting}{password} ); 
    71         my $screen_names = $twitter->following_screen_names_ref(); 
     45        my $twitter = Net::Twitter::Diff->new( username=> $self->{setting}{username} , password => $self->{setting}{password} ); 
     46        my $xfollowing = $twitter->xfollowing; 
     47     
    7248        my @filters = (); 
    7349 
    74         for my $screen_name ( @{ $screen_names } ) { 
     50        for my $item ( @{ $xfollowing } ) { 
     51            my $screen_name = $item->{screen_name} ; 
    7552            if( defined $data->{ $screen_name } ) { 
    7653                push @filters , { id => $screen_name , score =>  $data->{ $screen_name } }; 
     
    8057        $self->{filters} = \@filters; 
    8158 
     59    } 
     60    if( defined $self->{setting}{username} ) { 
     61        delete $data->{  $self->{setting}{username} } if defined  $data->{  $self->{setting}{username} }; 
     62    } 
     63    for my $screen_name ( @{ $self->{mask} } ) { 
     64        delete $data->{ $screen_name } if defined $data->{ $screen_name }; 
    8265    } 
    8366 
     
    162145=head1 DESCRIPTION 
    163146 
    164 Hello. I started twitter but I did not have much friends,  since I am shay, so that I created this 
     147Hello. I started twitter but I did not have much friends.  Since I am shay, so that I created this 
    165148module. 
    166149 
    167 You can find twitter friends by using keyword search, of course you can follow friends whith this module. 
    168  
    169 INTERFACE MAY CHANGE IN THE FUTURE. STILL UNDER DEVELOPMENT. 
     150You can find twitter friends by using keyword search and then you can follow friends with this module. 
    170151 
    171152=head1 SYNOPSYS 
     
    194175      }); 
    195176 
     177    # mask who you do not want to find. 
     178    $tf->mask([qw/xxx yyy zzz/]); 
    196179    $tf->search( $keyword ); 
    197180    $tf->show(); 
    198181    $tf->follow(); 
    199182 
     183    #print Dumepr $twf->ids(); 
     184    #print Dumepr $twf->filters(); 
     185 
     186 
    200187=head1 MODULE 
    201188 
     
    204191You should set configulation here. 
    205192 
    206 ** setting 
    207  
    208  
    209 limit - you can set limit for how many friends you want to find for max.  
    210  
    211 on_echo - when on_echo = 1 then , $tf->follow() method print out who you are going to follow. 
    212  
    213 username - twitter username 
    214  
    215 password - twitter password 
    216  
    217 sleep - since Twitter API has request count limitation, you may want to set sleep time when you try to follow a lot of people. 
     193=over 2  
     194 
     195=item B<setting> 
     196 
     197=back 
     198 
     199=over 4 
     200 
     201=item ->{limit} 
     202 
     203you can set limit for how many friends you want to find for max.  
     204 
     205=item ->{on_echo} 
     206 
     207when on_echo = 1 then , $tf->follow() method print out who you are going to follow. 
     208 
     209=item ->{username} 
     210 
     211twitter username 
     212 
     213=item ->{password} 
     214 
     215twitter password 
     216 
     217=item ->{sleep} 
     218 
     219since Twitter API has request count limitation, you may want to set sleep time when you try to follow a lot of people. 
    218220 
    219221filter_already_followers - when true, it will check your current followers and not try to follow again. required username and password for this. NOTICE: you may miss some friends to filter who add recently because Twitter API does not return them. 
    220222 
    221 ** default 
     223=back 
     224 
     225=over 2 
     226 
     227=item B<default> 
    222228 
    223229you can set default setting here.  
    224230 
    225 coverage - you can set how much you cover. It depend on where you get resource from , so check the resource POD. 
    226  
    227 ** from 
     231=back 
     232 
     233=over 4 
     234 
     235 
     236=item ->{coverage} 
     237 
     238you can set how much you cover. It depend on where you get resource from , so check the resource POD. 
     239 
     240=back 
     241 
     242=over 2 
     243 
     244=item B<from> 
    228245 
    229246You can set where to search friends from. you can find resource from Net::Twitter::FriendFinder::From::* 
     
    241258 }, 
    242259 
     260=back 
     261 
    243262=head2 search 
    244263 
    245  this seach method try to search your friends.  
     264this seach method try to search your friends.  
    246265 
    247266=head2 show 
     
    254273should check who you are going t follow with show() method. 
    255274 
    256  =head1 HOW TO MAKE YOUR OWN RESOURCE 
    257  
    258  this is just simple one. 
     275=head1 HOW TO MAKE YOUR OWN RESOURCE 
     276 
     277this is just simple one. 
    259278 
    260279    package My::Recomend::User; 
     
    286305    $tw->follow(); 
    287306 
     307=head2 mask 
     308 
     309you can set screen_names in array ref who you want to avoid search. 
     310 
     311 $twf->mask([qw/xxx yyy zzz/]); 
     312 
     313=head2 ids 
     314 
     315get screen_names 
     316 
     317=head2 filters 
     318 
     319get filterd screen_names  
     320 
    288321=head1 SEE ALSO 
    289322 
    290 L:<Net::Twitter> 
    291  
    292 L:<Net::Twitter::FriendFinder::From::Google> 
    293  
    294 L:<Net::Twitter::FriendFinder::From::Twitter> 
    295  
    296 L:<Net::Twitter::FriendFinder::From::TwitterKensaku> 
    297  
    298 L:<Net::Twitter::FriendFinder::From::TwitterDiff> 
    299  
    300 L:<Net::Twitter::FriendFinder::From::URL> 
     323L<Net::Twitter> 
     324 
     325L<Net::Twitter::From> 
     326 
     327L<Net::Twitter::FriendFinder::From::Google> 
     328 
     329L<Net::Twitter::FriendFinder::From::Twitter> 
     330 
     331L<Net::Twitter::FriendFinder::From::TwitterKensaku> 
     332 
     333L<Net::Twitter::FriendFinder::From::TwitterDiff> 
     334 
     335L<Net::Twitter::FriendFinder::From::URL> 
    301336 
    302337=head1 AUTHOR