示例#1
0
    void MediaUploadCallback(bool success, string response)
    {
        UploadMedia media = JsonUtility.FromJson <UploadMedia>(response);

        media_id = media.media_id.ToString();
        //media_ids.Add(media.media_id);
        //if (media_ids.Count == 4)
        //{
        //    Dictionary<string, string> parameters = new Dictionary<string, string>();
        //    StringBuilder media_ids_string = new StringBuilder();
        //    foreach(long media_id in media_ids)
        //    {
        //        media_ids_string.Append(media_id.ToString() + ",");
        //    }
        //    media_ids_string.Length -= 1;
        //    parameters["media_ids"] = media_ids_string.ToString();
        //    parameters["status"] = "スクリーンショット投稿テスト";
        //    StartCoroutine(Client.Post("statuses/update", parameters, OnPostStatusesUpdate));
        //}
        Debug.Log("mediaUploadCallback");
        Dictionary <string, string> parameters = new Dictionary <string, string>();

        parameters["media_ids"] = media_id;
        parameters["alt_text"]  = "{\"text\":\"" + statusWithMedia + "\"}";
        Debug.Log(parameters["alt_text"]);
        StartCoroutine(Client.Post("media/metadata/create", parameters, OnPostMediaMetadata));
    }
        public static async Task <HttpResponseMessage> Upload(String requestUrl, IList <MultipartUploadMedia> uploadMedias, string requestJson)
        {
            MultipartFormDataContent MultipartContent = new MultipartFormDataContent();

            foreach (var UploadMedia in uploadMedias)
            {
                MultipartContent.Add(new StreamContent(UploadMedia.FileStream()), UploadMedia.PartName, UploadMedia.FileName);
            }
            if (requestJson != null)
            {
                StringContent JsonContent = new StringContent(requestJson, Encoding.UTF8, "application/json");
                MultipartContent.Add(JsonContent, "request");
            }

            HttpRequestMessage Request = new HttpRequestMessage
            {
                RequestUri = new Uri(requestUrl),
                Method     = HttpMethod.Post,
                Content    = MultipartContent
            };

            using (HttpClient HttpClient = new HttpClient())
            {
                return(await HttpClient.SendAsync(Request).ConfigureAwait(false));
            }
        }
示例#3
0
        /// <summary>
        /// メディアをアップロードする。
        /// </summary>
        /// <param name="attachment"></param>
        /// <returns>MediaID</returns>
        public Task <long> Upload(UploadMedia attachment)
        {
            using var sourceStream = attachment.GetDataStream();

            return(this._account.Api.Media.Upload(sourceStream, attachment.Description, progress: attachment)
                   .ContinueWithRan(m => m.Id));
        }
示例#4
0
    //public static void PostMediaUpload(string status, byte[] media_raw_data, MonoBehaviour behaviour, TwitterCallback callback)
    //{
    //    statusForMediaUpload = status;
    //    callbackForMediaUpload = callback;
    //    behaviourForMediaUpload = behaviour;

    //    //Dictionary<string, string> parameters = new Dictionary<string, string>();
    //    //parameters["media"] = media_raw_data.ToString();
    //    //behaviour.StartCoroutine(Client.MediaUpload(parameters, callback));
    //    behaviour.StartCoroutine(Client.MediaUpload(media_raw_data, PostMediaUploadCallback));
    //}
    static void PostMediaUploadCallback(bool success, string response)
    {
        if (success)
        {
            UploadMedia media = JsonUtility.FromJson <UploadMedia>(response);
            PostStatusesUpdateWithMedia(statusForMediaUpload, media.media_id, behaviourForMediaUpload, callbackForMediaUpload);
        }
        else
        {
            GameObject.Find("SystemMessageHandler").GetComponent <SystemMessageHandler>().GenerateSystemMessage(response);
        }
    }
示例#5
0
        /// <summary>
        /// メディアをアップロードする。
        /// </summary>
        /// <param name="attachment">メディア情報</param>
        /// <param name="account">アカウント情報</param>
        /// <returns>MediaID</returns>
        public Task <long> Upload(UploadMedia attachment)
        {
            var mediaApi = this._account.Api.Media;

            using var stream = attachment.GetDataStream();

            bool isVideoUpload   = attachment.MediaType.HasFlag(MediaType.Video);
            var  uploadMediaType = isVideoUpload ? MimeTypes.Video.Mp4 : MimeTypes.OctetStream;

            var task = isVideoUpload
                ? mediaApi.ChunkedUpload(stream, uploadMediaType, null, attachment)
                : mediaApi.Upload(stream, null, attachment);

            return(task.ContinueWithRan(m => m.MediaId));
        }
