diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..00a0ef3 --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +worker: python bot.py \ No newline at end of file diff --git a/bot.py b/bot.py index 38d9a65..9cf5a88 100644 --- a/bot.py +++ b/bot.py @@ -14,15 +14,38 @@ from os import listdir from gtts import gTTS +import requests +import re +from tqdm import tqdm + last = None -try: - with open('sentence_mapper.json', 'r') as f: - sentence_mapper = json.load(f) -except: - print('Please create sentence_mapper.json') - exit() +def create_sentence_mapper(): + os.makedirs('clips', exist_ok=True) + + raw_sounds = requests.get('https://prophet-button.netlify.app/') + extracted_data = re.findall(r'src=\"(.*\.mp3)\".*\">([^\"<]*)<', raw_sounds.text) + + sentence_mapper = dict() + for (filename, sentence) in tqdm(extracted_data): + sentence_mapper[' '.join(sentence.split()).strip()] = filename + r = requests.get(f'https://prophet-button.netlify.app/sound/{filename}') + with open(f'clips/{filename}', 'wb') as f: + f.write(r.content) + + with open('sentence_mapper.json', 'w') as f: + json.dump(sentence_mapper, f) + +def get_sentence_mapper(): + global sentence_mapper + try: + with open('sentence_mapper.json', 'r') as f: + sentence_mapper = json.load(f) + except FileNotFoundError: + create_sentence_mapper() + get_sentence_mapper() +get_sentence_mapper() bot = commands.Bot(command_prefix=['clip!', 'c!', '?']) diff --git a/requirements.txt b/requirements.txt index 52640ff..a61ffde 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,5 @@ discord python-dotenv gtts discord.py[voice] -ffmpeg \ No newline at end of file +ffmpeg +tqdm \ No newline at end of file diff --git a/runtime.txt b/runtime.txt new file mode 100644 index 0000000..9a60461 --- /dev/null +++ b/runtime.txt @@ -0,0 +1 @@ +python-3.9.2 \ No newline at end of file diff --git a/url2mp3.py b/url2mp3.py index fa34f97..6c18b33 100644 --- a/url2mp3.py +++ b/url2mp3.py @@ -4,17 +4,18 @@ from tqdm import tqdm import json -os.makedirs('clips', exist_ok=True) +def create_sentence_mapper(): + os.makedirs('clips', exist_ok=True) -raw_sounds = requests.get('https://prophet-button.netlify.app/') -extracted_data = re.findall(r'src=\"(.*\.mp3)\".*\">([^\"<]*)<', raw_sounds.text) + raw_sounds = requests.get('https://prophet-button.netlify.app/') + extracted_data = re.findall(r'src=\"(.*\.mp3)\".*\">([^\"<]*)<', raw_sounds.text) -sentence_mapper = dict() -for (filename, sentence) in tqdm(extracted_data): - sentence_mapper[' '.join(sentence.split()).strip()] = filename - r = requests.get(f'https://prophet-button.netlify.app/sound/{filename}') - with open(f'clips/{filename}', 'wb') as f: - f.write(r.content) + sentence_mapper = dict() + for (filename, sentence) in tqdm(extracted_data): + sentence_mapper[' '.join(sentence.split()).strip()] = filename + r = requests.get(f'https://prophet-button.netlify.app/sound/{filename}') + with open(f'clips/{filename}', 'wb') as f: + f.write(r.content) -with open('sentence_mapper.json', 'w') as f: - json.dump(sentence_mapper, f) \ No newline at end of file + with open('sentence_mapper.json', 'w') as f: + json.dump(sentence_mapper, f) \ No newline at end of file