Esempio n. 1
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req = null;

            switch (robotType)
            {
            case RobotType.Tuling:
            {
                req = CreateHttpRequest("GET", QQConstants.URL_ROBOT_TULING);
                req.AddGetValue("key", QQConstants.ROBOT_TULING_KEY);
                req.AddGetValue("info", input.GetText());
                // req.AddGetValue("userid", input.From.Uin.ToString());
                break;
            }

            case RobotType.Moli:
            {
                req = CreateHttpRequest("GET", QQConstants.URL_ROBOT_MOLI);
                req.AddGetValue("limit", "5");
                req.AddGetValue("question", input.GetText());
                req.AddGetValue("api_key", QQConstants.ROBOT_MOLI_KEY);
                req.AddGetValue("api_secret", QQConstants.ROBOT_MOLI_SECRET);
                // req.AddGetValue("type", "json");
                break;
            }
            }

            return(req);
        }
Esempio n. 2
0
        public override QQHttpRequest OnBuildRequest()
        {
            IHttpService httpService = Context.GetSerivce <IHttpService>(QQServiceType.HTTP);
            QQSession    session     = Context.Session;
            Random       rand        = new Random();

            if (session.ClientId == 0)
            {
                session.ClientId = new Random().Next(1000000, 9999999); //random??
            }

            JObject json = new JObject();

            json.Add("ptwebqq", httpService.GetCookie("ptwebqq", QQConstants.URL_CHANNEL_LOGIN).Value);
            json.Add("clientid", session.ClientId.ToString());
            json.Add("psessionid", session.SessionId);
            json.Add("status", _status.Value);
            json.Add("passwd_sig", "");
            QQHttpRequest req = CreateHttpRequest("POST", QQConstants.URL_CHANNEL_LOGIN);

            req.AddPostValue("r", JsonConvert.SerializeObject(json));
            req.AddPostValue("clientid", session.ClientId + "");
            req.AddPostValue("psessionid", session.SessionId ?? "null");
            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
Esempio n. 3
0
        private static HttpRequestMessage GetHttpRequest(QQHttpRequest qqRequest)
        {
            var request = new HttpRequestMessage(new HttpMethod(qqRequest.Method), qqRequest.Url)
            {
                Headers =
                {
                    Referrer = new Uri(qqRequest.Referrer),
                    //UserAgent =
                    //{
                    //    new ProductInfoHeaderValue(qqRequest.UserAgent)
                    //},
                }
            };

            if (qqRequest.Method.Equals(HttpConstants.Post))
            {
                request.Content = new StringContent(qqRequest.GetPostString(), Encoding.GetEncoding(qqRequest.Charset), qqRequest.ContentType);
            }
            else if (qqRequest.Method.Equals(HttpConstants.Get))
            {
            }
            else
            {
                throw new QQException(QQErrorCode.IOError, "not support http method:" + request.Method);
            }
            return(request);
        }
Esempio n. 4
0
        public override QQHttpRequest OnBuildRequest()
        {
/*
 *          retype:1 app:EQQ
 *          itemlist:{"groupmask":{"321105219":"1","1638195794":"0","cAll":0,"idx":1075,"port":37883}}
 *          vfwebqq:8b26c442e239630f250e1e74d135fd85ab78c38e7b8da1c95a2d1d560bdebd2691443df19d87e70d
 */
            QQStore       store   = Context.Store;
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("POST", QQConstants.URL_GROUP_MESSAGE_FILTER);

            req.AddPostValue("retype", "1");    // 群???
            req.AddPostValue("app", "EQQ");

            JObject groupmask = new JObject();

            groupmask.Add("cAll", 0);
            groupmask.Add("idx", session.Index);
            groupmask.Add("port", session.Port);
            foreach (QQGroup g in store.GetGroupList())
            {
                if (g.Gin > 0)
                {
                    groupmask.Add(g.Gin + "", g.Mask + "");
                }
            }
            JObject itemlist = new JObject();

            itemlist.Add("groupmask", groupmask);
            req.AddPostValue("itemlist", itemlist.ToString());
            req.AddPostValue("vfwebqq", Context.Session.Vfwebqq);
            return(req);
        }
Esempio n. 5
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_CHECK_QRCODE);

            req.AddGetValue("webqq_type", "10");
            req.AddGetValue("remember_uin", "1");
            req.AddGetValue("login2qq", "1");
            req.AddGetValue("aid", "501004106");
            req.AddGetValue("u1", "http://w.qq.com/proxy.html?login2qq=1&webqq_type=10");
            req.AddGetValue("ptredirect", "0");
            req.AddGetValue("ptlang", "2052");
            req.AddGetValue("daid", "164");
            req.AddGetValue("from_ui", "1");
            req.AddGetValue("pttype", "1");
            req.AddGetValue("dumy", "");
            req.AddGetValue("fp", "loginerroralert");
            req.AddGetValue("action", "0-0-4434");
            req.AddGetValue("mibao_css", "m_webqq");
            req.AddGetValue("t", "1");
            req.AddGetValue("g", "1");
            req.AddGetValue("js_type", "0");
            req.AddGetValue("js_ver", "10135");
            req.AddGetValue("login_sig", "");
            req.AddGetValue("pt_randsalt", "0");
            return(req);
        }
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET",
                                                      QQConstants.URL_GET_SESSION_MSG_SIG);

            if (user is QQGroupMember)
            {
                QQGroupMember mb = user as QQGroupMember;
                mb.ServiceType = 0;
                req.AddGetValue("id", mb.Group.Gin + "");
                req.AddGetValue("service_type", "0"); // 0为群,1为讨论组
            }
            else if (user is QQDiscuzMember)
            {
                QQDiscuzMember mb = (QQDiscuzMember)user;
                mb.ServiceType = 1;
                req.AddGetValue("id", mb.Discuz.Did + "");
                req.AddGetValue("service_type", "1"); // 0为群,1为讨论组
            }
            else
            {
                // LOG.info("GetSessionMsgSigAction unknow type :" + user);
            }
            req.AddGetValue("to_uin", user.Uin + "");
            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            return(req);
        }
