{"id":20005473,"url":"https://github.com/mrgrd56/textractor-integration-extensions","last_synced_at":"2025-07-05T02:32:35.318Z","repository":{"id":112189264,"uuid":"569881345","full_name":"MRGRD56/textractor-integration-extensions","owner":"MRGRD56","description":"Integrate Textractor with other apps via named pipes or HTTP","archived":false,"fork":false,"pushed_at":"2025-03-21T08:03:39.000Z","size":939,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-04T17:41:30.455Z","etag":null,"topics":["cpp","extension","http","json","named-pipes","textractor","textractor-extension"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MRGRD56.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,"zenodo":null}},"created_at":"2022-11-23T20:41:18.000Z","updated_at":"2025-03-21T08:03:42.000Z","dependencies_parsed_at":"2024-03-23T21:36:33.896Z","dependency_job_id":"70019493-f635-4d8f-91d8-ff73125e081a","html_url":"https://github.com/MRGRD56/textractor-integration-extensions","commit_stats":null,"previous_names":["mrgrd56/textractor-integration-extensions"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/MRGRD56/textractor-integration-extensions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRGRD56%2Ftextractor-integration-extensions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRGRD56%2Ftextractor-integration-extensions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRGRD56%2Ftextractor-integration-extensions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRGRD56%2Ftextractor-integration-extensions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MRGRD56","download_url":"https://codeload.github.com/MRGRD56/textractor-integration-extensions/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MRGRD56%2Ftextractor-integration-extensions/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263671749,"owners_count":23494029,"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":["cpp","extension","http","json","named-pipes","textractor","textractor-extension"],"created_at":"2024-11-13T05:40:59.952Z","updated_at":"2025-07-05T02:32:35.302Z","avatar_url":"https://github.com/MRGRD56.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Textractor Extensions\n\n## TextractorPipe\n\nThe most stable extension here.  \nCreates a [named pipe](https://en.wikipedia.org/wiki/Named_pipe) and sends sentence data to it.\n\nThe pipe name is `\\\\.\\pipe\\MRGRD56_TextractorPipe_f30799d5-c7eb-48e2-b723-bd6314a03ba2`.\n\nThis extension is currently used by the latest version of [Textractor Translator](https://github.com/MRGRD56/textractor-translator).\n\nThe data is sent in JSON format:\n\n```json\n\u003c0x00, 0x00, 0x00, 0xA7\u003e\n{\n  \"text\": \"Lorem ipsum dolor sit amet\",\n  \"meta\": {\n    \"isCurrentSelect\": true,    // sentenceInfo[\"current select\"]\n    \"processId\": 2898235,       // sentenceInfo[\"process id\"]\n    \"threadNumber\": 12,         // sentenceInfo[\"text number\"]\n    \"threadName\": \"Some name\",  // sentenceInfo[\"text name\"]\n    \"timestamp\": 1669721578\n  }\n}\n```\n\nEvery message in the pipe starts from the length of data that is represented by an `unsigned int32` that is exactly 4 bytes long (it is not text data!). The size is followed by JSON text data, whose length in bytes is equal to the number before it.\n\n| Range                 | Description                                                        |\n|-----------------------|--------------------------------------------------------------------|\n| [0..3]                | `uint32` representing the length of the message                    |\n| [4..{length + 4 - 1}] | JSON `string` representing the message                             |\n\n## HttpSender\n\nAsynchronously sends each sentence as an HTTP request. Can be used to integrate Textractor with other applications.\n\n### Configuration\n\n#### HttpSenderConfig.json\n\n##### Example\n```json\n{\n  \"sentence\": {\n    \"enabled\": false,\n    \"url\": \"http://localhost:9650/sentence\",\n    \"requestType\": \"PLAIN_TEXT\",\n    \"selectedThreadOnly\": true\n  }\n}\n```\n\n| Field                | Type                                                               |\n|----------------------|--------------------------------------------------------------------|\n| `enabled`*           | boolean                                                            |\n| `url`                | string                                                             |\n| `requestType`**      | `\"PLAIN_TEXT\"` \u0026vert; `\"JSON_TEXT\"` \u0026vert; `\"JSON_TEXT_WITH_META\"` |\n| `selectedThreadOnly` | boolean                                                            |\n\n**⚠️⚠️⚠️\u0026ast;Set `enabled` field to `true` to make it work**\n\n##### **`requestType` field\n\n###### PLAIN_TEXT\n\n```http request\nPOST http://localhost:9650/sentence\nContent-Type: text/plain; charset=UTF-8\n\nLorem ipsum dolor sit amet\n```\n\n###### JSON_TEXT\n\n```http request\nPOST http://localhost:9650/sentence\nContent-Type: application/json; charset=UTF-8\n\n{\n  \"text\": \"Lorem ipsum dolor sit amet\"\n}\n```\n\n###### JSON_TEXT_WITH_META\n\n```http request\nPOST http://localhost:9650/sentence\nContent-Type: application/json; charset=UTF-8\n\n{\n  \"text\": \"Lorem ipsum dolor sit amet\",\n  \"meta\": {\n    \"isCurrentSelect\": true,    // sentenceInfo[\"current select\"]\n    \"processId\": 2898235,       // sentenceInfo[\"process id\"]\n    \"threadNumber\": 12,         // sentenceInfo[\"text number\"]\n    \"threadName\": \"Some name\",  // sentenceInfo[\"text name\"]\n    \"timestamp\": 1669721578\n  }\n}\n```\n\n## TextractorTranslatorBridge\n\nZero config version of `HttpSender` made specially for some old versions of [Textractor Translator](https://github.com/MRGRD56/textractor-translator)\n\nMatches the following config of `HttpSender`:\n\n```json\n{\n  \"sentence\": {\n    \"enabled\": true,\n    \"method\": \"POST\",\n    \"url\": \"http://localhost:18952/sentence\",\n    \"requestType\": \"JSON_TEXT_WITH_META\",\n    \"selectedThreadOnly\": true\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrgrd56%2Ftextractor-integration-extensions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrgrd56%2Ftextractor-integration-extensions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrgrd56%2Ftextractor-integration-extensions/lists"}