Changeset 1738 for lang/perl/Net-Twitter-FriendFinder
- Timestamp:
- 11/18/07 07:51:04 (6 years ago)
- Location:
- lang/perl/Net-Twitter-FriendFinder/tags
- Files:
-
- 11 modified
-
0.02/MANIFEST (modified) (1 diff)
-
0.02/Makefile.PL (modified) (1 diff)
-
0.02/lib/Net/Twitter/FriendFinder.pm (modified) (6 diffs)
-
0.02/lib/Net/Twitter/FriendFinder/From/Google.pm (modified) (1 diff)
-
0.02/lib/Net/Twitter/FriendFinder/From/TwitterDiff.pm (modified) (2 diffs)
-
0.03/Changes (modified) (2 diffs)
-
0.03/MANIFEST (modified) (1 diff)
-
0.03/Makefile.PL (modified) (1 diff)
-
0.03/lib/Net/Twitter/FriendFinder.pm (modified) (9 diffs)
-
0.03/lib/Net/Twitter/FriendFinder/From/Google.pm (modified) (1 diff)
-
0.03/lib/Net/Twitter/FriendFinder/From/TwitterDiff.pm (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Net-Twitter-FriendFinder/tags/0.02/MANIFEST
r1737 r1738 8 8 lib/Net/Twitter/FriendFinder/From/Google.pm 9 9 lib/Net/Twitter/FriendFinder/From/Twitter.pm 10 lib/Net/Twitter/FriendFinder/From/TwitterDiff.pm 11 lib/Net/Twitter/FriendFinder/From/TwitterKensaku.pm 12 lib/Net/Twitter/FriendFinder/From/URL.pm 10 13 t/00-load.t 11 14 t/boilerplate.t -
lang/perl/Net-Twitter-FriendFinder/tags/0.02/Makefile.PL
r1737 r1738 14 14 'URI' => 0, 15 15 'URI::Escape' => 0, 16 'Net::Twitter '=> 0,16 'Net::Twitter::Diff' => 0, 17 17 'Text::SimpleTable' => 0, 18 18 'Class::Accessor::Fast' => 0, -
lang/perl/Net-Twitter-FriendFinder/tags/0.02/lib/Net/Twitter/FriendFinder.pm
r1737 r1738 5 5 use UNIVERSAL::require; 6 6 use base qw/Class::Accessor::Fast/; 7 __PACKAGE__->mk_accessors(qw/default from setting ids scores resources filters mask/);7 __PACKAGE__->mk_accessors(qw/default from setting ids scores resources filters)/); 8 8 use Text::SimpleTable; 9 9 use Net::Twitter::Diff; … … 57 57 $self->{filters} = \@filters; 58 58 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 };65 59 } 66 60 … … 175 169 }); 176 170 177 # mask who you do not want to find.178 $tf->mask([qw/xxx yyy zzz/]);179 171 $tf->search( $keyword ); 180 172 $tf->show(); 181 173 $tf->follow(); 182 183 #print Dumepr $twf->ids();184 #print Dumepr $twf->filters();185 186 174 187 175 =head1 MODULE … … 262 250 =head2 search 263 251 264 this seach method try to search your friends.252 this seach method try to search your friends. 265 253 266 254 =head2 show … … 305 293 $tw->follow(); 306 294 307 =head2 mask308 309 you can set screen_names in array ref who you want to avoid search.310 311 $twf->mask([qw/xxx yyy zzz/]);312 313 =head2 ids314 315 get screen_names316 317 =head2 filters318 319 get filterd screen_names320 321 295 =head1 SEE ALSO 322 296 … … 333 307 L<Net::Twitter::FriendFinder::From::URL> 334 308 335 L<Net::Twitter::FriendFinder::From::URL>336 337 309 =head1 AUTHOR 338 310 -
lang/perl/Net-Twitter-FriendFinder/tags/0.02/lib/Net/Twitter/FriendFinder/From/Google.pm
r1737 r1738 60 60 =head1 SYNOPSYS 61 61 62 63 62 use strict; 64 63 use warnings; -
lang/perl/Net-Twitter-FriendFinder/tags/0.02/lib/Net/Twitter/FriendFinder/From/TwitterDiff.pm
r1737 r1738 41 41 =head1 SYNOPSYS 42 42 43 use Net::Twitter::FriendFinder;44 my $tf43 use Net::Twitter::FriendFinder; 44 my $tf 45 45 = Net::Twitter::FriendFinder->new({ 46 46 from => { … … 63 63 64 64 Search friends who are not folloing bug they are following you. 65 Search foloowing somebody has.66 65 67 66 =head1 METHOD -
lang/perl/Net-Twitter-FriendFinder/tags/0.03/Changes
r1737 r1738 1 1 Revision history for Net-Twitter-FriendFinder 2 2 3 0.01_06 2007-01-09/12:50 3 0.03 2007-11-16/22:18 4 - add mask() method. 5 6 0.02 2007-11-15/00:18 7 - first release to CPAN 8 9 0.01_08 2007-11-14/19:29 10 - use Net::Twitter::Diff insetead of Net::Twitter 11 12 0.01_07 2007-11-14/00:19 13 - Update Net::Twitter::FriendFinder::From::TwitterDiff for version up. 14 15 0.01_06 2007-11-09/12:50 4 16 - Add Net::Twitter::FriendFinder::From::URL. 5 17 … … 14 26 for this fix you must set username and passowrd at new() parameters 15 27 - support sleep setting. 28 16 29 0.01_02 2007-11-08/00:21 17 30 - Bug Fix: can not load custom resource module. 31 18 32 0.01_01 2007-11-07/23:31 19 33 -First version, released on an unsuspecting world. -
lang/perl/Net-Twitter-FriendFinder/tags/0.03/MANIFEST
r1737 r1738 8 8 lib/Net/Twitter/FriendFinder/From/Google.pm 9 9 lib/Net/Twitter/FriendFinder/From/Twitter.pm 10 lib/Net/Twitter/FriendFinder/From/TwitterDiff.pm 11 lib/Net/Twitter/FriendFinder/From/TwitterKensaku.pm 12 lib/Net/Twitter/FriendFinder/From/URL.pm 10 13 t/00-load.t 11 14 t/boilerplate.t -
lang/perl/Net-Twitter-FriendFinder/tags/0.03/Makefile.PL
r1737 r1738 14 14 'URI' => 0, 15 15 'URI::Escape' => 0, 16 'Net::Twitter '=> 0,16 'Net::Twitter::Diff' => 0, 17 17 'Text::SimpleTable' => 0, 18 18 'Class::Accessor::Fast' => 0, -
lang/perl/Net-Twitter-FriendFinder/tags/0.03/lib/Net/Twitter/FriendFinder.pm
r1737 r1738 5 5 use UNIVERSAL::require; 6 6 use 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/); 8 8 use 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 } 9 use Net::Twitter::Diff; 10 11 our $VERSION = '0.03'; 12 38 13 39 14 sub search { 40 15 my $self = shift; 41 my $keyword = shift || 'twitter';16 my $keyword = shift; 42 17 43 18 $self->{keyword} = $keyword; … … 68 43 69 44 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 72 48 my @filters = (); 73 49 74 for my $screen_name ( @{ $screen_names } ) { 50 for my $item ( @{ $xfollowing } ) { 51 my $screen_name = $item->{screen_name} ; 75 52 if( defined $data->{ $screen_name } ) { 76 53 push @filters , { id => $screen_name , score => $data->{ $screen_name } }; … … 80 57 $self->{filters} = \@filters; 81 58 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 }; 82 65 } 83 66 … … 162 145 =head1 DESCRIPTION 163 146 164 Hello. I started twitter but I did not have much friends , since I am shay, so that I created this147 Hello. I started twitter but I did not have much friends. Since I am shay, so that I created this 165 148 module. 166 149 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. 150 You can find twitter friends by using keyword search and then you can follow friends with this module. 170 151 171 152 =head1 SYNOPSYS … … 194 175 }); 195 176 177 # mask who you do not want to find. 178 $tf->mask([qw/xxx yyy zzz/]); 196 179 $tf->search( $keyword ); 197 180 $tf->show(); 198 181 $tf->follow(); 199 182 183 #print Dumepr $twf->ids(); 184 #print Dumepr $twf->filters(); 185 186 200 187 =head1 MODULE 201 188 … … 204 191 You should set configulation here. 205 192 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 203 you can set limit for how many friends you want to find for max. 204 205 =item ->{on_echo} 206 207 when on_echo = 1 then , $tf->follow() method print out who you are going to follow. 208 209 =item ->{username} 210 211 twitter username 212 213 =item ->{password} 214 215 twitter password 216 217 =item ->{sleep} 218 219 since Twitter API has request count limitation, you may want to set sleep time when you try to follow a lot of people. 218 220 219 221 filter_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. 220 222 221 ** default 223 =back 224 225 =over 2 226 227 =item B<default> 222 228 223 229 you can set default setting here. 224 230 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 238 you 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> 228 245 229 246 You can set where to search friends from. you can find resource from Net::Twitter::FriendFinder::From::* … … 241 258 }, 242 259 260 =back 261 243 262 =head2 search 244 263 245 this seach method try to search your friends.264 this seach method try to search your friends. 246 265 247 266 =head2 show … … 254 273 should check who you are going t follow with show() method. 255 274 256 =head1 HOW TO MAKE YOUR OWN RESOURCE257 258 this is just simple one.275 =head1 HOW TO MAKE YOUR OWN RESOURCE 276 277 this is just simple one. 259 278 260 279 package My::Recomend::User; … … 286 305 $tw->follow(); 287 306 307 =head2 mask 308 309 you 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 315 get screen_names 316 317 =head2 filters 318 319 get filterd screen_names 320 288 321 =head1 SEE ALSO 289 322 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> 323 L<Net::Twitter> 324 325 L<Net::Twitter::From> 326 327 L<Net::Twitter::FriendFinder::From::Google> 328 329 L<Net::Twitter::FriendFinder::From::Twitter> 330 331 L<Net::Twitter::FriendFinder::From::TwitterKensaku> 332 333 L<Net::Twitter::FriendFinder::From::TwitterDiff> 334 335 L<Net::Twitter::FriendFinder::From::URL> 301 336 302 337 =head1 AUTHOR -
lang/perl/Net-Twitter-FriendFinder/tags/0.03/lib/Net/Twitter/FriendFinder/From/Google.pm
r1737 r1738 60 60 =head1 SYNOPSYS 61 61 62 63 62 use strict; 64 63 use warnings; -
lang/perl/Net-Twitter-FriendFinder/tags/0.03/lib/Net/Twitter/FriendFinder/From/TwitterDiff.pm
r1737 r1738 10 10 11 11 sub search { 12 my $self = shift;12 my $self = shift; 13 13 my $keyword = shift; 14 my $diff = Net::Twitter::Diff->new( );14 my $diff = Net::Twitter::Diff->new( username => $self->{username} , password => $self->{password} ); 15 15 16 $diff->diff( { username => $self->{username} , password => $self->{password} } ); 17 my $screen_names = $diff->not_following(); 16 my $screen_names = []; 17 if( !defined $keyword ) { 18 my $res = $diff->diff(); 19 $screen_names = $res->{not_following}; 20 } 21 else { 22 my $res = $diff->comp_following( $keyword ); 23 $screen_names = $res->{not_me}; 24 } 18 25 19 26 my $data = {}; … … 34 41 =head1 SYNOPSYS 35 42 36 use Net::Twitter::FriendFinder;37 my $tf43 use Net::Twitter::FriendFinder; 44 my $tf 38 45 = Net::Twitter::FriendFinder->new({ 39 46 from => { … … 41 48 } 42 49 }); 50 51 # this one search who you are not following but followed 43 52 $tf->search(); 53 or 54 # If you set parameter then , search $twitter_name's following but you are not following 55 # $tf->search( $twitter_name ); 44 56 $tf->show(); 45 57 … … 51 63 52 64 Search friends who are not folloing bug they are following you. 65 Search foloowing somebody has. 53 66 54 67 =head1 METHOD
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)