PhpDev.App
erikaheidi/dynacover

erikaheidi/dynacover

Stars: 175

Forks: 13

Pull Requests: 11

Issues: 10

Watchers: 4

Last Updated: 2022-09-28 16:30:50

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.

License: MIT License

Languages: PHP, Shell, Dockerfile

Dynacover

Dynacover 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.

Installation

You can run Dynacover in three different ways:

  • as a GitHub action: the easiest way to run Dynacover is by setting it up in a public repository with GitHub Actions, using repository secrets for credentials. Follow this step-by-step guide to set this up - no coding required.
  • with Docker: you can use the public erikaheidi/dynacover Docker image to run Dynacover with a single command, no PHP required. Follow this guide to set this up.
    • to further customize your cover, you can clone the dynacover repo 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.
  • 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 to set it up.

Obtaining Required Tokens

To upload your header images, you'll need to register an application within the Twitter Developers Portal and obtain 4 tokens:

  • Consumer / App Token
  • Consumer / App Secret
  • User / Access Token
  • User / Access Token Secret

Additionally, you can set up a Personal GitHub API key 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.

Available Templates

cover_basic.json

The default template shows latest 5 Twitter followers.

cover basic

cover_colorful.json

Similar to the basic cover, but with a more colorful background. Shows latest 5 Twitter followers.

cover colorful

cover_neon.json

This template shows your latest 5 Twitter followers in smaller size, in a blue-neon style header.

cover neon

cover_sponsors.json

This 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.

cover with github sponsors

Recent Interactions Banner

The "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).

php dynacover generate interactions

recent interactions twitter banner

For mutuals only, include the --mutuals flag:

php dynacover generate interactions --mutuals

Please notice that the "mutuals" version may have a limited set of results after filtering your latest interactions (~200 mentions).