예제 #1
0
        private bool PushFeedToDiscuzCloud(TopicInfo topic, PostInfo post, AttachmentInfo[] attachments, int feedStatus)
        {
            //如果传入数据不合法,以及主题需要审核或者是回复可见的,需要付费的,就不推送到云平台
            if (topic == null || post == null || topic.Tid < 0 || topic.Posterid < 0 || post.Tid != topic.Tid || post.Pid < 0 ||
                topic.Displayorder < 0 || topic.Hide == 1 || topic.Price > 0 || post.Invisible != 0 || feedStatus < 0 || feedStatus > 3)
            {
                return(false);
            }

            UserConnectInfo userConnectInfo = DiscuzCloud.GetUserConnectInfo(topic.Posterid);

            if (userConnectInfo == null || feedStatus == 0)
            {
                return(false);
            }
            //设置用户自选的操作状态
            userConnectInfo.AllowPushFeed = feedStatus;

            if (DiscuzCloud.PushFeedToDiscuzCloud(topic, post, attachments, userConnectInfo, ip, rootUrl))
            {
                TopicPushFeedInfo feedInfo = new TopicPushFeedInfo();
                feedInfo.TopicId      = topic.Tid;
                feedInfo.Uid          = topic.Posterid;
                feedInfo.AuthorToken  = userConnectInfo.Token;
                feedInfo.AuthorSecret = userConnectInfo.Secret;
                DiscuzCloud.CreateTopicPushFeedLog(feedInfo);
                return(true);
            }
            return(false);
        }
예제 #2
0
파일: PushFeed.cs 프로젝트: xiongeee/BBX
        private bool PushFeedToDiscuzCloud(TopicInfo topic, PostInfo post, AttachmentInfo[] attachments, bool feedStatus)
        {
            if (topic == null || post == null || topic.Tid < 0 || topic.Posterid < 0 || post.Tid != topic.Tid || post.Pid < 0 || topic.Displayorder < 0 || topic.Hide == 1 || topic.Price > 0 || post.Invisible != 0 || !feedStatus)
            {
                return(false);
            }
            var userConnectInfo = DiscuzCloud.GetUserConnectInfo(topic.Posterid);

            if (userConnectInfo == null || !feedStatus)
            {
                return(false);
            }
            userConnectInfo.AllowPushFeed = feedStatus;
            if (DiscuzCloud.PushFeedToDiscuzCloud(topic, post, attachments, userConnectInfo, this.ip, this.rootUrl))
            {
                DiscuzCloud.CreateTopicPushFeedLog(new PushfeedLog
                {
                    ID           = topic.Tid,
                    Uid          = topic.Posterid,
                    AuthorToken  = userConnectInfo.Token,
                    AuthorSecret = userConnectInfo.Secret
                });
                return(true);
            }
            return(false);
        }
예제 #3
0
        /// <summary>
        /// 解除用户QQ绑定
        /// </summary>
        /// <param name="openId"></param>
        /// <returns></returns>
        public static int UnbindUserConnectInfo(string openId)
        {
            DiscuzCloudConfigInfo config          = DiscuzCloudConfigs.GetConfig();
            UserConnectInfo       userConnectInfo = DiscuzCloud.GetUserConnectInfo(openId);

            if (userConnectInfo == null)
            {
                return(-1);
            }

            List <DiscuzOAuthParameter> paramList = new List <DiscuzOAuthParameter>();

            paramList.Add(new DiscuzOAuthParameter("client_ip", DNTRequest.GetIP()));

            DiscuzOAuth oauth     = new DiscuzOAuth();
            string      queryStr  = "";
            string      unbindUrl = oauth.GetOAuthUrl(UNBIND_URL, "POST", config.Connectappid, config.Connectappkey, userConnectInfo.Token, userConnectInfo.Secret,
                                                      "", "", paramList, out queryStr);

            string response = Utils.GetHttpWebResponse(unbindUrl, queryStr);

            DeleteUserConnectInfo(openId);
            Utils.WriteCookie("bindconnect", "");
            return(1);
        }
예제 #4
0
        /// <summary>
        /// 获取当前用户发送feed到云平台的设置(0不发送,1发送到Qzone,2发送到微博,3都发送)
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public static int GetOnlineUserCloudFeedStatus(int userId)
        {
            string status = Utils.GetCookie("cloud_feed_status");

            if (!string.IsNullOrEmpty(status))
            {
                string[] statusArray = status.Split('|');
                if (statusArray.Length == 2 && userId == Utils.StrToInt(statusArray[0], -1))
                {
                    return(Utils.StrToInt(statusArray[1], 0));
                }
            }
            UserConnectInfo connectInfo = DiscuzCloud.GetUserConnectInfo(userId);

            if (connectInfo != null)
            {
                Utils.WriteCookie("cloud_feed_status", string.Format("{0}|{1}", userId, connectInfo.AllowPushFeed));
                return(connectInfo.AllowPushFeed);
            }
            return(0);
        }
예제 #5
0
파일: DiscuzCloud.cs 프로젝트: xiongeee/BBX
        public static bool GetOnlineUserCloudFeedStatus(int userId)
        {
            string cookie = Utils.GetCookie("cloud_feed_status");

            if (!string.IsNullOrEmpty(cookie))
            {
                string[] array = cookie.Split('|');
                if (array.Length == 2 && userId == TypeConverter.StrToInt(array[0], -1))
                {
                    return(TypeConverter.IntStringToBoolean(array[1]));
                }
            }
            var userConnectInfo = DiscuzCloud.GetUserConnectInfo(userId);

            if (userConnectInfo != null)
            {
                Utils.WriteCookie("cloud_feed_status", string.Format("{0}|{1}", userId, Convert.ToInt32(userConnectInfo.AllowPushFeed)));
                return(userConnectInfo.AllowPushFeed);
            }
            return(false);
        }
예제 #6
0
파일: DiscuzCloud.cs 프로젝트: xiongeee/BBX
        public static int UnbindUserConnectInfo(string openId)
        {
            DiscuzCloudConfigInfo config          = DiscuzCloudConfigInfo.Current;
            UserConnect           userConnectInfo = DiscuzCloud.GetUserConnectInfo(openId);

            if (userConnectInfo == null)
            {
                return(-1);
            }
            List <DiscuzOAuthParameter> list = new List <DiscuzOAuthParameter>();

            list.Add(new DiscuzOAuthParameter("client_ip", DNTRequest.GetIP()));
            DiscuzOAuth discuzOAuth = new DiscuzOAuth();
            string      postData    = "";
            string      oAuthUrl    = discuzOAuth.GetOAuthUrl(UNBIND_URL, "POST", config.Connectappid, config.Connectappkey, userConnectInfo.Token, userConnectInfo.Secret, "", "", list, out postData);

            Utils.GetHttpWebResponse(oAuthUrl, postData);
            DiscuzCloud.DeleteUserConnectInfo(openId);
            Utils.WriteCookie("bindconnect", "");
            return(1);
        }
예제 #7
0
파일: DiscuzCloud.cs 프로젝트: xiongeee/BBX
 public static bool IsBindConnect(int userId)
 {
     return(DiscuzCloudConfigInfo.Current.Connectenabled != 0 && userId >= 1 && DiscuzCloud.GetUserConnectInfo(userId) != null);
 }