anote

Форк
0
/
Parser.ts 
51 строка · 1.4 Кб
1
import { Context } from "telegraf";
2
import { Command } from "../commands/Command";
3
import { Note } from "../types/Types";
4
import { amendKeywords, keywords } from "./Keywords";
5

6
export default class Parser {
7
    input: string;
8

9
    constructor(ctx: Context){
10
        this.input = new Command(ctx).getCurrentText();
11
    }
12

13
    getJson(): Note {
14
        return {
15
            name: this.getName(),
16
            body: 'In progress'
17
        }
18
    }
19

20
    getMessageText(): string {
21
        return this.input;
22
    }
23

24
    isValidCommand(): boolean {
25
        return keywords.some((keyword) => this.input.includes(keyword));
26
    }
27

28
    getStringAfterKeyword() {
29
        const index: number = this.input.indexOf(' ');
30
        return this.input.slice(index, this.input.length).trim();
31
    }
32

33
    getCommandName(): string {
34
        return this.input.trim().split(" ")[0];
35
    }
36

37
    private getName(): string {
38
        let commandName: string = ''; 
39
        if(this.isAmendCommand()){
40
            const firstSpaceIndex: number = this.input.indexOf(' ');
41
            const noCommanKeyword: string = this.input.slice(firstSpaceIndex, this.input.length);
42
            const secondSpaceIndex: number = noCommanKeyword.indexOf(' ');
43
            commandName = noCommanKeyword.slice(0, secondSpaceIndex);
44
        }
45
        return commandName;
46
    }
47

48
    private isAmendCommand(): boolean {
49
        return amendKeywords.some((keyword) => this.input.includes(keyword));
50
    }
51
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.