public static Tweets GetTweets(string screenName) { Stopwatch watch = new Stopwatch(); watch.Start(); Tweets ret = new Tweets(); TwitterTweets tweets = new TwitterTweets(); ret.screen_name = screenName; try { bool requestSucceeded = false; try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&screen_name=" + screenName + "&count=25&include_rts=1"); request.Timeout = 4000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List <Twitter.entry>)); var outStream = response.GetResponseStream(); tweets.Items = serializer.ReadObject(outStream) as List <Twitter.entry>; outStream.Close(); convertEntries(ret, tweets.Items); requestSucceeded = true; } catch (Exception exp) { Trace.WriteLine(exp.ToString()); requestSucceeded = false; } if (!requestSucceeded) { try { MemoryStream stream = new MemoryStream(Resources.WindowsAzure); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List <Twitter.entry>)); tweets.Items = serializer.ReadObject(stream) as List <Twitter.entry>; stream.Close(); convertEntries(ret, tweets.Items); } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } } } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } watch.Stop(); if (watch.ElapsedMilliseconds < 1500) { Thread.Sleep((int)(1500 + rand.Next(0, 200) - watch.ElapsedMilliseconds)); } return(ret); }
public static Tweets GetTweets(string screenName) { Stopwatch watch = new Stopwatch(); watch.Start(); Tweets ret = new Tweets(); TwitterTweets tweets = new TwitterTweets(); ret.screen_name = screenName; try { bool requestSucceeded = false; try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&screen_name=" + screenName + "&count=25&include_rts=1"); request.Timeout = 4000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Twitter.entry>)); var outStream = response.GetResponseStream(); tweets.Items = serializer.ReadObject(outStream) as List<Twitter.entry>; outStream.Close(); convertEntries(ret, tweets.Items); try { if (ret.Items.Count > 0) //overwrite file cache only when some items are returned { LocalResource ls = RoleEnvironment.GetLocalResource("localStore"); using (FileStream stream = File.OpenWrite(ls.RootPath + "WindowsAzure-" + screenName + ".json")) { serializer.WriteObject(stream, tweets.Items); } } } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } requestSucceeded = true; } catch (Exception exp) { Trace.WriteLine(exp.ToString()); requestSucceeded = false; } if (!requestSucceeded) { try { LocalResource ls = RoleEnvironment.GetLocalResource("localStore"); string newCachedFile = ls.RootPath + "WindowsAzure-" + screenName + ".json"; if (File.Exists(newCachedFile)) //has previously cached file { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Twitter.entry>)); using (FileStream stream = File.OpenRead(newCachedFile)) { tweets.Items = serializer.ReadObject(stream) as List<Twitter.entry>; } } else //fall back to default demo data { MemoryStream stream = new MemoryStream(Resources.WindowsAzure); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Twitter.entry>)); tweets.Items = serializer.ReadObject(stream) as List<Twitter.entry>; stream.Close(); convertEntries(ret, tweets.Items); } } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } } } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } watch.Stop(); if (watch.ElapsedMilliseconds < 1500) Thread.Sleep((int)(1500 + rand.Next(0,200) - watch.ElapsedMilliseconds)); return ret; }
public static Tweets GetTweets(string screenName) { Stopwatch watch = new Stopwatch(); watch.Start(); Tweets ret = new Tweets(); TwitterTweets tweets = new TwitterTweets(); ret.screen_name = screenName; try { bool requestSucceeded = false; try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&screen_name=" + screenName + "&count=25&include_rts=1"); request.Timeout = 4000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List <Twitter.entry>)); var outStream = response.GetResponseStream(); tweets.Items = serializer.ReadObject(outStream) as List <Twitter.entry>; outStream.Close(); convertEntries(ret, tweets.Items); try { if (ret.Items.Count > 0) //overwrite file cache only when some items are returned { LocalResource ls = RoleEnvironment.GetLocalResource("localStore"); using (FileStream stream = File.OpenWrite(ls.RootPath + "WindowsAzure-" + screenName + ".json")) { serializer.WriteObject(stream, tweets.Items); } } } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } requestSucceeded = true; } catch (Exception exp) { Trace.WriteLine(exp.ToString()); requestSucceeded = false; } if (!requestSucceeded) { try { LocalResource ls = RoleEnvironment.GetLocalResource("localStore"); string newCachedFile = ls.RootPath + "WindowsAzure-" + screenName + ".json"; if (File.Exists(newCachedFile)) //has previously cached file { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List <Twitter.entry>)); using (FileStream stream = File.OpenRead(newCachedFile)) { tweets.Items = serializer.ReadObject(stream) as List <Twitter.entry>; } } else //fall back to default demo data { MemoryStream stream = new MemoryStream(Resources.WindowsAzure); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List <Twitter.entry>)); tweets.Items = serializer.ReadObject(stream) as List <Twitter.entry>; stream.Close(); convertEntries(ret, tweets.Items); } } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } } } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } watch.Stop(); if (watch.ElapsedMilliseconds < 1500) { Thread.Sleep((int)(1500 + rand.Next(0, 200) - watch.ElapsedMilliseconds)); } return(ret); }
public static Tweets GetTweets(string screenName) { Stopwatch watch = new Stopwatch(); watch.Start(); Tweets ret = new Tweets(); TwitterTweets tweets = new TwitterTweets(); ret.screen_name = screenName; try { bool requestSucceeded = false; try { HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&screen_name=" + screenName + "&count=25&include_rts=1"); request.Timeout = 4000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Twitter.entry>)); var outStream = response.GetResponseStream(); tweets.Items = serializer.ReadObject(outStream) as List<Twitter.entry>; outStream.Close(); convertEntries(ret, tweets.Items); requestSucceeded = true; } catch (Exception exp) { Trace.WriteLine(exp.ToString()); requestSucceeded = false; } if (!requestSucceeded) { try { MemoryStream stream = new MemoryStream(Resources.WindowsAzure); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Twitter.entry>)); tweets.Items = serializer.ReadObject(stream) as List<Twitter.entry>; stream.Close(); convertEntries(ret, tweets.Items); } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } } } catch (Exception exp) { Trace.WriteLine(exp.ToString()); } watch.Stop(); if (watch.ElapsedMilliseconds < 1500) Thread.Sleep((int)(1500 + rand.Next(0,200) - watch.ElapsedMilliseconds)); return ret; }