os.remove(file_name)
+async def analyze_video(update: Update, context) -> None:
+ file_id = update.message.video.file_id
+ file_info = await context.bot.get_file(file_id)
+
+ if file_info:
+ # Get the URL of the file
+ file_path = file_info.file_path
+ response = requests.get(file_path)
+
+ if response.status_code == 200:
+ # Save the video to disk
+ file_name = f"{file_id}.mp4"
+ with open(file_name, 'wb') as f:
+ f.write(response.content)
+ else:
+ await update.message.reply_text('Failed to download the video.')
+ else:
+ await update.message.reply_text('Failed to download the video.')
+
+ try:
+ ffmpeg.input(file_name).filter('fps', fps='1').output(f'{file_name}-%d.jpg', start_number=0).overwrite_output().run(quiet=True)
+
+ for i in [i for i in os.listdir('.') if (file_name in i) and ('.jpg' in i)]:
+ img = Image.open(i)
+ classifier = pipeline("image-classification", model="Falconsai/nsfw_image_detection")
+ results = classifier(img)
+
+ if results[0]['label'] == 'nsfw':
+ await update.message.reply_text(f"Warning: This video contains NSFW content.")
+ await context.bot.delete_message(chat_id=update.message.chat_id,message_id=update.message.message_id)
+ break
+
+ except Exception as e:
+ await update.message.reply_text(f'Some kind of mistake')
+ print(f"An error occurred: {e}")
+
+ finally:
+ for i in [i for i in os.listdir('.') if file_name in i]:
+ os.remove(i)
+
+
+
async def main() -> None:
application = ApplicationBuilder().token(TOKEN).build()
application.add_handler(CommandHandler('start', start))
application.add_handler(MessageHandler(filters.PHOTO, analyze_image))
+ application.add_handler(MessageHandler(filters.VIDEO, analyze_video))
await application.run_polling()