# Meme-Otron guide
* [Commands](#commands)
* [Simple use](#simple-use)
* [Advanced use](#advanced-use)
* [Discord features](#discord-features)
* [CLI features](#cli-features)
* [List of templates](#list-of-templates)
* [Standard Templates](#standard-templates)
* [Reactions (no text)](#reactions-no-text)
* [Examples](#examples)
* [Example 1: Simple template](#example-1-simple-template)
* [Example 2: Use of empty texts](#example-2-use-of-empty-texts)
* [Example 3: Text + Template](#example-3-text--template)
* [Example 4: Complex composition](#example-4-complex-composition)
## Commands
### Simple use
[↑ back to top](#meme-otron-guide)
You can generate memes by using the following arguments:
```
[meme id] "text1" "text2" ...
```
Depending of the number of `"text"` arguments, several behavior occurs:
* **None**: you get the template that gives you the locations of texts. (see below)
* **Less than the template's**: the remaining texts are blank on the output
* **More than the template's**: the extra arguments are ignored
> Notes
> * You don't have to use all texts shown on the templates
> * You can use an empty text argument ( `""` ) to skip a text and keep it blank
See [Examples](#examples) to get an idea of how to use it.
### Advanced use
[↑ back to top](#meme-otron-guide)
Since version 1.3, Meme-Otron allows you to "pipe" parts in order to compose more advanced memes. The syntax is as follows:
```
[part1] - [part2] - ...
```
Each `part` can be one of the following:
* A template: as described in [Simple use](#simple-use)
* Texts: ```text "text 1" "text 2" ...```
* Black Arial texts on white background
* Each text is it's own paragraph
* Images: ```image ```
* Takes an image from input or an URL (optional)
* Input depends on the system:
* the Discord bot takes the attachment
* the CLI takes stdin or `--input` argument.
> Notes
> * Input of `image` is always the same, don't expect multiple instances of `image` to get different results if you don't indicate an URL
See [Examples](#examples) to get an idea of how to use it.
### Discord features
[↑ back to top](#meme-otron-guide)
Tag the bot and use the above syntax to get started. In addition, you can use the following commands:
* Use `help` to get a simple help message
* Use `list` to get a list of all meme ids
* Use `delete` to delete the last message sent by the bot (directed to you)
To get the template info, just send the meme id without texts.
> Tip : You can use `\\n` in your texts to add a line break
Enjoy the full experience of this bot by using direct messages to keep your server free of spam.
### CLI features
[↑ back to top](#meme-otron-guide)
In this project directory, you can simply call:
```
python -m meme_otron [meme id] "text1" "text2" ... > output.jpg
```
Without pipe redirection with `-o [output]`:
```
python -m meme_otron -o output.png [meme id] "text1" "text2" ...
```
You can even pipe input images like this:
```
python -m meme_otron [arguments] < input.jpg > output.jpg
```
Available arguments:
* `--help` / `-h`
* Show a simple guide
* `--output [file]` / `-o [file]`
* Output file, you are free to choose the format
* `--input [file]` / `-i [file]`
* Input file used for `image`
* `-nw` / `--no-watermark`
* Removes the watermark
* `-d` / `--debug`
* Add more info to output like a box show the texts boundaries
* `-v` / `--verbose`
* Add more logging
## List of templates
[↑ back to top](#meme-otron-guide)
You can find here the full list of templates.
Each one has extra info and an image showing how texts are placed.
Click on an image to enlarge it.
### Standard Templates
[↑ back to top](#meme-otron-guide)
||||
|:---:|:---:|:---:|
|**aliens**
more info|**alive**
alt: no_brain
more info|**argument**
alt: wrestlers
more info|
|
|
|
|
|**bender**
alt: hookers, blackjack
more info|**born_cool**
more info|**brain3**|
|
|
|
|
|**brain4**
alt: brains
more info|**brain5**|**buff**
alt: tom, jerry
more info|
|
|
|
|
|**burn**
alt: paper
more info|**button**
alt: nut
more info|**bye_mom**
alt: google
more info|
|
|
|
|
|**clock**
more info|**culture**
alt: anime
more info|**disappointed**
more info|
|
|
|
|
|**distracted**
alt: boyfried, cheating, girlfriend
more info|**dont_look**
alt: ricky, mom, influenced
more info|**drake**
more info|
|
|
|
|
|**drift**
alt: exit
more info|**everywhere**
alt: buzz, woody
more info|**everywhere2**
alt: angry, diapers
more info|
|
|
|
|
|**favorite**
more info|**fight**
alt: vaping
more info|**fine**
alt: fire, dog
more info|
|
|
|
|
|**flex_tape**
alt: flex, tape
more info|**gate**
more info|**girl_cat**
more info|
|
|
|
|
|**grandma**
more info|**gru**
alt: plan
more info|**guys**
alt: explain, paid
more info|
|
|
|
|
|**handshake**
more info|**handshake2**
alt: scott
more info|**idea**
alt: gentlemen
more info|
|
|
|
|
|**lion**
alt: shadowy, king, light
more info|**meeting**
alt: boardroom, suggestion
more info|**mini**
alt: joker
more info|
|
|
|
|
|**nobody_cares**
alt: nobody, jurassic, park, jurassic_park
more info|**nope**
more info|**overconfident**
alt: alcohol, depressed
more info|
|
|
|
|
|**patrick**
alt: wallet, id
more info|**pigeon**
alt: butterfly
more info|**pills**
alt: swallow
more info|
|
|
|
|
|**pleasure3**
alt: satisfied3|**pleasure4**
alt: pleasure, satisfied, satisfied4
more info|**quality**
alt: competition
more info|
|
|
|
|
|**salt_bae**
alt: salt
more info|**scary**
alt: spongebob, fearless
more info|**seagull2**
alt: seagull, screaming
more info|
|
|
|
|
|**seagull4**|**see_that_guy**
more info|**sleeping**
alt: brain
more info|
|
|
|
|
|**spiderman**
alt: same
more info|**struggle**
alt: choice, hero
more info|**t_pose**
alt: dominance, monika
more info|
|
|
|
|
|**tom_cousins**
alt: cousins, backup, goons
more info|**tough2**
alt: tough, fight
more info|**tough2bis**
alt: soft|
|
|
|
|
|**tough3**|**trump**
alt: law
more info|**trust_nobody**
alt: yourself, gun
more info|
|
|
|
|
|**truth**
alt: scroll
more info|**winnie2**
alt: winnie
more info|**winnie3**|
|
|
|
|
|**worthless**
alt: gravity_falls, dipper
more info||||
|
||||
### Reactions (no text)
[↑ back to top](#meme-otron-guide)
||||
|:---:|:---:|:---:|
|**doubt**
alt: press_x
more info|**head_out**
alt: ight
more info|**holup**
alt: hold_up
more info|
|
|
|
|
|**listen**
alt: chicken, little_shit
more info|**money**
alt: fry
more info|**pasta**
alt: vista, italian
more info|
|
|
|
|
|**stonks**
more info|**white**
alt: magazine
more info|**wtf**
alt: excuse_me
more info||
|
|
|
||
## Examples
### Example 1: Simple template
[↑ back to top](#meme-otron-guide)
>
```
brain3
"Making memes using an image editor"
"Making memes using a Python script"
"Making memes using a Discord bot"
```

### Example 2: Use of empty texts
[↑ back to top](#meme-otron-guide)
> The 5th text is not set and the 3rd is explicitly set to empty
```
see_that_guy
"See that guy over there?"
"He uses an image editor to make memes"
""
"meme-otron's dev"
```

### Example 3: Text + Template
[↑ back to top](#meme-otron-guide)
> Note how texts make paragraphs
```
text
"*Meme has a 'made with meme-otron' watermark*"
"reddit: ..."
"9gag: ..."
"meme-otron's dev:"
-
culture
"meme otron"
```

### Example 4: Complex composition
[↑ back to top](#meme-otron-guide)
>
```
image
https://i.imgur.com/DNLFUuK.png
-
text
"meme-otron's dev close to finishing the idea"
-
holup
```
