Git Product home page Git Product logo

uwuifyy's Introduction

uwuifyy

build crate.io downloads license

A robust, customizable, blazingly-fast, efficient and easy-to-use command line application to uwu'ify your text!

Logo Credits: Jade Nelson

Table Of Contents

About

Have you ever wanted to uwu'ify text and large files at blazing fast speeds? Well! You came to the right place! uwuifyy allows you to uwu'ify text and files from within your own terminal in an extremely fast manner!

Features

  • BLAZINGLY FAST (Check out -> Benchmarks)
  • Seeded by default to allow for reproducible results
  • Excludes URL's & Emails
  • UwU'ify files available locally on disk
  • Completely customisable modifiers

Installation

Homebrew

For macOS users, installation through Homebrew is recommended.

$ brew tap sgoudham/tap
$ brew install uwuifyy

AUR

Arch Linux users can install uwuifyy through the AUR using an AUR helper.

$ paru uwuifyy

Binaries

Binaries for Windows, macOS & Linux are available with every single release

Windows

  1. Download either uwuifyy-x86_64-pc-windows-msvc.zip or uwuifyy-x86_64-pc-windows-gnu.zip

  2. Extract into \bin folder at C:\your\path\here\

C:
|__your
    |__path
        |__here
            |__bin
                |__uwuifyy.exe
  1. Set uwuifyy.exe in your path to access it globally
$ setx path "%path%;C:\your\path\here\bin"
  1. Refresh command line and verify installation
$ uwuifyy --help

Linux \ macOS

  1. Download uwuifyy-x86_64-unknown-linux-gnu.tar.gz or uwuifyy-x86_64-unknown-linux-musl.tar.gz or uwuifyy-x86_64-apple-darwin.tar.gz

  2. Extract into your local directory

# Linux
$ tar -xf uwuifyy-x86_64-unknown-linux-gnu.tar.gz
$ tar -xf uwuifyy-x86_64-unknown-linux-musl.tar.gz

# macOS
$ tar -xf uwuifyy-x86_64-apple-darwin.tar.gz
  1. Move into ~/bin
# Create ~/bin if it does not exist
$ mkdir -p ~/bin
$ mv uwuifyy ~/bin
  1. Set permissions for executable
$ chmod 755 ~/bin/uwuifyy
  1. Update PATH to use globally
# Linux
$ echo 'export PATH=~/bin:$PATH' >> ~/.bashrc 
$ source ~/.bashrc

# macOS
$ echo 'export PATH=~/bin:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile
  1. Verify installation
$ uwuifyy --version
uwuifyy 0.3.0

Rust \ Cargo

Alternatively, if using Rust's package manager, Cargo, all that is needed is

$ cargo install uwuifyy

If you do not have Cargo available on your machine, you can download it as part of Rust here

Usage

$ uwuifyy --help

USAGE:
    uwuifyy.exe [OPTIONS] <--text <TEXT>|--infile <FILE>>

OPTIONS:
    -t, --text <TEXT>         The text to uwu'ify
    -i, --infile <FILE>       The file to uwu'ify
    -o, --outfile <FILE>      The file to output uwu'ified text
        --ascii-only          The uwu'ified text will only include ASCII faces
        --unicode-only        The uwu'ified text will only include UTF-8 faces
    -r, --random              The flag to enable randomized uwu'ified text
    -w, --words <VALUE>       The modifier to determine how many words to be uwu'ified [default: 1]
    -f, --faces <VALUE>       The modifier for uwu faces e.g hello -> (^-^*)/ hewwo [default: 0.05]
    -a, --actions <VALUE>     The modifier for actions e.g *shuffles over* [default: 0.125]
    -s, --stutters <VALUE>    The modifier for stutters e.g b-baka! [default: 0.225]
    -h, --help                Print help information
    -V, --version             Print version information

Text Input to Text Output

Text Input to File Output

File Input to File Output

Benchmarks

  • Benchmarks/Tests carried out on a Dell XPS 15
    • CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
    • SSD: NVMe Micron 2300 1TB

The Complete Works of William Shakespeare

  • Dataset
  • Size: 5.46 MiB
  • Time Taken: < 1s

300k+ Tokyo 2020\21 Olympics Tweets

  • Dataset
  • Size: 98.54 MiB
  • Time Taken: 1s

3.5M Tiktok Google Play Reviews

  • Dataset
  • Size: 543.02 MiB
  • Time Taken: 4s

3.6M Amazon Reviews And Ratings

  • Dataset
  • Size: 1.6 GiB
  • Time Taken: 21s
  • DISCLAIMER: The input is a 1.6GB file and the output is a 2.2GB file. They are not included in the repo.

License

MIT License

Acknowledgement

This project is inspired from one of many existing normal to uwu converters: Uwuifier

uwuifyy's People

Contributors

aman-mandal avatar itslukedev avatar justtobbi avatar nekowinston avatar orhun avatar sgoudham avatar stratusfearme21 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

uwuifyy's Issues

Support input from stdin

It would be nice to be able to use this with the pipe (|) operator, e.g. echo "Hello, world!" | uwuifyy. In the past I've used https://github.com/thepacketgeek/clap-stdin for this sort of thing (https://github.com/uncenter/kittysay/blob/6955b362fca7bc5197a86624febad7c0f7ffd9d7/src/main.rs#L54) though since you don't use the derive method for clap I'm not exactly sure how to do it. Giving the derive method a try might be worth it, I've found it to be simpler and more readable :)

Fix incorrect help message

The Problem

Currently, the help message for faces is

-f, --faces <VALUE> The modifier for uwu faces e.g hello -> hewwo [default: 0.05]

However, the example given does not demonstrate what that modifier actually does and instead represents the words modifier.

The Fix

The above help message should be updated to

-f, --faces <VALUE> The modifier for uwu faces e.g hello -> (^-^*)/ hewwo [default: 0.05]

Cargo.lock is missing

Cargo.lock should be committed to the repository since it is a binary application.

uwuifyy/.gitignore

Lines 5 to 7 in 34d894d

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

Create tagged release from GitHub UI

Motivation

I want to be able to release a new version of the binary solely from GitHub Actions itself instead of having to clone the repository and create/push the tag itself.

Description

The existing deploy.yml should be modified to take in a workflow_dispatch event. More information can be found here

This workflow_dispatch event should take in a parameter called tag which prompts the user to enter a tag name.

Once the above is configured, a conditional job should be created in the same file (before all the other jobs!) which only runs if the workflow was manually triggered (see if condition down below in the acceptance criteria). The job itself should pull down the latest changes of the repository and create a new tag based on the input tag name, override the default github.ref environment variable with the new tag name and then continue to execute the other steps.

Note
You might not be able to override the default github.ref environment variable, in that case, please comment down below and we can think of some other workarounds.

An article that describes some of the syntax is listed here which may help you!

Acceptance Criteria

  • .github/workflows/deploy.yml has been modified to include on_workflow_dispatch and take in tag name as a parameter
  • A job is created to create the tag and ran conditionally if: ${{ $GITHUB_EVENT_NAME == 'workflow_dispatch' }}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.