telegram-cli-bot/tools/ddgs_search.py

58 lines
1.7 KiB
Python
Executable File

#!/usr/bin/env python3
"""
DDGS Search Script - Python script to perform web searches using ddgs
"""
import sys
import json
import argparse
def search_ddgs(query, max_results=10):
"""
Perform a search using ddgs (DuckDuckGo Search)
Args:
query (str): Search query
max_results (int): Maximum number of results to return
Returns:
list: List of search results with title, url, and description
"""
try:
from ddgs import DDGS
except ImportError:
print(json.dumps({"error": "ddgs library not found. Please install it using: pip install ddgs"}))
sys.exit(1)
try:
ddgs = DDGS()
results = ddgs.text(query, max_results=max_results)
# Format results to include only necessary fields
formatted_results = []
for result in results:
formatted_result = {
"title": result.get("title", ""),
"href": result.get("href", ""),
"body": result.get("body", "")
}
formatted_results.append(formatted_result)
return formatted_results
except Exception as e:
print(json.dumps({"error": str(e)}))
sys.exit(1)
def main():
parser = argparse.ArgumentParser(description="DDGS Search Script")
parser.add_argument("query", help="Search query")
parser.add_argument("--num-results", "-n", type=int, default=10,
help="Number of search results to return (default: 10)")
args = parser.parse_args()
results = search_ddgs(args.query, args.num_results)
print(json.dumps(results, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()