Esempio n. 7
0
        public QQHttpRequest CreateHttpRequest(string method, string url)
        {
            QQHttpRequest req = new QQHttpRequest(url, method);

            req.AddHeader("User-Agent", _userAgent ?? QQConstants.USER_AGENT);
            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
Esempio n. 8
0
        public override QQHttpRequest OnBuildRequest()
        {
            _url += "&regmaster=undefined&aid=1";
            _url += "&s_url=http%3A%2F%2Fmail.qq.com%2Fcgi-bin%2Flogin%3Ffun%3Dpassport%26from%3Dwebqq";

            QQHttpRequest req = CreateHttpRequest("GET", _url);

            return(req);
        }
Esempio n. 9
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_GET_GROUP_INFO_EXT);

            req.AddGetValue("gcode", group.Code + "");
            req.AddGetValue("vfwebqq", Context.Session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            return(req);
        }
Esempio n. 10
0
        public override QQHttpRequest OnBuildRequest()
        {
            // r:{"to":2982077931,"face":0,"content":"[\"123\",[\"face\",1],\"456\",[\"face\",0],\"\",\"\\n【提示:此用户正在使用Q+ Web:http://web.qq.com/】\",[\"font\",{\"name\":\"微软雅黑\",\"size\":\"11\",\"style\":[0,0,0],\"color\":\"ffcc99\"}]]","msg_id":91310001,"clientid":"74131454","psessionid":"8368046764001e636f6e6e7365727665725f77656271714031302e3133332e34312e3230320000230700001f01026e04002aafd23f6d0000000a40484a526f4866467a476d00000028d954c71693cd99ae8c0c64b651519e88f55ce5075140346da7d957f3abefb51d0becc25c425d7cf5"}
            // r:{"group_uin":3408869879,"content":"[\"群消息发送测试\",[\"face\",13],\"\",\"\\n【提示:此用户正在使用Q+ Web:http://web.qq.com/】\",[\"font\",{\"name\":\"微软雅黑\",\"size\":\"11\",\"style\":[0,0,0],\"color\":\"ffcc99\"}]]","msg_id":91310002,"clientid":"74131454","psessionid":"8368046764001e636f6e6e7365727665725f77656271714031302e3133332e34312e3230320000230700001f01026e04002aafd23f6d0000000a40484a526f4866467a476d00000028d954c71693cd99ae8c0c64b651519e88f55ce5075140346da7d957f3abefb51d0becc25c425d7cf5"}
            // clientid、psessionid

            QQSession     session = Context.Session;
            JObject       json    = new JObject();
            QQHttpRequest req     = null;

            if (msg.Type == QQMsgType.BUDDY_MSG)
            {
                req = CreateHttpRequest("POST", QQConstants.URL_SEND_BUDDY_MSG);
                json.Add("to", msg.To.Uin);
                json.Add("face", 0); // 这个是干嘛的??
            }
            else if (msg.Type == QQMsgType.GROUP_MSG)
            {
                req = CreateHttpRequest("POST", QQConstants.URL_SEND_GROUP_MSG);
                json.Add("group_uin", msg.Group.Gin);
                json.Add("key", session.CfaceKey);
                json.Add("sig", session.CfaceSig);
            }
            else if (msg.Type == QQMsgType.DISCUZ_MSG)
            {
                req = CreateHttpRequest("POST", QQConstants.URL_SEND_DISCUZ_MSG);
                json.Add("did", msg.Discuz.Did);
                json.Add("key", session.CfaceKey);
                json.Add("sig", session.CfaceSig);
            }
            else if (msg.Type == QQMsgType.SESSION_MSG)
            {   // 临时会话消息
                req = CreateHttpRequest("POST", QQConstants.URL_SEND_SESSION_MSG);
                QQStranger member = (QQStranger)msg.To;
                json.Add("to", member.Uin);
                json.Add("face", 0); // 这个是干嘛的??
                json.Add("group_sig", member.GroupSig);
                json.Add("service_type", member.ServiceType + "");
            }
            else
            {
                MyLogger.Default.Warn("unknown MsgType: " + msg.Type);
            }

            json.Add("content", msg.PackContentList());
            json.Add("msg_id", ++_msgId);
            json.Add("clientid", session.ClientId);
            json.Add("psessionid", session.SessionId);

            req.AddPostValue("r", JsonConvert.SerializeObject(json));
            req.AddPostValue("clientid", session.ClientId + "");
            req.AddPostValue("psessionid", session.SessionId);
            req.AddHeader("Referer", QQConstants.REFFER);

            // System.out.println("sendMsg: " + JsonConvert.SerializeObject(json));
            return(req);
        }
