bot / app.py
Abhaykoul's picture
Create app.py
a143120 verified
raw
history blame
4.36 kB
import g4f
from webscout import DDGS
from time import time as t
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/search', methods=['POST'])
def webscout2_search():
data = request.get_json()
if 'query' not in data:
return jsonify({'error': 'Query parameter missing'}), 400
query = data['query']
with DDGS() as ddgs:
responses = []
for i, r in enumerate(ddgs.text(query, region='wt-wt', safesearch='off', timelimit='y')):
if i == 10: # Limiting the results to 10
break
responses.append(r)
return jsonify(responses)
@app.route('/health', methods=['GET'])
def health_check():
# You can add more sophisticated checks here if needed
return jsonify({'status': 'ok'})
@app.route('/video', methods=['GET'])
def webscout_videos():
params = request.args
if 'keywords' not in params:
return jsonify({'error': 'Keywords parameter missing'}), 400
keywords = params['keywords']
with DDGS() as ddgs:
responses = []
for r in ddgs.videos(
keywords,
region="wt-wt",
safesearch="off",
timelimit="w",
resolution="high",
duration="medium",
max_results=10,
):
responses.append(r)
return jsonify(responses)
@app.route('/img', methods=['GET'])
def webscout2_images():
params = request.args
if 'keywords' not in params:
return jsonify({'error': 'Keywords parameter missing'}), 400
keywords = params['keywords']
with DDGS() as ddgs:
responses = []
for r in ddgs.images(
keywords,
region="wt-wt",
safesearch="off",
size=None,
# color="Monochrome",
type_image=None,
layout=None,
license_image=None,
max_results=10,
):
responses.append(r)
return jsonify(responses)
@app.route('/news', methods=['GET'])
def webscout_news():
params = request.args
if 'keywords' not in params:
return jsonify({'error': 'Keywords parameter missing'}), 400
keywords = params['keywords']
with DDGS() as ddgs:
responses = []
for r in ddgs.news(
keywords,
region="wt-wt",
safesearch="off",
timelimit="m",
max_results=10
):
responses.append(r)
return jsonify(responses)
@app.route('/int', methods=['GET'])
def webscout3_search():
query = request.args.get('query')
if not query:
return jsonify({'error': 'Query parameter missing'}), 400
# Initialize the DDGS (DuckDuckGo Search) object
with DDGS() as ddgs:
responses = []
for i, r in enumerate(ddgs.text(query, region='wt-wt', safesearch='off', timelimit='y')):
if i == 2: # Limiting the results to 10
break
responses.append(r)
# You can process the search results further or customize the response
# For now, let's return the search results as-is
return jsonify(responses)
app = Flask(__name__)
@app.route('/translate', methods=['GET'])
def webscout_translate():
params = request.args
if 'keywords' not in params or 'to' not in params:
return jsonify({'error': 'Keywords or target language parameter missing'}), 400
keywords = params['keywords']
target_language = params['to']
with DDGS() as ddgs:
translation = ddgs.translate(keywords, to=target_language)
return jsonify(translation)
@app.route('/chat', methods=['POST'])
def chat_gpt():
user_input = request.json.get('message')
messages = [
{
"role": "system",
"content": "Hello! I'm your virtual assistant. How can I help you?"
}
]
assert user_input is not None
messages.append({"role": "user", "content": user_input})
response = g4f.ChatCompletion.create(
model="gpt-4-32k-0613",
provider=g4f.Provider.GPTalk,
messages=messages,
stream=True,
)
ms = ""
for message in response:
ms += message
messages.append({"role": "assistant", "content": ms})
return jsonify({"response": ms})
if __name__ == '__main__':
app.run()