+
Skip to content

utecht/imemey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

imgflip Meme TUI

About

A fast terminal-based meme generator that caches Imgflip templates locally, lets users search and fill dynamic text boxes, and instantly copies and opens the generated meme while keeping the session live for quick edits.

How to use

  • Clone repository
  • cargo run
  • Enter your imgflip credentials, a free account is required for creating images via the API.
  • Enter text to search for memes by name
  • Enter text into boxes, then press enter and meme will be generated and opened directly in your browser, and the URL will be put into your clipboard

Architecture Overview

  • Core crate (src/lib.rs): exposes workflows for credential management, template catalog, meme creation, and clipboard/browser hooks.
  • Modules
    • config: resolve platform-specific config/data paths.
    • credentials: persist Imgflip credentials inside the SQLite catalog and expose prompting utilities.
    • api: HTTP client built with reqwest, JSON via serde, rate-limit/backoff handling.
    • catalog: local store of templates backed by SQLite, with fuzzy search support (fuzzy-matcher).
    • ui: TUI built with ratatui + crossterm; views for search list, template preview, box editor, status bar.
    • actions: command dispatcher coordinating async tasks, leveraging tokio.
    • integration: clipboard (arboard), URL opener (open crate), logging (tracing).
  • Binary (src/bin/imemey.rs): bootstraps async runtime, hydrates state, launches UI loop.

Testing & Tooling

  • Unit tests for API parsing, catalog search, credential IO.
  • Integration tests with httpmock simulating Imgflip endpoints.
  • Snapshot tests for TUI rendering via insta.
  • Continuous linting using cargo fmt and cargo clippy --deny warnings.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载