Esempio n. 11
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_LOGIN_EMAIL);

            req.AddGetValue("fun", "passport");
            req.AddGetValue("from", "webqq");
            req.AddGetValue("Referer", "https://mail.qq.com/cgi-bin/loginpage");
            return(req);
        }
Esempio n. 12
0
        public QQHttpRequest CreateHttpRequest(string method, string url)
        {
            var req = new QQHttpRequest(url, method);

            if (!UserAgent.IsNullOrEmpty())
            {
                req.UserAgent = UserAgent;
            }
            return(req);
        }
Esempio n. 13
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_USER_LEVEL);
            QQSession     session = Context.Session;

            req.AddGetValue("tuin", user.Uin + "");
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            return(req);
        }
Esempio n. 14
0
        public override QQHttpRequest OnBuildRequest()
        {
            IHttpService  httpService = Context.GetSerivce <IHttpService>(QQServiceType.HTTP);
            QQHttpRequest req         = CreateHttpRequest("GET", QQConstants.URL_PT4_AUTH);

            req.AddGetValue("daid", "4");
            req.AddGetValue("appid", "1");
            req.AddGetValue("auth_token", QQEncryptor.Time33(httpService.GetCookie("supertoken",
                                                                                   QQConstants.URL_CHANNEL_LOGIN).Value) + "");
            return(req);
        }
Esempio n. 15
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_GET_WP_KEY);

            req.AddGetValue("r", "0.7975904128979892");
            req.AddGetValue("resp_charset", "UTF8");
            req.AddGetValue("ef", "js");
            req.AddGetValue("sid", sid);
            req.AddGetValue("Referer", "http://mail.qq.com/cgi-bin/frame_html?sid=" + sid);
            return(req);
        }
Esempio n. 16
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_DISCUZ_LIST);

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");
            return(req);
        }
Esempio n. 17
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_SEND_INPUT_NOTIFY);
            QQSession     session = Context.Session;

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("to_uin", user.Uin + "");
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");
            req.AddGetValue("psessionid", session.SessionId);
            return(req);
        }
