{"id":25395842,"url":"https://github.com/yowenter/gs-pipe","last_synced_at":"2025-04-10T16:58:56.275Z","repository":{"id":82677019,"uuid":"127602951","full_name":"yowenter/gs-pipe","owner":"yowenter","description":"REST API Power Your Google Spreadsheet.","archived":false,"fork":false,"pushed_at":"2018-04-10T14:55:51.000Z","size":69,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-15T20:49:51.691Z","etag":null,"topics":["api-server","google-spreadsheet","pipeline"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yowenter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-01T06:18:28.000Z","updated_at":"2018-11-29T01:41:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"dca6dfa4-2bc6-4f4c-b30d-88c5b5ea96f0","html_url":"https://github.com/yowenter/gs-pipe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowenter%2Fgs-pipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowenter%2Fgs-pipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowenter%2Fgs-pipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yowenter%2Fgs-pipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yowenter","download_url":"https://codeload.github.com/yowenter/gs-pipe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248259577,"owners_count":21074152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-server","google-spreadsheet","pipeline"],"created_at":"2025-02-15T20:38:39.033Z","updated_at":"2025-04-10T16:58:56.267Z","avatar_url":"https://github.com/yowenter.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GS-Pipe\n\nREST API Power Your Google Spreadsheet.\n\n\nThe everything of the internet is all about data communication, with the help of pipeline and free public storage service like Google spreadsheet or Airtable, You'll build your own powerful service.\n\n\nHere, I'm to extend the google spreadsheet ability to interact with  other website service :-)\n\n\n![gs pipeline](https://github.com/yowenter/gs-pipe/blob/master/gs-pipeline.png)\n\n## Usage \n\n\n### Create Task\n\n#### HTTP API\n\n`POST http://localhost:5000/task`\n\n#### PARAMS\n\n| Field | Type | Required | Description |\n| --- | --- | --- | --- |\n|input_argument |Array |True |Pipeline input argument|\n|pipeline |Array |True |Pipeline functions |\n\n\n\u003e Example\n\n```python\nimport requests\n\nresponse = requests.post(\n    'http://localhost:5000/task',\n    json={\n        \"input_argument\":[10, 3],\n        \"pipeline\":[\"gs_pipe.mods.example.square\", \"gs_pipe.mods.example.minus_one\"]},\n    headers={\n        'Authorization': 'token \u003cyour token\u003e',\n        'Content-Type': 'application/json'\n    }\n)\nprint(response.json())\n```\n\n#### Result\n\n\u003e Example\n\n```json\n\n    {\n        \"created_at\": \"2018-04-01 05:39:46.622617\",\n        \"description\": \"gs_pipe.controller.evaluate_pipeline([10, '3'], ['gs_pipe.mods.example.square', 'gs_pipe.mods.example.minus_one'])\",\n        \"id\": \"5d1939cc-5c63-4559-a0a4-6c25b01793a1\",\n        \"result\": null,\n        \"status\": \"queued\"\n    }\n```\n\n### Get Task\n\n#### HTTP API\n\n`GET http://localhost:5000/task/\u003ctask_id\u003e`\n\n\n#### Result\n\n\u003e Example\n\n```json\n{\n    \"created_at\": \"2018-04-01 05:40:20.627292\",\n    \"description\": \"gs_pipe.controller.evaluate_pipeline([10, 12, 122], ['gs_pipe.mods.example.square', 'gs_pipe.mods.example.minus_one'])\",\n    \"id\": \"8d78105b-fd86-441e-9a00-29a9e699c186\",\n    \"result\": [\n        99,\n        143,\n        14883\n    ],\n    \"status\": \"finished\"\n}\n```\n\n## Customize\n\nPut your `mod.py` into `mods` directory.\n\nThen you can define your own pipeline like: \n[`gs_pipe.mods.mod.request_html`,`gs_pipe.mods.mod.parse_html`, `gs_pipe.mods.mod.extract_data`]\nIt's a simple pipeline for crawlering website.\n\n\n\n## RUN\n\nUse `docker-compose -f example.yml up`\n\n\n## Build\n\n\nUse `docker build -f Dockerfile .`\n\n\n## RoadMap\n\n- [ ] ADD Authorization\n- [ ] Web Console Dashboard\n- [X] Mods extend \n- [ ] List Mod API\n- [ ] Task List API\n- [ ] Flask Cors\n- [ ] Graph Computing\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyowenter%2Fgs-pipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyowenter%2Fgs-pipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyowenter%2Fgs-pipe/lists"}