function Get-TwitterList() { $wc = new-object system.net.webclient $site = $wc.DownloadString('http://www.mindofroot.com/powershell-twitterers/') $previous = @() $start = $site.IndexOf('
') $site = $site.substring($start) $start = $site.IndexOf('') + 5 [xml]$doc = $site.substring(0,$end) $results = $doc.ul.li | select @{name='Name';Expression={$_.a.'#text'}}, @{name='TwitterURL';Expression={$_.a.href}}, @{name='UserName';Expression={$_.a.href -replace 'http://twitter.com/'}} $results = $results[1..($results.count-1)] return $results } function Get-TwitterFriends() { param ($username, $password) $cred = New-Object System.Net.NetworkCredential -argumentList $username, $password $wc = new-object System.Net.WebClient $wc.Credentials = $cred $nbrofpeople = 0 $page = "?page=" $names = @() $twitter = "http://twitter.com/statuses/" $friends = $twitter + "friends.xml" $url = $friends do { if ($nbrofpeople -gt 0) { $url = $friends+$page+($nbrofpeople/100 +1) } [xml]$nameslist = $wc.DownloadString($url) foreach ($one in $nameslist.users.user) { $user = "" | select name, username, twitterurl, linkurl $user.name = $one.name $user.username = $one.screen_name $user.twitterurl = "http://twitter.com/$($one.screen_name)" $user.linkurl = $one.url $names += $user } $nbrofpeople += 100 } while ($names.count -eq $nbrofpeople) return $names } function Add-TwitterFriend() { param($username, $password) begin { $baseurl = 'http://twitter.com/friendships/create/{0}.xml' $cred = New-Object System.Net.NetworkCredential -ArgumentList $username,$password } process { $url = $baseurl -f $_.UserName $request = [Net.WebRequest]::Create($url) $request.ServicePoint.Expect100Continue = $false $request.Credentials = $cred $request.ContentType = "application/x-www-form-urlencoded" $request.Method = "POST" $bytes = [System.Text.Encoding]::ASCII.GetBytes('follow=true') $request.ContentLength = $bytes.Length $requestStream = [System.IO.Stream]$request.GetRequestStream() $requestStream.write($bytes, 0, $bytes.Length) $response = $request.GetResponse() if ($response) { $reader = [System.IO.StreamReader]$response.GetResponseStream() ([xml]$reader.ReadToEnd()).status } else { Write-Warning "Oops! There was a problem with your request." Write-Warning $Error[0] | select * } } } $TwitterUserName=Read-Host "Enter your Twitter Accountname" $twitterpassword=Read-Host "Enter your Twitter Password" $friends = Get-TwitterFriends $TwitterUserName $twitterpassword $friendlist=@() $friends | foreach {$friendlist+=$_.TwitterURL} #filter your own name $list=Get-TwitterList | where {$_.username -notmatch $twitterusername} foreach ($item in $list) { if ($friendlist -notcontains $item.Twitterurl) { Write-Host ("Adding {0} ({1})" -f $item.name,$item.twitterurl) -fore RED $item | Add-TwitterFriend $TwitterUserName $twitterpassword } }