{"id":22788932,"url":"https://github.com/cfelde/data-wrangling-quotes","last_synced_at":"2025-09-03T09:35:22.540Z","repository":{"id":266892655,"uuid":"746248433","full_name":"cfelde/data-wrangling-quotes","owner":"cfelde","description":"Data wrangling quotes with Sigbla","archived":false,"fork":false,"pushed_at":"2024-01-21T14:14:14.000Z","size":16465,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T16:25:51.255Z","etag":null,"topics":["data-wrangling","kotlin","quotes","sigbla"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cfelde.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":"2024-01-21T14:13:19.000Z","updated_at":"2024-01-21T14:15:44.000Z","dependencies_parsed_at":"2024-12-06T20:46:18.393Z","dependency_job_id":"11c41994-3531-40a5-862a-be93f6d392e3","html_url":"https://github.com/cfelde/data-wrangling-quotes","commit_stats":null,"previous_names":["cfelde/data-wrangling-quotes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cfelde/data-wrangling-quotes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfelde%2Fdata-wrangling-quotes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfelde%2Fdata-wrangling-quotes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfelde%2Fdata-wrangling-quotes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfelde%2Fdata-wrangling-quotes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfelde","download_url":"https://codeload.github.com/cfelde/data-wrangling-quotes/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfelde%2Fdata-wrangling-quotes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273423290,"owners_count":25103140,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["data-wrangling","kotlin","quotes","sigbla"],"created_at":"2024-12-12T01:38:40.193Z","updated_at":"2025-09-03T09:35:22.493Z","avatar_url":"https://github.com/cfelde.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data wrangling quotes\n\nI have over the last few years captured screenshots on my phone of quotes from the Economist Espresso news app.\n\nWhatever quote I liked at the time I took a screenshot of, and now I wanted to use those quotes for something.\n\nTo do that I needed to get the quotes into a text file, which meant doing a few things:\n\n1. Download all the quotes from Google Photos, and crop out just the quote. These are stored in the quotes folder\n2. Use the tesseract command line tool to OCR the images into text, see [quotes/ocr.sh](quotes/ocr.sh)\n3. Because OCR isn't perfect, I needed to manually inspect and make some changes..\n\nPoint 3 is key for what this repo is about. I've been building [Sigbla](https://github.com/sigbla/sigbla-app/) for a\nwhile now and this is the perfect tool for this task.\n\nAfter running [quotes/txt.sh](quotes/txt.sh) I have a file named output in the quotes folder. It contains all the\nquotes using some ad-hoc structure allowing me to easily separate each quote and refer to the relevant image.\n\nOpening the output file in a text editor and then manually opening each image was just too painful. Instead, I wanted\nthe image to be shown next to the quote so that I could easily spot any issue and fix it without any\nhassle.\n\nThat's what the code in the [Quotes.kt](src/main/kotlin/Quotes.kt) file does. Load the output file, fix some common\nissues, set up the table and image resources, and save any changes to a Sigbla table file. Then I could simply open\nthis in my browser and quickly go through each quote and fix any issues in no time.\n\nHere's some typical examples of the issues that need fixing from the OCR process. I can simply edit these in the browser\nand have that change be stored in the quotes.sigt file for later use.\n\n![Issue 1](example-issues/issue1.png)\n\n![Issue 2](example-issues/issue2.png)\n\nData wrangling is often about stuff like this, a one-off task that just needs to be done as quickly and pain free as\npossible, and I'm glad my efforts in making [Sigbla](https://sigbla.app) allowed me to write less than 100 lines of\ncode to aid in that.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfelde%2Fdata-wrangling-quotes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfelde%2Fdata-wrangling-quotes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfelde%2Fdata-wrangling-quotes/lists"}