turtle

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2021 License: MIT Imports: 1 Imported by: 43

README ยถ

turtle

Emojis for Go ๐Ÿ˜„๐Ÿข๐Ÿš€

Reference

Follow this link to view the reference documentation: GoDoc Reference ๐Ÿ“

Installation

Library

To install the turtle library run:

go get github.com/hackebrot/turtle

CLI app

If you would also like to use the turtle CLI app run:

go get github.com/hackebrot/turtle/cmd/turtle

See the turtle CLI README for more information.

Usage

Emoji lookup

turtle.Emojis is a map which contains all emojis available in turtle. You can use it to look up emoji by their name.

package main

import (
	"fmt"
	"os"

	"github.com/hackebrot/turtle"
)

func main() {
	name := "turtle"
	emoji, ok := turtle.Emojis[name]

	if !ok {
		fmt.Fprintf(os.Stderr, "no emoji found for name: %v\n", name)
		os.Exit(1)
	}

	fmt.Printf("Name: %q\n", emoji.Name)
	fmt.Printf("Char: %s\n", emoji.Char)
	fmt.Printf("Category: %q\n", emoji.Category)
	fmt.Printf("Keywords: %q\n", emoji.Keywords)
}
Name: "turtle"
Char: ๐Ÿข
Category: "animals_and_nature"
Keywords: ["animal" "slow" "nature" "tortoise"]

Use Search() to find all emojis with a name that contains the search string.

package main

import (
	"fmt"
	"os"

	"github.com/hackebrot/turtle"
)

func main() {
	s := "computer"
	emojis := turtle.Search(s)

	if emojis == nil {
		fmt.Fprintf(os.Stderr, "no emojis found for search: %v\n", s)
		os.Exit(1)
	}

	fmt.Printf("%s: %s\n", s, emojis)
}
computer: [๐Ÿ’ป ๐Ÿ–ฑ ๐Ÿ–ฅ ]
Category

Use Category() to find all emojis of the specified category.

package main

import (
	"fmt"
	"os"

	"github.com/hackebrot/turtle"
)

func main() {
	c := "travel_and_places"
	emojis := turtle.Category(c)

	if emojis == nil {
		fmt.Fprintf(os.Stderr, "no emojis found for category: %v\n", c)
		os.Exit(1)
	}

	fmt.Printf("%s: %s\n", c, emojis)
}
travel_and_places: [๐Ÿšก โœˆ๏ธ ๐Ÿš‘ ]
Keyword

Use Keyword() to find all emojis by a keyword.

package main

import (
	"fmt"
	"os"

	"github.com/hackebrot/turtle"
)

func main() {
	k := "happy"
	emojis := turtle.Keyword(k)

	if emojis == nil {
		fmt.Fprintf(os.Stderr, "no emoji found for keyword: %v\n", k)
		os.Exit(1)
	}

	fmt.Printf("%s: %s\n", k, emojis)
}
happy: [๐Ÿ˜Š ๐Ÿ˜ ๐Ÿ˜€ ๐Ÿ˜‚ ]

Emojis

Emoji names, categories and keywords are based on the fantastic muan/emojilib keyword library ๐Ÿ“–

At this point, the turtle project supports the emojis that are also available on GitHub. See the GitHub REST API documentation for more information.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Contributing

Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.

License

Distributed under the terms of the MIT license, turtle is free and open source software.

Documentation ยถ

Overview ยถ

Package turtle is a library for working with emojis. The API ca be used to retrieve emoji for a specific name, a category or a keyword. You can also search emojis if you do not know the name of an emoji.

Index ยถ

Examples ยถ

Constants ยถ

View Source
const Version = "v0.2.0"

Version of the turtle library

Variables ยถ

View Source
var Emojis = make(map[string]*Emoji)

Emojis maps a name to an Emoji

View Source
var EmojisByChar = make(map[string]*Emoji)

EmojisByChar maps a character to an Emoji

Functions ยถ

This section is empty.

Types ยถ

type Emoji ยถ

type Emoji struct {
	Name     string   `json:"name" toml:"name"`
	Category string   `json:"category" toml:"category"`
	Char     string   `json:"char" toml:"char"`
	Keywords []string `json:"keywords" toml:"keywords"`
}

Emoji holds info about an emoji character

func Category ยถ

func Category(c string) []*Emoji

Category filters the emojis by a category

Example ยถ

Example for using the Category function to find all emojis of the specified category.

c := "travel_and_places"
emojis := Category(c)

if emojis == nil {
	fmt.Fprintf(os.Stderr, "no emojis found for category: %v\n", c)
	os.Exit(1)
}

fmt.Printf("%s: %s\n", c, emojis[:3])
Output:

travel_and_places: [๐Ÿšก โœˆ๏ธ ๐Ÿš‘]

func Filter ยถ added in v0.2.0

func Filter(f func(e *Emoji) bool) []*Emoji

Filter the emojis based on the given comparison function

Example ยถ

Example for using the Filter function to find all emojis in a category with a specific keyword

emojis := Filter(func(e *Emoji) bool {
	if e.Category == "animals_and_nature" {
		for _, keyword := range e.Keywords {
			if keyword == "world" {
				return true
			}
		}
	}
	return false
})

if emojis == nil {
	fmt.Fprintf(os.Stderr, "no emojis found in animals_and_nature with keyword world\n")
	os.Exit(1)
}

fmt.Printf("emojis: %s", emojis)
Output:

emojis: [๐ŸŒ ๐ŸŒŽ ๐ŸŒ]

func Keyword ยถ

func Keyword(k string) []*Emoji

Keyword filters the emojis by a keyword

Example ยถ

Example for using the Keyword function to find all emojis with the specified keyword.

k := "happy"
emojis := Keyword(k)

if emojis == nil {
	fmt.Fprintf(os.Stderr, "no emoji found for keyword: %v\n", k)
	os.Exit(1)
}

fmt.Printf("%s: %s", k, emojis[:4])
Output:

happy: [๐Ÿ˜Š ๐Ÿ˜ ๐Ÿ˜€ ๐Ÿ˜‚]
func Search(s string) []*Emoji

Search emojis by a name

func (Emoji) String ยถ

func (e Emoji) String() string

String implementation for Emoji

Directories ยถ

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL