@2byte/tgbot-framework 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +300 -300
  2. package/bin/2byte-cli.ts +97 -97
  3. package/package.json +54 -54
  4. package/src/cli/CreateBotCommand.ts +181 -181
  5. package/src/cli/GenerateCommand.ts +195 -195
  6. package/src/cli/InitCommand.ts +107 -107
  7. package/src/cli/TgAccountManager.ts +50 -50
  8. package/src/console/migrate.ts +82 -82
  9. package/src/core/ApiService.ts +20 -20
  10. package/src/core/ApiServiceManager.ts +63 -63
  11. package/src/core/App.ts +1157 -1143
  12. package/src/core/BotArtisan.ts +79 -79
  13. package/src/core/BotMigration.ts +30 -30
  14. package/src/core/BotSeeder.ts +66 -66
  15. package/src/core/Model.ts +84 -84
  16. package/src/core/utils.ts +2 -2
  17. package/src/illumination/Artisan.ts +149 -149
  18. package/src/illumination/InlineKeyboard.ts +61 -61
  19. package/src/illumination/Message2Byte.ts +255 -255
  20. package/src/illumination/Message2ByteLiveProgressive.ts +278 -278
  21. package/src/illumination/Message2bytePool.ts +107 -107
  22. package/src/illumination/Migration.ts +186 -186
  23. package/src/illumination/RunSectionRoute.ts +85 -85
  24. package/src/illumination/Section.ts +410 -410
  25. package/src/illumination/SectionComponent.ts +64 -64
  26. package/src/illumination/Telegraf2byteContext.ts +32 -32
  27. package/src/index.ts +42 -42
  28. package/src/libs/TelegramAccountControl.ts +1140 -1140
  29. package/src/libs/TgSender.ts +53 -53
  30. package/src/models/Model.ts +67 -67
  31. package/src/models/Proxy.ts +217 -217
  32. package/src/models/TgAccount.ts +362 -362
  33. package/src/models/index.ts +2 -2
  34. package/src/types.ts +191 -191
  35. package/src/user/UserModel.ts +297 -297
  36. package/src/user/UserStore.ts +119 -119
  37. package/src/workflow/services/MassSendApiService.ts +80 -80
  38. package/templates/bot/.env.example +34 -23
  39. package/templates/bot/artisan.ts +8 -8
  40. package/templates/bot/bot.ts +82 -82
  41. package/templates/bot/database/dbConnector.ts +4 -4
  42. package/templates/bot/database/migrate.ts +9 -9
  43. package/templates/bot/database/migrations/001_create_users.sql +18 -18
  44. package/templates/bot/database/migrations/007_proxy.sql +27 -27
  45. package/templates/bot/database/migrations/008_tg_accounts.sql +32 -32
  46. package/templates/bot/database/seed.ts +14 -14
  47. package/templates/bot/docs/CLI_SERVICES.md +536 -536
  48. package/templates/bot/docs/INPUT_SYSTEM.md +211 -211
  49. package/templates/bot/docs/SERVICE_EXAMPLES.md +384 -384
  50. package/templates/bot/docs/TASK_SYSTEM.md +156 -156
  51. package/templates/bot/models/Model.ts +7 -7
  52. package/templates/bot/models/index.ts +1 -1
  53. package/templates/bot/package.json +30 -30
  54. package/templates/bot/sectionList.ts +9 -9
  55. package/templates/bot/sections/ExampleInputSection.ts +85 -85
  56. package/templates/bot/sections/ExampleLiveTaskerSection.ts +60 -60
  57. package/templates/bot/sections/HomeSection.ts +63 -63
  58. package/templates/bot/workflow/services/ExampleService.ts +23 -23
@@ -1,19 +1,19 @@
1
- -- UP
2
- CREATE TABLE IF NOT EXISTS `users` (
3
- `id` INTEGER PRIMARY KEY AUTOINCREMENT,
4
- `user_refid` INTEGER DEFAULT 0,
5
- `role` TEXT DEFAULT 'user',
6
- `tg_id` INTEGER NOT NULL UNIQUE,
7
- `tg_username` TEXT,
8
- `tg_full_name` TEXT GENERATED ALWAYS AS (trim(coalesce(tg_first_name, '') || ' ' || coalesce(tg_last_name, ''))) VIRTUAL,
9
- `tg_first_name` TEXT,
10
- `tg_last_name` TEXT,
11
- `is_banned_by_user` INTEGER DEFAULT 0,
12
- `is_banned_by_admin` INTEGER DEFAULT 0,
13
- `banned_reason` TEXT,
14
- `language` TEXT DEFAULT 'en',
15
- `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
- `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
17
- );
18
- -- DOWN
1
+ -- UP
2
+ CREATE TABLE IF NOT EXISTS `users` (
3
+ `id` INTEGER PRIMARY KEY AUTOINCREMENT,
4
+ `user_refid` INTEGER DEFAULT 0,
5
+ `role` TEXT DEFAULT 'user',
6
+ `tg_id` INTEGER NOT NULL UNIQUE,
7
+ `tg_username` TEXT,
8
+ `tg_full_name` TEXT GENERATED ALWAYS AS (trim(coalesce(tg_first_name, '') || ' ' || coalesce(tg_last_name, ''))) VIRTUAL,
9
+ `tg_first_name` TEXT,
10
+ `tg_last_name` TEXT,
11
+ `is_banned_by_user` INTEGER DEFAULT 0,
12
+ `is_banned_by_admin` INTEGER DEFAULT 0,
13
+ `banned_reason` TEXT,
14
+ `language` TEXT DEFAULT 'en',
15
+ `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
+ `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
17
+ );
18
+ -- DOWN
19
19
  DROP TABLE IF EXISTS `users`;
