{"id":13503126,"url":"https://github.com/hello-rust/hello","last_synced_at":"2025-03-29T13:30:51.689Z","repository":{"id":50754634,"uuid":"138659814","full_name":"hello-rust/hello","owner":"hello-rust","description":"👋 A command-line tool to submit links to various social platforms","archived":false,"fork":false,"pushed_at":"2021-05-31T04:17:49.000Z","size":330,"stargazers_count":51,"open_issues_count":14,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-10T11:37:49.204Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://hello-rust.show/","language":"Rust","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/hello-rust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-25T23:21:04.000Z","updated_at":"2023-02-16T17:57:25.000Z","dependencies_parsed_at":"2022-09-05T20:11:24.935Z","dependency_job_id":null,"html_url":"https://github.com/hello-rust/hello","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/hello-rust%2Fhello","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hello-rust%2Fhello/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hello-rust%2Fhello/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hello-rust%2Fhello/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hello-rust","download_url":"https://codeload.github.com/hello-rust/hello/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222495340,"owners_count":16993289,"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":[],"created_at":"2024-07-31T22:02:38.083Z","updated_at":"2024-10-31T22:31:09.690Z","avatar_url":"https://github.com/hello-rust.png","language":"Rust","funding_links":["https://www.patreon.com/bePatron?c=1568097"],"categories":["Rust"],"sub_categories":[],"readme":"# 👋 hello\n\nA little command-line tool which helps reduce manual work for content creators.  \n\n### Why?\n\nSocial media is hard. On one side, you would like to keep all platforms updated\nand share your creations with the world. On the other hand, maintaining all of\nthem takes away a substantial amount of time from actually creating content.\n\nYou might say that this is not an important problem to solve - and I agree to\nsome extent. But having a side-project next to work is a tough thing to handle,\nand every little step that can be automated saves some time for more important\nthings like... uhm... friends and family?\n\nYou might say that this is cheating - and you might be right. Submitting an\narticle is a soulless work of honor that should be done manually as a sign of\nrespect (yo) to your audience. But guess what: most of your audience doesn't\ncare about your link on social media, it cares about your content.\n\nYou might say there are similar tools - and that's true. There's\n[Buffer](https://buffer.com), which can do everything that this tool can, but\nbetter. Nevertheless, the goal is to build a free tool under a permissive\nlicense that is easy to hack on.\n\n\nTherefore I created **hello**.\n\n### Installation\n\n```\ncargo install hello-rs\n```\n\n### Usage\n\nCreate a `.env` file with your credentials. See `.env_dist` for an example.\n\nAfter that, run `hello -h` to get started.\n\nFor example, to submit a link to Reddit, run\n```\nhello reddit subredditnamehere \"Give up\" \"https://www.youtube.com/watch?v=DLzxrzFCyOs\"\n```\n\n### Currently supported platforms\n\n* [X] Reddit\n* [X] Twitter\n* [X] HackerNews\n* [X] Slack\n* [ ] Patreon (tough one, as the API does not support publishing yet)\n* [ ] Meetup.com\n* [ ] Discourse (tough one, as only admins can get an API key)\n* [ ] Bring your own!\n\n### How to get your credentials\n\n##### Reddit\n\nCreate an app at reddit.com/prefs/apps.\nAfter that, add your credentials to `.env`.\nThen you can run `hello` like so:\n\n```\nhello reddit yoursubredditname \"I gave up\" \"https://www.youtube.com/watch?v=DLzxrzFCyOs\"\n```\n\n##### Twitter\n\nMake an app for yourself at apps.twitter.com and add the credentials to the\n`.env` file. On first execution of `hello`,\nyou will get an access token for your app via OAuth.\n\nThen run the following command to send a tweet:\n\n```\nhello twitter \"Hello! https://github.com/hello-rust/hello\"\n```\n\nFollow the instructions on the screen to save that for all subsequent requests.\n\n##### Slack\n\nCreate an app at https://api.slack.com/apps.\nThe app name doesn't matter. Choose the workspace that you want to send messages\nto.\n\nClick on \"create\". You will be redirected to the configuration page where you\nclick on \"permissions\".\n\nLook for \"scopes\" and select one of the following:\n\n* `chat:write:user` if you want `hello` to send messages using your Slack username.\n* `chat:write:bot` if you want `hello` to send messages using the app username.\n\nAt the top, you should see your `OAuth` token, which you have to store in the\n`.env` file of `hello`. If you don't see your token, you might have to click on\n\"request approval\" to be allowed to install the app into the selected workspace.\n\nThat's all you need. Save everything. \n\nRun the following command to send a message to `your-channel-name`:\n\n```\nhello slack \"your-channel-name\" \"Hello! https://github.com/hello-rust/hello\"\n```\n\n#### HackerNews\n\nSince HackerNews doesn't have an API for submitting links, we have to be\ncreative.\nWe use the awesome [fantoccini](https://github.com/jonhoo/fantoccini) to control\na [WebDriver](https://github.com/Fyrd/caniuse/issues/2757#issuecomment-304529217)\ncompatible browser.\n\n1. Install geckodriver by fetching the [latest build from their release page](https://github.com/mozilla/geckodriver/releases).\n2. Add your HN credentials to `.env`.\n\nExample:\n\n```\nhello hn \"Show HN: Hello, a CLI tool for managing social media\" https://github.com/hello-rust/hello\n```\n\n### Contributing\n\nThis tool was made possible by the excellent patrons of [\"Hello\nRust!\"](https://github.com/hello-rust/show), a show about the Rust programming\nlanguage. With their help, this tool is made available to the public under dual\nMIT/Apache license.\n\n[Become a patron](https://www.patreon.com/bePatron?c=1568097) now to support\nfuture work and send pull requests for supporting other platforms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhello-rust%2Fhello","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhello-rust%2Fhello","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhello-rust%2Fhello/lists"}