no es díficil hacer algo que se una al toque, en C# se hace así nomás, mi programita era rre simple y gauchito :
using System;
using System.IO;
using System.Net;
using System.Text;
using Twitterizer.Framework;
namespace twitterChallenge
{
class MainClass
{
static WebClient mClient;
static string mTargetUser, mUser, mPassword;
static int mTotalCount;
public static void Main (string[] args)
{
Console.Write ("A que usuario vigilaremos ? ");
mTargetUser = Console.ReadLine ();
Console.Write ("Cuantos usuarios esperamos para unirnos ? ");
Int32.TryParse (Console.ReadLine (), out mTotalCount);
Console.Write ("Tu Usuario: ");
mUser = Console.ReadLine ();
Console.Write ("Tu Password: ");
mPassword = Console.ReadLine ();
while (true) {
int mActual = getFollowersCount (mTargetUser);
Console.Write ("Actualmente hay " + mActual.ToString ());
if (mActual == mTotalCount) {
Console.WriteLine ("Alcanzado el objetivo de " + mActual + "Uniendose ...");
Twitter mTwitter
= new Twitter
(mUser, mPassword
);
TwitterUser mUserToFollow
= new TwitterUser
(); mUserToFollow.ScreenName = mTargetUser;
mTwitter.User.FollowUser (mUserToFollow);
} else {
Console.WriteLine (" : Esperamos ....");
System.Threading.Thread.Sleep (3800);
// 3.8 segundos es suficiente por ahora, cambiar despues !!!
}
}
}
// si bien la API de twitter posee para followers ...
// en la practica esa API esta liada con parametros,paginado y limite de registros (y encima me da info que NO NECESITO)
// y es más rapido agarrar el html y sacar la data de ahi ...
public static int getFollowersCount (string userName)
{
try {
mClient
= new WebClient
(); int mFollowers = 0;
mClient.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
Stream mData = mClient.OpenRead ("http://twitter.com/" + userName);
StreamReader mReader
= new StreamReader
(mData
);
string mBuffer = mReader.ReadToEnd (), mArea = mBuffer.Substring (mBuffer.IndexOf ("<span id=\"follower_count\" class=\"stats_count numeric\">"), 100);
mArea = mArea.Remove (0, mArea.IndexOf ('>') + 1);
mArea = mArea.Remove (mArea.IndexOf (' '));
Int32.TryParse (mArea, out mFollowers);
mData.Close ();
mReader.Close ();
return mFollowers;
} catch (System.Exception e) {
// ignorar, quizá un "servicio no disponible" dando vueltas ...
return 0;
}
}
}
}
olvidé cambiar el 3.8 en los últimos momentos de tensión a algo más chiquito :$
distraído !
felicitaciones a ... janito ? xD
me maree xD
Advertencia - mientras estabas escribiendo, fueron publicadas 2 respuestas. Probablemente desees revisar tu mensaje.
juazzz, entonces quien ganó ? :O
Saludos ~