zarox commited on
Commit
caa956c
·
1 Parent(s): a071ca5
Files changed (1) hide show
  1. app.py +118 -5
app.py CHANGED
@@ -136,15 +136,128 @@ with gr.Blocks(title="Audio Fusion") as iface:
136
 
137
  client = TelegramClient('session_name', API_ID, API_HASH)
138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  @client.on(events.NewMessage(pattern='/start'))
140
  async def start_handler(event):
141
- await event.respond("Welcome to the bot!")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
- @client.on(events.NewMessage(pattern='/rungradio'))
144
- async def broadcast_handler(event):
145
- message_to_broadcast = "Gradio running..."
146
- await event.respond(message_to_broadcast)
 
 
 
 
 
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
 
149
  async def initiation():
150
  await client.send_message(-1001662130485, "**Hugging is Running.**", buttons=[(Button.url("Execal", "https://t.me/execal"),)],)
 
136
 
137
  client = TelegramClient('session_name', API_ID, API_HASH)
138
 
139
+
140
+ # Define the available commands
141
+ commands = {
142
+ '/start': 'Welcome to Audio Bot! Send me an audio file to get started.',
143
+ '/help': 'List all available commands.',
144
+ '/trim': 'Trim the audio. Usage: /trim start_time end_time',
145
+ '/volume': 'Adjust volume. Usage: /volume level',
146
+ '/reverse': 'Reverse the audio.',
147
+ '/reverb': 'Apply reverb effect to the audio. Usage: /reverb roomSize damping width wetLevel dryLevel',
148
+ '/speedup': 'Increase the speed of the audio.',
149
+ '/slowdown': 'Decrease the speed of the audio.',
150
+ '/effect8D': 'Apply 8D effect to the audio. Usage: /effect8D panBoundary jumpPercentage timeLtoR volumeMultiplier',
151
+ '/save': 'Save the modified audio. Usage: /save outputFileName',
152
+ }
153
+
154
  @client.on(events.NewMessage(pattern='/start'))
155
  async def start_handler(event):
156
+ await event.respond(commands['/start'])
157
+
158
+ @client.on(events.NewMessage(pattern='/help'))
159
+ async def help_handler(event):
160
+ help_text = '\n'.join(f'{cmd}: {desc}' for cmd, desc in commands.items())
161
+ await event.respond(help_text)
162
+
163
+ @client.on(events.NewMessage(incoming=True))
164
+ async def audio_handler(event):
165
+ reply = await event.get_reply_message()
166
+ if event.message.media and event.message.media.document.mime_type.startswith('audio') and event.is_private:
167
+ # Download the audio file
168
+ file_path = await client.download_media(event.message, f"downloads/{event.sender.id}_audio.mp3")
169
+ try:
170
+ # Load the audio file using your AudioFusion class
171
+ audio = Fusion.loadSound(file_path)
172
+ except Fusion.InvalidMusicFileError as e:
173
+ await event.respond(f'Error: {e}')
174
+ return os.remove(file_path)
175
+ elif event.is_group and reply and event.text.startswith("/edit"):
176
+ file_path = await reply.download_media(f"downloads/{event.sender.id}_audio.mp3")
177
+ try:
178
+ # Load the audio file using your AudioFusion class
179
+ audio = Fusion.loadSound(file_path)
180
+ except Fusion.InvalidMusicFileError as e:
181
+ await event.respond(f'Error: {e}')
182
+ return os.remove(file_path)
183
+ else:
184
+ if event.is_private: return await event.respond("`Please send an audio file...`")
185
+
186
 
187
+ @client.on(events.NewMessage(incoming=True))
188
+ async def audio_editor(event):
189
+ file_path = f"downloads/{event.sender.id}_audio.mp3"
190
+ try:
191
+ # Load the audio file using your AudioFusion class
192
+ audio = Fusion.loadSound(file_path)
193
+ except Fusion.InvalidMusicFileError as e:
194
+ await event.respond(f'Error: {e}')
195
+ return os.remove(file_path)
196
 
197
+
198
+ # Process the user's command
199
+ if event.raw_text.startswith('/trim'):
200
+ # Parse parameters and apply the trim effect
201
+ # Example usage: /trim 5000 10000
202
+ parameters = event.raw_text.split()[1:]
203
+ start_time, end_time = map(int, parameters)
204
+ audio = audio[start_time:end_time]
205
+ await event.reply("`Following effect added to your audio file...`")
206
+
207
+ elif event.raw_text.startswith('/volume'):
208
+ # Parse parameters and adjust volume
209
+ # Example usage: /volume 3
210
+ parameters = event.raw_text.split()[1:]
211
+ volume_level = int(parameters[0])
212
+ audio = audio + volume_level # Adjust volume using Pydub's volume adjustment
213
+ await event.reply("`Following effect added to your audio file...`")
214
+
215
+ elif event.raw_text.startswith('/reverse'):
216
+ # Reverse the audio
217
+ audio = audio.reverse()
218
+ await event.reply("`Following effect added to your audio file...`")
219
+
220
+ elif event.raw_text.startswith('/speedup'):
221
+ # Increase the speed of the audio
222
+ audio = Fusion.effectSlowed(audio, speedMultiplier=0.8)
223
+ await event.reply("`Following effect added to your audio file...`")
224
+
225
+ elif event.raw_text.startswith('/slowdown'):
226
+ # Decrease the speed of the audio
227
+ audio = Fusion.effectSlowed(audio, speedMultiplier=1.2)
228
+ await event.reply("`Following effect added to your audio file...`")
229
+
230
+ elif event.raw_text.startswith('/effect8D'):
231
+ # Parse parameters and apply the effect
232
+ # Example usage: /effect8D 100 5 10000 6
233
+ parameters = event.raw_text.split()[1:]
234
+ audio = Fusion.effect8D(audio, *map(int, parameters))
235
+ await event.reply("`Following effect added to your audio file...`")
236
+
237
+ elif event.raw_text.startswith('/effectReverb'):
238
+ # Parse parameters and apply the effect
239
+ # Example usage: /effectReverb 0.8 1 0.5 0.3 0.8
240
+ parameters = event.raw_text.split()[1:]
241
+ audio = Fusion.effectReverb(audio, *map(float, parameters))
242
+ await event.reply("`Following effect added to your audio file...`")
243
+
244
+
245
+ elif event.raw_text.startswith('/save'):
246
+ # Parse parameters and save the modified audio
247
+ # Example usage: /save outputFileName
248
+ parameters = event.raw_text.split()[1:]
249
+ output_file_name = parameters[0]
250
+ output_file_path = Fusion.saveSound(audio, output_file_name)
251
+
252
+ # Send the modified audio file to the user
253
+ await client.send_file(event.chat_id, output_file_path, caption=f'Modified audio: {output_file_name}.mp3')
254
+
255
+ # Clean up the temporary files
256
+ os.remove(file_path)
257
+ os.remove(output_file_path)
258
+
259
+ elif event.raw_text.startswith('/delete'):
260
+ os.remove(file_path)
261
 
262
  async def initiation():
263
  await client.send_message(-1001662130485, "**Hugging is Running.**", buttons=[(Button.url("Execal", "https://t.me/execal"),)],)