Пример #1
0
        private UploadResult Upload(string filePath)
        {
            var uploadResult = new UploadResult() { Success = false , Msg= context.API.GetTranslation("wox_plugin_weibopicbed_upload_busy") };
            if (Monitor.TryEnter(syncObj, 5000))
            {
                try
                {
                    if (!weibo.IsLogin())
                    {
                        keepLoginTimer.Change(Timeout.Infinite, Timeout.Infinite);

                        var loginResult = weibo.Login(SettingStorage.Instance.Account, Utils.Decrypt(SettingStorage.Instance.Password));
                        if (!loginResult.Success)
                        {
                            var msg = context.API.GetTranslation("wox_plugin_weibopicbed_login_failed");
                            this.context.API.ShowMsg(GetTranslatedPluginTitle(), msg);
                            return new UploadResult() { Success = false, Msg = msg };
                        }

                        uploadResult = weibo.PicUpload(filePath);
                        keepLoginTimer.Change(TimerInterval, TimerInterval);
                    } else
                    {
                        uploadResult = weibo.PicUpload(filePath);
                        keepLoginTimer.Change(TimerInterval, TimerInterval);
                    }
                }
                finally
                {
                    Monitor.Exit(syncObj);
                }
            }

            return uploadResult;
        }
Пример #2
0
        public UploadResult PicUpload(string picPath)
        {
            var ext = Path.GetExtension(picPath).ToLower();
            if (ext != ".jpg" && ext != ".jpeg" && ext != ".png" && ext != ".gif" && ext != ".bmp")
            {
                return new UploadResult() { Success = false, Msg = "只运行.jpg, .png, .gif, .bmp图片格式文件." };
            }

            var headers = new Dictionary<string, string>();
            headers.Add("Origin", "http://js.t.sinajs.cn");

            var content = HttpHelper.GetHttpContent(
                PicUploadURL,
                cookies: cookies,
                headers: headers,
                referer: "http://js.t.sinajs.cn/t5/home/static/swf/MultiFilesUpload.swf?version=559f4bc1f6266504",
                encode: Encoding.GetEncoding("UTF-8"),
                filePath: picPath,
                timeout: 5 * 60 * 1000);

            var match = regPicId.Match(content);
            if (match.Success)
            {
                var result =  new UploadResult() { Success = true };
                var rnd = new Random(Guid.NewGuid().GetHashCode());
                var server = rnd.Next(1, 4);
                result.PicId = match.Groups[1].Value;
                result.PicUrl = string.Format("http://ww{0}.sinaimg.cn/large/{1}.jpg", server, result.PicId);
                result.MiddlePicUrl = string.Format("http://ww{0}.sinaimg.cn/mw690/{1}.jpg", server, result.PicId);
                result.ThumbnailPicUrl = string.Format("http://ww{0}.sinaimg.cn/thumbnail/{1}.jpg", server, result.PicId);
                result.UploadAt = Utils.ConvertDateTimeInt(DateTime.Now);

                return result;
            } else
            {
                Logger.Error(PicUploadURL + "\r\nResult:\r\n" + content);
                return new UploadResult() { Success = false, Msg = "上传失败." };
            }

            
        }