示例#6
0
    /// <summary>
    /// Callback method after uploading media to Twitter API
    /// </summary>
    /// <param name="success">Status after uploading media</param>
    /// <param name="response">Response received from Twitter API to get media_ids to update Tweet</param>
    void MediaUploadCallback(bool success, string response)
    {
        if (success)
        {
            UploadMedia media = JsonUtility.FromJson <UploadMedia>(response);

            Dictionary <string, string> parameters = new Dictionary <string, string>();
            parameters["media_ids"] = media.media_id.ToString();
            parameters["status"]    = $"I cleared level {this.level} with a score of {this.score}!";
            StartCoroutine(Twity.Client.Post("statuses/update", parameters, StatusesUpdateCallback));
        }
        else
        {
            Debug.Log(response);
        }
    }
示例#7
0
    private void MediaCallback(bool success, string response)
    {
        if (success)
        {
            UploadMedia media = JsonUtility.FromJson <UploadMedia>(response);

            Dictionary <string, string> parameters = new Dictionary <string, string>();
            parameters["media_ids"] = media.media_id.ToString();
            parameters["status"]    = message;
            StartCoroutine(Twity.Client.Post("statuses/update", parameters, Callback));
        }
        else
        {
            Debug.Log(response);
        }
    }
示例#8
0
        public ActionResult UploadMedia(MediaUpload model)
        {
            if (Session["User"] == null)
            {
                return(Content("login"));
            }
            int UserId = ((Urdu_Magazine.Models.User)Session["User"]).id;

            if (ModelState.IsValid)
            {
                Dictionary <bool, string> uploadResults = uploadMediaFiles(model.Image);
                string result;
                if (uploadResults == null)
                {
                    return(Content("Cannot create directory."));
                }
                else if (uploadResults.TryGetValue(false, out result))
                {
                    ModelState.AddModelError(result, "Cannot upload this file. Try Again.");
                }
                else if (uploadResults.TryGetValue(true, out result))
                {
                    var         fileNameAndImagePath = result.Split('>');
                    UploadMedia uploadMedia          = new UploadMedia
                    {
                        imgName     = model.Name,
                        userId      = UserId,
                        imgFileName = fileNameAndImagePath[0],
                        imgPath     = fileNameAndImagePath[1]
                    };

                    db.UploadMedias.Add(uploadMedia);
                    db.SaveChanges();
                    return(Json(new
                    {
                        message = "success",
                        Id = uploadMedia.Id,
                        file = uploadMedia.imgName,
                        path = uploadMedia.imgPath
                    }, JsonRequestBehavior.AllowGet));
                }
            }
            return(Content("failed"));
        }
示例#9
0
        protected override void Execute(object parameter)
        {
            if (Clipboard.ContainsImage())
            {
                // TODO: できれば画像データ(byte配列など)で取得したい
                var attachment = UploadMedia.FromBitmapSource(Clipboard.GetImage(), UploadMedia.DisplayExtensions.Clipboard);

                this._viewModel.PostParameters.Attachments.Add(attachment);
            }
            else if (Clipboard.ContainsFileDropList())
            {
                var files = Clipboard.GetFileDropList();


                this._viewModel.PostParameters.Attachments.AddRange(
                    GetEnableMediaFiles(files)
                    .Select(file => UploadMedia.FromFile(file)));
            }
        }
示例#10
0
        protected override async void Execute(string parameter)
        {
            if (!IsPlayerRunning(parameter))
            {
                this._viewModel.Messenger.Raise(new InformationMessage("再生情報の取得に失敗しました。:\nプレーヤが起動しているか確認してください。", App.Name, MessageBoxImage.Error, "MsgKey_InformationMessage"));
                return;
            }

            try
            {
                using var player = await GetPlayerFromId(parameter);

                var media = await player.GetCurrentMedia();

                this._viewModel.TextBoxController.Insert(ReplaceMediaAlias(media, Setting.NowPlayingFormat));

                if (Setting.InsertThumbnailAtNowPlayying)
                {
                    try
                    {
                        foreach (var stream in media.Artworks)
                        {
                            var image      = ImageUtil.CreateBitmapImage(stream);
                            var attachment = UploadMedia.FromBitmapSource(image, UploadMedia.DisplayExtensions.Artwork);

                            this._viewModel.PostParameters.Attachments.Add(attachment);
                        }
                    }
                    catch { /* pass */ }
                }
            }
            catch (Exception ex)
            {
                this._viewModel.Messenger.Raise(new InformationMessage(
                                                    $"再生情報の取得に失敗しました:\nプレーヤで楽曲が再生中かどうか確認してください。\n\nエラー:\n{ex.Message}", App.Name, MessageBoxImage.Error, "MsgKey_InformationMessage"));
            }
        }
示例#11
0
        protected override void Execute(OpeningFileSelectionMessage parameter)
        {
            var files = parameter.Response;

            if (files?.Any() == true && TweetWindowViewModel.HasEnableMediaFiles(files))
            {
                this._viewModel.PostParameters.Attachments.AddRange(files.Select(path => UploadMedia.FromFile(path)));
                this._viewModel.UpdateCanPost();
            }
        }