{"id":15985699,"url":"https://github.com/brittonhayes/homie","last_synced_at":"2025-07-31T15:34:00.638Z","repository":{"id":122974920,"uuid":"372642168","full_name":"brittonhayes/homie","owner":"brittonhayes","description":"A telegram bot and CLI to help hunt for houses 🏡 🔍","archived":false,"fork":false,"pushed_at":"2023-08-30T14:01:26.000Z","size":142,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-10T06:12:13.862Z","etag":null,"topics":["bot","golang","realestate","telegram"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brittonhayes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-05-31T22:26:46.000Z","updated_at":"2023-03-05T08:34:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"2b7e6436-fc21-47e7-b841-2af63e3335da","html_url":"https://github.com/brittonhayes/homie","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/brittonhayes%2Fhomie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brittonhayes%2Fhomie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brittonhayes%2Fhomie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brittonhayes%2Fhomie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brittonhayes","download_url":"https://codeload.github.com/brittonhayes/homie/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247250575,"owners_count":20908382,"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":["bot","golang","realestate","telegram"],"created_at":"2024-10-08T02:24:02.823Z","updated_at":"2025-04-04T21:24:54.658Z","avatar_url":"https://github.com/brittonhayes.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Homie 🏡\n\n\u003e A Telegram bot and CLI to help me hunt for houses\n\n## Installation\n\n```shell\n# Install with go get\ngo get github.com/brittonhayes/homie/homie\n```\n\n## Usage\n\n```shell\n## Start the bot\nhomie bot --config ./.homie.yaml\n\nAvailable Commands:\n  bot         Start the telegram bot\n  help        Help about any command\n  list        List out homes from sheet\n  sheet       Get info about the google sheet\n```\n\n## Spreadsheet\n\n\u003e Homie expects that you've got a spreadsheet in Google sheets that has these headers.\n\n|Address|City|Bed|Bath|Sq Ft|Pets|Rent|Relative to Budget|Status |Notes |\n|:---: |:---: |:---:|:---: |:---: | :---: |:---: |:---: |:---: | :---: |\n| 1234 Example street | Example City | 3 | 2 | 1400 | Yes | 2650 | -300 | Contacted | Looks like a nice place |\n\n## Configuration\n\nConfiguring homie depends on a your `.homie.yaml` and a `client_secret.json` which you can download from the Google\nConsole.\n\n\u003cdetails\u003e\n\u003csummary\u003eView .homie.yaml\u003c/summary\u003e\n\u003cbr\u003e\n\n\u003e .homie.yaml\n\n```yaml\n# .homie.yaml\ntelegram:\n  token: \"12345\"\n  allowed:\n    - MyUserName\n\ngoogle:\n  secrets: \"client_secret.json\"\n  sheet:\n    id: \"12345\"\n    header_row: 5\n    title: \"Listings\"\n\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eView client_secret.json\u003c/summary\u003e\n\u003cbr\u003e\n\n```json\n{\n  \"type\": \"service_account\",\n  \"project_id\": \"\",\n  \"private_key_id\": \"\",\n  \"private_key\": \"\",\n  \"client_email\": \"\",\n  \"client_id\": \"\",\n  \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n  \"token_uri\": \"https://oauth2.googleapis.com/token\",\n  \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n  \"client_x509_cert_url\": \"h\"\n}\n```\n\n\u003c/details\u003e\n\n## Development\n\n\u003e Add more commands by appending the commands array.\n\n```go\n// All commands are of type `CommandFunc func(*tg.Message, config.Configuration) string`\ncommands := []bot.Command{\n    bot.NewCommand(\"address\", bot.Address),\n    bot.NewCommand(\"status\", bot.Status),\n    bot.NewCommand(\"hi\", bot.Hi),\n    bot.NewCommand(\"help\", bot.Help),\n    bot.NewCommand(\"goodnight\", bot.Goodnight)\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eExample command\u003c/summary\u003e\n\u003cbr\u003e\n\n```go\n// Example commands that will make the bot go to sleep\nfunc Goodnight(received *tg.Message, c config.Configuration) string {\n    go func () {\n        time.Sleep(5 * time.Second)\n        logrus.Infof(\"Going to sleep now!\")\n    os.Exit(1)\n    }()\n\n    return \"Have a good one! I'm clocking out for the evening. \\nhttps://media.tenor.com/images/df51877535a3e38c9cccd2f23ff154a2/tenor.gif\"\n}\n```\n\u003c/details\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrittonhayes%2Fhomie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrittonhayes%2Fhomie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrittonhayes%2Fhomie/lists"}