diff --git a/README-cn.md b/README-cn.md index f7a9c4d..f0b7ad4 100644 --- a/README-cn.md +++ b/README-cn.md @@ -3,17 +3,21 @@ 在各种订阅格式之间进行转换的实用程序. [![Build Status](https://travis-ci.com/tindy2013/subconverter.svg?branch=master)](https://travis-ci.com/tindy2013/subconverter) +[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/tags) +[![GitHub release](https://img.shields.io/github/release/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/releases) +[![GitHub license](https://img.shields.io/github/license/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/blob/master/LICENSE) -- [支持类型](#支持类型) -- [简易用法](#简易用法) - - [调用地址](#调用地址) - - [调用说明](#调用说明) -- [进阶用法](#进阶用法) - - [阅前提示](#阅前提示) - - [进阶地址](#进阶地址) - - [配置文件](#配置文件) - - [外部配置](#外部配置) -- [自动上传](#自动上传) +- [subconverter](#subconverter) + - [支持类型](#支持类型) + - [简易用法](#简易用法) + - [调用地址](#调用地址) + - [调用说明](#调用说明) + - [进阶用法](#进阶用法) + - [阅前提示](#阅前提示) + - [进阶地址](#进阶地址) + - [配置文件](#配置文件) + - [外部配置](#外部配置) + - [自动上传](#自动上传) ## 支持类型 diff --git a/README.md b/README.md index b8ef795..af0eb47 100644 --- a/README.md +++ b/README.md @@ -3,268 +3,178 @@ Utility to convert between various subscription format. [![Build Status](https://travis-ci.com/tindy2013/subconverter.svg?branch=master)](https://travis-ci.com/tindy2013/subconverter) +[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/tags) +[![GitHub release](https://img.shields.io/github/release/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/releases) +[![GitHub license](https://img.shields.io/github/license/tindy2013/subconverter.svg)](https://github.com/tindy2013/subconverter/blob/master/LICENSE) -[中文文档](./README-cn.md) +[Docker README](https://github.com/tindy2013/subconverter/blob/master/README-docker.md) - [subconverter](#subconverter) - - [Support Type](#support-type) - - [Usage](#usage) - - [Old interface](#old-interface) - - [**Recommended reading**](#recommended-reading) - - [pref.ini](#prefini) - - [common](#common) - - [api_mode](#api_mode) - - [default_url](#default_url) - - [exclud_remarks](#exclud_remarks) - - [include_remarks](#include_remarks) - - [clash_rule_base](#clash_rule_base) - - [surge_rule_base](#surge_rule_base) - - [surfboard_rule_base](#surfboard_rule_base) - - [rename_node](#rename_node) - - [managed_config](#managed_config) - - [emojis](#emojis) - - [ruleset](#ruleset) - - [clash_proxy_group](#clash_proxy_group) - - [server](#server) - - [listen](#listen) - - [port](#port) - - [advanced](#advanced) - - [gist](#gist) + - [Supported Types](#supported-types) + - [Quick Usage](#quick-usage) + - [Access Interface](#access-interface) + - [Description](#description) + - [Advanced Usage](#advanced-usage) + - [Read Before Continue](#read-before-continue) + - [Advanced Details](#advanced-details) + - [Configuration File](#configuration-file) + - [External Configuration File](#external-configuration-file) + - [Auto Upload](#auto-upload) +## Supported Types +| Type | As Source | As Target | Target Name | +| ------------ | :---------: | :-----------: | ----------- | +| Clash | ✔ | ✔ | clash | +| ClashR | ✔ | ✔ | clashr | +| Quantumult | ✔ | ✔ | quan | +| Quantumult X | ✔ | ✔ | quanx | +| SS (SIP002) | ✔ | ✔ | ss | +| SS Android | ✔ | ✔ | sssub | +| SSD | ✔ | ✔ | ssd | +| SSR | ✔ | ✔ | ssr | +| Surfboard | ✔ | ✔ | surfboard | +| Surge 2 | ✔ | ✔ | surge&ver=2 | +| Surge 3 | ✔ | ✔ | surge&ver=3 | +| Surge 4 | ✔ | ✔ | surge&ver=4 | +| V2Ray | ✔ | ✔ | v2ray | -## Support Type +**Notice**:Shadowrocket users should use `ss`, `ssr` or `v2ray` as target. -| Type | As Source Type | As Target Type | Parameters | -| ------------ | :------------: | :------------: | ----------- | -| clash | ✔ | ✔ | clash | -| clashr | ✔ | ✔ | clashr | -| surge2 | ✔ | ✔ | surge?ver=2 | -| surge3 | ✔ | ✔ | surge?ver=3 | -| surge4 | ✔ | ✔ | surge?ver=4 | -| quantumult | ✔ | ✔ | quan | -| quantumult X | ✔ | ✔ | quanx | -| surfboard | ✔ | ✔ | surfboard | -| ss | ✔ | ✔ | ss | -| ssr | ✔ | ✔ | ssr | -| ssd | ✔ | ✔ | ssd | -| v2ray | ✔ | ✔ | v2ray | +--- +## Quick Usage +> Using default groups and rulesets configuration directly, without changing any settings -## Usage +### Access Interface -``` -http://127.0.0.1:25500/sub?target=clash&url=%URL_ENCODED_LINKS% - -http://127.0.0.1:25500/sub?target=surge&ver=4&url=%URL_ENCODED_LINKS% - -http://127.0.0.1:25500/sub?target=v2ray&url=%URL_ENCODED_LINKS% +```TXT +http://127.0.0.1:25500/sub?target=%TARGET%&url=%URL%&config=%CONFIG% ``` -#### Old interface +### Description -``` -http://127.0.0.1:25500/clash?url=%URL_ENCODED_LINKS% +| Argument | Needed | Example | Explanation | +| ------- | :----: | :------ | ----------- | +| target | Yes | clash | Target subscription type. Acquire from Target Name in [Supported Types](#Supported_Types). | +| url | Yes | https%3A%2F%2Fwww.xxx.com | Subscription to convert. Supports URLs and file paths. Process with [URLEncode](https://www.urlencoder.org/) first. | +| config | No | https%3A%2F%2Fwww.xxx.com | External configuration file path. Supports URLs and file paths. Process with [URLEncode](https://www.urlencoder.org/) first. More examples can be found in [this](https://github.com/lzdnico/subconverteriniexample) repository. Default is to load configurations from `pref.ini`. | + +If you need to merge two or more subscription, you should connect them with '|' before the URLEncode process. + +Example: + +```TXT +You have 2 subscriptions and you want to merge them and generate a Clash subscription: +1. https://dler.cloud/subscribe/ABCDE?clash=vmess +2. https://rich.cloud/subscribe/ABCDE?clash=vmess + +First use '|' to separate 2 subscriptions: +https://dler.cloud/subscribe/ABCDE?clash=vmess|https://rich.cloud/subscribe/ABCDE?clash=vmess + +Then process it with URLEncode to get %URL%: +https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess%7Chttps%3A%2F%2Frich.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess + +Then fill %TARGET% and %URL% in Access Interface with actual values: +http://127.0.0.1:25500/sub?target=clash&url=https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess%7Chttps%3A%2F%2Frich.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess + +Finally subscribe this link in Clash and you are done! ``` -If you have multiple subscriptions, use '|' to separate the links before url encode.
+--- -e.g.
-> I have the following two subscriptions:
-`https://dler.cloud/subscribe/ABCDE?clash=vmess` -`https://rich.cloud/subscribe/ABCDE?clash=vmess` -

-separated by '|':
-`https://dler.cloud/subscribe/ABCDE?clash=vmess|https://rich.cloud/subscribe/ABCDE?clash=vmess` -

-after url encode:
-`https%3A//dler.cloud/subscribe/ABCDE%3Fclash%3Dvmess%7Chttps%3A//rich.cloud/subscribe/ABCDE%3Fclash%3Dvmess` -

-add to the back of the link:
-`http://127.0.0.1:25500/sub?target=clash&url=https%3A//dler.cloud/subscribe/ABCDE%3Fclash%3Dvmess%7Chttps%3A//rich.cloud/subscribe/ABCDE%3Fclash%3Dvmess ` -

-  🍖 Edible 🍖 -

+## Advanced Usage +> If you are not satisfied with the default groups and rulesets, you can try out advanced usage. +> Customize more settings in Access Interface and `pref.ini` to satisfy various needs. -- Want to learn more postures? Come to [pref.ini](./pref.ini). +### Read Before Continue +It is strongly recommended to read the following articles before continuing: +1. Related to `pref.ini`: [INI file](https://en.wikipedia.org/wiki/INI_file) +1. Related to `Clash` configurations: [YAML Syntax](https://en.wikipedia.org/wiki/YAML#Syntax) +1. Often needed: [Learn Regular Expression](https://github.com/ziishaned/learn-regex/blob/master/README.md) +1. When you want to write an ISSUE: [How To Ask Questions The Smart Way](http://www.catb.org/~esr/faqs/smart-questions.html) -## **Recommended reading** +Subconverter only guaranteed to work with default configurations. -> - [📜 Regular Expression 📜](https://en.wikipedia.org/wiki/Regular_expression) -> - [📝 yaml syntax introduction 📝](https://en.wikipedia.org/wiki/YAML) -> - [❔ Wisdom to ask questions ❔](http://www.catb.org/~esr/faqs/smart-questions.html) +### Advanced Details +#### Access Interface - -## pref.ini - -### common - -#### api_mode - -> API mode, set to true to prevent loading local subscriptions or serving local files directly. - -When the value is `false`, `pref.ini` is read every time the configuration is updated. When it is `true`, it is read only at startup. - - - -#### default_url - -> Default URLs, used when no URL is provided in request, use "|" to separate multiple subscription links, supports local files/URL. - -This usage: -```ini -default_url=https://dler.cloud/subscribe/ABCDE?clash=vmess +```txt +http://127.0.0.1:25500/sub?target=%TARGET%&url=%URL%&emoji=%EMOJI%···· ``` -`http://127.0.0.1:25500/clash` +#### Description -equivalent to: -
-`http://127.0.0.1:25500/sub?target=clash&url=https%3A//dler.cloud/subscribe/ABCDE%3Fclash%3Dvmess` +| Argument | Needed | Example | Explanation | +| -------- | :----: | :--------------- | :------------------------ | +| target | Yes | quan | Target subscription type. Acquire from Target Name in [Supported Types](#Supported_Types). | +| url | No | https%3A%2F%2Fwww.xxx.com | Subscription to convert. Supports URLs and file paths. Process with [URLEncode](https://www.urlencoder.org/) first. **Not needed ONLY WHEN YOU HAVE SET `default_urls` IN `pref.ini`. | +| config | No | https%3A%2F%2Fwww.xxx.com | External configuration file path. Supports URLs and file paths. Process with [URLEncode](https://www.urlencoder.org/) first. More examples can be found in [this](https://github.com/lzdnico/subconverteriniexample) repository. Default is to load configurations from `pref.ini`. | +| upload | No | true / false | Upload generated configuration to `Gist repository`. `gistconf.ini` must be filled before uploading. Default is `false`. | +| upload_path | No | MySS.yaml | File name when uploaded to `Gist`. Process with [URLEncode](https://www.urlencoder.org/) first. | +| emoji | No | true / false | Adding Emoji to node remarks. Default is `true`. | +| group | No | MySS | Set a custom group for generated configuration. Often needed in SSD/SSR subscription. | +| tfo | No | true / false | Enable TCP Fast Open for all nodes. Default is `false`. | +| udp | No | true / false | Enable UDP for all nodes. Default is `false`. | +| scv | No | true / false | Enable Skip Cert Verify for all nodes. Default is `false`. | +| list | No | true / false | Generate Surge Node List or Clash Proxy Provider. Default is `false`. | +| sort | No | true / false | Sort nodes in alphabetical order. Default is `false`. | +| include | No | See `include_remarks` | Exclude nodes which remarks match the following patterns. Supports regular expression. Process with [URLEncode](https://www.urlencoder.org/) first. **WILL OVERRIDE THE SAME SETTING IN `pref.ini`** | +| exclude | No | See `exclude_remarks` | Only include nodes which remarks match the following patterns. Supports regular expression. Process with [URLEncode](https://www.urlencoder.org/) first. **WILL OVERRIDE THE SAME SETTING IN `pref.ini`** | +Example: +```TXT +You have the following subscription: `https://dler.cloud/subscribe/ABCDE?clash=vmess`, and you want to convert it to Surge 4 subscription, set UDP and TFO to enabled, +add Emoji to node remarks and filter out unused nodes named "剩余流量:1024G" and "官网地址:dler.cloud". -#### exclud_remarks +First find all needed arguments: +target=surge, ver=4, tfo=true, udp=true, emoji=true, exclude=(流量|官网) +url=https://dler.cloud/subscribe/ABCDE?clash=vmess -> Exclude nodes which remarks match the following patterns. Supports regular expression. +Then process any argument that requires URLEncode: +exclude=%28%E6%B5%81%E9%87%8F%7C%E5%AE%98%E7%BD%91%29 +url=https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess -e.g. -```ini -exclude_remarks=(Traffic|Time|Official Website|Products) +Then merge everything into a single URL: +http://127.0.0.1:25500/sub?surge&ver=4&tfo=true&udp=true&emoji=true&exclude=%28%E6%B5%81%E9%87%8F%7C%E5%AE%98%E7%BD%91%29&url=https%3A%2F%2Fdler.cloud%2Fsubscribe%2FABCDE%3Fclash%3Dvmess + +Finally subscribe this link in Surge and you are done! +``` +### Configuration File + +> Check comments inside [pref.ini](https://github.com/tindy2013/subconverter/blob/master/base/pref.ini) for more information. + +### External Configuration File + +> Most settings works the same as the ones with the same name inside `pref.ini`, you can check [the example configuration file](https://github.com/tindy2013/subconverter/blob/master/base/config/example_external_config.ini) and comments inside [pref.ini](https://github.com/tindy2013/subconverter/blob/master/base/pref.ini) for more information. + +Any setting defined in the external configuration file will **override** the ones from `pref.ini`. + +For example, if you have the following lines inside the external configuration file: + +``` +emoji=(流量|时间|应急),🏳️‍🌈 +emoji=阿根廷,🇦🇷 ``` +Then instead of the Emojis defined in `pref.ini`, the program will only use the newly defined ones. +## Auto Upload -#### include_remarks +> Upload Gist automatically -> Only include nodes which remarks match the following patterns. Supports regular expression. +Add a [Personal Access Token](https://github.com/settings/tokens/new) into [gistconf.ini](./gistconf.ini) in the root directory, then add `&upload=true` to the local subscription link, then when you access this link, the program will automatically update the content to Gist repository. -e.g. -```ini -include_remarks=(?<=美).*(BGP|GIA|IPLC) -``` - - - -#### clash_rule_base - -> Clash config base used by the generator, supports local `files`/`URL`. - -e.g. -```ini -clash_rule_base=clash.yaml - -clash_rule_base=https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/Pro.yaml -``` - - - -#### surge_rule_base - -> Surge config base used by the generator, supports local `files`/`URL`. - - - -#### surfboard_rule_base - -> Surfboard config base used by the generator, supports local `files`/`URL`. - - - -#### rename_node - -> Rename remarks with the following patterns. Supports regular expression. - -e.g. -```ini -rename_node=中国@中 -rename_node=深圳@深 -``` - - - -### managed_config - -> Append a '#!MANAGED-CONFIG' info to Surge configurations. - - - -### emojis - -> Rule to add emojis. Supports regular expression. - -e.g. -```ini -rule=(流量|时间|应急),⌛time -rule=(美|美国|United States),🇺🇸 -``` - - - -### ruleset - -> Enable generating rules with rulesets. - -e.g. - +Example: ```ini -ruleset=🌹 YouTube, https://raw.githubusercontent.com/ConnersHua/Profiles/master/Surge/Media/YouTube.list +[common] +;uncomment the following line and enter your token to enable upload function +token = xxxxxxxxxxxxxxxxxxxxxxxx(Your Personal Access Token) ``` - -effect chart: - - - - - -### clash_proxy_group - -> Generate Clash Proxy Group with the following patterns. Node filterting rule supports regular expression. - -e.g. -```ini -custom_proxy_group=🇺🇸US`url-test`(United States|United States|United States)`http://www.gstatic.com/generate_204`300 -``` - -effect chart: - - - - -The ssr/v2 subscription does not have a group name by default. You can use this method to add a group name. - -```ini -custom_proxy_group=g1`select`!!GROUPID=0 -custom_proxy_group=g2`select`!!GROUPID=1 -custom_proxy_group=v2ray`select`!!GROUP=V2RayProvider -``` - - -### server - -#### listen - -> Address to bind on for Web Server. - -#### port - -> Port to bind on for Web Server. - - -### advanced - -> No description required. - - - -## gist - -> Automatically upload gist. - -Add personal access token in [gistconf.ini](./gistconf.ini), add `upload=true` after the link will automatically upload gist after updating. \ No newline at end of file diff --git a/doc/imgs/Snipaste_2019-11-18_14-11-52.png b/doc/imgs/Snipaste_2019-11-18_14-11-52.png deleted file mode 100644 index 4c0010e..0000000 Binary files a/doc/imgs/Snipaste_2019-11-18_14-11-52.png and /dev/null differ diff --git a/doc/imgs/Snipaste_2019-11-18_14-15-54.png b/doc/imgs/Snipaste_2019-11-18_14-15-54.png deleted file mode 100644 index 230c69d..0000000 Binary files a/doc/imgs/Snipaste_2019-11-18_14-15-54.png and /dev/null differ diff --git a/doc/imgs/Snipaste_2019-11-18_14-47-30.png b/doc/imgs/Snipaste_2019-11-18_14-47-30.png deleted file mode 100644 index 057cca3..0000000 Binary files a/doc/imgs/Snipaste_2019-11-18_14-47-30.png and /dev/null differ diff --git a/doc/imgs/ruleset.png b/doc/imgs/ruleset.png deleted file mode 100644 index ae8bd0a..0000000 Binary files a/doc/imgs/ruleset.png and /dev/null differ diff --git a/doc/resources/emoji.html b/doc/resources/emoji.html deleted file mode 100644 index d70c9dc..0000000 --- a/doc/resources/emoji.html +++ /dev/null @@ -1,1114 +0,0 @@ - 8986 ⌚
- 8987 ⌛
- 9193 ⏩
- 9194 ⏪
- 9195 ⏫
- 9196 ⏬
- 9197 ⏭
- 9198 ⏮
- 9199 ⏯
- 9200 ⏰
- 9201 ⏱
- 9202 ⏲
- 9203 ⏳
- 9208 ⏸
- 9209 ⏹
- 9210 ⏺
- 9410 Ⓜ
- 9748 ☔
- 9749 ☕
- 9757 ☝
- 9800 ♈
- 9801 ♉
- 9802 ♊
- 9803 ♋
- 9804 ♌
- 9805 ♍
- 9806 ♎
- 9807 ♏
- 9808 ♐
- 9809 ♑
- 9810 ♒
- 9811 ♓
- 9823 ♟
- 9855 ♿
- 9875 ⚓
- 9889 ⚡
- 9898 ⚪
- 9899 ⚫
- 9917 ⚽
- 9918 ⚾
- 9924 ⛄
- 9925 ⛅
- 9934 ⛎
- 9935 ⛏
- 9937 ⛑
- 9939 ⛓
- 9940 ⛔
- 9961 ⛩
- 9962 ⛪
- 9968 ⛰
- 9969 ⛱
- 9970 ⛲
- 9971 ⛳
- 9972 ⛴
- 9973 ⛵
- 9975 ⛷
- 9976 ⛸
- 9977 ⛹
- 9978 ⛺
- 9981 ⛽
- 9986 ✂
- 9989 ✅
- 9992 ✈
- 9993 ✉
- 9994 ✊
- 9995 ✋
- 9996 ✌
- 9997 ✍
- 9999 ✏
- 10002 ✒
- 10004 ✔
- 10006 ✖
- 10013 ✝
- 10017 ✡
- 10024 ✨
- 10035 ✳
- 10036 ✴
- 10052 ❄
- 10055 ❇
- 10060 ❌
- 10062 ❎
- 10067 ❓
- 10068 ❔
- 10069 ❕
- 10071 ❗
- 10083 ❣
- 10084 ❤
- 10133 ➕
- 10134 ➖
- 10135 ➗
- 10145 ➡
- 10160 ➰
- 10175 ➿
- 10548 ⤴
- 10549 ⤵
- 11013 ⬅
- 11014 ⬆
- 11015 ⬇
- 11035 ⬛
- 11036 ⬜
- 11088 ⭐
- 11093 ⭕
- 12336 〰
- 12349 〽
- 12951 ㊗
- 12953 ㊙
- 126980 🀄
- 127183 🃏
- 127344 🅰
- 127345 🅱
- 127358 🅾
- 127359 🅿
- 127374 🆎
- 127377 🆑
- 127378 🆒
- 127379 🆓
- 127380 🆔
- 127381 🆕
- 127382 🆖
- 127383 🆗
- 127384 🆘
- 127385 🆙
- 127386 🆚
- 127489 🈁
- 127490 🈂
- 127514 🈚
- 127535 🈯
- 127538 🈲
- 127539 🈳
- 127540 🈴
- 127541 🈵
- 127542 🈶
- 127543 🈷
- 127544 🈸
- 127545 🈹
- 127546 🈺
- 127568 🉐
- 127569 🉑
- 127744 🌀
- 127745 🌁
- 127746 🌂
- 127747 🌃
- 127748 🌄
- 127749 🌅
- 127750 🌆
- 127751 🌇
- 127752 🌈
- 127753 🌉
- 127754 🌊
- 127755 🌋
- 127756 🌌
- 127757 🌍
- 127758 🌎
- 127759 🌏
- 127760 🌐
- 127761 🌑
- 127762 🌒
- 127763 🌓
- 127764 🌔
- 127765 🌕
- 127766 🌖
- 127767 🌗
- 127768 🌘
- 127769 🌙
- 127770 🌚
- 127771 🌛
- 127772 🌜
- 127773 🌝
- 127774 🌞
- 127775 🌟
- 127776 🌠
- 127777 🌡
- 127780 🌤
- 127781 🌥
- 127782 🌦
- 127783 🌧
- 127784 🌨
- 127785 🌩
- 127786 🌪
- 127787 🌫
- 127788 🌬
- 127789 🌭
- 127790 🌮
- 127791 🌯
- 127792 🌰
- 127793 🌱
- 127794 🌲
- 127795 🌳
- 127796 🌴
- 127797 🌵
- 127798 🌶
- 127799 🌷
- 127800 🌸
- 127801 🌹
- 127802 🌺
- 127803 🌻
- 127804 🌼
- 127805 🌽
- 127806 🌾
- 127807 🌿
- 127808 🍀
- 127809 🍁
- 127810 🍂
- 127811 🍃
- 127812 🍄
- 127813 🍅
- 127814 🍆
- 127815 🍇
- 127816 🍈
- 127817 🍉
- 127818 🍊
- 127819 🍋
- 127820 🍌
- 127821 🍍
- 127822 🍎
- 127823 🍏
- 127824 🍐
- 127825 🍑
- 127826 🍒
- 127827 🍓
- 127828 🍔
- 127829 🍕
- 127830 🍖
- 127831 🍗
- 127832 🍘
- 127833 🍙
- 127834 🍚
- 127835 🍛
- 127836 🍜
- 127837 🍝
- 127838 🍞
- 127839 🍟
- 127840 🍠
- 127841 🍡
- 127842 🍢
- 127843 🍣
- 127844 🍤
- 127845 🍥
- 127846 🍦
- 127847 🍧
- 127848 🍨
- 127849 🍩
- 127850 🍪
- 127851 🍫
- 127852 🍬
- 127853 🍭
- 127854 🍮
- 127855 🍯
- 127856 🍰
- 127857 🍱
- 127858 🍲
- 127859 🍳
- 127860 🍴
- 127861 🍵
- 127862 🍶
- 127863 🍷
- 127864 🍸
- 127865 🍹
- 127866 🍺
- 127867 🍻
- 127868 🍼
- 127869 🍽
- 127870 🍾
- 127871 🍿
- 127872 🎀
- 127873 🎁
- 127874 🎂
- 127875 🎃
- 127876 🎄
- 127877 🎅
- 127878 🎆
- 127879 🎇
- 127880 🎈
- 127881 🎉
- 127882 🎊
- 127883 🎋
- 127884 🎌
- 127885 🎍
- 127886 🎎
- 127887 🎏
- 127888 🎐
- 127889 🎑
- 127890 🎒
- 127891 🎓
- 127894 🎖
- 127895 🎗
- 127897 🎙
- 127898 🎚
- 127899 🎛
- 127902 🎞
- 127903 🎟
- 127904 🎠
- 127905 🎡
- 127906 🎢
- 127907 🎣
- 127908 🎤
- 127909 🎥
- 127910 🎦
- 127911 🎧
- 127912 🎨
- 127913 🎩
- 127914 🎪
- 127915 🎫
- 127916 🎬
- 127917 🎭
- 127918 🎮
- 127919 🎯
- 127920 🎰
- 127921 🎱
- 127922 🎲
- 127923 🎳
- 127924 🎴
- 127925 🎵
- 127926 🎶
- 127927 🎷
- 127928 🎸
- 127929 🎹
- 127930 🎺
- 127931 🎻
- 127932 🎼
- 127933 🎽
- 127934 🎾
- 127935 🎿
- 127936 🏀
- 127937 🏁
- 127938 🏂
- 127939 🏃
- 127940 🏄
- 127941 🏅
- 127942 🏆
- 127943 🏇
- 127944 🏈
- 127945 🏉
- 127946 🏊
- 127947 🏋
- 127948 🏌
- 127949 🏍
- 127950 🏎
- 127951 🏏
- 127952 🏐
- 127953 🏑
- 127954 🏒
- 127955 🏓
- 127956 🏔
- 127957 🏕
- 127958 🏖
- 127959 🏗
- 127960 🏘
- 127961 🏙
- 127962 🏚
- 127963 🏛
- 127964 🏜
- 127965 🏝
- 127966 🏞
- 127967 🏟
- 127968 🏠
- 127969 🏡
- 127970 🏢
- 127971 🏣
- 127972 🏤
- 127973 🏥
- 127974 🏦
- 127975 🏧
- 127976 🏨
- 127977 🏩
- 127978 🏪
- 127979 🏫
- 127980 🏬
- 127981 🏭
- 127982 🏮
- 127983 🏯
- 127984 🏰
- 127987 🏳
- 127988 🏴
- 127989 🏵
- 127991 🏷
- 127992 🏸
- 127993 🏹
- 127994 🏺
- 127995 🏻
- 127996 🏼
- 127997 🏽
- 127998 🏾
- 127999 🏿
- 128000 🐀
- 128001 🐁
- 128002 🐂
- 128003 🐃
- 128004 🐄
- 128005 🐅
- 128006 🐆
- 128007 🐇
- 128008 🐈
- 128009 🐉
- 128010 🐊
- 128011 🐋
- 128012 🐌
- 128013 🐍
- 128014 🐎
- 128015 🐏
- 128016 🐐
- 128017 🐑
- 128018 🐒
- 128019 🐓
- 128020 🐔
- 128021 🐕
- 128022 🐖
- 128023 🐗
- 128024 🐘
- 128025 🐙
- 128026 🐚
- 128027 🐛
- 128028 🐜
- 128029 🐝
- 128030 🐞
- 128031 🐟
- 128032 🐠
- 128033 🐡
- 128034 🐢
- 128035 🐣
- 128036 🐤
- 128037 🐥
- 128038 🐦
- 128039 🐧
- 128040 🐨
- 128041 🐩
- 128042 🐪
- 128043 🐫
- 128044 🐬
- 128045 🐭
- 128046 🐮
- 128047 🐯
- 128048 🐰
- 128049 🐱
- 128050 🐲
- 128051 🐳
- 128052 🐴
- 128053 🐵
- 128054 🐶
- 128055 🐷
- 128056 🐸
- 128057 🐹
- 128058 🐺
- 128059 🐻
- 128060 🐼
- 128061 🐽
- 128062 🐾
- 128063 🐿
- 128064 👀
- 128065 👁
- 128066 👂
- 128067 👃
- 128068 👄
- 128069 👅
- 128070 👆
- 128071 👇
- 128072 👈
- 128073 👉
- 128074 👊
- 128075 👋
- 128076 👌
- 128077 👍
- 128078 👎
- 128079 👏
- 128080 👐
- 128081 👑
- 128082 👒
- 128083 👓
- 128084 👔
- 128085 👕
- 128086 👖
- 128087 👗
- 128088 👘
- 128089 👙
- 128090 👚
- 128091 👛
- 128092 👜
- 128093 👝
- 128094 👞
- 128095 👟
- 128096 👠
- 128097 👡
- 128098 👢
- 128099 👣
- 128100 👤
- 128101 👥
- 128102 👦
- 128103 👧
- 128104 👨
- 128105 👩
- 128106 👪
- 128107 👫
- 128108 👬
- 128109 👭
- 128110 👮
- 128111 👯
- 128112 👰
- 128113 👱
- 128114 👲
- 128115 👳
- 128116 👴
- 128117 👵
- 128118 👶
- 128119 👷
- 128120 👸
- 128121 👹
- 128122 👺
- 128123 👻
- 128124 👼
- 128125 👽
- 128126 👾
- 128127 👿
- 128128 💀
- 128129 💁
- 128130 💂
- 128131 💃
- 128132 💄
- 128133 💅
- 128134 💆
- 128135 💇
- 128136 💈
- 128137 💉
- 128138 💊
- 128139 💋
- 128140 💌
- 128141 💍
- 128142 💎
- 128143 💏
- 128144 💐
- 128145 💑
- 128146 💒
- 128147 💓
- 128148 💔
- 128149 💕
- 128150 💖
- 128151 💗
- 128152 💘
- 128153 💙
- 128154 💚
- 128155 💛
- 128156 💜
- 128157 💝
- 128158 💞
- 128159 💟
- 128160 💠
- 128161 💡
- 128162 💢
- 128163 💣
- 128164 💤
- 128165 💥
- 128166 💦
- 128167 💧
- 128168 💨
- 128169 💩
- 128170 💪
- 128171 💫
- 128172 💬
- 128173 💭
- 128174 💮
- 128175 💯
- 128176 💰
- 128177 💱
- 128178 💲
- 128179 💳
- 128180 💴
- 128181 💵
- 128182 💶
- 128183 💷
- 128184 💸
- 128185 💹
- 128186 💺
- 128187 💻
- 128188 💼
- 128189 💽
- 128190 💾
- 128191 💿
- 128192 📀
- 128193 📁
- 128194 📂
- 128195 📃
- 128196 📄
- 128197 📅
- 128198 📆
- 128199 📇
- 128200 📈
- 128201 📉
- 128202 📊
- 128203 📋
- 128204 📌
- 128205 📍
- 128206 📎
- 128207 📏
- 128208 📐
- 128209 📑
- 128210 📒
- 128211 📓
- 128212 📔
- 128213 📕
- 128214 📖
- 128215 📗
- 128216 📘
- 128217 📙
- 128218 📚
- 128219 📛
- 128220 📜
- 128221 📝
- 128222 📞
- 128223 📟
- 128224 📠
- 128225 📡
- 128226 📢
- 128227 📣
- 128228 📤
- 128229 📥
- 128230 📦
- 128231 📧
- 128232 📨
- 128233 📩
- 128234 📪
- 128235 📫
- 128236 📬
- 128237 📭
- 128238 📮
- 128239 📯
- 128240 📰
- 128241 📱
- 128242 📲
- 128243 📳
- 128244 📴
- 128245 📵
- 128246 📶
- 128247 📷
- 128248 📸
- 128249 📹
- 128250 📺
- 128251 📻
- 128252 📼
- 128253 📽
- 128255 📿
- 128256 🔀
- 128257 🔁
- 128258 🔂
- 128259 🔃
- 128260 🔄
- 128261 🔅
- 128262 🔆
- 128263 🔇
- 128264 🔈
- 128265 🔉
- 128266 🔊
- 128267 🔋
- 128268 🔌
- 128269 🔍
- 128270 🔎
- 128271 🔏
- 128272 🔐
- 128273 🔑
- 128274 🔒
- 128275 🔓
- 128276 🔔
- 128277 🔕
- 128278 🔖
- 128279 🔗
- 128280 🔘
- 128281 🔙
- 128282 🔚
- 128283 🔛
- 128284 🔜
- 128285 🔝
- 128286 🔞
- 128287 🔟
- 128288 🔠
- 128289 🔡
- 128290 🔢
- 128291 🔣
- 128292 🔤
- 128293 🔥
- 128294 🔦
- 128295 🔧
- 128296 🔨
- 128297 🔩
- 128298 🔪
- 128299 🔫
- 128300 🔬
- 128301 🔭
- 128302 🔮
- 128303 🔯
- 128304 🔰
- 128305 🔱
- 128306 🔲
- 128307 🔳
- 128308 🔴
- 128309 🔵
- 128310 🔶
- 128311 🔷
- 128312 🔸
- 128313 🔹
- 128314 🔺
- 128315 🔻
- 128316 🔼
- 128317 🔽
- 128329 🕉
- 128330 🕊
- 128331 🕋
- 128332 🕌
- 128333 🕍
- 128334 🕎
- 128336 🕐
- 128337 🕑
- 128338 🕒
- 128339 🕓
- 128340 🕔
- 128341 🕕
- 128342 🕖
- 128343 🕗
- 128344 🕘
- 128345 🕙
- 128346 🕚
- 128347 🕛
- 128348 🕜
- 128349 🕝
- 128350 🕞
- 128351 🕟
- 128352 🕠
- 128353 🕡
- 128354 🕢
- 128355 🕣
- 128356 🕤
- 128357 🕥
- 128358 🕦
- 128359 🕧
- 128367 🕯
- 128368 🕰
- 128371 🕳
- 128372 🕴
- 128373 🕵
- 128374 🕶
- 128375 🕷
- 128376 🕸
- 128377 🕹
- 128378 🕺
- 128391 🖇
- 128394 🖊
- 128395 🖋
- 128396 🖌
- 128397 🖍
- 128400 🖐
- 128405 🖕
- 128406 🖖
- 128420 🖤
- 128421 🖥
- 128424 🖨
- 128433 🖱
- 128434 🖲
- 128444 🖼
- 128450 🗂
- 128451 🗃
- 128452 🗄
- 128465 🗑
- 128466 🗒
- 128467 🗓
- 128476 🗜
- 128477 🗝
- 128478 🗞
- 128481 🗡
- 128483 🗣
- 128488 🗨
- 128495 🗯
- 128499 🗳
- 128506 🗺
- 128507 🗻
- 128508 🗼
- 128509 🗽
- 128510 🗾
- 128511 🗿
- 128512 😀
- 128513 😁
- 128514 😂
- 128515 😃
- 128516 😄
- 128517 😅
- 128518 😆
- 128519 😇
- 128520 😈
- 128521 😉
- 128522 😊
- 128523 😋
- 128524 😌
- 128525 😍
- 128526 😎
- 128527 😏
- 128528 😐
- 128529 😑
- 128530 😒
- 128531 😓
- 128532 😔
- 128533 😕
- 128534 😖
- 128535 😗
- 128536 😘
- 128537 😙
- 128538 😚
- 128539 😛
- 128540 😜
- 128541 😝
- 128542 😞
- 128543 😟
- 128544 😠
- 128545 😡
- 128546 😢
- 128547 😣
- 128548 😤
- 128549 😥
- 128550 😦
- 128551 😧
- 128552 😨
- 128553 😩
- 128554 😪
- 128555 😫
- 128556 😬
- 128557 😭
- 128558 😮
- 128559 😯
- 128560 😰
- 128561 😱
- 128562 😲
- 128563 😳
- 128564 😴
- 128565 😵
- 128566 😶
- 128567 😷
- 128568 😸
- 128569 😹
- 128570 😺
- 128571 😻
- 128572 😼
- 128573 😽
- 128574 😾
- 128575 😿
- 128576 🙀
- 128577 🙁
- 128578 🙂
- 128579 🙃
- 128580 🙄
- 128581 🙅
- 128582 🙆
- 128583 🙇
- 128584 🙈
- 128585 🙉
- 128586 🙊
- 128587 🙋
- 128588 🙌
- 128589 🙍
- 128590 🙎
- 128591 🙏
- 128640 🚀
- 128641 🚁
- 128642 🚂
- 128643 🚃
- 128644 🚄
- 128645 🚅
- 128646 🚆
- 128647 🚇
- 128648 🚈
- 128649 🚉
- 128650 🚊
- 128651 🚋
- 128652 🚌
- 128653 🚍
- 128654 🚎
- 128655 🚏
- 128656 🚐
- 128657 🚑
- 128658 🚒
- 128659 🚓
- 128660 🚔
- 128661 🚕
- 128662 🚖
- 128663 🚗
- 128664 🚘
- 128665 🚙
- 128666 🚚
- 128667 🚛
- 128668 🚜
- 128669 🚝
- 128670 🚞
- 128671 🚟
- 128672 🚠
- 128673 🚡
- 128674 🚢
- 128675 🚣
- 128676 🚤
- 128677 🚥
- 128678 🚦
- 128679 🚧
- 128680 🚨
- 128681 🚩
- 128682 🚪
- 128683 🚫
- 128684 🚬
- 128685 🚭
- 128686 🚮
- 128687 🚯
- 128688 🚰
- 128689 🚱
- 128690 🚲
- 128691 🚳
- 128692 🚴
- 128693 🚵
- 128694 🚶
- 128695 🚷
- 128696 🚸
- 128697 🚹
- 128698 🚺
- 128699 🚻
- 128700 🚼
- 128701 🚽
- 128702 🚾
- 128703 🚿
- 128704 🛀
- 128705 🛁
- 128706 🛂
- 128707 🛃
- 128708 🛄
- 128709 🛅
- 128715 🛋
- 128716 🛌
- 128717 🛍
- 128718 🛎
- 128719 🛏
- 128720 🛐
- 128721 🛑
- 128722 🛒
- 128736 🛠
- 128737 🛡
- 128738 🛢
- 128739 🛣
- 128740 🛤
- 128741 🛥
- 128745 🛩
- 128747 🛫
- 128748 🛬
- 128752 🛰
- 128755 🛳
- 128756 🛴
- 128757 🛵
- 128758 🛶
- 128759 🛷
- 128760 🛸
- 128761 🛹
- 128762 🛺
- 129296 🤐
- 129297 🤑
- 129298 🤒
- 129299 🤓
- 129300 🤔
- 129301 🤕
- 129302 🤖
- 129303 🤗
- 129304 🤘
- 129305 🤙
- 129306 🤚
- 129307 🤛
- 129308 🤜
- 129309 🤝
- 129310 🤞
- 129311 🤟
- 129312 🤠
- 129313 🤡
- 129314 🤢
- 129315 🤣
- 129316 🤤
- 129317 🤥
- 129318 🤦
- 129319 🤧
- 129320 🤨
- 129321 🤩
- 129322 🤪
- 129323 🤫
- 129324 🤬
- 129325 🤭
- 129326 🤮
- 129327 🤯
- 129328 🤰
- 129329 🤱
- 129330 🤲
- 129331 🤳
- 129332 🤴
- 129333 🤵
- 129334 🤶
- 129335 🤷
- 129336 🤸
- 129337 🤹
- 129338 🤺
- 129340 🤼
- 129341 🤽
- 129342 🤾
- 129344 🥀
- 129345 🥁
- 129346 🥂
- 129347 🥃
- 129348 🥄
- 129349 🥅
- 129351 🥇
- 129352 🥈
- 129353 🥉
- 129354 🥊
- 129355 🥋
- 129356 🥌
- 129357 🥍
- 129358 🥎
- 129359 🥏
- 129360 🥐
- 129361 🥑
- 129362 🥒
- 129363 🥓
- 129364 🥔
- 129365 🥕
- 129366 🥖
- 129367 🥗
- 129368 🥘
- 129369 🥙
- 129370 🥚
- 129371 🥛
- 129372 🥜
- 129373 🥝
- 129374 🥞
- 129375 🥟
- 129376 🥠
- 129377 🥡
- 129378 🥢
- 129379 🥣
- 129380 🥤
- 129381 🥥
- 129382 🥦
- 129383 🥧
- 129384 🥨
- 129385 🥩
- 129386 🥪
- 129387 🥫
- 129408 🦀
- 129409 🦁
- 129410 🦂
- 129411 🦃
- 129412 🦄
- 129413 🦅
- 129414 🦆
- 129415 🦇
- 129416 🦈
- 129417 🦉
- 129418 🦊
- 129419 🦋
- 129420 🦌
- 129421 🦍
- 129422 🦎
- 129423 🦏
- 129424 🦐
- 129425 🦑
- 129426 🦒
- 129427 🦓
- 129428 🦔
- 129429 🦕
- 129430 🦖
- 129431 🦗
- 129472 🧀
- 129488 🧐
- 129489 🧑
- 129490 🧒
- 129491 🧓
- 129492 🧔
- 129493 🧕
- 129494 🧖
- 129495 🧗
- 129496 🧘
- 129497 🧙
- 129498 🧚
- 129499 🧛
- 129500 🧜
- 129501 🧝
- 129502 🧞
- 129503 🧟
- 129504 🧠
- 129505 🧡
- 129506 🧢
- 129507 🧣
- 129508 🧤
- 129509 🧥
- 129510 🧦
- 1F1E6 🇦 A
- 1F1E7 🇧 B
- 1F1E8 🇨 C
- 1F1E9 🇩 D
- 1F1EA 🇪 E
- 1F1EB 🇫 F
- 1F1EC 🇬 G
- 1F1ED 🇭 H
- 1F1EE 🇮 I
- 1F1EF 🇯 J
- 1F1F0 🇰 K
- 1F1F1 🇱 L
- 1F1F2 🇲 M
- 1F1F3 🇳 N
- 1F1F4 🇴 O
- 1F1F5 🇵 P
- 1F1F6 🇶 Q
- 1F1F7 🇷 R
- 1F1F8 🇸 S
- 1F1F9 🇹 T
- 1F1FA 🇺 U
- 1F1FB 🇻 V
- 1F1FC 🇼 W
- 1F1FD 🇽 X
- 1F1FE 🇾 Y
- 1F1FF 🇿 Z