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)));
            }
        }
Exemple #2
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"));
            }
        }