bot-tele 1.0.0 → 1.1.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 +9 -0
- package/main.js +146 -27
- package/package.json +5 -2
- package/template_code.js +44 -0
package/README.md
ADDED
package/main.js
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
const TelegramBot = require('node-telegram-bot-api');
|
2
2
|
const { exec } = require('child_process');
|
3
|
+
const fs = require('fs');
|
3
4
|
|
4
5
|
// Token bot Telegram
|
5
|
-
const token = '
|
6
|
+
const token = 'INPUT_BOT_TELE_API';
|
6
7
|
|
7
8
|
// Inisialisasi bot Telegram
|
8
9
|
const bot = new TelegramBot(token, { polling: true });
|
@@ -24,6 +25,7 @@ bot.onText(/\/start/, (msg) => {
|
|
24
25
|
bot.on('message', (msg) => {
|
25
26
|
const chatId = msg.chat.id;
|
26
27
|
const message = msg.text.trim();
|
28
|
+
const username = msg.from.username; // Peroleh nama pengguna Telegram
|
27
29
|
|
28
30
|
if (userSessions[chatId]) {
|
29
31
|
const step = userSessions[chatId].step;
|
@@ -31,26 +33,26 @@ bot.on('message', (msg) => {
|
|
31
33
|
case 1:
|
32
34
|
// Simpan akses token npmjs
|
33
35
|
userSessions[chatId].npmToken = message;
|
34
|
-
bot.sendMessage(chatId, 'Akses token npmjs lau ogut
|
35
|
-
bot.sendMessage(chatId, '
|
36
|
-
userSessions[chatId].step
|
36
|
+
bot.sendMessage(chatId, 'Akses token npmjs lau ogut keep.');
|
37
|
+
bot.sendMessage(chatId, 'Next, isi nama packages npmjs lau yang udh ada:');
|
38
|
+
userSessions[chatId].step = 2;
|
37
39
|
break;
|
38
40
|
case 2:
|
39
41
|
// Simpan nama proyek npmjs
|
40
42
|
userSessions[chatId].projectName = message;
|
41
43
|
bot.sendMessage(chatId, 'Ok packages npmjs lau udh ogut save.');
|
42
44
|
bot.sendMessage(chatId, 'Input URL repositori GitHub:');
|
43
|
-
userSessions[chatId].step
|
45
|
+
userSessions[chatId].step = 3;
|
44
46
|
break;
|
45
47
|
case 3:
|
46
48
|
// Simpan URL repositori GitHub
|
47
49
|
userSessions[chatId].githubRepo = message;
|
48
|
-
bot.sendMessage(chatId, 'URL repositori GitHub ogut save.');
|
49
50
|
bot.sendMessage(chatId, 'Dono. Ketik /buat untuk memulai pembuatan packages baru dan mempublishnya ke npmjs.');
|
50
|
-
|
51
|
+
bot.sendMessage(chatId, 'URL repositori GitHub ogut save.');
|
52
|
+
userSessions[chatId].step = 4;
|
51
53
|
break;
|
52
54
|
default:
|
53
|
-
bot.sendMessage(chatId, '
|
55
|
+
bot.sendMessage(chatId, 'Tunggu sebentar.');
|
54
56
|
break;
|
55
57
|
}
|
56
58
|
}
|
@@ -62,38 +64,155 @@ bot.onText(/\/buat/, (msg) => {
|
|
62
64
|
const npmToken = userSessions[chatId].npmToken;
|
63
65
|
const projectName = userSessions[chatId].projectName;
|
64
66
|
const githubRepo = userSessions[chatId].githubRepo;
|
67
|
+
const username = msg.from.username; // Peroleh nama pengguna Telegram
|
65
68
|
|
66
69
|
if (!npmToken || !projectName || !githubRepo) {
|
67
|
-
bot.sendMessage(chatId, 'Lengkapi semua datanya dulu
|
70
|
+
bot.sendMessage(chatId, 'Lengkapi semua datanya dulu, ya.');
|
68
71
|
return;
|
69
72
|
}
|
70
73
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
74
|
+
// Generate nama paket baru secara acak
|
75
|
+
const newPackageName = generateRandomPackageName();
|
76
|
+
|
77
|
+
bot.sendMessage(chatId, `📦 Mulai membuat packages baru: ${newPackageName}`);
|
78
|
+
|
79
|
+
// Path ke direktori untuk package baru
|
80
|
+
const packageDirPath = `./${newPackageName}`;
|
81
|
+
|
82
|
+
// Buat direktori baru untuk package baru
|
83
|
+
fs.mkdir(packageDirPath, (err) => {
|
75
84
|
if (err) {
|
76
|
-
// Tanggapan jika
|
77
|
-
bot.sendMessage(chatId, 'Waduh terjadi kesalahan dalam
|
85
|
+
// Tanggapan jika terjadi kesalahan dalam membuat direktori
|
86
|
+
bot.sendMessage(chatId, 'Waduh, terjadi kesalahan dalam membuat packages baru.');
|
78
87
|
console.error(err);
|
79
88
|
return;
|
80
89
|
}
|
81
|
-
|
82
|
-
// Tanggapan jika
|
83
|
-
bot.sendMessage(chatId, `✅ Packages ${
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
exec(`npm install --save ${projectName}@${githubRepo}`, (err, stdout, stderr) => {
|
90
|
+
|
91
|
+
// Tanggapan jika direktori berhasil dibuat
|
92
|
+
bot.sendMessage(chatId, `✅ Packages ${newPackageName} berhasil dibuat.`);
|
93
|
+
|
94
|
+
// Membuat file package.json
|
95
|
+
createPackageJson(newPackageName, githubRepo, projectName, (err) => {
|
88
96
|
if (err) {
|
89
|
-
|
90
|
-
bot.sendMessage(chatId, 'Waduh terjadi kesalahan dalam menambahkan packages sebagai dependents.');
|
97
|
+
bot.sendMessage(chatId, 'Waduh, terjadi kesalahan dalam membuat file package.json.');
|
91
98
|
console.error(err);
|
92
99
|
return;
|
93
100
|
}
|
94
|
-
|
95
|
-
//
|
96
|
-
|
101
|
+
|
102
|
+
// Path ke file kode atau templat kode
|
103
|
+
const templateFilePath = 'template_code.js'; // Ganti dengan path template kode yang sesuai
|
104
|
+
|
105
|
+
// Baca template kode dari file
|
106
|
+
fs.readFile(templateFilePath, 'utf8', (err, data) => {
|
107
|
+
if (err) {
|
108
|
+
bot.sendMessage(chatId, 'Waduh, terjadi kesalahan dalam membaca template kode.');
|
109
|
+
console.error(err);
|
110
|
+
return;
|
111
|
+
}
|
112
|
+
|
113
|
+
// Simpan template kode ke dalam file proyek baru
|
114
|
+
const newPackageFilePath = `${packageDirPath}/index.js`;
|
115
|
+
fs.writeFile(newPackageFilePath, data, (err) => {
|
116
|
+
if (err) {
|
117
|
+
bot.sendMessage(chatId, 'Waduh, terjadi kesalahan dalam menyimpan kode proyek baru.');
|
118
|
+
console.error(err);
|
119
|
+
return;
|
120
|
+
}
|
121
|
+
|
122
|
+
// Tanggapan jika kode proyek berhasil disimpan
|
123
|
+
bot.sendMessage(chatId, `✅ Kode proyek ${newPackageName} berhasil disimpan.`);
|
124
|
+
|
125
|
+
// Perintah untuk mempublish proyek ke npmjs dengan nama paket baru
|
126
|
+
exec(`npm publish ${packageDirPath}`, (err, stdout, stderr) => {
|
127
|
+
if (err) {
|
128
|
+
// Tanggapan jika ada kesalahan dalam mempublish proyek
|
129
|
+
bot.sendMessage(chatId, 'Waduh terjadi kesalahan dalam mempublish packages.');
|
130
|
+
console.error(err);
|
131
|
+
return;
|
132
|
+
}
|
133
|
+
|
134
|
+
// Tanggapan jika proyek berhasil dipublish
|
135
|
+
bot.sendMessage(chatId, `✅ Packages ${newPackageName} berhasil dipublish ke npmjs.`);
|
136
|
+
bot.sendMessage(chatId, '🔗 Menambahkan packages sebagai dependents ke packages npmjs lau yang sudah ada...');
|
137
|
+
|
138
|
+
// Perintah untuk menambahkan proyek sebagai dependensi
|
139
|
+
exec(`npm i ${projectName} -g latest`, (err, stdout, stderr) => {
|
140
|
+
if (err) {
|
141
|
+
// Tanggapan jika ada kesalahan dalam menambahkan dependensi
|
142
|
+
bot.sendMessage(chatId, 'Waduh terjadi kesalahan dalam menambahkan packages sebagai dependents.');
|
143
|
+
console.error(err);
|
144
|
+
return;
|
145
|
+
}
|
146
|
+
|
147
|
+
// Perintah untuk menambahkan packages yang baru dibuat sebagai dependensi
|
148
|
+
exec(`npm i ${newPackageName} -g latest`, (err, stdout, stderr) => {
|
149
|
+
if (err) {
|
150
|
+
// Tanggapan jika ada kesalahan dalam menambahkan dependensi
|
151
|
+
bot.sendMessage(chatId, 'Waduh terjadi kesalahan dalam menambahkan packages sebagai dependents.');
|
152
|
+
console.error(err);
|
153
|
+
return;
|
154
|
+
}
|
155
|
+
|
156
|
+
// Tanggapan jika proyek berhasil ditambahkan sebagai dependensi
|
157
|
+
bot.sendMessage(chatId, `✅ Proyek ${newPackageName} berhasil ditambahkan sebagai dependents. Run /start untuk memulai ulang`);
|
158
|
+
});
|
159
|
+
});
|
160
|
+
});
|
161
|
+
});
|
162
|
+
});
|
97
163
|
});
|
98
164
|
});
|
99
165
|
});
|
166
|
+
|
167
|
+
// Fungsi untuk menghasilkan nama paket baru secara acak
|
168
|
+
function generateRandomPackageName() {
|
169
|
+
const length = 10;
|
170
|
+
const characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
171
|
+
let packageName = '';
|
172
|
+
for (let i = 0; i < length; i++) {
|
173
|
+
packageName += characters.charAt(Math.floor(Math.random() * characters.length));
|
174
|
+
}
|
175
|
+
return packageName;
|
176
|
+
}
|
177
|
+
|
178
|
+
// Fungsi untuk membuat file package.json
|
179
|
+
function createPackageJson(packageName, githubRepo, projectName, callback) {
|
180
|
+
// Dapatkan versi terbaru dari paket yang ada menggunakan npm
|
181
|
+
exec(`npm show ${projectName} version`, (err, stdout, stderr) => {
|
182
|
+
if (err) {
|
183
|
+
console.error(err);
|
184
|
+
// Tanggapan jika terjadi kesalahan saat mengambil versi
|
185
|
+
bot.sendMessage(chatId, 'Waduh, terjadi kesalahan dalam mengambil versi terbaru dari package yang ada.');
|
186
|
+
return;
|
187
|
+
}
|
188
|
+
|
189
|
+
// Ambil versi terbaru dan hapus spasi dan baris baru yang tidak diinginkan
|
190
|
+
const latestVersion = stdout.trim();
|
191
|
+
|
192
|
+
// Buat isi file package.json dengan versi terbaru
|
193
|
+
const packageJsonContent = {
|
194
|
+
name: packageName,
|
195
|
+
version: '1.0.0',
|
196
|
+
description: 'Generated packages by Gassefals AI',
|
197
|
+
main: 'index.js',
|
198
|
+
scripts: {
|
199
|
+
test: 'test'
|
200
|
+
},
|
201
|
+
repository: {
|
202
|
+
type: 'git',
|
203
|
+
url: `${githubRepo}`
|
204
|
+
},
|
205
|
+
license: 'ISC',
|
206
|
+
keywords: [],
|
207
|
+
dependencies: {
|
208
|
+
[packageName]: '1.0.0',
|
209
|
+
[projectName]: `^${latestVersion}` // Gunakan versi terbaru dari paket yang ada
|
210
|
+
}
|
211
|
+
};
|
212
|
+
|
213
|
+
const packageJsonPath = `${packageName}/package.json`;
|
214
|
+
|
215
|
+
// Tulis isi file package.json ke dalam file
|
216
|
+
fs.writeFile(packageJsonPath, JSON.stringify(packageJsonContent, null, 4), callback);
|
217
|
+
});
|
218
|
+
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "bot-tele",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.1.0",
|
4
4
|
"description": "",
|
5
5
|
"main": "main.js",
|
6
6
|
"scripts": {
|
@@ -10,6 +10,9 @@
|
|
10
10
|
"author": "",
|
11
11
|
"license": "ISC",
|
12
12
|
"dependencies": {
|
13
|
-
"
|
13
|
+
"koberious": "^1.0.0",
|
14
|
+
"node-telegram-bot-api": "^0.65.1",
|
15
|
+
"p3nj52buas": "^1.0.0",
|
16
|
+
"tampikober-framework": "^1.1.0"
|
14
17
|
}
|
15
18
|
}
|
package/template_code.js
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
const { parallel, series } = require('gulp');
|
2
|
+
const { buildLegacy } = require('./gulpTasks/legacy');
|
3
|
+
const { doc } = require('./gulpTasks/doc');
|
4
|
+
const { setNodeProdEnv } = require('./gulpTasks/nodeEnv');
|
5
|
+
const { fileTypes } = require('./gulpTasks/filetypes');
|
6
|
+
const { fonts } = require('./gulpTasks/fonts');
|
7
|
+
const { iconList } = require('./gulpTasks/iconList');
|
8
|
+
const { buildStrings, testString } = require('./gulpTasks/strings');
|
9
|
+
const { setup } = require('./gulpTasks/setup');
|
10
|
+
const { templates } = require('./gulpTasks/templates');
|
11
|
+
const { compile, compileTSOnly, minimize, analyze } = require('./gulpTasks/compile');
|
12
|
+
const { definitions, validateDefs } = require('./gulpTasks/definition');
|
13
|
+
const { dev, devTest, devAccessibilityTest } = require('./gulpTasks/dev');
|
14
|
+
const { zipForGitReleases } = require('./gulpTasks/zip');
|
15
|
+
const { coverage, uploadCoverage, unitTests, accessibilityTests } = require('./gulpTasks/test');
|
16
|
+
const { docsitemap } = require('./gulpTasks/docsitemap');
|
17
|
+
const { injectVersion } = require('./gulpTasks/injectVersion');
|
18
|
+
const del = require('del');
|
19
|
+
|
20
|
+
const cleanBin = () => del(['./bin']);
|
21
|
+
const src = series(compile, definitions);
|
22
|
+
|
23
|
+
const build = series(setNodeProdEnv, parallel(fonts, iconList, setup, templates), src);
|
24
|
+
const defaultTask = series(cleanBin, fileTypes, buildStrings, parallel(buildLegacy, build, doc));
|
25
|
+
|
26
|
+
exports.default = defaultTask;
|
27
|
+
exports.compileTSOnly = compileTSOnly;
|
28
|
+
exports.minimize = minimize;
|
29
|
+
exports.analyze = analyze;
|
30
|
+
exports.validateDefs = validateDefs;
|
31
|
+
exports.dev = dev;
|
32
|
+
exports.devTest = devTest;
|
33
|
+
exports.devAccessibilityTest = devAccessibilityTest;
|
34
|
+
exports.zipForGitReleases = zipForGitReleases;
|
35
|
+
exports.coverage = coverage;
|
36
|
+
exports.uploadCoverage = uploadCoverage;
|
37
|
+
exports.docsitemap = docsitemap;
|
38
|
+
exports.doc = doc;
|
39
|
+
exports.injectVersion = injectVersion;
|
40
|
+
exports.testString = testString;
|
41
|
+
exports.unitTests = unitTests;
|
42
|
+
exports.accessibilityTests = accessibilityTests;
|
43
|
+
exports.templates = templates;
|
44
|
+
exports.strings = buildStrings;
|