Analytics
Installation
PNPm
pnpm add @tlgr/analytics
yarn
yarn add @tlgr/analytics
npm
npm install @tlgr/analytics
Usage
Usage is simple as much as possible.
Example below creates command start and reply with text Hello world.
Example:
example.ts
import { Telegraf } from "telegraf";
import { Analytics } from "@tlgr/analytics";
const bot = new Telegraf("<API TOKEN>");
const analytics = new Analytics(bot, Plugin1, Plugin2, ...etc);
bot.start((ctx) => {
  // send "hello world" when user promts "/start"
  ctx.reply("Hello world");
});
// simple usage
// analytics.enable();
// bot.launch();
// advanced usage
analytics.enable(true); // starts bot. Better use this snippet since it fires additional event "bot:launch"
// some time after
//analytics.disable();
// bot.stop();
// or similar but in one line:
analytics.disable(true); // true = stop bot
Plugins
Currently only 3 plugins available:
- stream
 - console
 - file
 - server
 
Stream
Plugin which accepts writable stream and write result to this stream.
Custom plugins
- import plugin:
 
// filename: custom-plugin.ts
import type { Plugin } from '@tlgr/analytics/plugins';
class MyPlugin implements Plugin {
  name = 'custom plugin';
  constructor(){
    http.initSession();
  }
  listener(event: string, param: any) {
    console.log(event, param);
    if(event === 'my custom event') {
      http.post('http://server.com', param)
    }
  }
  end(){
    http.closeSession();
  }
}
- use custom plugin in your code
 
import { Telegraf } from 'telegraf';
import Analytics from './analytics';
import {MyPlugin} from './custom-plugin';
const TOKEN = '';
const bot = new Telegraf(TOKEN);
const analytics = new Analytics(bot, new MyPlugin());
bot.start(ctx => {
  // sends hello world when user sends "/start" command
  bot.telegram.sendMessage(ctx.chat.id, 'Hello world');
});
analytics.enable(true);