Skip to content

Commit

Permalink
feat: allow sending files (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
imranbarbhuiya committed May 16, 2022
1 parent 6b44920 commit f616c5c
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 10 deletions.
15 changes: 15 additions & 0 deletions packages/tagscript-plugin-discord/src/lib/Parsers/Files.ts
@@ -0,0 +1,15 @@
import { BaseParser, Context, IParser, split } from 'tagscript';

/**
* This parser allows sending files along with message using file url.
*/
export class FilesParser extends BaseParser implements IParser {
public constructor() {
super(['files'], false, true);
}

public parse(ctx: Context) {
ctx.response.actions.files = split(ctx.tag.payload!, true);
return '';
}
}
1 change: 1 addition & 0 deletions packages/tagscript-plugin-discord/src/lib/Parsers/index.ts
Expand Up @@ -2,5 +2,6 @@ export * from './AllowDeny';
export * from './Cooldown';
export * from './Delete';
export * from './Embed';
export * from './Files';
export * from './Format';
export * from './Silent';
15 changes: 15 additions & 0 deletions packages/tagscript-plugin-discord/src/lib/interfaces/index.ts
@@ -0,0 +1,15 @@
import { MessageEmbedOptions } from 'discord.js';
import 'tagscript';

declare module 'tagscript' {
export interface IActions {
cooldown?: {
cooldown: number;
message: string | null;
};
embed?: MessageEmbedOptions;
deleteMessage?: boolean;
silentResponse?: boolean;
files?: string[];
}
}
11 changes: 11 additions & 0 deletions packages/tagscript-plugin-discord/tests/Parsers/Files.test.ts
@@ -0,0 +1,11 @@
import { Interpreter } from 'tagscript';
import { FilesParser } from '../../src';

describe('Files', () => {
test('GIVEN file url WHEN parse THEN return empty string and url in actions', async () => {
const ts = new Interpreter(new FilesParser());
const text = '{files:https://example.com/file.txt,https://example.com/file2.txt}';

expect((await ts.run(text)).actions.files).toStrictEqual(['https://example.com/file.txt', 'https://example.com/file2.txt']);
});
});
15 changes: 15 additions & 0 deletions packages/tagscript-plugin-discord/tests/interface.ts
@@ -0,0 +1,15 @@
import { MessageEmbedOptions } from 'discord.js';
import 'tagscript';

declare module 'tagscript' {
export interface IActions {
cooldown?: {
cooldown: number;
message: string | null;
};
embed?: MessageEmbedOptions;
deleteMessage?: boolean;
silentResponse?: boolean;
files?: string[];
}
}
12 changes: 2 additions & 10 deletions packages/tagscript/src/lib/interfaces/index.ts
@@ -1,4 +1,3 @@
import type { Snowflake, MessageEmbedOptions } from 'discord.js';
import type { Context, Lexer } from '../Interpreter';
import type { Awaitable } from '../Utils/Util';

Expand Down Expand Up @@ -32,13 +31,6 @@ export interface IParser {
export interface IKeyValues {}

export interface IActions {
cooldown?: {
cooldown: number;
message: string | null;
};
require?: { ids: Snowflake[]; message: string | null };
deny?: { ids: Snowflake[]; message: string | null };
embed?: MessageEmbedOptions;
deleteMessage?: boolean;
silentResponse?: boolean;
require?: { ids: string[]; message: string | null };
deny?: { ids: string[]; message: string | null };
}

0 comments on commit f616c5c

Please sign in to comment.