Esempio n. 1
0
        /// <summary>
        /// Destroy friendship with someone
        /// </summary>
        /// <param name="provider">credential provider</param>
        /// <param name="userId">target user id</param>
        /// <param name="screenName">target user screen name</param>
        /// <remarks>
        /// user id or user screeen name must set.
        /// </remarks>
        public static TwitterUser DestroyFriendship(this CredentialProvider provider, long?userId = null, string screenName = null)
        {
            if (userId == null && String.IsNullOrEmpty(screenName))
            {
                throw new ArgumentException("User id or screen name is must set.");
            }
            List <KeyValuePair <string, string> > arg = new List <KeyValuePair <string, string> >();

            if (userId != null)
            {
                arg.Add(new KeyValuePair <string, string>("user_id", userId.ToString()));
            }
            if (!String.IsNullOrEmpty(screenName))
            {
                arg.Add(new KeyValuePair <string, string>("screen_name", screenName));
            }
            var ret = provider.RequestAPIv1("friendships/destroy.json", CredentialProvider.RequestMethod.POST, arg);

            if (ret != null && ret.Root != null)
            {
                return(TwitterUser.FromNode(ret.Root));
            }
            else
            {
                return(null);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Create friendship with someone
        /// </summary>
        /// <param name="provider">credential provider</param>
        /// <param name="userId">target user id</param>
        /// <param name="screenName">target user screen name</param>
        /// <param name="follow">send his tweet to specified device</param>
        /// <remarks>
        /// user id or user screeen name must set.
        /// </remarks>
        public static TwitterUser CreateFriendship(this CredentialProvider provider, long?userId = null, string screenName = null, bool follow = false)
        {
            if (userId == null && String.IsNullOrEmpty(screenName))
            {
                throw new ArgumentException("User id or screen name is must set.");
            }
            var para = CreateParamList();

            if (userId != null)
            {
                para.Add(new KeyValuePair <string, string>("user_id", userId.ToString()));
            }
            if (!String.IsNullOrEmpty(screenName))
            {
                para.Add(new KeyValuePair <string, string>("screen_name", screenName));
            }
            if (follow)
            {
                para.Add(new KeyValuePair <string, string>("follow", "true"));
            }
            var ret = provider.RequestAPIv1("friendships/create.json", CredentialProvider.RequestMethod.POST, para);

            if (ret != null && ret.Root != null)
            {
                return(TwitterUser.FromNode(ret.Root));
            }
            else
            {
                return(null);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Get users
        /// </summary>
        private static IEnumerable <TwitterUser> GetUsers(this CredentialProvider provider, string partialUri, IEnumerable <KeyValuePair <string, string> > para)
        {
            var doc = provider.RequestAPIv1(partialUri, CredentialProvider.RequestMethod.GET, para);

            if (doc == null)
            {
                return(null); // request returns error ?
            }
            System.Diagnostics.Debug.WriteLine("GetUsers ::: " + Environment.NewLine + doc);
            return(doc.Root.Element("users").Elements().Select(u => TwitterUser.FromNode(u)).Where(u => u != null));
        }
Esempio n. 4
0
        private void ParseSourceTargetUsers(XElement node)
        {
            var source = node.Element("source");
            var target = node.Element("target");

            if (source == null || target == null)
            {
                ParseUndefined(node);
            }
            SourceUser = TwitterUser.FromNode(source);
            TargetUser = TwitterUser.FromNode(target);
        }
Esempio n. 5
0
        /// <summary>
        /// Get user with full params
        /// </summary>
        private static TwitterUser GetUser(this CredentialProvider provider, string partialUri, CredentialProvider.RequestMethod method, long?userId, string screenName)
        {
            var para = new List <KeyValuePair <string, string> >();

            if (userId != null)
            {
                para.Add(new KeyValuePair <string, string>("user_id", userId.ToString()));
            }
            if (screenName != null)
            {
                para.Add(new KeyValuePair <string, string>("screen_name", screenName));
            }
            var doc = provider.RequestAPIv1(partialUri, method, para);

            if (doc == null)
            {
                return(null);
            }
            return(TwitterUser.FromNode(doc.Root));
        }
Esempio n. 6
0
        /// <summary>
        /// Report spam and block someone
        /// </summary>
        /// <param name="provider">credential provider</param>
        /// <param name="userId">block user id</param>
        /// <param name="screenName">block user screen name</param>
        /// <remarks>
        /// user id or user screeen name must set.
        /// </remarks>
        public static TwitterUser ReportSpam(this CredentialProvider provider, long?userId = null, string screenName = null)
        {
            if (userId == null && String.IsNullOrEmpty(screenName))
            {
                throw new ArgumentException("User id or screen name is must set.");
            }
            var para = CreateParamList();

            if (userId != null)
            {
                para.Add(new KeyValuePair <string, string>("user_id", userId.ToString()));
            }
            if (!String.IsNullOrEmpty(screenName))
            {
                para.Add(new KeyValuePair <string, string>("screen_name", screenName));
            }
            var ret = provider.RequestAPIv1("users/report_spam.json", CredentialProvider.RequestMethod.POST, para);

            if (ret != null && ret.Root != null)
            {
                return(TwitterUser.FromNode(ret.Root));
            }
            return(null);
        }