private static async void VtuberReplyTweetEvent(VtuberEntity vtuber, TweetInfo tweet) { LogHelper.Info($"Vtuber [{vtuber.OriginalName}] 回复了 {tweet.ReplyScreenname} 的推特 {tweet.Content}"); foreach (var api in CallbackApis) { await api.CallReplyAsync(vtuber, tweet); } }
private static async void VtuberRetweetedEvent(VtuberEntity vtuber, TweetInfo tweet) { LogHelper.Info($"Vtuber [{vtuber.OriginalName}] 转发了 {tweet.RetweetedTweet.User.Name} 的推特: {tweet.Content}"); foreach (var api in CallbackApis) { await api.CallRetweetedAsync(vtuber, tweet); } }
private static async void VtuberPublishTweetEvent(VtuberEntity vtuber, TweetInfo tweet) { LogHelper.Info($"Vtuber [{vtuber.OriginalName}] 发布了新的推特 {tweet.Content}"); foreach (var api in CallbackApis) { await api.CallPublishTweetAsync(vtuber, tweet); } }
public List <TweetInfo> Get(string hashtag) { InitializeApi(); var tag = String.Format("https://api.twitter.com/1.1/search/tweets.json?q={0}&result_type=recent", hashtag); var res = myApi.Get(tag); List <TweetInfo> list = new List <TweetInfo>(); foreach (var item in (JArray)res[0].ToList()[0].Value) { TweetInfo info; info = new TweetInfo(item["user"]["screen_name"].Value <string>(), item["user"]["profile_image_url"].Value <string>(), item["text"].Value <string>()); list.Add(info); } return(list); }
public async Task CallReplyAsync(VtuberEntity vtuber, TweetInfo tweet) { using (var client = HttpClientExtensions.CreateClient()) { var body = new TwitterCallbackBody() { VtuberName = vtuber.OriginalName, Content = tweet.Content, IsReply = tweet.IsReply, PublishTime = tweet.CreateTime.ToTimestamp(), ReplyScreenName = tweet.ReplyScreenname, RetweetedUsername = tweet.RetweetedTweet?.User?.Name, Sign = Sign }; await client.PostJsonAsync(Url + "tweet/reply", body); } }
public void TweeterInfoEntrySholdBeParsedCorrectly() { // Arrange var info = new TweetInfo( "[MESSAGE]: The tweet by user (foo) is: (RT @DaytonMSoccer: COMING SOON. Dayton Men's Soccer on Instagram. Launching Monday. Be sure to check us out.) and it was tweeted on (2009-02-13T10:00:41-08:00)", "[TWEET_INFO]: This tweet has been retweeted (2) times, and have been favorited by (4) people. ", "[HASH_TAGS]: This tweet has the following hash tags: (FlyTogether)", "[LOCATION]: The location of this tweet is lat: (123.12), long: (-123.12)" ); // Act - Assert Assert.Equal("RT @DaytonMSoccer: COMING SOON. Dayton Men's Soccer on Instagram. Launching Monday. Be sure to check us out.", info.Message); Assert.Equal(2, info.Retweeted); Assert.Equal(4, info.Favorited); Assert.Equal("FlyTogether", info.HashTags.First()); Assert.Equal(123.12, info.Latitude); Assert.Equal(-123.12, info.Longitude); }