コード例 #1
0
    /// <summary>
    /// Método que recebe um mensagem do cliente e faz um tweet dessa mensagem
    /// </summary>
    /// <param name="mensagem"> Texto da mensagem </param>
    /// <returns>Bool a indicar o sucesso da operação</returns>
    public bool Tweet(string mensagem)
    {
        // Atribui a informação necessaria para o OAuth
        var oauth = new OAuthInfo
        {
            AccessToken    = accessToken,
            AccessSecret   = accessTokenSecret,
            ConsumerKey    = consumerKey,
            ConsumerSecret = consumerKeySecret
        };

        try
        {
            // Utiliza o protocolo oauth para se ligar a api do twitter
            var twitter = new TinyTwitter.TinyTwitter(oauth);

            // Envia o Tweet
            twitter.UpdateStatus(mensagem);
        }
        catch (Exception e)
        {
            return(false);

            throw e;
        }



        return(true);
    }
コード例 #2
0
        private static TinyTwitter CreateTinyTwitter()
        {
            var oauth = GetOAuthInfo();

            var twitter = new TinyTwitter(oauth);

            return(twitter);
        }
コード例 #3
0
ファイル: Twitter.cs プロジェクト: himalr/Countdown
        public void Tweet(string text)
        {
            string[] creds = File.ReadAllLines("./config.cfg");
            OAuthInfo TInfo = new OAuthInfo();
            TInfo.ConsumerKey = creds[0];
            TInfo.ConsumerSecret = creds[1];
            TInfo.AccessToken = creds[2];
            TInfo.AccessSecret = creds[3];
            TinyTwitter.TinyTwitter Manager = new TinyTwitter.TinyTwitter(TInfo);

            Manager.UpdateStatus(text.Replace("\n\n",""));
        }
コード例 #4
0
        public static void Main()
        {
            Log("Starting...");

            Console.CancelKeyPress += delegate
            {
                Log("Exiting...");

                try
                {
                    User.LogOff();
                    Client.Disconnect();
                }
                catch
                {
                    Log("Failed to disconnect from Steam");
                }

                IsRunning = false;
            };

            Configuration = JsonConvert.DeserializeObject <Configuration>(File.ReadAllText("settings.json"), new JsonSerializerSettings {
                MissingMemberHandling = MissingMemberHandling.Error
            });

            Twitter = new TinyTwitter.TinyTwitter(Configuration.Twitter);

            var callbackManager = new CallbackManager(Client);

            callbackManager.Subscribe <SteamClient.ConnectedCallback>(OnConnected);
            callbackManager.Subscribe <SteamClient.DisconnectedCallback>(OnDisconnected);
            callbackManager.Subscribe <SteamUser.LoggedOnCallback>(OnLoggedOn);
            callbackManager.Subscribe <SteamUser.LoggedOffCallback>(OnLoggedOff);
            callbackManager.Subscribe <SteamUser.UpdateMachineAuthCallback>(OnMachineAuth);
            callbackManager.Subscribe <SteamUser.AccountInfoCallback>(OnAccountInfo);
            callbackManager.Subscribe <SteamFriends.ClanStateCallback>(OnClanState);

            Client.Connect();

            var reconnectTime = TimeSpan.FromHours(6);

            new Timer(state => Client.Disconnect(), null, reconnectTime, reconnectTime);

            while (IsRunning)
            {
                callbackManager.RunWaitCallbacks(TimeSpan.FromSeconds(5));
            }
        }
コード例 #5
0
        public void Write_tweets_and_read_timeline()
        {
            var oauth = GetOAuthInfo();

            var twitter = new TinyTwitter(oauth);

            var status = Guid.NewGuid().ToString();

            twitter.UpdateStatus(status);

            // Wait a little to let twitter update timelines
            Thread.Sleep(TimeSpan.FromSeconds(3));

            var tweets = twitter.GetHomeTimeline();

            Assert.AreEqual(status, tweets.First().Text);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: Entitaet/status
        public static void Main(string[] args)
        {
            //Load config
            XmlData config;

            try
            {
                config=new XmlData("tweetstatus.xml");
            }
            catch(Exception e)
            {
                Console.WriteLine("Konfiguration konnte nicht gelesen werden.");
                Console.WriteLine(e.ToString());
                return;
            }

            string miscCheckCertificates=config.GetElementAsString("xml.misc.checkcertificates");

            if(miscCheckCertificates.ToLower()=="false")
            {
                //Disable certificate check
                ServicePointManager.ServerCertificateValidationCallback=delegate
                {
                    return true;
                };
            }

            string apiToken=config.GetElementAsString("xml.api.token");
            string apiUrl=config.GetElementAsString("xml.api.url");

            string twitterConsumerKey=config.GetElementAsString("xml.twitter.consumerkey");
            string twitterConsumerSecret=config.GetElementAsString("xml.twitter.consumersecret");

            string twitterAccessToken=config.GetElementAsString("xml.twitter.accesstoken");
            string twitterAccessTokenSecret=config.GetElementAsString("xml.twitter.accesstokensecret");

            //Create twitter token
            OAuthInfo token=null;

            if(twitterAccessToken==""||twitterAccessTokenSecret=="")
            {
                Console.WriteLine("Set access token in config file");
                return;
            }
            else
            {
                token=new OAuthInfo {
                    AccessToken=twitterAccessToken,
                    AccessSecret=twitterAccessTokenSecret,
                    ConsumerKey=twitterConsumerKey,
                    ConsumerSecret=twitterConsumerSecret
                };
            }

            //Check status database
            Console.WriteLine("Check status database");

            //Database
            RestClient client=new RestClient(apiUrl);
            string parameters=String.Format("entities/?token={0}", apiToken);

            string value=client.Request(parameters);
            int entityCount=Convert.ToInt32(value);

            Console.WriteLine("Entity count from api: {0}", entityCount);

            //Check status file and tweet if nessesary
            //Load known entries
            string entryFile="status.txt";

            Entry oldStatus=new Entry(0);

            if(File.Exists(entryFile))
            {
                oldStatus=new Entry(File.ReadAllLines(entryFile)[0]);
            }

            Entry newStatus=new Entry(entityCount);

            if(oldStatus!=newStatus)
            {
                //Tweet
                DateTime now=DateTime.Now;
                string datetimeHash="#"+CRC16.ComputeChecksum(BitConverter.GetBytes(now.Ticks)).ToString("x4");

                string statusGreen=String.Format("Der Hackerspace ist besetzt ({0}:{1:00} Uhr) und kann besucht werden. #status {2}", now.Hour, now.Minute, datetimeHash);
                string statusYellow="";
                string statusRed=String.Format("Der Hackerspace ist nicht mehr besetzt ({0}:{1:00} Uhr). #status {2}", now.Hour, now.Minute, datetimeHash);

                string tweetText="";

                if(newStatus.EntityCount==0)
                {
                    tweetText=statusRed;
                }
                else
                {
                    if(oldStatus.EntityCount>0)
                    {
                        Console.WriteLine("Update not necessary.");
                        return;
                    }

                    tweetText=statusGreen;
                }

                bool success=true;

                try
                {
                    Console.WriteLine("Token: {0}", token.ToString());

                    var twitter=new TinyTwitter.TinyTwitter(token);
                    twitter.UpdateStatus(tweetText);
                }
                catch(Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    success=false;
                }

                if(success)
                {
                    //Write success on console
                    Console.WriteLine("Tweet sended: {0}", tweetText);

                    //Write new status
                    File.WriteAllText(entryFile, newStatus.ToString());
                }
                else
                {
                    Console.WriteLine("Tweet not sended: {0}", tweetText);
                }
            }
        }