From 826f4d7861e1a130bc999942287f200ed6abc425 Mon Sep 17 00:00:00 2001 From: Rustem Kamalov Date: Sat, 24 Jun 2023 22:25:43 +0300 Subject: [PATCH] Readme and default config change --- README.md | 64 ++++++++++++++++++++++++++++++++++++---------------- config.yaml | 4 ++-- logo.png | Bin 0 -> 38325 bytes 3 files changed, 46 insertions(+), 22 deletions(-) create mode 100644 logo.png diff --git a/README.md b/README.md index 9df752d..906251d 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,45 @@ -# Open SERP (Search Engine Results Page) -Get Google, Yandex, Baidu search engine results via API or CLI. +# OpenSERP (Search Engine Results Page) +![OpenSERP](/logo.png) -## Docker usage -* Run: +[![Go Report Card](https://goreportcard.com/badge/github.com/karust/openserp)](https://goreportcard.com/report/github.com/karust/openserp) +[![Go Reference](https://pkg.go.dev/badge/github.com/karust/openserp.svg)](https://pkg.go.dev/github.com/karust/openserp) + + +API access for search engines results if available isn't free. + +Using OpenSERP, you can get search results from **Google**, **Yandex**, **Baidu** via API or CLI! + +See [Docker](#docker), [CLI](#cli) usage examples below. + +## Docker usage 🐳 +* Run API server: ```bash # Use prebuilt image docker run -p 127.0.0.1:7000:7000 -it karust/openserp serve -a 0.0.0.0 -p 7000 -# Or use docker-compose.yaml instead +# Or docker-compose up --build ``` -* Get 20 **Google** results for `hello world`, only in English - `[serv_addr]/google/search?lang=EN&limit=20&text=hello world`: +### *Example request* +Get 20 **Google** results for `hello world`, only in English: +```JSON +GET http:/127.0.0.1:7000/google/search?lang=EN&limit=20&text=hello world +``` +You can replace `google` to `yandex` or `baidu` in query to change search engine. + +### Request parameters +| Param | Description | +|-------|--------------------------------------------------------------| +| text | Text to search | +| lang | Search pages in selected language (`EN`, `DE`, `RU`...) | +| date | Date in `YYYYMMDD..YYYYMMDD` format (e.g. 20181010..20231010) | +| file | File extension to search (e.g. `PDF`, `DOC`) | +| site | Search only in selected site | +| limit | Limit the number of results | + +### *Example response* ```JSON [ { @@ -22,28 +50,18 @@ docker-compose up --build }, ] ``` -* You can replace `google` to `yandex` or `baidu` in API call to change search engine. -* Available search parameters: -| Param | Description | -|-------|--------------------------------------------------------------| -| text | Text to search | -| lang | Search pages in selected language (`EN`, `DE`, `RU`...) | -| date | Date in `YYYYMMDD..YYYYMMDD` format (e.g. 20181010..20231010) | -| file | File extension to search (e.g. `PDF`, `DOC`) | -| site | Search only in selected site | -| limit | Limit the number of results | -## CLI +## CLI ⌨️ * Use `-h` flag to see commands. -* You can use `serve` to serve API: +* You can use `serve` command to serve API: ```bash openserp serve ``` * Or print results in CLI using `search` command: ```bash -openserp search google "how to get banned in google fast" # You can change `google` to `yandex` or `baidu` +openserp search google "how to get banned in google fast" # Change `google` to `yandex` or `baidu` ``` As a result you should get JSON output containting search results: ```json @@ -55,4 +73,10 @@ As a result you should get JSON output containting search results: "description": "How To Get Banned From Google · 1. Cloaking: The Art of Deception · 2. Plagiarism: Because Originality is Overrated · 3. Keyword Stuffing: More is Always Better · 4 ..." }, ] - ``` \ No newline at end of file + ``` + + ## License +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details + +## Bugs + Questions 👾 +If you have some issues/bugs/questions, feel free to open an issue. \ No newline at end of file diff --git a/config.yaml b/config.yaml index 73ee975..2779ffb 100644 --- a/config.yaml +++ b/config.yaml @@ -3,6 +3,6 @@ app: port: 7000 debug: false verbose: true - timeout: 30 + timeout: 15 head: false - leakless: false + leakless: true diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7b67feade9fb1e3aee8af320e4d3feef0a43669a GIT binary patch literal 38325 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 LUp`-D