{"id":15059021,"url":"https://github.com/milmazz/hunter","last_synced_at":"2025-08-22T00:31:56.547Z","repository":{"id":19659867,"uuid":"87596698","full_name":"milmazz/hunter","owner":"milmazz","description":"A Elixir client for Mastodon, a GNU Social compatible micro-blogging service","archived":false,"fork":false,"pushed_at":"2023-04-17T11:58:17.000Z","size":315,"stargazers_count":57,"open_issues_count":10,"forks_count":8,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-12-16T21:28:12.088Z","etag":null,"topics":["gnu-social","mastodon","mastodon-apis","microblogging","social-network"],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/milmazz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-04-08T00:27:23.000Z","updated_at":"2024-07-25T17:41:46.000Z","dependencies_parsed_at":"2023-09-22T03:26:23.571Z","dependency_job_id":null,"html_url":"https://github.com/milmazz/hunter","commit_stats":{"total_commits":158,"total_committers":11,"mean_commits":"14.363636363636363","dds":"0.37341772151898733","last_synced_commit":"e3aa7f49351656f0decd58e2da4fd9b40d2b1388"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milmazz%2Fhunter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milmazz%2Fhunter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milmazz%2Fhunter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milmazz%2Fhunter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/milmazz","download_url":"https://codeload.github.com/milmazz/hunter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230367780,"owners_count":18215325,"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":["gnu-social","mastodon","mastodon-apis","microblogging","social-network"],"created_at":"2024-09-24T22:35:34.439Z","updated_at":"2024-12-20T06:06:59.351Z","avatar_url":"https://github.com/milmazz.png","language":"Elixir","funding_links":[],"categories":["Legacy \u0026 Inactive Projects"],"sub_categories":["[AnibalOS](https://www.youtube.com/@AnibalOS/)"],"readme":"# Hunter\n\n[![Hex.pm](https://img.shields.io/hexpm/v/hunter.svg?style=flat-square)](https://hex.pm/packages/hunter)\n[![Ebert](https://ebertapp.io/github/milmazz/hunter.svg)](https://ebertapp.io/github/milmazz/hunter)\n[![Build Status](https://travis-ci.org/milmazz/hunter.svg?branch=master)](https://travis-ci.org/milmazz/hunter)\n\nA Elixir client for [Mastodon](https://github.com/Gargron/mastodon/), a GNU social-compatible micro-blogging service\n\n## Installation\n\n```elixir\ndef deps do\n  [{:hunter, \"~\u003e 0.4\"}]\nend\n```\n\nThen, update your dependencies:\n\n```sh-session\n$ mix deps.get\n```\n\nIf you want to run the automated tests for this project:\n\n```sh-session\n$ mix test\n```\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on the process for submitting pull request to us.\n\n## Code of Conduct\n\nPlease read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for details on our code of conduct.\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/milmazz/hunter/tags).\n\n## Usage\n\n### Registering an application\n\n```elixir\niex\u003e app = Hunter.create_app(\"hunter\", \"urn:ietf:wg:oauth:2.0:oob\", [\"read\", \"write\", \"follow\"], nil, [save?: true, api_base_url: \"https://example.com\"])\n%Hunter.Application{client_id: \"1234567890\",\n client_secret: \"1234567890\",\n id: 1234}\n```\n\nYou can also load the application's saved credentials:\n\n```elixir\niex\u003e app = Hunter.Application.load_credentials(\"hunter\")\n%Hunter.Application{client_id: \"1234567890\",\n client_secret: \"1234567890\",\n id: 1234}\n```\n\n### Acquire an access token\n\nOnce you have a registered app you can do the following:\n\n```elixir\niex\u003e conn = Hunter.log_in(app, \"jdoe@example.com\", \"your_password\", \"https://example.com\")\n%Hunter.Client{base_url: \"https://example.com\",\n bearer_token: \"123456\"}\n```\n\nOr, if you want to use [OAuth code](https://docs.joinmastodon.org/methods/apps/oauth/) for authentication:\n\n```elixir\niex\u003e conn = Hunter.log_in_oauth(app, \"123456code\", \"https://example.com\")\n%Hunter.Client{base_url: \"https://example.com\",\n bearer_token: \"123456\"}\n```\n\nNow you can use `conn` in any API request.\n\nIf you don't want to register an application but you already know your\n*instance* and your *bearer token* you can do the following:\n\n```elixir\niex\u003e conn = Hunter.new([base_url: \"https://example.com\", bearer_token: \"123456\"])\n%Hunter.Client{base_url: \"https://example.com\",\n bearer_token: \"123456\"}\n```\n\nReturns `Hunter.Client` details.\n\n### Getting the current user\n\n```elixir\niex\u003e Hunter.verify_credentials(conn)\n%Hunter.Account{acct: \"milmazz\",\n avatar: \"https://social.lou.lt/avatars/original/missing.png\",\n created_at: \"2017-04-06T17:43:55.325Z\", display_name: \"Milton Mazzarri\",\n followers_count: 2, following_count: 3,\n header: \"https://social.lou.lt/headers/original/missing.png\", id: 8039,\n locked: false, note: \"\", statuses_count: 1,\n url: \"https://social.lou.lt/@milmazz\", username: \"milmazz\"}\n```\n\nReturns a `Hunter.Account`\n\n### Fetching an account\n\n```elixir\niex\u003e Hunter.account(conn, 8039)\n%Hunter.Account{acct: \"milmazz\",\n avatar: \"https://social.lou.lt/avatars/original/missing.png\",\n created_at: \"2017-04-06T17:43:55.325Z\", display_name: \"Milton Mazzarri\",\n followers_count: 2, following_count: 3,\n header: \"https://social.lou.lt/headers/original/missing.png\", id: 8039,\n locked: false, note: \"\", statuses_count: 1,\n url: \"https://social.lou.lt/@milmazz\", username: \"milmazz\"}\n```\n\nReturns a `Hunter.Account`\n\n### Getting an account's followers\n\n```elixir\niex\u003e Hunter.followers(conn, 8039)\n[%Hunter.Account{acct: \"atmantree@mastodon.club\",\n  avatar: \"https://social.lou.lt/system/accounts/avatars/000/008/518/original/7715529d4ceb4554.jpg?1491509276\",\n  created_at: \"2017-04-06T20:07:57.119Z\", display_name: \"Carlos Gustavo Ruiz\",\n  followers_count: 2, following_count: 2,\n  header: \"https://social.lou.lt/system/accounts/headers/000/008/518/original/394f31473de7c64a.png?1491509277\",\n  id: 8518, locked: false,\n  note: \"Programmer, Pythonista, Web Creature, Blogger, C++ and Haskell Fan. Never stop learning, because life never stops teaching.\",\n  statuses_count: 1, url: \"https://mastodon.club/@atmantree\",\n  username: \"atmantree\"},\n  ...\n ]\n```\n\nReturns a list of `Hunter.Account`\n\n### Getting who account is following\n\n```elixir\niex\u003e Hunter.following(conn, 8039)\n[%Hunter.Account{acct: \"sebasmagri@mastodon.cloud\",\n  avatar: \"https://social.lou.lt/system/accounts/avatars/000/007/899/original/19b4d8c1e9d4e68a.jpg?1491498458\",\n  created_at: \"2017-04-06T17:07:38.912Z\",\n  display_name: \"Sebastián Ramírez Magrí\", followers_count: 2,\n  following_count: 1,\n  header: \"https://social.lou.lt/system/accounts/headers/000/007/899/original/missing.png?1491498458\",\n  id: 7899, locked: false, note: \"\", statuses_count: 2,\n  url: \"https://mastodon.cloud/@sebasmagri\", username: \"sebasmagri\"},\n  ...]\n ```\n\n Returns a list of `Hunter.Account`\n\n### Following a remote user\n\n```elixir\niex\u003e Hunter.follow_by_uri(conn, \"paperswelove@mstdn.io\")\n%Hunter.Account{acct: \"paperswelove@mstdn.io\",\n avatar: \"https://social.lou.lt/system/accounts/avatars/000/007/126/original/60ecc8225809c008.png?1491486258\",\n created_at: \"2017-04-06T13:44:18.281Z\", display_name: \"Papers We Love\",\n followers_count: 1, following_count: 0,\n header: \"https://social.lou.lt/system/accounts/headers/000/007/126/original/missing.png?1491486258\",\n id: 7126, locked: false,\n note: \"Building Bridges Between Academia and Industry\\r\\n\\r\\n\u003ca href=\\\"http://paperswelove.org\\\" rel=\\\"nofollow noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003epaperswelove.org\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e\\r\\n\u003ca href=\\\"http://pwlconf.org\\\" rel=\\\"nofollow noopener noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003epwlconf.org\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e\",\n statuses_count: 1, url: \"https://mstdn.io/@paperswelove\",\n username: \"paperswelove\"}\n ```\n\n Returns a `Hunter.Account`\n\n### Muting/unmuting an account\n\n```elixir\niex\u003e Hunter.mute(conn, 7899)\n%Hunter.Relationship{blocking: false, followed_by: false, following: true,\n muting: true, requested: false}\niex\u003e Hunter.unmute(conn, 7899)\n%Hunter.Relationship{blocking: false, followed_by: false, following: true,\n muting: false, requested: false}\n```\n\nReturns the target account's `Hunter.Relationship`\n\n### Getting an account's statuses\n\n```elixir\niex\u003e Hunter.statuses(conn, 8039)\n[%Hunter.Status{account: %Hunter.Account{acct: \"milmazz\",\n   avatar: \"https://social.lou.lt/avatars/original/missing.png\",\n   created_at: \"2017-04-06T17:43:55.325Z\", display_name: \"Milton Mazzarri\",\n   followers_count: 4, following_count: 4,\n   header: \"https://social.lou.lt/headers/original/missing.png\", id: 8039,\n   locked: false, note: \"\", statuses_count: 2,\n   url: \"https://social.lou.lt/@milmazz\", username: \"milmazz\"},\n  application: %Hunter.Application{client_id: nil, client_secret: nil, id: nil},\n  content: \"\u003cp\u003eHunter is a Elixir client for Mastodon: \u003ca href=\\\"https://github.com/milmazz/hunter\\\" rel=\\\"nofollow noopener\\\" target=\\\"_blank\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttps://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003egithub.com/milmazz/hunter\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e \u003ca href=\\\"https://social.lou.lt/tags/myelixirstatus\\\" class=\\\"mention hashtag\\\"\u003e#\u003cspan\u003emyelixirstatus\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\",\n  created_at: \"2017-04-08T04:41:38.643Z\", favourited: nil, favourites_count: 1,\n  id: 118635, in_reply_to_account_id: nil, in_reply_to_id: nil,\n  media_attachments: [], mentions: [], reblog: nil, reblogged: nil,\n  reblogs_count: 0, sensitive: nil, spoiler_text: \"\",\n  tags: [%Hunter.Tag{name: \"myelixirstatus\",\n    url: \"https://social.lou.lt/tags/myelixirstatus\"}],\n  uri: \"tag:social.lou.lt,2017-04-08:objectId=118635:objectType=Status\",\n  url: \"https://social.lou.lt/@milmazz/118635\", visibility: \"public\"},\n  ...\n]\n```\n\nReturns a list of `Hunter.Status`\n\n### Fetching a user's favourites\n\n```\niex\u003e Hunter.favourites(conn)\n[]\n```\n\nReturns a list of `Hunter.Status` favourited by the authenticated user.\n\n### Favouriting/unfavouriting a status\n\n```elixir\niex\u003e Hunter.favourite(conn, 442)\n%Hunter.Status{account: %Hunter.Account{acct: \"FriendlyPootis\",\n  avatar: \"https://social.lou.lt/system/accounts/avatars/000/000/034/original/565da0399c2c26cf.jpg?1491228302\",\n  created_at: \"2017-04-03T13:50:06.485Z\", display_name: \"FriendlyPootis 🚉\",\n  followers_count: 62, following_count: 53,\n  header: \"https://social.lou.lt/system/accounts/headers/000/000/034/original/b009ddb5a8ce41c1.jpg?1491228302\",\n  id: 34, locked: false,\n  note: \"fermé comme un carré, Vladimir Pootin sur YT (\u003ca href=\\\"https://www.youtube.com/VladimirPootin\\\" rel=\\\"nofollow noopener\\\" target=\\\"_blank\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\\\"\\\"\u003eyoutube.com/VladimirPootin\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e)\",\n  statuses_count: 253, url: \"https://social.lou.lt/@FriendlyPootis\",\n  username: \"FriendlyPootis\"},\n application: %Hunter.Application{client_id: nil, client_secret: nil, id: nil},\n content: \"\u003cp\u003eles gens pensez à migrer d\u0026apos;instance pour en aller sur une moins chargée tant que vous pouvez, plus vous attendrez plus vous aurez la flemme\u003c/p\u003e\",\n created_at: \"2017-04-03T16:22:04.286Z\", favourited: true, favourites_count: 5,\n id: 442, in_reply_to_account_id: nil, in_reply_to_id: nil,\n media_attachments: [], mentions: [], reblog: nil, reblogged: false,\n reblogs_count: 4, sensitive: false, spoiler_text: \"\", tags: [],\n uri: \"tag:social.lou.lt,2017-04-03:objectId=442:objectType=Status\",\n url: \"https://social.lou.lt/@FriendlyPootis/442\", visibility: \"public\"}\n ```\n\n ```elixir\niex\u003e Hunter.unfavourite(conn, 442)\n%Hunter.Status{account: %Hunter.Account{acct: \"FriendlyPootis\",\n  avatar: \"https://social.lou.lt/system/accounts/avatars/000/000/034/original/565da0399c2c26cf.jpg?1491228302\",\n  created_at: \"2017-04-03T13:50:06.485Z\", display_name: \"FriendlyPootis 🚉\",\n  followers_count: 62, following_count: 53,\n  header: \"https://social.lou.lt/system/accounts/headers/000/000/034/original/b009ddb5a8ce41c1.jpg?1491228302\",\n  id: 34, locked: false,\n  note: \"fermé comme un carré, Vladimir Pootin sur YT (\u003ca href=\\\"https://www.youtube.com/VladimirPootin\\\" rel=\\\"nofollow noopener\\\" target=\\\"_blank\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttps://www.\u003c/span\u003e\u003cspan class=\\\"\\\"\u003eyoutube.com/VladimirPootin\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e)\",\n  statuses_count: 253, url: \"https://social.lou.lt/@FriendlyPootis\",\n  username: \"FriendlyPootis\"},\n application: %Hunter.Application{client_id: nil, client_secret: nil, id: nil},\n content: \"\u003cp\u003eles gens pensez à migrer d\u0026apos;instance pour en aller sur une moins chargée tant que vous pouvez, plus vous attendrez plus vous aurez la flemme\u003c/p\u003e\",\n created_at: \"2017-04-03T16:22:04.286Z\", favourited: true, favourites_count: 5,\n id: 442, in_reply_to_account_id: nil, in_reply_to_id: nil,\n media_attachments: [], mentions: [], reblog: nil, reblogged: false,\n reblogs_count: 4, sensitive: false, spoiler_text: \"\", tags: [],\n uri: \"tag:social.lou.lt,2017-04-03:objectId=442:objectType=Status\",\n url: \"https://social.lou.lt/@FriendlyPootis/442\", visibility: \"public\"}\n ```\n\n Returns the target `Hunter.Status`\n\n### Get instance information\n\n```elixir\niex\u003e Hunter.instance_info(conn)\n%Hunter.Instance{description: \"Mostly French  instance - \u003ca href=\\\"/about/more#rules\\\"\u003eRead full description\u003c/a\u003e for rules.\",\n email: \"maxime+mastodon@melinon.fr\", title: \"Loultstodon\",\n uri: \"social.lou.lt\"}\n```\n\nReturns the current `Hunter.Instance`. Does not require authentication.\n\n### Fetch user's notifications\n\n```elixir\niex\u003e Hunter.notifications(conn)\n[%Hunter.Notification{account: %Hunter.Account{acct: \"paperswelove@mstdn.io\",\n   avatar: \"https://social.lou.lt/system/accounts/avatars/000/007/126/original/60ecc8225809c008.png?1491486258\",\n   created_at: \"2017-04-06T13:44:18.281Z\", display_name: \"Papers We Love\",\n   followers_count: 1, following_count: 1,\n   header: \"https://social.lou.lt/system/accounts/headers/000/007/126/original/missing.png?1491486258\",\n   id: 7126, locked: false,\n   note: \"Building Bridges Between Academia and Industry\\n\\n\u003ca href=\\\"http://paperswelove.org\\\" rel=\\\"nofollow noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003epaperswelove.org\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e\\n\u003ca href=\\\"http://pwlconf.org\\\" rel=\\\"nofollow noopener noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003epwlconf.org\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e\",\n   statuses_count: 8, url: \"https://mstdn.io/@paperswelove\",\n   username: \"paperswelove\"}, created_at: \"2017-04-08T12:15:53.467Z\", id: 17476,\n  status: nil, type: \"follow\"},\n ...\n]\n```\n\nReturns a list of `Hunter.Notification` for the authenticated user.\n\n### Fetch a single notification\n\n```elixir\niex\u003e Hunter.notification(conn, 17476)\n%Hunter.Notification{account: %Hunter.Account{acct: \"paperswelove@mstdn.io\",\n  avatar: \"https://social.lou.lt/system/accounts/avatars/000/007/126/original/60ecc8225809c008.png?1491486258\",\n  created_at: \"2017-04-06T13:44:18.281Z\", display_name: \"Papers We Love\",\n  followers_count: 1, following_count: 1,\n  header: \"https://social.lou.lt/system/accounts/headers/000/007/126/original/missing.png?1491486258\",\n  id: 7126, locked: false,\n  note: \"Building Bridges Between Academia and Industry\\n\\n\u003ca href=\\\"http://paperswelove.org\\\" rel=\\\"nofollow noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003epaperswelove.org\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e\\n\u003ca href=\\\"http://pwlconf.org\\\" rel=\\\"nofollow noopener noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003epwlconf.org\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e\",\n  statuses_count: 8, url: \"https://mstdn.io/@paperswelove\",\n  username: \"paperswelove\"}, created_at: \"2017-04-08T12:15:53.467Z\", id: 17476,\n status: nil, type: \"follow\"}\n```\n\nReturns a single `Hunter.Notification`\n\n### Clear notifications\n\n```elixir\niex\u003e Hunter.clear_notifications(conn)\n\"{}\"\niex\u003e Hunter.notifications(conn)\n[]\n```\n\nDeletes all notifications from the Mastodon server for the authenticated user.\n\n### Get a card associated with a status\n\n```elixir\niex\u003e Hunter.card_by_status(conn, 118635)\n%Hunter.Card{description: \"hunter - A Elixir client for Mastodon, a GNU Social compatible micro-blogging service\",\n image: \"https://social.lou.lt/system/preview_cards/images/000/000/378/original/34700?1491626499\",\n title: \"milmazz/hunter\", url: \"https://github.com/milmazz/hunter\"}\n```\n\nReturns a `Hunter.Card`\n\n### Fetch a list of follow requests\n\n```elixir\niex\u003e Hunter.follow_requests(conn)\n[]\n```\n\nReturns a list of `Hunter.Account` which have requested to follow the authenticated user.\n\n### Fetch user's blocks\n\n```elixir\niex\u003e Hunter.blocks(conn)\n[]\n```\n\nReturns a list of `Hunter.Account` blocked by the authenticated user.\n\n### Fetch user's mutes\n\n```elixir\niex\u003e Hunter.mutes(conn)\n[]\n```\n\nReturns a list of `Hunter.Account` muted by the authenticated user.\n\n### Fetch user's reports\n\n```elixir\niex\u003e Hunter.reports(conn)\n[]\n```\n\nReturns a list of `Hunter.Report` made by the authenticated user.\n\n### Filter statuses given a hashtag\n\n```elixir\niex\u003e Hunter.hashtag_timeline(conn, \"paperswelove\")\n[%Hunter.Status{account: %Hunter.Account{acct: \"paperswelove@mstdn.io\",\n   avatar: \"https://social.lou.lt/system/accounts/avatars/000/007/126/original/60ecc8225809c008.png?1491486258\",\n   created_at: \"2017-04-06T13:44:18.281Z\", display_name: \"Papers We Love\",\n   followers_count: 1, following_count: 1,\n   header: \"https://social.lou.lt/system/accounts/headers/000/007/126/original/missing.png?1491486258\",\n   id: 7126, locked: false,\n   note: \"Building Bridges Between Academia and Industry\\n\\n\u003ca href=\\\"http://paperswelove.org\\\" rel=\\\"nofollow noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003epaperswelove.org\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e\\n\u003ca href=\\\"http://pwlconf.org\\\" rel=\\\"nofollow noopener noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003epwlconf.org\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e\",\n   statuses_count: 8, url: \"https://mstdn.io/@paperswelove\",\n   username: \"paperswelove\"}, application: nil,\n  content: \"\u003cp\u003eOne Pass Real-Time Generational Mark-Sweep Garbage Collection - Armstrong, Virding\u003c/p\u003e\u003cp\u003eLink: \u003ca href=\\\"http://buff.ly/2pdh7iS\\\" rel=\\\"nofollow noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttp://\u003c/span\u003e\u003cspan class=\\\"\\\"\u003ebuff.ly/2pdh7iS\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e\u003c/span\u003e\u003c/a\u003e \u003c/p\u003e\u003cp\u003eIn this paper we present a simple scheme for reclaiming data for such language classes with a single pass mark-sweep collector. We also show how the simple scheme can be modified so that the collection can be done in an incremental manner (making it suitable for real-time collection).\u003c/p\u003e\u003cp\u003e\u003ca href=\\\"https://mstdn.io/tags/garbagecollection\\\" class=\\\"mention hashtag\\\"\u003e#\u003cspan\u003egarbagecollection\u003c/span\u003e\u003c/a\u003e \u003ca href=\\\"https://mstdn.io/tags/compsci\\\" class=\\\"mention hashtag\\\"\u003e#\u003cspan\u003ecompsci\u003c/span\u003e\u003c/a\u003e \u003ca href=\\\"https://mstdn.io/tags/paperswelove\\\" class=\\\"mention hashtag\\\"\u003e#\u003cspan\u003epaperswelove\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\u003cp\u003e \u003ca href=\\\"https://mstdn.io/media/u03CNEJZho1pvTR3q6Y\\\" rel=\\\"nofollow noopener noopener\\\"\u003e\u003cspan class=\\\"invisible\\\"\u003ehttps://\u003c/span\u003e\u003cspan class=\\\"ellipsis\\\"\u003emstdn.io/media/u03CNEJZho1pvTR\u003c/span\u003e\u003cspan class=\\\"invisible\\\"\u003e3q6Y\u003c/span\u003e\u003c/a\u003e\u003c/p\u003e\",\n  created_at: \"2017-04-10T11:40:45.000Z\", favourited: nil, favourites_count: 0,\n  id: 186397, in_reply_to_account_id: nil, in_reply_to_id: nil,\n  media_attachments: [%Hunter.Attachment{id: 10284,\n    preview_url: \"https://social.lou.lt/system/media_attachments/files/000/010/284/small/b0432b95264e141c.png?1491824449\",\n    remote_url: \"https://mstdn.io/system/media_attachments/files/000/009/562/original/b0432b95264e141c.png\",\n    text_url: nil, type: \"image\",\n    url: \"https://social.lou.lt/system/media_attachments/files/000/010/284/original/b0432b95264e141c.png?1491824449\"}],\n  mentions: [], reblog: nil, reblogged: nil, reblogs_count: 0, sensitive: false,\n  spoiler_text: \"\",\n  tags: [%Hunter.Tag{name: \"paperswelove\",\n    url: \"https://social.lou.lt/tags/paperswelove\"},\n   %Hunter.Tag{name: \"compsci\", url: \"https://social.lou.lt/tags/compsci\"},\n   %Hunter.Tag{name: \"garbagecollection\",\n    url: \"https://social.lou.lt/tags/garbagecollection\"}],\n  uri: \"tag:mstdn.io,2017-04-10:objectId=171105:objectType=Status\",\n  url: \"https://mstdn.io/users/paperswelove/updates/9954\",\n  visibility: \"public\"},\n  ...\n ]\n ```\n\n Returns a list of `Hunter.Status`, most recent ones first.\n\n### Updating the current user\n\n```elixir\niex\u003e Hunter.update_credentials(conn, %{note: \"Enum.random(~w(programming cycling tennis elixir learning mojitos grill))\"})\n%Hunter.Account{acct: \"milmazz\",\n avatar: \"https://social.lou.lt/avatars/original/missing.png\",\n created_at: \"2017-04-06T17:43:55.325Z\", display_name: \"Milton Mazzarri\",\n followers_count: 4, following_count: 4,\n header: \"https://social.lou.lt/headers/original/missing.png\", id: 8039,\n locked: false,\n note: \"Enum.random(~w(programming cycling tennis elixir learning mojitos grill))\",\n statuses_count: 3, url: \"https://social.lou.lt/@milmazz\", username: \"milmazz\"}\n```\n\nReturns a `Hunter.Account`\n\n### Configuration\n\nHunter uses [HTTPoison](https://hex.pm/packages/httpoison) as HTTP client layer.\nHTTPoison understands a set of [HTTP options](https://hexdocs.pm/httpoison/HTTPoison.Request.html) which can be configured through Hunter configuration :\n\n```elixir\nconfig :hunter, http_options: [follow_redirect: true, hackney: [{:force_redirect, true}]]\n```\n\nwill tell HTTPoison to follow redirected (301) links when calling mastodon API.\n\nIf you want to provide another API adapter, you can change the following option:\n\n```elixir\nconfig :hunter, hunter_api: Hunter.Api.HTTPClient\n```\n\nFor example, to run local tests we use the following adapter:\n\n```elixir\nconfig :hunter, hunter_api: Hunter.Api.InMemory\n```\n\nFinally, you can also change the default API base url (`https://mastodon.social`):\n\n```elixir\nconfig :hunter, api_base_url: \"https://mastodon.social\"\n```\n\n## License\n\nHunter source code is released under Apache 2 License.\n\nCheck the [LICENSE](LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilmazz%2Fhunter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmilmazz%2Fhunter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilmazz%2Fhunter/lists"}