Esempio n. 18
0
        //public static IEnumerable<Cookie> GetAllCookies(this CookieContainer cc)
        //{
        //    var table = (Hashtable)cc.GetType().InvokeMember("m_domainTable",
        //    BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance,
        //    null, cc, new object[] { });

        //    foreach (var pathList in table.Values)
        //    {
        //        var lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m_list",
        //        BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance,
        //        null, pathList, new object[] { });
        //        foreach (CookieCollection colCookies in lstCookieCol.Values)
        //        {
        //            foreach (var c in colCookies.OfType<Cookie>())
        //            {
        //                yield return c;
        //            }
        //        }
        //    }
        //}


        //public static IEnumerable<Cookie> GetCookies(this CookieContainer cc, string name)
        //{
        //    return GetAllCookies(cc).Where(item => string.Compare(item.Name, name, StringComparison.OrdinalIgnoreCase) == 0);
        //}


        public static string GetRequestHeader(this QQHttpRequest request, CookieContainer cc)
        {
            var sb = new StringBuilder();

            sb.AppendLineIf($"{HttpConstants.Referrer}: {request.Referrer}", !request.Referrer.IsNullOrEmpty());
            sb.AppendLineIf($"{HttpConstants.UserAgent}: {request.UserAgent}", !request.UserAgent.IsNullOrEmpty());
            sb.AppendLineIf($"{HttpConstants.ContentType}: {request.ContentType}", !request.ContentType.IsNullOrEmpty());
            var cookies = cc.GetCookies(new Uri(request.Url)).OfType <Cookie>();

            sb.AppendLine($"{HttpConstants.Cookie}: {string.Join("; ", cookies)}");
            return(sb.ToString());
        }
Esempio n. 19
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_GET_CAPTCHA);

            req.AddGetValue("aid", QQConstants.APPID);
            req.AddGetValue("r", new Random().NextDouble().ToString("f16"));
            req.AddGetValue("uin", _uin + "");

            // 20150724增加
            req.AddGetValue("cap_cd", Context.Session.CapCd);
            return(req);
        }
Esempio n. 20
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_OFFPIC);
            QQSession     session = Context.Session;

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("f_uin", msg.From.Uin + "");
            req.AddGetValue("file_path", offpic.FilePath);
            req.AddGetValue("psessionid", session.SessionId);
            req.OutputStream = picOut;
            return(req);
        }
Esempio n. 21
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_STRANGER_INFO);

            req.AddGetValue("tuin", user.Uin + "");
            req.AddGetValue("verifysession", "");       // ?
            req.AddGetValue("gid", "0");
            req.AddGetValue("code", "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            return(req);
        }
Esempio n. 22
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_GET_ONLINE_BUDDY_LIST);

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
Esempio n. 23
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_GET_QRCODE);

            req.AddGetValue("appid", "501004106");
            req.AddGetValue("e", "0");
            req.AddGetValue("l", "M");
            req.AddGetValue("s", "5");
            req.AddGetValue("d", "72");
            req.AddGetValue("v", "4");
            req.AddGetValue("4", new Random().Next().ToString());
            return(req);
        }
Esempio n. 24
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_SHAKE_WINDOW);

            req.AddGetValue("to_uin", user.Uin + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
Esempio n. 25
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_CUSTOM_FACE_SIG);

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateTime.Now.CurrentTimeMillis() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
Esempio n. 26
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET",
                                                      QQConstants.URL_GET_USER_FACE);

            req.AddGetValue("uin", group.Code + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            req.AddGetValue("cache", "0");
            req.AddGetValue("type", "4");
            req.AddGetValue("fid", "0");
            return(req);
        }
Esempio n. 27
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_GET_USER_SIGN);

            req.AddGetValue("tuin", buddy.Uin + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
Esempio n. 28
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_LOGOUT);

            req.AddGetValue("ids", ""); // 产生过会话才出现ID,如何获取??
            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
Esempio n. 29
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("POST", QQConstants.URL_UPLOAD_CUSTOM_FACE);

            req.AddGetValue("time", DateUtils.NowTimestamp() / 1000 + "");
            req.AddPostValue("from", "control");
            req.AddPostValue("f", "EQQ.Model.ChatMsg.callbackSendPicGroup");
            req.AddPostValue("vfwebqq", session.Vfwebqq);
            req.AddPostValue("fileid", Context.Store.GetPicItemListSize() + "");
            req.AddPostFile("custom_face", file);

            return(req);
        }
Esempio n. 30
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = this.Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_CHANGE_STATUS);

            req.AddGetValue("newstatus", _status.Value);
            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateTime.Now.CurrentTimeMillis() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }