telegram-badge 1.1.1 → 1.2.0

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.
package/README.md CHANGED
@@ -4,16 +4,26 @@
4
4
 
5
5
  [![Build Status](https://github.com/chatman-media/telegram-badge/workflows/CI/badge.svg)](https://github.com/chatman-media/telegram-badge/actions)
6
6
  [![npm version](https://badge.fury.io/js/telegram-badge.svg)](https://badge.fury.io/js/telegram-badge)
7
+ [![npm downloads](https://img.shields.io/npm/dm/telegram-badge.svg)](https://www.npmjs.com/package/telegram-badge)
8
+ [![npm bundle size](https://img.shields.io/bundlephobia/minzip/telegram-badge)](https://bundlephobia.com/package/telegram-badge)
7
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue.svg)](https://www.typescriptlang.org/)
8
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+
12
+ [![GitHub stars](https://img.shields.io/github/stars/chatman-media/telegram-badge?style=social)](https://github.com/chatman-media/telegram-badge)
9
13
  [![dev.to](https://img.shields.io/badge/dev.to-Article-0A0A0A.svg?style=flat&logo=dev.to)](https://dev.to/chatman-media/show-your-telegram-group-member-count-in-github-readme-46pl)
10
- [![X (Twitter)](https://img.shields.io/badge/Tweet-1DA1F2.svg?style=flat&logo=x&logoColor=white)](https://x.com/chatman_media/status/1947399700795244694)
14
+ [![X (Twitter)](https://img.shields.io/badge/Tweet-1DA1F2.svg?style=flat&logo=x&logoColor=white)](https://x.com/status/1947399700795244694)
11
15
 
12
16
  This project generates SVG badges with the current member count of your Telegram group. Perfect for displaying community activity in GitHub README files or on websites.
13
17
 
14
- ## 🚀 Demo
18
+ ## 🚀 Quick Start
19
+
20
+ Just use URL parameters to generate badges for any Telegram channel or group:
21
+
22
+ ```
23
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
24
+ ```
15
25
 
16
- ![Telegram Group Members](https://telegram-badge.vercel.app/api/telegram-badge)
26
+ ![Telegram Group Members](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat)
17
27
 
18
28
  ---
19
29
 
@@ -26,63 +36,56 @@ This project generates SVG badges with the current member count of your Telegram
26
36
 
27
37
  ---
28
38
 
29
- ## 🛠 Installation
39
+ ## 🧩 Usage
30
40
 
31
- 1. Clone the repository:
32
-
33
- ```bash
34
- git clone https://github.com/chatman-media/telegram-badge.git
35
- cd telegram-badge
36
- ```
41
+ ### Primary Method: URL Parameters (No Setup Required!)
37
42
 
38
- 2. Install dependencies:
43
+ Simply add your Telegram channel/group ID to the URL:
39
44
 
40
- ```bash
41
- npm install
42
- # or
43
- bun install
45
+ ```markdown
46
+ ![Telegram Badge](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel)
44
47
  ```
45
48
 
46
- 3. Create a .env file and add:
49
+ That's it! No deployment, no bot token needed.
47
50
 
48
- ```bash
49
- BOT_TOKEN=your_telegram_bot_token
50
- CHAT_ID=@your_group_username_or_chat_id
51
- ```
51
+ ### Alternative Method: Self-Hosted Deployment
52
52
 
53
- **Note:** For public groups/channels, the bot doesn't need to be added as a member. For private groups, the bot must be added to the group.
53
+ For advanced users who want to host their own instance:
54
54
 
55
- ## 🧪 Local Development
55
+ #### 1. Prerequisites
56
+ - Telegram Bot Token (create via [@BotFather](https://t.me/botfather))
57
+ - Vercel account (or any Node.js hosting)
56
58
 
57
- ```bash
58
- npm run dev
59
- # or
60
- bun dev
61
- ```
59
+ #### 2. Deploy to Vercel
62
60
 
63
- Open in browser: http://localhost:3000/api/telegram-badge
61
+ [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fchatman-media%2Ftelegram-badge)
64
62
 
65
- ## ☁️ Deploy to Vercel
63
+ Set environment variables:
64
+ - `BOT_TOKEN`: Your Telegram bot token
65
+ - `CHAT_ID`: Default chat ID (optional if using URL parameters)
66
66
 
67
- 1. Deploy the repository to vercel.com
68
- 2. Add environment variables in project settings:
69
- - BOT_TOKEN
70
- - CHAT_ID
67
+ #### 3. Local Development
71
68
 
72
- ## 🧩 Usage in GitHub README
69
+ ```bash
70
+ git clone https://github.com/chatman-media/telegram-badge.git
71
+ cd telegram-badge
72
+ npm install
73
73
 
74
- Add the following line to your README.md:
74
+ # Create .env file
75
+ echo "BOT_TOKEN=your_bot_token" > .env
76
+ echo "CHAT_ID=@your_channel" >> .env
75
77
 
76
- ```markdown
77
- ![Telegram Group Badge](https://telegram-badge.vercel.app/api/telegram-badge)
78
+ npm run dev
78
79
  ```
79
80
 
81
+
80
82
  ### 🎨 Styling Parameters
81
83
 
82
84
  You can customize the badge appearance using the following parameters:
83
85
 
84
86
  | Parameter | Description | Default Value |
85
87
  |-----------|-------------|---------------|
88
+ | `channelId` | Telegram chat ID or username (e.g., ``) | From environment |
86
89
  | `style` | Badge style | `flat` |
87
90
  | `label` | Label text | `Telegram` |
88
91
  | `color` | Main badge color | `2AABEE` (Telegram color) |
@@ -101,60 +104,71 @@ You can customize the badge appearance using the following parameters:
101
104
 
102
105
  Standard badge (flat style):
103
106
  ```
104
- https://telegram-badge.vercel.app/api/telegram-badge
107
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
105
108
  ```
106
- ![Flat](https://telegram-badge.vercel.app/api/telegram-badge)
109
+ ![Flat](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat)
107
110
 
108
111
  Badge with plastic style:
109
112
  ```
110
- https://telegram-badge.vercel.app/api/telegram-badge?style=plastic
113
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=plastic
111
114
  ```
112
- ![Plastic](https://telegram-badge.vercel.app/api/telegram-badge?style=plastic)
115
+ ![Plastic](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=plastic)
113
116
 
114
117
  Badge with flat-square style:
115
118
  ```
116
- https://telegram-badge.vercel.app/api/telegram-badge?style=flat-square
119
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=flat-square
117
120
  ```
118
- ![Flat-Square](https://telegram-badge.vercel.app/api/telegram-badge?style=flat-square)
121
+ ![Flat-Square](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=flat-square)
119
122
 
120
123
  Badge with for-the-badge style:
121
124
  ```
122
- https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge
125
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge
123
126
  ```
124
- ![For-The-Badge](https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge)
127
+ ![For-The-Badge](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=for-the-badge)
125
128
 
126
129
  Badge with social style:
127
130
  ```
128
- https://telegram-badge.vercel.app/api/telegram-badge?style=social
131
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=social
129
132
  ```
130
- ![Social](https://telegram-badge.vercel.app/api/telegram-badge?style=social)
133
+ ![Social](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=social)
131
134
 
132
135
  Badge with custom label and color:
133
136
  ```
134
- https://telegram-badge.vercel.app/api/telegram-badge?label=Join%20Chat&color=00FF00
137
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&label=Join%20Chat&color=00FF00
135
138
  ```
136
- ![Custom](https://telegram-badge.vercel.app/api/telegram-badge?label=Join%20Chat&color=00FF00)
139
+ ![Custom](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&label=Join%20Chat&color=00FF00)
137
140
 
138
141
  Fully customized badge:
139
142
  ```
140
- https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge&label=Community&color=FF5733&labelColor=1A1A1A
143
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge&label=Community&color=FF5733&labelColor=1A1A1A
141
144
  ```
142
- ![Full Custom](https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge&label=Community&color=FF5733&labelColor=1A1A1A)
145
+ ![Full Custom](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=for-the-badge&label=Community&color=FF5733&labelColor=1A1A1A)
143
146
 
144
147
  Badge without logo:
145
148
  ```
146
- https://telegram-badge.vercel.app/api/telegram-badge?logo=false
149
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&logo=false
150
+ ```
151
+ ![No Logo](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&logo=false)
152
+
153
+ Badge for specific channel:
154
+ ```
155
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
156
+ ```
157
+
158
+ Badge with custom styling:
159
+ ```
160
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge&color=FF5733
147
161
  ```
148
- ![No Logo](https://telegram-badge.vercel.app/api/telegram-badge?logo=false)
149
162
 
150
163
  ## ✨ Features
151
164
 
152
165
  - 👥 Real-time member count display
166
+ - 🔗 Direct URL parameters - no setup required!
153
167
  - 🎨 Full badge appearance customization
154
- - 🔒 Support for .env and Vercel environment variables for secure token storage
168
+ - 🔒 Optional self-hosting with secure token storage
155
169
  - ⚡ Optimized caching for fast loading
156
170
  - 🛡️ Error handling with informative messages
157
- - 🆓 Free on Vercel with normal usage
171
+ - 🆓 Free to use
158
172
  - 📡 Can be extended to show activity/message count
159
173
  - 🧪 Comprehensive test suite with TypeScript
160
174
 
@@ -199,6 +213,16 @@ Build the project:
199
213
  npm run build
200
214
  ```
201
215
 
216
+ ## Star History
217
+
218
+ <a href="https://www.star-history.com/#chatman-media/telegram-badge&Date">
219
+ <picture>
220
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date&theme=dark" />
221
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date" />
222
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date" />
223
+ </picture>
224
+ </a>
225
+
202
226
  ## 🤝 Contributing
203
227
 
204
228
  1. Fork the repository
@@ -207,6 +231,30 @@ npm run build
207
231
  4. Push to the branch (`git push origin feature/amazing-feature`)
208
232
  5. Open a Pull Request
209
233
 
234
+ ## Subscribe
235
+
236
+ [![TikTok](https://img.shields.io/badge/TikTok-000000?style=for-the-badge&logo=tiktok&logoColor=white&labelColor=1c1917)](https://www.tiktok.com/@chatman.media)
237
+ [![twitch](https://img.shields.io/badge/Twitch-9146FF?style=for-the-badge&logo=twitch&logoColor=white&labelColor=1c1917)](https://www.twitch.tv/chatman1984)
238
+ [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white&labelColor=1c1917)](https://www.youtube.com/@chatman-media)
239
+ [![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white&labelColor=1c1917)](https://t.me/alexanderkireyev)
240
+ [![X](https://img.shields.io/badge/Twitter-000000?style=for-the-badge&logo=x&logoColor=white&labelColor=1c1917)](https://x.com)
241
+
242
+ ## Support 💝🚀
243
+
244
+ - **BTC:** 14s9Y9Rb2CUWHSAatiQMhfkpx1MWXofUzw
245
+ - **TON:** UQD1M80nPyzph5ZW1vfp_r19XI5MaerNhDq4dWXbXCo96WFj
246
+ - **NOT:** UQD1M80nPyzph5ZW1vfp_r19XI5MaerNhDq4dWXbXCo96WFj
247
+ - **ETH:** 0x286D65151b622dCC16624cEd8463FDa45585fd60
248
+
249
+ <div align="center">
250
+
251
+ <img src="public/btc.png" alt="BTC" style="height: 185px" />
252
+ <img src="public/ton.png" alt="TON" style="height: 185px" />
253
+ <img src="public/not.png" alt="NOT" style="height: 185px" />
254
+ <img src="public/eth.png" alt="ETH" style="height: 185px" />
255
+
256
+ </div>
257
+
210
258
  ## 📜 License
211
259
 
212
260
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
package/README.ru.md CHANGED
@@ -4,75 +4,78 @@
4
4
 
5
5
  [![Build Status](https://github.com/chatman-media/telegram-badge/workflows/CI/badge.svg)](https://github.com/chatman-media/telegram-badge/actions)
6
6
  [![npm version](https://badge.fury.io/js/telegram-badge.svg)](https://badge.fury.io/js/telegram-badge)
7
+ [![npm downloads](https://img.shields.io/npm/dm/telegram-badge.svg)](https://www.npmjs.com/package/telegram-badge)
8
+ [![npm bundle size](https://img.shields.io/bundlephobia/minzip/telegram-badge)](https://bundlephobia.com/package/telegram-badge)
7
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue.svg)](https://www.typescriptlang.org/)
8
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+
12
+ [![GitHub stars](https://img.shields.io/github/stars/chatman-media/telegram-badge?style=social)](https://github.com/chatman-media/telegram-badge)
9
13
  [![dev.to](https://img.shields.io/badge/dev.to-Article-0A0A0A.svg?style=flat&logo=dev.to)](https://dev.to/chatman-media/show-your-telegram-group-member-count-in-github-readme-46pl)
10
14
  [![X (Twitter)](https://img.shields.io/badge/Tweet-1DA1F2.svg?style=flat&logo=x&logoColor=white)](https://x.com/chatman_media/status/1947399700795244694)
11
15
 
12
16
  Этот проект генерирует SVG-бейдж с текущим количеством участников вашей Telegram-группы. Идеально подходит для отображения активности сообщества в README на GitHub или на сайте.
13
17
 
14
- ## 🚀 Демо
18
+ ## 🚀 Быстрый старт
19
+
20
+ Просто используйте параметры URL для генерации бейджей для любого Telegram-канала или группы:
21
+
22
+ ```
23
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
24
+ ```
15
25
 
16
- ![Telegram Group Members](https://telegram-badge.vercel.app/api/telegram-badge)
26
+ ![Telegram Group Members](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat)
17
27
 
18
28
  ---
19
29
 
20
30
  ## 📦 Стек
21
31
 
22
- - Node.js / Bun
32
+ - Node.js / TypeScript
23
33
  - Telegram Bot API
24
34
  - Vercel (Serverless API)
35
+ - Jest для тестирования
25
36
 
26
37
  ---
27
38
 
28
- ## 🛠 Установка
39
+ ## 🧩 Использование
29
40
 
30
- 1. Клонируйте репозиторий:
41
+ ### Основной метод: параметры URL (настройка не требуется!)
31
42
 
32
- ```bash
33
- git clone https://github.com/chatman-media/telegram-badge.git
34
- cd telegram-badge
35
- ```
43
+ Просто добавьте ID вашего Telegram-канала/группы к URL:
36
44
 
37
- 2. Установите зависимости:
38
-
39
- ```bash
40
- npm install
41
- # или
42
- bun install
45
+ ```markdown
46
+ ![Telegram Badge](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel)
43
47
  ```
44
48
 
45
- 3. Создайте .env файл и добавьте:
49
+ Вот и всё! Не нужно разворачивать проект, не нужен токен бота.
46
50
 
47
- ```bash
48
- BOT_TOKEN=your_telegram_bot_token
49
- CHAT_ID=@your_group_username_or_chat_id
50
- ```
51
+ ### Альтернативный метод: самостоятельный хостинг
51
52
 
52
- **Примечание:** Для публичных групп/каналов бота не нужно добавлять в группу. Для приватных групп бот должен быть участником.
53
+ Для продвинутых пользователей, которые хотят развернуть собственный экземпляр:
53
54
 
54
- ## 🧪 Локальный запуск
55
+ #### 1. Предварительные требования
56
+ - Токен Telegram-бота (создайте через [@BotFather](https://t.me/botfather))
57
+ - Аккаунт Vercel (или любой хостинг Node.js)
55
58
 
56
- ```bash
57
- npm run dev
58
- # или
59
- bun dev
60
- ```
59
+ #### 2. Деплой на Vercel
61
60
 
62
- Открой в браузере: http://localhost:3000/api/telegram-badge
61
+ [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fchatman-media%2Ftelegram-badge)
63
62
 
64
- ## ☁️ Деплой на Vercel
65
- 1. Задеплойте репозиторий на vercel.com
66
- 2. В настройках проекта добавьте переменные окружения:
67
- • BOT_TOKEN
68
- • CHAT_ID
63
+ Установите переменные окружения:
64
+ - `BOT_TOKEN`: Токен вашего Telegram-бота
65
+ - `CHAT_ID`: ID чата по умолчанию (необязательно при использовании параметров URL)
69
66
 
70
- ## 🧩 Использование в GitHub README
67
+ #### 3. Локальная разработка
71
68
 
72
- Добавьте следующую строку в ваш README.md:
69
+ ```bash
70
+ git clone https://github.com/chatman-media/telegram-badge.git
71
+ cd telegram-badge
72
+ npm install
73
73
 
74
- ```markdown
75
- ![Telegram Group Badge](https://telegram-badge.vercel.app/api/telegram-badge)
74
+ # Создайте .env файл
75
+ echo "BOT_TOKEN=your_bot_token" > .env
76
+ echo "CHAT_ID=@your_channel" >> .env
77
+
78
+ npm run dev
76
79
  ```
77
80
 
78
81
  ### 🎨 Параметры стилизации
@@ -81,6 +84,7 @@ bun dev
81
84
 
82
85
  | Параметр | Описание | Значение по умолчанию |
83
86
  |----------|----------|------------------------|
87
+ | `channelId` | ID или имя пользователя Telegram-чата (например, `@timelinestudiochat`) | Из окружения |
84
88
  | `style` | Стиль бейджа | `flat` |
85
89
  | `label` | Текст метки | `Telegram` |
86
90
  | `color` | Цвет основной части бейджа | `2AABEE` (цвет Telegram) |
@@ -99,64 +103,161 @@ bun dev
99
103
 
100
104
  Стандартный бейдж (стиль flat):
101
105
  ```
102
- https://telegram-badge.vercel.app/api/telegram-badge
106
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
103
107
  ```
104
- ![Flat](https://telegram-badge.vercel.app/api/telegram-badge)
108
+ ![Flat](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat)
105
109
 
106
110
  Бейдж со стилем plastic:
107
111
  ```
108
- https://telegram-badge.vercel.app/api/telegram-badge?style=plastic
112
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=plastic
109
113
  ```
110
- ![Plastic](https://telegram-badge.vercel.app/api/telegram-badge?style=plastic)
114
+ ![Plastic](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=plastic)
111
115
 
112
116
  Бейдж со стилем flat-square:
113
117
  ```
114
- https://telegram-badge.vercel.app/api/telegram-badge?style=flat-square
118
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=flat-square
115
119
  ```
116
- ![Flat-Square](https://telegram-badge.vercel.app/api/telegram-badge?style=flat-square)
120
+ ![Flat-Square](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=flat-square)
117
121
 
118
122
  Бейдж со стилем for-the-badge:
119
123
  ```
120
- https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge
124
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge
121
125
  ```
122
- ![For-The-Badge](https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge)
126
+ ![For-The-Badge](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=for-the-badge)
123
127
 
124
128
  Бейдж со стилем social:
125
129
  ```
126
- https://telegram-badge.vercel.app/api/telegram-badge?style=social
130
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=social
127
131
  ```
128
- ![Social](https://telegram-badge.vercel.app/api/telegram-badge?style=social)
132
+ ![Social](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=social)
129
133
 
130
134
  Бейдж с кастомной меткой и цветом:
131
135
  ```
132
- https://telegram-badge.vercel.app/api/telegram-badge?label=Наш%20Чат&color=00FF00
136
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&label=Наш%20Чат&color=00FF00
133
137
  ```
134
- ![Custom](https://telegram-badge.vercel.app/api/telegram-badge?label=Наш%20Чат&color=00FF00)
138
+ ![Custom](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&label=Наш%20Чат&color=00FF00)
135
139
 
136
140
  Полностью кастомизированный бейдж:
137
141
  ```
138
- https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge&label=Сообщество&color=FF5733&labelColor=1A1A1A
142
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge&label=Сообщество&color=FF5733&labelColor=1A1A1A
139
143
  ```
140
- ![Full Custom](https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge&label=Сообщество&color=FF5733&labelColor=1A1A1A)
144
+ ![Full Custom](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=for-the-badge&label=Сообщество&color=FF5733&labelColor=1A1A1A)
141
145
 
142
146
  Бейдж без логотипа:
143
147
  ```
144
- https://telegram-badge.vercel.app/api/telegram-badge?logo=false
148
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&logo=false
145
149
  ```
146
- ![No Logo](https://telegram-badge.vercel.app/api/telegram-badge?logo=false)
150
+ ![No Logo](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&logo=false)
147
151
 
148
- ## 🧠 Возможности
152
+ Бейдж для конкретного канала:
153
+ ```
154
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
155
+ ```
156
+
157
+ Бейдж с пользовательским стилем:
158
+ ```
159
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge&color=FF5733
160
+ ```
161
+
162
+ ## ✨ Возможности
149
163
 
150
164
  - 👥 Отображение количества участников в реальном времени
165
+ - 🔗 Прямые параметры URL - настройка не требуется!
151
166
  - 🎨 Полная кастомизация внешнего вида бейджа
152
- - 🔒 Поддержка .env и переменных Vercel для безопасного хранения токенов
167
+ - 🔒 Опциональный самостоятельный хостинг с безопасным хранением токенов
153
168
  - ⚡ Оптимизированное кэширование для быстрой загрузки
154
169
  - 🛡️ Обработка ошибок с информативными сообщениями
155
- - 🆓 Бесплатно на Vercel при обычной нагрузке
170
+ - 🆓 Бесплатное использование
156
171
  - 📡 Можно расширить до отображения активности / количества сообщений
172
+ - 🧪 Полный набор тестов с TypeScript
173
+
174
+ ## 🔧 Использование API
175
+
176
+ ### Как npm пакет:
177
+
178
+ ```bash
179
+ npm install telegram-badge
180
+ ```
181
+
182
+ ```typescript
183
+ import badgeHandler from 'telegram-badge';
184
+
185
+ // Используйте в вашей serverless функции
186
+ export default badgeHandler;
187
+ ```
188
+
189
+ ### Прямые вызовы API:
190
+
191
+ ```typescript
192
+ GET /api/telegram-badge?style=flat&label=Участники&color=2AABEE&labelColor=555555
193
+ ```
194
+
195
+ ## 🧪 Тестирование
196
+
197
+ Запустить тесты:
198
+
199
+ ```bash
200
+ npm test
201
+ ```
202
+
203
+ Проверка типов:
204
+
205
+ ```bash
206
+ npm run type-check
207
+ ```
157
208
 
158
-
209
+ Сборка проекта:
159
210
 
160
- 📜 Лицензия
211
+ ```bash
212
+ npm run build
213
+ ```
214
+
215
+ ## История звёзд
216
+
217
+ <a href="https://www.star-history.com/#chatman-media/telegram-badge&Date">
218
+ <picture>
219
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date&theme=dark" />
220
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date" />
221
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date" />
222
+ </picture>
223
+ </a>
224
+
225
+ ## 🤝 Внести вклад
226
+
227
+ 1. Форкните репозиторий
228
+ 2. Создайте ветку для новой функции (`git checkout -b feature/amazing-feature`)
229
+ 3. Зафиксируйте изменения (`git commit -m 'Add some amazing feature'`)
230
+ 4. Отправьте ветку (`git push origin feature/amazing-feature`)
231
+ 5. Откройте Pull Request
232
+
233
+ ## Подписывайтесь
234
+
235
+ [![TikTok](https://img.shields.io/badge/TikTok-000000?style=for-the-badge&logo=tiktok&logoColor=white&labelColor=1c1917)](https://www.tiktok.com/@chatman.media)
236
+ [![twitch](https://img.shields.io/badge/Twitch-9146FF?style=for-the-badge&logo=twitch&logoColor=white&labelColor=1c1917)](https://www.twitch.tv/chatman1984)
237
+ [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white&labelColor=1c1917)](https://www.youtube.com/@chatman-media)
238
+ [![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white&labelColor=1c1917)](https://t.me/alexanderkireyev)
239
+ [![X](https://img.shields.io/badge/Twitter-000000?style=for-the-badge&logo=x&logoColor=white&labelColor=1c1917)](https://x.com/timelinestudiochat)
240
+
241
+ ## Поддержка 💝🚀
242
+
243
+ - **BTC:** 14s9Y9Rb2CUWHSAatiQMhfkpx1MWXofUzw
244
+ - **TON:** UQD1M80nPyzph5ZW1vfp_r19XI5MaerNhDq4dWXbXCo96WFj
245
+ - **NOT:** UQD1M80nPyzph5ZW1vfp_r19XI5MaerNhDq4dWXbXCo96WFj
246
+ - **ETH:** 0x286D65151b622dCC16624cEd8463FDa45585fd60
247
+
248
+ <div align="center">
249
+
250
+ <img src="public/btc.png" alt="BTC" style="height: 185px" />
251
+ <img src="public/ton.png" alt="TON" style="height: 185px" />
252
+ <img src="public/not.png" alt="NOT" style="height: 185px" />
253
+ <img src="public/eth.png" alt="ETH" style="height: 185px" />
254
+
255
+ </div>
256
+
257
+ ## 📜 Лицензия
258
+
259
+ Этот проект лицензирован под лицензией MIT - подробности в файле [LICENSE](LICENSE).
260
+
261
+ ---
161
262
 
162
- MIT
263
+ Сделано с ❤️ от [Chatman Media](https://github.com/chatman-media)
package/README.zh.md CHANGED
@@ -4,16 +4,26 @@
4
4
 
5
5
  [![构建状态](https://github.com/chatman-media/telegram-badge/workflows/CI/badge.svg)](https://github.com/chatman-media/telegram-badge/actions)
6
6
  [![npm 版本](https://badge.fury.io/js/telegram-badge.svg)](https://badge.fury.io/js/telegram-badge)
7
+ [![npm 下载量](https://img.shields.io/npm/dm/telegram-badge.svg)](https://www.npmjs.com/package/telegram-badge)
8
+ [![npm 包大小](https://img.shields.io/bundlephobia/minzip/telegram-badge)](https://bundlephobia.com/package/telegram-badge)
7
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue.svg)](https://www.typescriptlang.org/)
8
10
  [![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+
12
+ [![GitHub 星标](https://img.shields.io/github/stars/chatman-media/telegram-badge?style=social)](https://github.com/chatman-media/telegram-badge)
9
13
  [![dev.to](https://img.shields.io/badge/dev.to-Article-0A0A0A.svg?style=flat&logo=dev.to)](https://dev.to/chatman-media/show-your-telegram-group-member-count-in-github-readme-46pl)
10
14
  [![X (Twitter)](https://img.shields.io/badge/Tweet-1DA1F2.svg?style=flat&logo=x&logoColor=white)](https://x.com/chatman_media/status/1947399700795244694)
11
15
 
12
16
  本项目生成显示 Telegram 群组当前成员数量的 SVG 徽章。非常适合在 GitHub README 文件或网站上展示社区活跃度。
13
17
 
14
- ## 🚀 演示
18
+ ## 🚀 快速开始
19
+
20
+ 只需使用 URL 参数即可为任何 Telegram 频道或群组生成徽章:
21
+
22
+ ```
23
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
24
+ ```
15
25
 
16
- ![Telegram 群组成员](https://telegram-badge.vercel.app/api/telegram-badge)
26
+ ![Telegram 群组成员](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat)
17
27
 
18
28
  ---
19
29
 
@@ -26,63 +36,56 @@
26
36
 
27
37
  ---
28
38
 
29
- ## 🛠 安装
39
+ ## 🧩 使用方法
30
40
 
31
- 1. 克隆仓库:
32
-
33
- ```bash
34
- git clone https://github.com/chatman-media/telegram-badge.git
35
- cd telegram-badge
36
- ```
41
+ ### 主要方法:URL 参数(无需任何设置!)
37
42
 
38
- 2. 安装依赖:
43
+ 只需将您的 Telegram 频道/群组 ID 添加到 URL:
39
44
 
40
- ```bash
41
- npm install
42
- # 或
43
- bun install
45
+ ```markdown
46
+ ![Telegram Badge](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel)
44
47
  ```
45
48
 
46
- 3. 创建 .env 文件并添加:
49
+ 就这样!无需部署,无需机器人令牌。
47
50
 
48
- ```bash
49
- BOT_TOKEN=your_telegram_bot_token
50
- CHAT_ID=@your_group_username_or_chat_id
51
- ```
51
+ ### 替代方法:自托管部署
52
52
 
53
- **注意:** 对于公开群组/频道,机器人无需添加为成员。对于私有群组,机器人必须是群组成员。
53
+ 对于想要托管自己实例的高级用户:
54
54
 
55
- ## 🧪 本地开发
55
+ #### 1. 先决条件
56
+ - Telegram 机器人令牌(通过 [@BotFather](https://t.me/botfather) 创建)
57
+ - Vercel 账户(或任何 Node.js 托管)
56
58
 
57
- ```bash
58
- npm run dev
59
- # 或
60
- bun dev
61
- ```
59
+ #### 2. 部署到 Vercel
62
60
 
63
- 在浏览器中打开:http://localhost:3000/api/telegram-badge
61
+ [![使用 Vercel 部署](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fchatman-media%2Ftelegram-badge)
64
62
 
65
- ## ☁️ 部署到 Vercel
63
+ 设置环境变量:
64
+ - `BOT_TOKEN`:您的 Telegram 机器人令牌
65
+ - `CHAT_ID`:默认聊天 ID(如果使用 URL 参数则可选)
66
66
 
67
- 1. 将仓库部署到 vercel.com
68
- 2. 在项目设置中添加环境变量:
69
- - BOT_TOKEN
70
- - CHAT_ID
67
+ #### 3. 本地开发
71
68
 
72
- ## 🧩 在 GitHub README 中使用
69
+ ```bash
70
+ git clone https://github.com/chatman-media/telegram-badge.git
71
+ cd telegram-badge
72
+ npm install
73
73
 
74
- 在您的 README.md 中添加以下代码:
74
+ # 创建 .env 文件
75
+ echo "BOT_TOKEN=your_bot_token" > .env
76
+ echo "CHAT_ID=@your_channel" >> .env
75
77
 
76
- ```markdown
77
- ![Telegram 群组徽章](https://telegram-badge.vercel.app/api/telegram-badge)
78
+ npm run dev
78
79
  ```
79
80
 
81
+
80
82
  ### 🎨 样式参数
81
83
 
82
84
  您可以使用以下参数自定义徽章外观:
83
85
 
84
86
  | 参数 | 描述 | 默认值 |
85
87
  |------|------|--------|
88
+ | `channelId` | Telegram 聊天 ID 或用户名(例如 `@timelinestudiochat`) | 从环境变量 |
86
89
  | `style` | 徽章样式 | `flat` |
87
90
  | `label` | 标签文本 | `Telegram` |
88
91
  | `color` | 主徽章颜色 | `2AABEE`(Telegram 颜色) |
@@ -101,60 +104,71 @@ bun dev
101
104
 
102
105
  标准徽章(扁平样式):
103
106
  ```
104
- https://telegram-badge.vercel.app/api/telegram-badge
107
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
105
108
  ```
106
- ![Flat](https://telegram-badge.vercel.app/api/telegram-badge)
109
+ ![Flat](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat)
107
110
 
108
111
  立体样式徽章:
109
112
  ```
110
- https://telegram-badge.vercel.app/api/telegram-badge?style=plastic
113
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=plastic
111
114
  ```
112
- ![Plastic](https://telegram-badge.vercel.app/api/telegram-badge?style=plastic)
115
+ ![Plastic](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=plastic)
113
116
 
114
117
  方形扁平样式徽章:
115
118
  ```
116
- https://telegram-badge.vercel.app/api/telegram-badge?style=flat-square
119
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=flat-square
117
120
  ```
118
- ![Flat-Square](https://telegram-badge.vercel.app/api/telegram-badge?style=flat-square)
121
+ ![Flat-Square](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=flat-square)
119
122
 
120
123
  for-the-badge 样式徽章:
121
124
  ```
122
- https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge
125
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge
123
126
  ```
124
- ![For-The-Badge](https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge)
127
+ ![For-The-Badge](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=for-the-badge)
125
128
 
126
129
  社交样式徽章:
127
130
  ```
128
- https://telegram-badge.vercel.app/api/telegram-badge?style=social
131
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=social
129
132
  ```
130
- ![Social](https://telegram-badge.vercel.app/api/telegram-badge?style=social)
133
+ ![Social](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=social)
131
134
 
132
135
  自定义标签和颜色的徽章:
133
136
  ```
134
- https://telegram-badge.vercel.app/api/telegram-badge?label=加入聊天&color=00FF00
137
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&label=加入聊天&color=00FF00
135
138
  ```
136
- ![Custom](https://telegram-badge.vercel.app/api/telegram-badge?label=加入聊天&color=00FF00)
139
+ ![Custom](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&label=加入聊天&color=00FF00)
137
140
 
138
141
  完全自定义徽章:
139
142
  ```
140
- https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge&label=社区&color=FF5733&labelColor=1A1A1A
143
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge&label=社区&color=FF5733&labelColor=1A1A1A
141
144
  ```
142
- ![Full Custom](https://telegram-badge.vercel.app/api/telegram-badge?style=for-the-badge&label=社区&color=FF5733&labelColor=1A1A1A)
145
+ ![Full Custom](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&style=for-the-badge&label=社区&color=FF5733&labelColor=1A1A1A)
143
146
 
144
147
  无标志徽章:
145
148
  ```
146
- https://telegram-badge.vercel.app/api/telegram-badge?logo=false
149
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&logo=false
150
+ ```
151
+ ![No Logo](https://telegram-badge.vercel.app/api/telegram-badge?channelId=@timelinestudiochat&logo=false)
152
+
153
+ 特定频道的徽章:
154
+ ```
155
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel
156
+ ```
157
+
158
+ 带自定义样式的徽章:
159
+ ```
160
+ https://telegram-badge.vercel.app/api/telegram-badge?channelId=@your_channel&style=for-the-badge&color=FF5733
147
161
  ```
148
- ![No Logo](https://telegram-badge.vercel.app/api/telegram-badge?logo=false)
149
162
 
150
163
  ## ✨ 功能特性
151
164
 
152
165
  - 👥 实时显示成员数量
166
+ - 🔗 直接 URL 参数 - 无需任何设置!
153
167
  - 🎨 完全自定义徽章外观
154
- - 🔒 支持 .env 和 Vercel 环境变量以安全存储令牌
168
+ - 🔒 可选的自托管与安全令牌存储
155
169
  - ⚡ 优化缓存以实现快速加载
156
170
  - 🛡️ 错误处理和信息提示
157
- - 🆓 在 Vercel 上正常使用免费
171
+ - 🆓 免费使用
158
172
  - 📡 可扩展显示活动/消息计数
159
173
  - 🧪 使用 TypeScript 的完整测试套件
160
174
 
@@ -199,6 +213,16 @@ npm run type-check
199
213
  npm run build
200
214
  ```
201
215
 
216
+ ## 星标历史
217
+
218
+ <a href="https://www.star-history.com/#chatman-media/telegram-badge&Date">
219
+ <picture>
220
+ <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date&theme=dark" />
221
+ <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date" />
222
+ <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=chatman-media/telegram-badge&type=Date" />
223
+ </picture>
224
+ </a>
225
+
202
226
  ## 🤝 贡献
203
227
 
204
228
  1. Fork 本仓库
@@ -207,6 +231,30 @@ npm run build
207
231
  4. 推送到分支(`git push origin feature/amazing-feature`)
208
232
  5. 打开一个 Pull Request
209
233
 
234
+ ## 订阅
235
+
236
+ [![TikTok](https://img.shields.io/badge/TikTok-000000?style=for-the-badge&logo=tiktok&logoColor=white&labelColor=1c1917)](https://www.tiktok.com/@chatman.media)
237
+ [![twitch](https://img.shields.io/badge/Twitch-9146FF?style=for-the-badge&logo=twitch&logoColor=white&labelColor=1c1917)](https://www.twitch.tv/chatman1984)
238
+ [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white&labelColor=1c1917)](https://www.youtube.com/@chatman-media)
239
+ [![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white&labelColor=1c1917)](https://t.me/alexanderkireyev)
240
+ [![X](https://img.shields.io/badge/Twitter-000000?style=for-the-badge&logo=x&logoColor=white&labelColor=1c1917)](https://x.com/chatman_media)
241
+
242
+ ## 支持 💝🚀
243
+
244
+ - **BTC:** 14s9Y9Rb2CUWHSAatiQMhfkpx1MWXofUzw
245
+ - **TON:** UQD1M80nPyzph5ZW1vfp_r19XI5MaerNhDq4dWXbXCo96WFj
246
+ - **NOT:** UQD1M80nPyzph5ZW1vfp_r19XI5MaerNhDq4dWXbXCo96WFj
247
+ - **ETH:** 0x286D65151b622dCC16624cEd8463FDa45585fd60
248
+
249
+ <div align="center">
250
+
251
+ <img src="public/btc.png" alt="BTC" style="height: 185px" />
252
+ <img src="public/ton.png" alt="TON" style="height: 185px" />
253
+ <img src="public/not.png" alt="NOT" style="height: 185px" />
254
+ <img src="public/eth.png" alt="ETH" style="height: 185px" />
255
+
256
+ </div>
257
+
210
258
  ## 📜 许可证
211
259
 
212
260
  本项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
@@ -52,20 +52,24 @@ const logger = {
52
52
  }
53
53
  }
54
54
  };
55
- const validateEnvironment = () => {
55
+ const validateEnvironment = (query) => {
56
56
  const token = process.env.BOT_TOKEN;
57
- const chatId = process.env.CHAT_ID;
57
+ let channelId = process.env.CHAT_ID;
58
+ // Check if channelId is provided via URL parameter
59
+ if (query?.channelId) {
60
+ channelId = Array.isArray(query.channelId) ? query.channelId[0] : query.channelId;
61
+ }
58
62
  if (!token) {
59
63
  throw new Error("Missing BOT_TOKEN environment variable");
60
64
  }
61
- if (!chatId) {
62
- throw new Error("Missing CHAT_ID environment variable");
65
+ if (!channelId) {
66
+ throw new Error("Missing CHAT_ID environment variable or channelId parameter");
63
67
  }
64
- return { token, chatId };
68
+ return { token, channelId };
65
69
  };
66
- const getMemberCount = async (token, chatId) => {
67
- const apiUrl = `https://api.telegram.org/bot${token}/getChatMemberCount?chat_id=${encodeURIComponent(chatId)}`;
68
- logger.debug('Fetching member count', { chatId });
70
+ const getMemberCount = async (token, channelId) => {
71
+ const apiUrl = `https://api.telegram.org/bot${token}/getChatMemberCount?chat_id=${encodeURIComponent(channelId)}`;
72
+ logger.debug('Fetching member count', { channelId });
69
73
  const controller = new AbortController();
70
74
  const timeoutId = setTimeout(() => controller.abort(), 5000);
71
75
  try {
@@ -175,10 +179,12 @@ async function handler(req, res) {
175
179
  }
176
180
  });
177
181
  // Early check for environment variables
178
- if (!process.env.BOT_TOKEN || !process.env.CHAT_ID) {
182
+ const chatIdFromQuery = req.query?.channelId;
183
+ if (!process.env.BOT_TOKEN || (!process.env.CHAT_ID && !chatIdFromQuery)) {
179
184
  logger.error('Missing environment variables', {
180
185
  BOT_TOKEN: !!process.env.BOT_TOKEN,
181
- CHAT_ID: !!process.env.CHAT_ID
186
+ CHAT_ID: !!process.env.CHAT_ID,
187
+ chatIdFromQuery: !!chatIdFromQuery
182
188
  });
183
189
  const errorBadge = createErrorBadge('Missing Config');
184
190
  res.setHeader("Content-Type", "image/svg+xml");
@@ -186,19 +192,19 @@ async function handler(req, res) {
186
192
  res.status(500).send(errorBadge);
187
193
  return;
188
194
  }
189
- const { token, chatId } = validateEnvironment();
190
- logger.debug('Environment validated', { chatId });
195
+ const { token, channelId } = validateEnvironment(req.query);
196
+ logger.debug('Environment validated', { channelId });
191
197
  const ifNoneMatch = req.headers['if-none-match'];
192
198
  const requestEtag = `"${crypto
193
199
  .createHash('md5')
194
- .update(JSON.stringify({ token, chatId, query: req.query, time: Math.floor(Date.now() / 300000) }))
200
+ .update(JSON.stringify({ token, channelId, query: req.query, time: Math.floor(Date.now() / 300000) }))
195
201
  .digest('hex')}"`;
196
202
  if (ifNoneMatch && ifNoneMatch === requestEtag) {
197
203
  logger.info('Returning 304 Not Modified');
198
204
  res.status(304).end();
199
205
  return;
200
206
  }
201
- const members = await getMemberCount(token, chatId);
207
+ const members = await getMemberCount(token, channelId);
202
208
  logger.info('Member count fetched', { members });
203
209
  const badgeOptions = {
204
210
  style: req.query.style,
@@ -145,7 +145,7 @@ describe('Telegram Badge API', () => {
145
145
  .createHash('md5')
146
146
  .update(JSON.stringify({
147
147
  token: 'test_token_for_etag',
148
- chatId: '@test_chat_for_etag',
148
+ channelId: '@test_chat_for_etag',
149
149
  query: {},
150
150
  time: Math.floor(fixedTime / 300000)
151
151
  }))
@@ -45,5 +45,5 @@ export interface Response {
45
45
  }
46
46
  export interface Environment {
47
47
  token: string;
48
- chatId: string;
48
+ channelId: string;
49
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telegram-badge",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "Generate Telegram group member count badges for GitHub README",
5
5
  "keywords": [
6
6
  "telegram",
package/types/index.ts CHANGED
@@ -53,5 +53,5 @@ export interface Response {
53
53
 
54
54
  export interface Environment {
55
55
  token: string;
56
- chatId: string;
56
+ channelId: string;
57
57
  }