public JsonResult StartStream(string[] list) { try { var keyword = list[0]; var path = list[1]; //var iterations = 100000; path = path + "\\" + "API_" + keyword + "_" + string.Format("{0:yyyy-MM-dd_hh-mm-ss-fff}", DateTime.Now) + ".txt"; object lock1 = new Object(); lock (lock1) { if (!System.IO.File.Exists(path)) { System.IO.File.Create(path); } } try{ if (t != null) { stream.StopStream(); } } catch (Exception e) { return(new JsonResult(new { success = true, responseText = "Failed to abort old thread" })); } this.t = new Thread(() => { this.stream = Tweetinvi.Stream.CreateFilteredStream(); if (keyword != "") { stream.AddTrack(keyword); } stream.MatchingTweetReceived += (sender, args) => { System.IO.File.AppendAllText(path, args.Json + "\n"); Console.WriteLine(args.Tweet); }; stream.StartStreamMatchingAllConditions(); Console.WriteLine("Stream started"); //stream.StopStream(); }); lock (lock1) { t.Start(); } return(new JsonResult(new { success = true, responseText = "Started stream for keyword" + keyword + ". Saving to file at location " + path + "." })); } catch (Exception e) { return(Json(new { success = false, responseText = "Exceptions occured while attempting to open stream." })); } }
public void callTweetApi(string searchTerm) { if (!string.IsNullOrEmpty(searchTermHolder)) { stream.RemoveTrack(searchTermHolder); stream.StopStream(); } searchTermHolder = searchTerm; stream.AddTrack(searchTerm); stream.AddTweetLanguageFilter(LanguageFilter.English); stream.MatchingTweetReceived += (sender, arguments) => { if (!(arguments.Tweet.Media == null || arguments.Tweet.Media.Count <= 0)) { foreach (var item in arguments.Tweet.Media) { if (item.MediaType == "photo" && arguments.MatchingTracks[0] == searchTermHolder) { try { List <FaceModel> faceList = WebApplication1.FaceApi.FaceApi.MakeAnalysisRequest(arguments.Tweet.Media[0].MediaURL).Result; tweet twt = new tweet(); twt.Text = arguments.Tweet.FullText; twt.MediaUrl = arguments.Tweet.Media[0].MediaURL; twt.CreatedAt = arguments.Tweet.CreatedAt; foreach (var gender in faceList) { if (gender.faceAttributes.gender == "male") { twt.MaleFace += 1; } else if (gender.faceAttributes.gender == "femail") { twt.FemailFace += 1; } } twt.MatchingTrack = arguments.MatchingTracks[0] + " - " + faceList.Count + " Face(s) Detected, " + twt.FemailFace + " female and " + twt.MaleFace + " male"; sendMessage(twt); } catch (System.Exception) { stream.ResumeStream(); } } } } }; stream.StartStreamMatchingAllConditions(); }
public void StartMonitoring(string query, EventHandler <Tweetinvi.Events.MatchedTweetReceivedEventArgs> callback) { try { tweetStream = Stream.CreateFilteredStream(); tweetStream.AddTrack(query); tweetStream.MatchingTweetReceived += callback; tweetStream.StartStreamMatchingAllConditions(); status = 0; } catch (Exception ex) { Debug.WriteLine("Error starting Twitter monitoring: " + ex.Message); status = -1; } }