{"id":13518491,"url":"https://github.com/erikaheidi/dynacover","last_synced_at":"2025-03-31T10:31:55.905Z","repository":{"id":46105615,"uuid":"373222401","full_name":"erikaheidi/dynacover","owner":"erikaheidi","description":"This project is discontinued due to changes in the Twitter API access for users. Check erikaheidi/gdaisy for the base functionality of generating image banners based on JSON templates.","archived":true,"fork":false,"pushed_at":"2022-09-28T16:30:50.000Z","size":2822,"stargazers_count":173,"open_issues_count":4,"forks_count":12,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-02T00:32:24.824Z","etag":null,"topics":["api","gd","hacktoberfest","hacktoberfest2021","image-generation","image-processing","php","twitter"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/erikaheidi.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}},"created_at":"2021-06-02T15:46:19.000Z","updated_at":"2024-08-12T20:13:33.000Z","dependencies_parsed_at":"2023-01-18T19:01:39.834Z","dependency_job_id":null,"html_url":"https://github.com/erikaheidi/dynacover","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikaheidi%2Fdynacover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikaheidi%2Fdynacover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikaheidi%2Fdynacover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikaheidi%2Fdynacover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erikaheidi","download_url":"https://codeload.github.com/erikaheidi/dynacover/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246453654,"owners_count":20779989,"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":["api","gd","hacktoberfest","hacktoberfest2021","image-generation","image-processing","php","twitter"],"created_at":"2024-08-01T05:01:45.432Z","updated_at":"2025-03-31T10:31:55.501Z","avatar_url":"https://github.com/erikaheidi.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"## Dynacover\n\nDynacover is a PHP GD + TwitterOAuth CLI app to dynamically generate Twitter header images and upload them via the API. This enables you to build cool little tricks, like showing your latest followers or GitHub sponsors, your latest content created, a qrcode to something, a progress bar for a goal, and whatever you can think of.\n\n## Installation\n\nYou can run Dynacover in three different ways:\n\n- as a **GitHub action**: the easiest way to run Dynacover is by setting it up in a public repository with [GitHub Actions](https://docs.github.com/en/actions), using repository secrets for credentials. [Follow this step-by-step guide](https://github.com/erikaheidi/dynacover/wiki/Setting-Up-Dynacover-with-GitHub-Actions) to set this up - no coding required.\n- with **Docker**: you can use the public [erikaheidi/dynacover](https://hub.docker.com/repository/docker/erikaheidi/dynacover) Docker image to run Dynacover with a single command, no PHP required. [Follow this guide](https://github.com/erikaheidi/dynacover/wiki/Running-Dynacover-with-Docker) to set this up.\n  - to further customize your cover, you can clone the [dynacover repo](https://hub.docker.com/repository/docker/erikaheidi/dynacover) to customize banner resources (JSON template and header images, both located at `app/Resources`), then build a local copy of the Dynacover Docker image to use your custom changes.\n- with a **PHP CLI environment**: this will require `php-cli` 8.1+, Composer, and a few extensions: `php-gd`, `php-mbstring`, `php-curl`, and `php-json`. [Follow this guide](https://github.com/erikaheidi/dynacover/wiki/Running-Dynacover-on-a-PHP-CLI-environment) to set it up.\n\n### Obtaining Required Tokens\n\nTo upload your header images, you'll need to register an application within the [Twitter Developers Portal](https://dev.twitter.com) and obtain **4 tokens**:\n\n- Consumer / App Token\n- Consumer / App Secret\n- User / Access Token\n- User / Access Token Secret\n\nAdditionally, you can set up a [Personal GitHub API key](https://github.com/settings/tokens) to fetch your sponsors, in case you are enrolled in the GitHub Sponsors program. In this case, you should use the included `cover_sponsors.json` template. This is optional.\n\n\n### Available Templates\n\n### `cover_basic.json`\nThe default template shows latest 5 Twitter followers.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/293241/120888813-b559f700-c5fa-11eb-901f-0dac22afd662.png\" alt=\"cover basic\"/\u003e\n\u003c/p\u003e\n\n### `cover_colorful.json`\nSimilar to the basic cover, but with a more colorful background. Shows latest 5 Twitter followers.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/293241/120889018-8abc6e00-c5fb-11eb-85ee-ba85d95851b7.png\" alt=\"cover colorful\"/\u003e\n\u003c/p\u003e\n\n\n### `cover_neon.json`\nThis template shows your latest 5 Twitter followers in smaller size, in a blue-neon style header.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/293241/120889083-d53dea80-c5fb-11eb-86c6-e08420de124e.png\" alt=\"cover neon\"/\u003e\n\u003c/p\u003e\n\n### `cover_sponsors.json`\nThis template uses the Github image source to obtain sponsors and include them in the banner. Make sure you have set up your GH token on the `credentials.php` file.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/293241/120888781-8c396680-c5fa-11eb-8d1d-f3889fdd06e7.png\" alt=\"cover with github sponsors\"/\u003e\n\u003c/p\u003e\n\n## Recent Interactions Banner\n\nThe \"interactions banner\" is generated based on your recent interactions and can be limited to only include mutuals (people that follows you and you follow them back).\n\n```shell\nphp dynacover generate interactions\n```\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/293241/124271726-1a433700-db3e-11eb-851b-2812d9df923b.png\" alt=\"recent interactions twitter banner\"/\u003e\n\u003c/p\u003e\n\n\nFor mutuals only, include the `--mutuals` flag:\n\n```shell\nphp dynacover generate interactions --mutuals\n```\n\n_Please notice that the \"mutuals\" version may have a limited set of results after filtering your latest interactions (~200 mentions)._\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikaheidi%2Fdynacover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferikaheidi%2Fdynacover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikaheidi%2Fdynacover/lists"}