древовидный плагин структуры для энергии

Вам необходимо предоставить специальный валидатор, если вы хотите захватить местоположение пользователя с помощью быстрого ответа о местоположении Facebook Messenger в текстовом или вложенном приглашении - я бы рекомендовал использовать текстовое приглашение.

Конструктор

Создайте свой водопад и добавьте свои подсказки в стек диалогов в вашем конструкторе. Не забудьте добавить пользовательский валидатор в текстовое приглашение; в противном случае бот будет неоднократно запрашивать у пользователя его местоположение, так как он ожидает текстовое значение, которое быстрый ответ не предоставляет.

public MultiTurnPromptsBot(MultiTurnPromptsBotAccessors accessors)
{
    ...
    // This array defines how the Waterfall will execute.
    var waterfallSteps = new WaterfallStep[]
    {
        PromptForLocation,
        CaptureLocation,
    };
    ...
    // Add named dialogs to the DialogSet. These names are saved in the dialog state.
    _dialogs.Add(new WaterfallDialog("details", waterfallSteps));
    _dialogs.Add(new TextPrompt("location", LocationPromptValidatorAsync));

}

Валидатор местоположения

В пользовательском валидаторе вы можете проверить входящее действие для объекта местоположения, который находится в свойстве сущностей действия. Если у действия нет местоположения, вы можете вернуть false, и в запросе у пользователя снова будет указано его местоположение; в противном случае он перейдет к следующему шагу.

public Task<bool> LocationPromptValidatorAsync(PromptValidatorContext<string> promptContext, CancellationToken cancellationToken)
{
    var activity = promptContext.Context.Activity;
    var location = activity.Entities?.FirstOrDefault(e => e.Type == "Place");
    if (location != null) {
        return Task.FromResult(true);
    }
    return Task.FromResult(false);
}  

Запрос местоположения

Как и в приведенном выше фрагменте кода, вы можете добавить быстрый ответ Facebook Messenger к данным канала ответа.

private static async Task<DialogTurnResult> PromptForLocation(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
    Activity reply = stepContext.Context.Activity.CreateReply();
    reply.Text = "What is your location?";
    reply.ChannelData = JObject.FromObject( new {

        quick_replies = new object[]
        {
            new
            {
                content_type = "location",
            },
        },
    });

    return await stepContext.PromptAsync("location", new PromptOptions { Prompt = reply }, cancellationToken);
}

Местоположение захвата

Здесь вы можете захватить местоположение пользователя, чтобы использовать его как угодно.

private async Task<DialogTurnResult> CaptureLocation(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{

    var activity = stepContext.Context.Activity;
    var location = activity.Entities?.FirstOrDefault(e => e.Type == "Place");
    if (location != null) {
        var latitude = location.Properties["geo"]?["latitude"].ToString();
        var longitude = location.Properties["geo"]?["longitude"].ToString();

        await stepContext.Context.SendActivityAsync($"Latitude: {latitude} Longitude: {longitude}");

    }
    // WaterfallStep always finishes with the end of the Waterfall or with another dialog, here it is the end.
    return await stepContext.EndDialogAsync(cancellationToken: cancellationToken);
}

Надеюсь, это поможет!

5
задан casperOne 12 September 2012 в 12:55
поделиться

4 ответа

Вы могли просто использовать NerdTree, http://www.vim.org/scripts/script.php?script_id=1658 - "древовидный плагин проводника", который один полезен так или иначе и работа с файлами с того времени. Создание каталогов так же легко как:! каталог mkdir.

1
ответ дан 13 December 2019 в 19:36
поделиться

Вот несколько трудоемкий способ сделать заметки древовидным способом все в энергии:

http://www.youtube.com/watch?v=XPC3YQCID8k

1
ответ дан 13 December 2019 в 19:36
поделиться

Взгляните на VimOutliner.

Кавычка с веб-сайта:

Что такое VimOutliner?

Планировщик Vim является плагином энергии, который превращает мощный редактор Vim в мощный планировщик подобных Грандвью, Больше и MaxThink. Это - keyboarder товарищеская встреча и очень быстрый. Если можно печатать слепым методом, можно обрисовать в общих чертах с такой скоростью, как Вы думаете.

5
ответ дан 13 December 2019 в 19:36
поделиться

Можно смотреть на "DotOutlineTree: Помогает Вам отредактировать структурированный текст".

http://www.vim.org/scripts/script.php?script_id=1225

"Viki/Deplate: персональная Wiki для Vim"

http://www.vim.org/scripts/script.php?script_id=861

3
ответ дан 13 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: