diff --git a/.env.example b/.env.example index 440756d..6429ce5 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,30 @@ -key="" -organization="" +#API link, leave blank to use OpenAI API +api="" + +#API key +key="" + +#Oranization key, make something up for self hosted or other API +organization="" + +#LLM model name, use gpt-3.5-turbo-1106 or gpt-3.5-turbo or gpt-4 for OpenAI API +#For text generation webui use gpt-3.5-turbo, for other API's consult their documentation +model="" + #The language to translate TO, Don't forget to change the prompt language="" + +#The timeout before disconnect error, 30 to 120 recommended +timeout="" + +#The number of files to translate at the same time, 1 recommended for free or self hosted API or gpt-4 +fileThreads="" + +#The number of threads per file, 1 recommended for free or self hosted API or gpt-4 +threads="" + +#The wordwrap of dialogue text +width="" + +#The wordwap of items and help text +listWidth="" \ No newline at end of file diff --git a/modules/alltext.py b/modules/alltext.py index b33a3ed..bb595c3 100644 --- a/modules/alltext.py +++ b/modules/alltext.py @@ -18,16 +18,24 @@ from tqdm import tqdm # Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE = os.getenv('language').capitalize() APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # For GPT4 rate limit will be hit if you have more than 1 thread. +THREADS = int(os.getenv('threads')) # For GPT4 rate limit will be hit if you have more than 1 thread. LOCK = threading.Lock() -WIDTH = 60 -LISTWIDTH = 60 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) MAXHISTORY = 10 ESTIMATE = '' TOTALCOST = 0 @@ -95,7 +103,7 @@ def getResultString(translatedData, translationTime, filename): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -104,7 +112,7 @@ def translateGPT(t, history, fullPromptFlag): subbedT = varResponse[0] # If there isn't any Japanese in the text just skip - if not re.search(r'[��-�]+|[��-?]+|[�@-��]+|[\uFF00-\uFFEF]', subbedT): + if not re.search(r'[一-龠]+|[ぁ-ゔ]+|[ァ-ヴ]+|[\uFF00-\uFFEF]', subbedT): return (t, 0) # Characters @@ -139,9 +147,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -164,4 +172,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/csv.py b/modules/csv.py index f546db2..94cfa57 100644 --- a/modules/csv.py +++ b/modules/csv.py @@ -18,15 +18,23 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 20 +THREADS = int(os.getenv('threads')) LOCK = threading.Lock() -WIDTH = 60 +WIDTH = int(os.getenv('width')) MAXHISTORY = 10 ESTIMATE = '' TOTALCOST = 0 @@ -321,7 +329,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -366,9 +374,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -396,4 +404,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/json.py b/modules/json.py index 01a4b25..f3360c8 100644 --- a/modules/json.py +++ b/modules/json.py @@ -17,17 +17,25 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() INPUTAPICOST = .002 # Depends on the model https://openai.com/pricing OUTPUTAPICOST = .002 PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # Controls how many threads are working on a single file (May have to drop this) +THREADS = int(os.getenv('threads')) # Controls how many threads are working on a single file (May have to drop this) LOCK = threading.Lock() -WIDTH = 50 -LISTWIDTH = 90 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) NOTEWIDTH = 50 MAXHISTORY = 10 ESTIMATE = '' @@ -294,7 +302,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) historyRaw = '' if isinstance(history, list): for line in history: @@ -347,9 +355,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo-1106", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -377,4 +385,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, totalTokens] \ No newline at end of file + return [translatedText, totalTokens] diff --git a/modules/kansen.py b/modules/kansen.py index 7a81b5e..f0af984 100644 --- a/modules/kansen.py +++ b/modules/kansen.py @@ -16,16 +16,24 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # For GPT4 rate limit will be hit if you have more than 1 thread. +THREADS = int(os.getenv('threads')) # For GPT4 rate limit will be hit if you have more than 1 thread. LOCK = threading.Lock() -WIDTH = 60 -LISTWIDTH = 60 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) MAXHISTORY = 10 ESTIMATE = '' TOTALCOST = 0 @@ -462,7 +470,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -507,9 +515,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -537,4 +545,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/lune.py b/modules/lune.py index c0eb21a..bae87f9 100644 --- a/modules/lune.py +++ b/modules/lune.py @@ -17,17 +17,25 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() INPUTAPICOST = .002 # Depends on the model https://openai.com/pricing OUTPUTAPICOST = .002 PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # Controls how many threads are working on a single file (May have to drop this) +THREADS = int(os.getenv('threads')) # Controls how many threads are working on a single file (May have to drop this) LOCK = threading.Lock() -WIDTH = 50 -LISTWIDTH = 90 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) NOTEWIDTH = 50 MAXHISTORY = 10 ESTIMATE = '' @@ -294,7 +302,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) historyRaw = '' if isinstance(history, list): for line in history: @@ -347,9 +355,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo-1106", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -377,4 +385,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, totalTokens] \ No newline at end of file + return [translatedText, totalTokens] diff --git a/modules/lune2.py b/modules/lune2.py index 9081f27..46a4a4c 100644 --- a/modules/lune2.py +++ b/modules/lune2.py @@ -18,16 +18,24 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 20 +THREADS = int(os.getenv('threads')) LOCK = threading.Lock() -WIDTH = 60 -LISTWIDTH = 75 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) MAXHISTORY = 10 ESTIMATE = '' TOTALCOST = 0 @@ -348,7 +356,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -393,9 +401,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -423,4 +431,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/main.py b/modules/main.py index f842d76..5bbc342 100644 --- a/modules/main.py +++ b/modules/main.py @@ -17,7 +17,7 @@ from modules.lune2 import handleLuneTxt # For GPT4 rate limit will be hit if you have more than 1 thread. # 1 Thread for each file. Controls how many files are worked on at once. -THREADS = 5 +THREADS = int(os.getenv('fileThreads')) # Info Message tqdm.write(Fore.LIGHTYELLOW_EX + "WARNING: Once a translation starts do not close it unless you want to lose your\ diff --git a/modules/rpgmakerace.py b/modules/rpgmakerace.py index 2543f67..2175d36 100644 --- a/modules/rpgmakerace.py +++ b/modules/rpgmakerace.py @@ -19,17 +19,25 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() INPUTAPICOST = .002 # Depends on the model https://openai.com/pricing OUTPUTAPICOST = .002 PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # Controls how many threads are working on a single file (May have to drop this) +THREADS = int(os.getenv('threads')) # Controls how many threads are working on a single file (May have to drop this) LOCK = threading.Lock() -WIDTH = 50 -LISTWIDTH = 90 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) NOTEWIDTH = 50 MAXHISTORY = 10 ESTIMATE = '' @@ -1795,7 +1803,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) historyRaw = '' if isinstance(history, list): for line in history: @@ -1850,9 +1858,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo-1106", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -1879,4 +1887,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, totalTokens] \ No newline at end of file + return [translatedText, totalTokens] diff --git a/modules/rpgmakermvmz.py b/modules/rpgmakermvmz.py index 5d36245..c1ec8dc 100644 --- a/modules/rpgmakermvmz.py +++ b/modules/rpgmakermvmz.py @@ -18,18 +18,26 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() INPUTAPICOST = .002 # Depends on the model https://openai.com/pricing OUTPUTAPICOST = .002 PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # Controls how many threads are working on a single file (May have to drop this) +THREADS = int(os.getenv('threads')) # Controls how many threads are working on a single file (May have to drop this) LOCK = threading.Lock() -WIDTH = 80 -LISTWIDTH = 80 -NOTEWIDTH = 50 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) +NOTEWIDTH = 40 MAXHISTORY = 10 ESTIMATE = '' totalTokens = [0, 0] @@ -1857,7 +1865,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) historyRaw = '' if isinstance(history, list): for line in history: @@ -1910,9 +1918,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo-1106", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -1939,4 +1947,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, totalTokens] \ No newline at end of file + return [translatedText, totalTokens] diff --git a/modules/txt.py b/modules/txt.py index c263286..3d2b394 100644 --- a/modules/txt.py +++ b/modules/txt.py @@ -18,16 +18,24 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 20 +THREADS = int(os.getenv('threads')) LOCK = threading.Lock() -WIDTH = 75 -LISTWIDTH = 75 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) MAXHISTORY = 10 ESTIMATE = '' TOTALCOST = 0 @@ -306,7 +314,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-4") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -351,9 +359,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -381,4 +389,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/modules/tyrano.py b/modules/tyrano.py index 2398ae7..8b31163 100644 --- a/modules/tyrano.py +++ b/modules/tyrano.py @@ -16,16 +16,24 @@ from tqdm import tqdm #Globals load_dotenv() +if not os.getenv('api').replace(" ", ""): + print('No API given, defaulting to OpenAI API') +else: + openai.api_base = os.getenv('api') + print('Using ' + os.getenv('api') + ' as API') + openai.organization = os.getenv('org') openai.api_key = os.getenv('key') +MODEL = os.getenv('model') +TIMEOUT = int(os.getenv('timeout')) LANGUAGE=os.getenv('language').capitalize() APICOST = .002 # Depends on the model https://openai.com/pricing PROMPT = Path('prompt.txt').read_text(encoding='utf-8') -THREADS = 10 # For GPT4 rate limit will be hit if you have more than 1 thread. +THREADS = int(os.getenv('threads')) # For GPT4 rate limit will be hit if you have more than 1 thread. LOCK = threading.Lock() -WIDTH = 80 -LISTWIDTH = 60 +WIDTH = int(os.getenv('width')) +LISTWIDTH = int(os.getenv('listWidth')) MAXHISTORY = 10 ESTIMATE = '' TOTALCOST = 0 @@ -476,7 +484,7 @@ def resubVars(translatedText, allList): def translateGPT(t, history, fullPromptFlag): # If ESTIMATE is True just count this as an execution and return. if ESTIMATE: - enc = tiktoken.encoding_for_model("gpt-3.5-turbo") + enc = tiktoken.encoding_for_model(MODEL) tokens = len(enc.encode(t)) * 2 + len(enc.encode(str(history))) + len(enc.encode(PROMPT)) return (t, tokens) @@ -518,9 +526,9 @@ def translateGPT(t, history, fullPromptFlag): temperature=0.1, frequency_penalty=0.2, presence_penalty=0.2, - model="gpt-3.5-turbo", + model=MODEL, messages=msg, - request_timeout=30, + request_timeout=TIMEOUT, ) # Save Translated Text @@ -548,4 +556,4 @@ def translateGPT(t, history, fullPromptFlag): if len(translatedText) > 15 * len(t) or "I'm sorry, but I'm unable to assist with that translation" in translatedText: raise Exception else: - return [translatedText, tokens] \ No newline at end of file + return [translatedText, tokens] diff --git a/start.bat b/start.bat new file mode 100644 index 0000000..8c5e876 --- /dev/null +++ b/start.bat @@ -0,0 +1,13 @@ +@echo off +set /p choice=Do you want to edit the .env file? (y/n): +if /i "%choice%"=="y" ( + notepad .env + echo Press enter when you are done + pause + echo Continuing... +) else ( + echo Continuing without editing .env file... +) +python3 -m pip install -r requirements.txt +python3 start.py +pause \ No newline at end of file diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..2fd110a --- /dev/null +++ b/start.sh @@ -0,0 +1,11 @@ +#!/bin/bash +read -p "Do you want to edit the .env file? (y/n): " choice + +if [ "$choice" == "y" ] || [ "$choice" == "Y" ]; then + nano .env + echo "Continuing..." +else + echo "Continuing without editing .env file..." +fi +python3 -m pip install -r requirements.txt +python3 start.py \ No newline at end of file