@@ -1,27 +1,27 @@
1
- -- UP
2
- CREATE TABLE IF NOT EXISTS proxy (
3
- id INTEGER PRIMARY KEY AUTOINCREMENT,
4
- ip TEXT NOT NULL,
5
- port INTEGER NOT NULL,
6
- username TEXT,
7
- password TEXT,
8
- secret TEXT,
9
- socksType INTEGER CHECK(socksType IN (4, 5)),
10
- MTProxy INTEGER DEFAULT 0,
11
- country TEXT,
12
- status INTEGER DEFAULT 0,
13
- source TEXT,
14
- last_check DATETIME,
15
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
16
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
17
- );
18
-
19
- CREATE TRIGGER IF NOT EXISTS proxy_updated_at
20
- AFTER UPDATE ON proxy
21
- FOR EACH ROW
22
- BEGIN
23
- UPDATE proxy SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
24
- END;
25
-
26
- -- DOWN
27
- DROP TABLE IF EXISTS proxy;
1
+ -- UP
2
+ CREATE TABLE IF NOT EXISTS proxy (
3
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
4
+ ip TEXT NOT NULL,
5
+ port INTEGER NOT NULL,
6
+ username TEXT,
7
+ password TEXT,
8
+ secret TEXT,
9
+ socksType INTEGER CHECK(socksType IN (4, 5)),
10
+ MTProxy INTEGER DEFAULT 0,
11
+ country TEXT,
12
+ status INTEGER DEFAULT 0,
13
+ source TEXT,
14
+ last_check DATETIME,
15
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
16
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
17
+ );
18
+
19
+ CREATE TRIGGER IF NOT EXISTS proxy_updated_at
20
+ AFTER UPDATE ON proxy
21
+ FOR EACH ROW
22
+ BEGIN
23
+ UPDATE proxy SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
24
+ END;
25
+
26
+ -- DOWN
27
+ DROP TABLE IF EXISTS proxy;
@@ -1,32 +1,32 @@
1
- -- UP
2
- CREATE TABLE IF NOT EXISTS tg_accounts (
3
- id INTEGER PRIMARY KEY AUTOINCREMENT,
4
- phone TEXT NOT NULL UNIQUE,
5
- session TEXT NULL,
6
- password TEXT NULL,
7
- country TEXT NULL,
8
- proxy_id INTEGER NULL,
9
- status INTEGER DEFAULT 0,
10
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
11
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
12
- );
13
-
14
- -- Создаем индекс для быстрого поиска по номеру телефона
15
- CREATE INDEX IF NOT EXISTS idx_accounts_phone ON accounts(phone);
16
-
17
- -- Создаем индекс для фильтрации по статусу
18
- CREATE INDEX IF NOT EXISTS idx_accounts_status ON accounts(status);
19
-
20
- -- Создаем индекс для фильтрации по стране
21
- CREATE INDEX IF NOT EXISTS idx_accounts_country ON accounts(country);
22
-
23
- -- Создаем триггер для автоматического обновления updated_at
24
- CREATE TRIGGER IF NOT EXISTS accounts_updated_at
25
- AFTER UPDATE ON accounts
26
- FOR EACH ROW
27
- BEGIN
28
- UPDATE accounts SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
29
- END;
30
-
31
- -- DOWN
32
- DROP TABLE IF EXISTS tg_accounts;
1
+ -- UP
2
+ CREATE TABLE IF NOT EXISTS tg_accounts (
3
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
4
+ phone TEXT NOT NULL UNIQUE,
5
+ session TEXT NULL,
6
+ password TEXT NULL,
7
+ country TEXT NULL,
8
+ proxy_id INTEGER NULL,
9
+ status INTEGER DEFAULT 0,
10
+ created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
11
+ updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
12
+ );
13
+
14
+ -- Создаем индекс для быстрого поиска по номеру телефона
15
+ CREATE INDEX IF NOT EXISTS idx_accounts_phone ON accounts(phone);
16
+
17
+ -- Создаем индекс для фильтрации по статусу
18
+ CREATE INDEX IF NOT EXISTS idx_accounts_status ON accounts(status);
19
+
20
+ -- Создаем индекс для фильтрации по стране
21
+ CREATE INDEX IF NOT EXISTS idx_accounts_country ON accounts(country);
22
+
23
+ -- Создаем триггер для автоматического обновления updated_at
24
+ CREATE TRIGGER IF NOT EXISTS accounts_updated_at
25
+ AFTER UPDATE ON accounts
26
+ FOR EACH ROW
27
+ BEGIN
28
+ UPDATE accounts SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
29
+ END;
30
+
31
+ -- DOWN
32
+ DROP TABLE IF EXISTS tg_accounts;
@@ -1,15 +1,15 @@
1
- import { BotSeeder } from '@2byte/tgbot-framework';
2
- import path from 'path';
3
-
4
- // Импортируйте здесь ваши сидеры
5
- // import { seedUsers } from './seeds/users';
6
-
7
- const seeder = new BotSeeder({
8
- botPath: __dirname,
9
- databasePath: path.join(__dirname, 'database.sqlite'),
10
- seeders: [
11
- // seedUsers,
12
- ]
13
- });
14
-
1
+ import { BotSeeder } from '@2byte/tgbot-framework';
2
+ import path from 'path';
3
+
4
+ // Импортируйте здесь ваши сидеры
5
+ // import { seedUsers } from './seeds/users';
6
+
7
+ const seeder = new BotSeeder({
8
+ botPath: __dirname,
9
+ databasePath: path.join(__dirname, 'database.sqlite'),
10
+ seeders: [
11
+ // seedUsers,
12
+ ]
13
+ });
14
+
15
15
  seeder.run();