Example #1
0
    IEnumerator Start()
    {
        profanityClass = new ProfanityClass();
        tweetClient    = FindObjectOfType <TweetClient>();

        if (!tweetClient)
        {
            GameObject tweetClientObject = new GameObject("TweetClient");
            tweetClient = tweetClientObject.AddComponent <TweetClient>();
        }

        fishController.LinkFishDataList(fishDataList);

        WaitForSeconds waitTimer = new WaitForSeconds(refreshTimerInSeconds);

        timerTime = refreshTimerInSeconds;

        UnityEvent refreshTweetEvent = new UnityEvent();

        refreshTweetEvent.AddListener(RefreshTweets);

        while (refreshTimerInSeconds > 0)
        {
            RefreshBlacklist(blacklist, refreshTweetEvent);

            if (timerTime != refreshTimerInSeconds)
            {
                waitTimer = new WaitForSeconds(refreshTimerInSeconds);
                timerTime = refreshTimerInSeconds;
            }

            yield return(waitTimer);
        }
    }
Example #2
0
        public void FetchAllTweets_Method_Should_Throw_Error_When_End_Date_Is_Null()
        {
            var         loggerObj = new Mock <ILogger>();
            TweetClient client    = new TweetClient(loggerObj.Object);

            client.FetchAllTweets(DateTime.Now.ToString(), null);
        }
Example #3
0
        public static async Task <List <M3u8Playlist> > GetVideoPlaylist(string id, TweetClient client)
        {
            var videoHtml = await client.GetHtmlAsync($"https://twitter.com/i/videos/tweet/{id}");

            var jsFileUrl = videoHtml.QuerySelector("script").GetAttribute("src");
            var jsScript  = await client.GetStringAsync(jsFileUrl);

            var bearerRegex = new Regex("Bearer ([a-zA-Z0-9%-])+");
            var match       = bearerRegex.Match(jsScript);

            if (match.Success)
            {
                var token = match.Value;
                var playerConfigString = await client.GetStringAsync($"https://api.twitter.com/1.1/videos/tweet/config/{id}.json", token);

                var playerConfig = System.Text.Json.JsonSerializer.Deserialize <Models.Video>(playerConfigString);
                if (playerConfig is null)
                {
                    throw new Exception($"Could not get playback item for {id}");
                }
                var playbackUri = playerConfig.Track.PlaybackUrl;
                var m3u3Text    = await client.GetStringAsync(playbackUri.ToString(), token);

                return(M3U3Parser.ParsePlaylist(m3u3Text, token, $"{playbackUri.Scheme}://{playbackUri.Host}"));
            }
            throw new Exception($"Could not get Authentication Token for playlist item {id}");
        }
Example #4
0
 public static async Task <List <M3u8VideoSegment> > GetVideoSegments(M3u8Playlist playlistItem)
 {
     using (var client = new TweetClient())
     {
         return(await GetVideoSegments(playlistItem, client));
     }
 }
Example #5
0
        public async Task <List <Tweet> > GetTweets()
        {
            ITweetClient tweetClient = new TweetClient();
            var          response    = await tweetClient.GetTweetInfo(startDate, endDate);

            return(response);
        }
Example #6
0
 public static async Task <List <M3u8Playlist> > GetVideoPlaylist(string id)
 {
     using (var client = new TweetClient())
     {
         return(await GetVideoPlaylist(id, client));
     }
 }
Example #7
0
        public static async Task <Tweet> Get(string username, string id, TweetClient client, Config config)
        {
            var tweetsDiv = await client.GetHtmlAsync($"https://twitter.com/{username}/status/{id}");

            var tweetDiv = tweetsDiv.QuerySelector($"[data-tweet-id='{id}']");
            var tweet    = new Tweet();

            tweet.Scrape(config, tweetDiv);
            return(tweet);
        }
Example #8
0
        public static async Task <User> GetAsync(string username)
        {
            using (var client = new TweetClient())
            {
                var user = new User();
                var dom  = await client.GetHtmlAsync($"https://www.twitter.com/{username}?lang=en");

                user.Scrape(dom);
                return(user);
            }
        }
Example #9
0
        public TwitterBot(int webhookPort, string pfxPath, string pfxPassword, long recipient, string consumerKey, string consumerSecret, string accessToken,
                          string accessTokenSecret, LogLevel logLevel = DefaultLogLevel) : base(webhookPort, pfxPath, pfxPassword, recipient, consumerSecret, logLevel)
        {
            isWebhookEnabled = true;

            ConsumerKey = consumerKey;
            // ApiSecret assigned into webhook
            AccessToken       = accessToken;
            AccessTokenSecret = accessTokenSecret;

            usersClient          = new UsersClient(consumerKey, consumerSecret, accessToken, accessTokenSecret);
            directMessagesClient = new DirectMessagesClient(consumerKey, consumerSecret, accessToken, accessTokenSecret);
            welcomeMessageClient = new WelcomeMessageClient(consumerKey, consumerSecret, accessToken, accessTokenSecret);
            tweetClient          = new TweetClient(consumerKey, consumerSecret, accessToken, accessTokenSecret);
        }
Example #10
0
    void Awake()
    {
        Texture2D tex            = new Texture2D(canvasTexture.width, canvasTexture.height, TextureFormat.RGB24, false);
        var       fillColorArray = tex.GetPixels();

        for (var i = 0; i < fillColorArray.Length; ++i)
        {
            fillColorArray[i] = Color.white;
        }

        tex.SetPixels(fillColorArray);
        tex.Apply();
        baseMaterial.mainTexture = tex;

        cursorSprite = brushCursor.GetComponent <SpriteRenderer>();
        targetSprite = cursorSprite.sprite;

        GameObject tweetClientObject = new GameObject("TweetClient");

        tweetClient = tweetClientObject.AddComponent <TweetClient>();

        profanityClass      = new ProfanityClass();
        origProfanityMsgTxt = ProfanityMessage.text;
    }
Example #11
0
        public static async Task <List <M3u8VideoSegment> > GetVideoSegments(M3u8Playlist playlistItem, TweetClient client)
        {
            if (string.IsNullOrEmpty(playlistItem.AuthenticationToken))
            {
                throw new Exception($"No Authorization Bearer Token set for m3u8 file!");
            }
            var m3u3Text = await client.GetStringAsync(playlistItem.Url.ToString(), playlistItem.AuthenticationToken);

            return(M3U3Parser.ParseVideoSegments(m3u3Text, playlistItem.Resolution, $"{playlistItem.Url.Scheme}://{playlistItem.Url.Host}"));
        }
Example #12
0
 public Search()
 {
     _config = new Config();
     _client = new TweetClient();
 }
Example #13
0
 public Search(TweetClient client, Config config)
 {
     _config = config;
     _client = client;
 }
Example #14
0
 public Search(Config config)
 {
     _config = config;
     _client = new TweetClient();
 }
Example #15
0
 public void Intitialize()
 {
     client = new TweetClient(ConsumerKey, ConsumerSecret, AccessToken, AccessTokenSecret);
 }