{"id":34213444,"url":"https://github.com/tommsawyer/itbooks","last_synced_at":"2026-03-11T07:32:15.676Z","repository":{"id":143000358,"uuid":"610737326","full_name":"tommsawyer/itbooks","owner":"tommsawyer","description":"📖 fully automated telegram channel with new books about IT","archived":false,"fork":false,"pushed_at":"2024-04-29T06:52:49.000Z","size":242,"stargazers_count":2,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-19T02:17:55.776Z","etag":null,"topics":["books","golang","postgresql","telegram"],"latest_commit_sha":null,"homepage":"https://t.me/new_it_books","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tommsawyer.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":"2023-03-07T11:34:52.000Z","updated_at":"2025-05-02T10:46:35.000Z","dependencies_parsed_at":"2024-01-14T23:55:50.311Z","dependency_job_id":"71c1b625-3971-49e0-86bb-25dcc740411b","html_url":"https://github.com/tommsawyer/itbooks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tommsawyer/itbooks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommsawyer%2Fitbooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommsawyer%2Fitbooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommsawyer%2Fitbooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommsawyer%2Fitbooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tommsawyer","download_url":"https://codeload.github.com/tommsawyer/itbooks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommsawyer%2Fitbooks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30374265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T06:09:32.197Z","status":"ssl_error","status_checked_at":"2026-03-11T06:09:17.086Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["books","golang","postgresql","telegram"],"created_at":"2025-12-15T21:48:37.025Z","updated_at":"2026-03-11T07:32:15.667Z","avatar_url":"https://github.com/tommsawyer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://github.com/tommsawyer/itbooks/blob/main/banner.png)\n[![Scrape](https://github.com/tommsawyer/itbooks/actions/workflows/scrape.yaml/badge.svg)](https://github.com/tommsawyer/itbooks/actions/workflows/scrape.yaml)\n[![Publish](https://github.com/tommsawyer/itbooks/actions/workflows/publish.yaml/badge.svg)](https://github.com/tommsawyer/itbooks/actions/workflows/publish.yaml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/tommsawyer/itbooks)](https://goreportcard.com/report/github.com/tommsawyer/itbooks)\n[![codecov](https://codecov.io/github/tommsawyer/itbooks/branch/main/graph/badge.svg?token=4QGIHYOW3I)](https://codecov.io/github/tommsawyer/itbooks)\n\nFully automated telegram [channel](https://t.me/new_it_books) that publishes all new and upcoming books about IT.\n\n### How it works\nEvery day we collect information from book publishers that publish books on IT topics. These books are stored in the database. Another script checks daily for new books and publish them into telegram channel.\n\n### Local development\n\n1. Install golang, docker and docker-compose\n2. Obtain telegram bot token as described [here](https://core.telegram.org/bots/tutorial#obtain-your-bot-token)\n3. Create telegram channel to test books publishing\n4. Set up environment variables:\n```\nexport TELEGRAM_TOKEN=token_from_step_2\nexport TELEGRAM_CHANNEL=@channel_name_from_step_3\n```\n5. Run `make postgres` to spin up testing database\n6. Run `make migrate` to run migrations on testing database\n7. Run `make scrape` to scrape publishers and save books into postgres\n8. Run `make publish` to publish one of the scraped books\n\nYou should see one of the books published in your telegram channel at this moment. Explore `./build/itbooks --help` to see what other commands do we have.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftommsawyer%2Fitbooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftommsawyer%2Fitbooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftommsawyer%2Fitbooks/lists"}