From 5ccb63b8c5b1440147d6aea943c1009b0c9af45d Mon Sep 17 00:00:00 2001 From: nipos Date: Sun, 11 Mar 2018 12:07:57 +0100 Subject: [PATCH] First release,no database required,code style changes --- public_html/.htaccess => .htaccess | 3 - 404.php | 17 + README.md | 46 +- Roadmap.md | 17 - assets/css/404.css | 132 + assets/css/style.css | 2326 +++++++++++ .../assets => assets}/images/favicon.ico | Bin .../assets => assets}/images/halcyon.png | Bin .../assets => assets}/images/halcyon_logo.png | Bin .../assets => assets}/images/halcyon_w.png | Bin assets/images/mastodon.png | Bin 0 -> 4875 bytes assets/images/mastodon.svg | 1 + .../assets => assets}/images/missing.png | Bin .../images/missing_header.png | Bin .../assets => assets}/images/self_auth.png | Bin assets/images/self_auth_min.png | Bin 0 -> 2017 bytes assets/js/halcyon/halcyonFunctions.js | 174 + assets/js/halcyon/halcyonUI.js | 2340 +++++++++++ .../js/jquery-cookie/MIT-LICENSE.txt | 0 assets/js/jquery-cookie/src/jquery.cookie.js | 78 + .../assets => assets}/js/mastodon.js/LICENSE | 0 assets/js/mastodon.js/mastodon.js | 207 + assets/js/replace_emoji.js | 3473 ++++++++++++++++ assets/js/shortcut.js | 186 + authorize/.htaccess | 1 + authorize/Mastodon-api-php/Mastodon_api.php | 970 ----- authorize/Mastodon-api-php/README.md | 19 - authorize/Mastodon.php | 82 - authorize/database.php | 50 - .../LICENSE | 0 authorize/mastodon-api/mastodon.php | 374 ++ authorize/mastodon.php | 51 + config.ini.sample | 7 - data/.htaccess | 1 + federated.php | 37 + public_html/footer.php => footer.php | 62 +- header.php | 125 + home.php | 37 + public_html/index.php => index.php | 0 local.php | 44 + login/assets/css/style.css | 451 +++ .../assets/images/background.jpg | Bin .../assets/images/halcyon-title.png | Bin .../assets/images/halcyon_logo.png | Bin .../assets/images/preview0.png | Bin .../assets/images/preview1.png | Bin .../assets/images/preview2.png | Bin login/assets/js/halcyon_login.js | 43 + login/auth.php | 49 + login/login.php | 170 + {public_html/login => login}/logout.php | 2 +- login/terms.php | 100 + notifications.php | 42 + public_html/404.php | 25 - public_html/assets/css/404.css | 169 - public_html/assets/css/style.css | 2894 -------------- public_html/assets/images/elf.jpg | Bin 98947 -> 0 bytes public_html/assets/images/mastodon.png | Bin 7752 -> 0 bytes public_html/assets/images/self_auth_min.png | Bin 1037 -> 0 bytes .../assets/js/halcyon/halcyonFunctions.js | 258 -- public_html/assets/js/halcyon/halcyonUI.js | 3353 ---------------- public_html/assets/js/jquery-cookie/.DS_Store | Bin 6148 -> 0 bytes .../assets/js/jquery-cookie/CHANGELOG.md | 73 - .../assets/js/jquery-cookie/CONTRIBUTING.md | 51 - .../assets/js/jquery-cookie/Gruntfile.js | 168 - public_html/assets/js/jquery-cookie/README.md | 162 - .../assets/js/jquery-cookie/bower.json | 18 - .../assets/js/jquery-cookie/component.json | 14 - .../js/jquery-cookie/cookie.jquery.json | 32 - .../assets/js/jquery-cookie/package.json | 50 - .../assets/js/jquery-cookie/src/.jshintrc | 13 - .../js/jquery-cookie/src/jquery.cookie.js | 114 - .../assets/js/jquery-cookie/test/.jshintrc | 9 - .../assets/js/jquery-cookie/test/index.html | 16 - .../jquery-cookie/test/malformed_cookie.html | 18 - .../assets/js/jquery-cookie/test/tests.js | 345 -- public_html/assets/js/mastodon.js/.DS_Store | Bin 6148 -> 0 bytes public_html/assets/js/mastodon.js/README | 3 - public_html/assets/js/mastodon.js/index.html | 117 - public_html/assets/js/mastodon.js/mastodon.js | 277 -- public_html/assets/js/replace_emoji.js | 3475 ----------------- public_html/assets/js/shortcut.js | 223 -- public_html/federated.php | 66 - public_html/header.php | 160 - public_html/home.php | 62 - public_html/local.php | 76 - public_html/login/assets/css/style.css | 571 --- public_html/login/assets/js/halcyon_login.js | 55 - public_html/login/auth.php | 70 - public_html/login/login.php | 234 -- public_html/login/terms.php | 128 - public_html/notifications.php | 69 - public_html/search_hash_tag.php | 80 - public_html/search_user.php | 51 - public_html/user.php | 158 - public_html/user_favorite.php | 147 - public_html/user_followers.php | 115 - public_html/user_following.php | 115 - public_html/user_include_replies.php | 159 - public_html/user_only_media.php | 160 - public_html/widgets/create_status.php | 101 - public_html/widgets/overlay_copy_link.php | 11 - public_html/widgets/overlay_create_status.php | 104 - public_html/widgets/overlay_message.php | 5 - public_html/widgets/overlay_single_reply.php | 105 - public_html/widgets/search_header.php | 31 - public_html/widgets/side_change_local.php | 15 - public_html/widgets/side_current_user.php | 46 - public_html/widgets/side_dev_team.php | 61 - public_html/widgets/side_footer.php | 33 - public_html/widgets/side_load_options.php | 28 - public_html/widgets/side_who_to_follow.php | 60 - public_html/widgets/user_header.php | 54 - public_html/widgets/user_recent_images.php | 9 - search_hash_tag.php | 51 + search_user.php | 30 + user.php | 106 + user_favorite.php | 91 + user_followers.php | 73 + user_following.php | 73 + user_include_replies.php | 104 + user_only_media.php | 104 + widgets/create_status.php | 61 + widgets/overlay_copy_link.php | 8 + widgets/overlay_create_status.php | 63 + widgets/overlay_message.php | 5 + widgets/overlay_single_reply.php | 64 + widgets/search_header.php | 21 + widgets/side_change_local.php | 10 + widgets/side_current_user.php | 36 + widgets/side_dev_team.php | 73 + widgets/side_footer.php | 23 + widgets/side_load_options.php | 20 + widgets/side_who_to_follow.php | 56 + widgets/user_header.php | 35 + widgets/user_recent_images.php | 5 + 136 files changed, 11598 insertions(+), 16247 deletions(-) rename public_html/.htaccess => .htaccess (94%) create mode 100644 404.php delete mode 100644 Roadmap.md create mode 100644 assets/css/404.css create mode 100644 assets/css/style.css rename {public_html/assets => assets}/images/favicon.ico (100%) rename {public_html/assets => assets}/images/halcyon.png (100%) rename {public_html/assets => assets}/images/halcyon_logo.png (100%) rename {public_html/assets => assets}/images/halcyon_w.png (100%) create mode 100644 assets/images/mastodon.png create mode 100644 assets/images/mastodon.svg rename {public_html/assets => assets}/images/missing.png (100%) rename {public_html/assets => assets}/images/missing_header.png (100%) rename {public_html/assets => assets}/images/self_auth.png (100%) create mode 100644 assets/images/self_auth_min.png create mode 100644 assets/js/halcyon/halcyonFunctions.js create mode 100644 assets/js/halcyon/halcyonUI.js rename {public_html/assets => assets}/js/jquery-cookie/MIT-LICENSE.txt (100%) create mode 100644 assets/js/jquery-cookie/src/jquery.cookie.js rename {public_html/assets => assets}/js/mastodon.js/LICENSE (100%) create mode 100644 assets/js/mastodon.js/mastodon.js create mode 100644 assets/js/replace_emoji.js create mode 100644 assets/js/shortcut.js create mode 100644 authorize/.htaccess delete mode 100755 authorize/Mastodon-api-php/Mastodon_api.php delete mode 100755 authorize/Mastodon-api-php/README.md delete mode 100755 authorize/Mastodon.php delete mode 100755 authorize/database.php rename authorize/{Mastodon-api-php => mastodon-api}/LICENSE (100%) mode change 100755 => 100644 create mode 100644 authorize/mastodon-api/mastodon.php create mode 100644 authorize/mastodon.php create mode 100644 data/.htaccess create mode 100644 federated.php rename public_html/footer.php => footer.php (66%) create mode 100644 header.php create mode 100644 home.php rename public_html/index.php => index.php (100%) create mode 100644 local.php create mode 100644 login/assets/css/style.css rename {public_html/login => login}/assets/images/background.jpg (100%) rename {public_html/login => login}/assets/images/halcyon-title.png (100%) rename {public_html/login => login}/assets/images/halcyon_logo.png (100%) rename {public_html/login => login}/assets/images/preview0.png (100%) rename {public_html/login => login}/assets/images/preview1.png (100%) rename {public_html/login => login}/assets/images/preview2.png (100%) create mode 100644 login/assets/js/halcyon_login.js create mode 100644 login/auth.php create mode 100644 login/login.php rename {public_html/login => login}/logout.php (89%) create mode 100644 login/terms.php create mode 100644 notifications.php delete mode 100644 public_html/404.php delete mode 100644 public_html/assets/css/404.css delete mode 100644 public_html/assets/css/style.css delete mode 100644 public_html/assets/images/elf.jpg delete mode 100644 public_html/assets/images/mastodon.png delete mode 100644 public_html/assets/images/self_auth_min.png delete mode 100644 public_html/assets/js/halcyon/halcyonFunctions.js delete mode 100644 public_html/assets/js/halcyon/halcyonUI.js delete mode 100644 public_html/assets/js/jquery-cookie/.DS_Store delete mode 100644 public_html/assets/js/jquery-cookie/CHANGELOG.md delete mode 100644 public_html/assets/js/jquery-cookie/CONTRIBUTING.md delete mode 100644 public_html/assets/js/jquery-cookie/Gruntfile.js delete mode 100644 public_html/assets/js/jquery-cookie/README.md delete mode 100644 public_html/assets/js/jquery-cookie/bower.json delete mode 100644 public_html/assets/js/jquery-cookie/component.json delete mode 100644 public_html/assets/js/jquery-cookie/cookie.jquery.json delete mode 100644 public_html/assets/js/jquery-cookie/package.json delete mode 100644 public_html/assets/js/jquery-cookie/src/.jshintrc delete mode 100644 public_html/assets/js/jquery-cookie/src/jquery.cookie.js delete mode 100644 public_html/assets/js/jquery-cookie/test/.jshintrc delete mode 100644 public_html/assets/js/jquery-cookie/test/index.html delete mode 100644 public_html/assets/js/jquery-cookie/test/malformed_cookie.html delete mode 100644 public_html/assets/js/jquery-cookie/test/tests.js delete mode 100644 public_html/assets/js/mastodon.js/.DS_Store delete mode 100644 public_html/assets/js/mastodon.js/README delete mode 100644 public_html/assets/js/mastodon.js/index.html delete mode 100644 public_html/assets/js/mastodon.js/mastodon.js delete mode 100644 public_html/assets/js/replace_emoji.js delete mode 100644 public_html/assets/js/shortcut.js delete mode 100644 public_html/federated.php delete mode 100644 public_html/header.php delete mode 100644 public_html/home.php delete mode 100644 public_html/local.php delete mode 100644 public_html/login/assets/css/style.css delete mode 100644 public_html/login/assets/js/halcyon_login.js delete mode 100644 public_html/login/auth.php delete mode 100644 public_html/login/login.php delete mode 100644 public_html/login/terms.php delete mode 100644 public_html/notifications.php delete mode 100644 public_html/search_hash_tag.php delete mode 100644 public_html/search_user.php delete mode 100644 public_html/user.php delete mode 100644 public_html/user_favorite.php delete mode 100644 public_html/user_followers.php delete mode 100644 public_html/user_following.php delete mode 100644 public_html/user_include_replies.php delete mode 100644 public_html/user_only_media.php delete mode 100644 public_html/widgets/create_status.php delete mode 100644 public_html/widgets/overlay_copy_link.php delete mode 100644 public_html/widgets/overlay_create_status.php delete mode 100644 public_html/widgets/overlay_message.php delete mode 100644 public_html/widgets/overlay_single_reply.php delete mode 100644 public_html/widgets/search_header.php delete mode 100644 public_html/widgets/side_change_local.php delete mode 100644 public_html/widgets/side_current_user.php delete mode 100644 public_html/widgets/side_dev_team.php delete mode 100644 public_html/widgets/side_footer.php delete mode 100644 public_html/widgets/side_load_options.php delete mode 100644 public_html/widgets/side_who_to_follow.php delete mode 100644 public_html/widgets/user_header.php delete mode 100644 public_html/widgets/user_recent_images.php create mode 100644 search_hash_tag.php create mode 100644 search_user.php create mode 100644 user.php create mode 100644 user_favorite.php create mode 100644 user_followers.php create mode 100644 user_following.php create mode 100644 user_include_replies.php create mode 100644 user_only_media.php create mode 100644 widgets/create_status.php create mode 100644 widgets/overlay_copy_link.php create mode 100644 widgets/overlay_create_status.php create mode 100644 widgets/overlay_message.php create mode 100644 widgets/overlay_single_reply.php create mode 100644 widgets/search_header.php create mode 100644 widgets/side_change_local.php create mode 100644 widgets/side_current_user.php create mode 100644 widgets/side_dev_team.php create mode 100644 widgets/side_footer.php create mode 100644 widgets/side_load_options.php create mode 100644 widgets/side_who_to_follow.php create mode 100644 widgets/user_header.php create mode 100644 widgets/user_recent_images.php diff --git a/public_html/.htaccess b/.htaccess similarity index 94% rename from public_html/.htaccess rename to .htaccess index 851c699..f93b035 100644 --- a/public_html/.htaccess +++ b/.htaccess @@ -4,9 +4,6 @@ RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.+?)$ RewriteRule ^(.*)$ https://$1 [R=301,L] -RewriteCond %{SERVER_PORT} 80 -RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] - # Main RewriteBase / RewriteRule ^home/?$ / [R=301] diff --git a/404.php b/404.php new file mode 100644 index 0000000..318277e --- /dev/null +++ b/404.php @@ -0,0 +1,17 @@ + + + + + + +Halcyon / ? + + + + +
+

404

+

Sorry, something went wrong.

+
+ + \ No newline at end of file diff --git a/README.md b/README.md index 875d348..a99d9a2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,13 @@ # Halcyon for Mastodon A Mastodon web client that looks like Twitter ->The original author of this genious piece of software was inactive for a while and then shut down his demo instance and deleted this repository. I love Halcyon, it's the thing which makes Mastodon the best social network in the world. I took the Code from the Halcyon fork of cybre.space which still works but doesn't seem to get updates, too. I uploaded it here to make the original link work again and don't link into the big nothing. I'm working on much other stuff, too, what is why I won't be very active here in the near future but I do things which are required to keep it working and if I have much more time, I already know some nice features which could come. As for now I don't have an own demo instance but the one from cybre.space works pretty good and when I changed many things, I will open an own one. +>The original author of this genius piece of software was inactive for a while and then shut down his demo instance and deleted this repository. I love Halcyon, it's the thing which makes Mastodon the best social network in the world. I took the Code from the Halcyon fork of cybre.space which still works but doesn't seem to get updates, too. I uploaded it here to make the original link work again and don't link into the big nothing. I'm working on much other stuff, too, what is why I won't be very active here in the near future but I do things which are required to keep it working and if I have much more time, I already know some nice features which could come. As for now I don't have an own demo instance but the one from cybre.space works pretty good and when I changed many things, I will open an own one. +## Blog +- [Release of Version 1.0.0](http://nikisoft.myblog.de/nikisoft/art/11264555/The-first-new-Halcyon-release-is-on-Github) + ## Demo https://halcyon.cybre.space/ Please note that this demo is not owned by me and I have not control over it. Currently I'm not providing an own demo so I link to that one. That may change in future. @@ -15,48 +18,13 @@ Please note that this demo is not owned by me and I have not control over it. Cu - No tracking, No ads. ## Requirement -- Apache +- Apache/Nginx/lighttpd - PHP -- MySQL +- No database needed anymore! ## Setup -I didn't prepared setup script so you have to setup manually... - -### PDO MySQL - -After installed PHP, run this. - -```bash -sudo pecl install pdo_mysql -sudo vi php.ini -``` - -change to this - -```php.ini -extension=mysqli.so -extension=pdo_mysql.so -``` - -### MySQL -After installed MySQL, create a user, run this. -```sql -CREATE DATABASE DATABASE_NAME DEFAULT CHARACTER SET utf8; -CREATE TABLE DATABASE_NAME.instances(domain varchar(261), client_id varchar(64), client_secret varchar(64)); -``` -and make file `/config.ini` like this -```config.ini -~~~ line 3 ~~~ -api_client_name = -api_client_website = -~~~ line 8 ~~~ -db_host = -db_user = -db_pass = -db_name = -``` +Upload it, edit config.ini and have fun! ## Credits - - [Kirschn/mastodon.js](https://github.com/Kirschn/mastodon.js) - [yks118/Mastodon-api-php](https://github.com/yks118/Mastodon-api-php) diff --git a/Roadmap.md b/Roadmap.md deleted file mode 100644 index 85e312c..0000000 --- a/Roadmap.md +++ /dev/null @@ -1,17 +0,0 @@ -# Roadmap - -These plans may change if I think something else is more important or if I consider something here as not that important! - -## Next version -- [x] Oauth login -- [x] Support responsive -- [ ] Add meida attachment's next/prev button - -## Future -- [ ] Multi account -- [ ] Emoji picker -- [ ] Native profile edit -- [ ] Dark theme -- [ ] Translation support -- [ ] Mobile devices support -- [ ] PHP PSR4 / Autoload diff --git a/assets/css/404.css b/assets/css/404.css new file mode 100644 index 0000000..68f1303 --- /dev/null +++ b/assets/css/404.css @@ -0,0 +1,132 @@ +@charset "utf-8"; +* { +margin: 0; +padding: 0; +font-size: 100%; +} +a { +text-decoration: none; +word-break: break-all; +color: inherit; +} +a:hover { +text-decoration: underline; +} +ul, ol { +list-style: none; +padding: 0; +margin: 0; +} +img { +vertical-align: top; +border: 0; +max-width: 100%; +max-height: 100%; +} +button { +font-size: 100%; +} +.clear { +clear: both; +} +.red { +color: red!important; +} +.invisible { +display: none!important; +} +.no-events { +pointer-events: none; +} +.disallow_select { +user-select: none; +-ms-user-select: none; +-webkit-user-select: none; +-moz-user-select: none; +} +.text_ellipsis { +text-overflow: ellipsis; +overflow: hidden; +white-space: nowrap; +} +h1, h2, h3, h4, h5, h6 { +font-weight: normal; +line-height: 1; +margin: 0; +padding: 0; +} +blockquote, q { +quotes: none; +margin: 0; +} +blockquote * { +margin: 0; +word-break: break-all; +} +blockquote:before, blockquote:after, +q:before, q:after { +content:''; +content:none; +} +article,aside,details,figcaption,figure, +footer,header,hgroup,menu,nav,section { +display:block; +} +textarea { +width: 100%; +} +input { +max-width: 100%; +} +button, input[type="submit"], input[type="button"]{ +background-color: transparent; +border: none; +cursor: pointer; +outline: none; +padding: 0; +appearance: none; +} +img.emoji { +height: 1em; +width: 1em; +margin: 0 .05em 0 .1em; +vertical-align: -0.1em; +} +.emoji_poss .auth_emoji { +display: inline-block; +height: 100%; +margin: auto; +margin-left: 4px; +} +html { +font-family : "Helvetica Neue",Helvetica,Arial,sans-serif; +font-size : 100%; +line-height : 1; +color: #333; +min-width: 100%; +min-height: 100%; +} +body { +margin: 0; +padding: 0; +min-width: 100%; +min-height: 100%; +word-wrap:break-word; +background-color: #189EFC; +} +article { +margin: auto; +padding: 24px; +} +h1 { +font-size: 248px; +text-align: center; +color: #fff; +font-weight: 600; +} +h2 { +font-size: 56px; +text-align: center; +color: #fff; +font-weight: 200; +} \ No newline at end of file diff --git a/assets/css/style.css b/assets/css/style.css new file mode 100644 index 0000000..d3a834c --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,2326 @@ +@charset "utf-8"; +* { +margin: 0; +padding: 0; +font-size: 100%; +} +a { +text-decoration: none; +word-break: break-all; +color: inherit; +} +a:hover { +text-decoration: underline; +} +ul, ol { +list-style: none; +padding: 0; +margin: 0; +} +img { +vertical-align: top; +border: 0; +max-width: 100%; +max-height: 100%; +} +button { +font-size: 100%; +} +.clear { +clear: both; +} +.red { +color: red!important; +} +.invisible { +display: none!important; +} +.no-events { +pointer-events: none; +} +.disallow_select { +user-select: none; +-ms-user-select: none; +-webkit-user-select: none; +-moz-user-select: none; +} +.text_ellipsis { +text-overflow: ellipsis; +overflow: hidden; +white-space: nowrap; +} +h1, h2, h3, h4, h5, h6 { +font-weight: normal; +line-height: 1; +margin: 0; +padding: 0; +} +blockquote, q { +quotes: none; +margin: 0; +} +blockquote * { +margin: 0; +word-break: break-all; +} +blockquote:before, blockquote:after, +q:before, q:after { +content:''; +content:none; +} +article,aside,details,figcaption,figure, +footer,header,hgroup,menu,nav,section { +display:block; +} +textarea { +width: 100%; +} +input { +max-width: 100%; +} +button, input[type="submit"], input[type="button"]{ +background-color: transparent; +border: none; +cursor: pointer; +outline: none; +padding: 0; +appearance: none; +} +img.emoji { +height: 1em; +width: 1em; +margin: 0 .05em 0 .1em; +vertical-align: -0.1em; +} +.emoji_poss .auth_emoji { +display: inline-block; +height: 100%; +margin: auto; +margin-left: 4px; +} +html { +font-family : "Helvetica Neue",Helvetica,Arial,sans-serif; +font-size : 100%; +line-height : 1; +color: #333; +min-width: 100%; +min-height: 100%; +} +body { +margin: 0; +padding: 0; +min-width: 100%; +min-height: 100%; +word-wrap:break-word; +background-color: #F5F8FA; +} +.status_form { +width: 100%; +padding: 12px; +box-sizing: border-box; +background-color: #E8F4FB; +} +.status_form.ready { +background-color: #F2FAFF!important; +} +.status_form.ready .status_bottom .status_media_attachment, +.status_form.ready .status_bottom .status_privacy { +color: #7ECEFF!important; +} +.status_form.ready .status_bottom .status_CW > span, +.status_form.ready .status_bottom .status_NSFW > span { +background-color: #7ECEFF!important; +} +.status_form.ready .status_bottom .submit_status_label { +background-color: #A3D8FF!important; +pointer-events: none; +cursor: default; +} +.status_form .status_top { +display: flex; +align-items: center; +width: calc( 100% - 54px ); +padding-bottom: 0; +margin-left: 54px; +box-sizing: border-box; +} +.status_form .status_top .status_spoiler { +color: #189EFC; +width: 100%; +height: 35px; +border-radius: 4px; +border: 1px solid #C7E7FB; +font-size: 14px; +padding: 8px; +box-sizing: border-box; +} +.status_form .status_main { +display: flex; +flex-wrap: nowrap; +} +.status_form .status_main .icon_box { +flex-shrink: 0; +margin-right: 8px; +width: 32px; +height: 32px; +border-radius: 5px; +overflow: hidden; +margin-left: 14px; +} +.status_form .status_main .status_textarea { +flex: 1; +padding: 8px; +border-radius: 3px; +box-sizing: border-box; +border: 1px solid #C7E7FB; +background-color: #fff; +overflow: hidden; +} +.status_form .status_main .status_textarea textarea { +color: #189EFC; +resize: none; +height: 18px; +border: none; +max-width: 100%; +font-size: 14px; +font-family : "Helvetica Neue",Helvetica,Arial,sans-serif; +line-height: normal; +} +.status_form .status_textarea textarea.focus { +outline: 0; +color: #000; +height: 68px; +} +.status_form .status_textarea .media_attachments_preview_area { +display: flex; +flex-wrap: nowrap; +margin: 8px -8px -8px -8px; +padding: 8px 12px; +background-color: #F1F1F1; +border-top: 1px solid #C7E7FB; +} +.status_form .status_textarea .media_attachments_preview { +position: relative; +flex-shrink: 0; +max-width: 113px; +height: 113px; +margin-right: 8px; +border-radius: 5px; +border: 1px solid #C7E7FB; +overflow: hidden; +flex: 1; +background-color: #fff; +} +.status_form .status_textarea .media_attachments_preview:last-child { +margin-right: 0; +} +.status_form .status_textarea .media_attachments_preview_area.nsfw .media_attachments_preview::after { +display: block; +content: ""; +cursor: pointer; +top: 0; +font-weight: 300; +width: 100%; +height: 100%; +position: absolute; +background-color: rgba(0, 0, 0, 1); +transition: 0.13s; +} +.status_form .status_textarea .media_attachments_preview_area.nsfw .media_attachments_preview:hover::after { +background-color: rgba(0, 0, 0, 0); +transition: 0.13s; +} +.status_form .status_textarea .media_attachments_preview img { +width: 100%; +height: 100%; +object-fit: cover; +} +.status_form .status_textarea .media_attachments_preview .remove_button { +position: absolute; +z-index: 1; +right: 0; +top: 0; +color: #fff; +background-color: rgba(0, 0, 0, .8); +border-radius: 50%; +width: 19px; +height: 19px; +display: flex; +align-content: center; +justify-content: center; +font-size: 14px; +margin: 4px 4px 0 0; +} +.status_form .status_bottom { +display: flex; +align-items: center; +width: calc( 100% - 52px ); +padding: 8px 0; +padding-bottom: 0; +box-sizing: border-box; +padding-right: 0; +margin-left: 52px; +} +.status_form .status_bottom .status_option_button { +cursor: pointer; +color: #43A7E5; +font-size: 21px; +border-radius: 3px; +padding: 8px 12px; +box-sizing: border-box; +border: 1px solid transparent;; +height: 39px; +display: flex; +justify-content: center; +align-items: center; +} +.status_form .status_bottom .status_option_button:hover { +border: 1px solid #C7E7FB +} +.status_form .status_bottom .status_option_button.active { +animation-name: status_action_active; +animation-duration: 0.5s; +} +.status_form .status_bottom .status_CW > span, +.status_form .status_bottom .status_NSFW > span { +display: flex; +align-items: center; +height: 22px; +padding: 4px; +color: #E8F4FB; +border-radius: 3px; +box-sizing: border-box; +background-color: #43A7E5; +text-align: center; +} +.status_form .status_bottom .status_CW > span { +font-size: 10px; +} +.status_form .status_bottom .status_NSFW > span { +font-size: 8px; +} +.status_form .status_bottom .status_privacy { +position: relative; +} +.status_form .status_bottom .status_privacy .expand_privacy_menu { +display: block; +position: absolute; +cursor: pointer; +top: 32px; +right: -122px; +width: 160px; +padding: 18px; +font-size: 12px; +border-radius: 3px; +box-sizing: border-box; +background-color: #fff; +box-shadow: 0.5px 0.5px 3px rgba(0,0,0,0.26); +z-index: 2; +} +.status_form .status_bottom .status_privacy .expand_privacy_menu::before { +display: block; +content: ""; +z-index: -1; +width: 20px; +height: 20px; +position: absolute; +transform: rotate(45deg); +top: -5px; +left: 8px; +background-color: #fff; +} +.status_form .status_bottom .status_privacy .expand_privacy_menu .status_privacy { +display: block; +cursor: pointer; +font-size: 14px; +margin-bottom: 12px; +color: rgb(101, 119, 134); +text-align: left; +} +.status_form .status_bottom .status_privacy .expand_privacy_menu .status_privacy:last-child { +margin-bottom: 0; +} +.status_form .status_bottom .status_privacy .expand_privacy_menu .status_privacy:hover { +color: #189EFC; +} +.status_form .status_bottom .status_privacy .expand_privacy_menu .status_privacy i { +margin-right: 4px; +} +.status_form .status_bottom .submit_status_label_wrap { +flex-grow: 1; +display: flex; +align-items: center; +justify-content: flex-end; +height: 39px; +} +.status_form .status_bottom .character_count { +color: #66757F; +font-size: 14px; +padding: 0 12px; +box-sizing: border-box; +} +.status_form .status_bottom .submit_status_label { +height: 100%; +padding: 6px 24px; +cursor: pointer; +float: right; +border-radius: 4px; +color: #fff; +background-color: #2588D0; +transition: 0.15s ease-out; +box-sizing: border-box; +display: flex; +justify-content: center; +align-items: center; +} +.status_form .status_bottom .submit_status_label:hover { +background-color: #2571D0; +transition: 0.15s ease-out; +} +.status_form .status_bottom .submit_status_label:active { +background-color: #255ED0; +transition: 0.15s ease-out; +} +.status_form .status_bottom .submit_status_label .toot_button_label { +display: flex; +justify-content: center; +align-items: center; +} +.status_form .status_bottom .submit_status_label .toot_button_label i { +display: inline-block; +font-size: 21px; +margin-right: 2px; +} +.status_form .status_bottom .submit_status_label .toot_button_label span { +font-size: 13px; +font-weight: 500; +} +.overlay_status{ +/*! width: 628px; */ +/*! margin: auto; */ +/*! z-index: 1000; */ +/*! top: 20%; */ +/*! left: 0; */ +/*! position: absolute; */ +/*! right: 0; */ +/*! bottom: 0; */ +margin-top: 20%; +} +.overlay_status_header { +width: 600px; +padding: 16px; +box-sizing: border-box; +background-color: #fff; +border-top-left-radius: 5px; +border-top-right-radius: 5px; +margin: auto; +text-align: center; +color: #66757F; +font-size: 18px; +font-weight: 300; +} +#overlay_status_form.status_form { +width: 600px; +padding: 16px; +box-sizing: border-box; +background-color: #E8F4FB; +border-bottom-left-radius: 5px; +border-bottom-right-radius: 5px; +margin: auto; +} +#overlay_status_form.status_form .status_top { +width: 100%; + margin-left: 0; +} +#overlay_status_form.status_form .status_main { +display: flex; +flex-wrap: nowrap; +} +#overlay_status_form.status_form .status_main .status_textarea { +flex: 1; +} +#overlay_status_form.status_form .status_main .status_textarea textarea { +color: #000; +resize: none; +max-width: 100%; +height: auto; +min-height: 72px; +border-radius: 5px; +font-family : "Helvetica Neue",Helvetica,Arial,sans-serif; +font-size: 14px; +padding: 4px; +outline: 0; +box-sizing: border-box; +} +#overlay_status_form.status_form .status_bottom { +display: flex; +align-items: center; +width: auto; +padding: 8px 0; +padding-bottom: 0; +margin-left: 0; +box-sizing: border-box; +padding-right: 0; +} +#reply_status_form.status_form:last-child { +border-bottom-left-radius: 5px; +border-bottom-right-radius: 5px; +} +.single_reply_status { +width: 600px; +margin: auto; +/*! z-index: 1000; */ +/*! top: 25%; */ +/*! left: 0; */ +/*! height: 100%; */ +/*! position: absolute; */ +/*! right: 0; */ +/*! bottom: 0; */ +margin-top: 20%; +} +.single_reply_status_header { +width: 600px; +padding: 16px; +box-sizing: border-box; +background-color: #fff; +border-top-left-radius: 5px; +border-top-right-radius: 5px; +margin: auto; +text-align: center; +color: #66757F; +font-size: 18px; +font-weight: 300; +} +.single_reply_status .status_preview { +border-top: 1px solid #E1E8ED; +} +.single_reply_status .status_preview .toot_entry .toot_footer { +display: none!important; +} +.single_reply_status .status_form .status_bottom { +width: 100%; +margin-left: 0; +} +#single_reply_status_form.status_form { +width: 600px; +padding: 16px; +box-sizing: border-box; +background-color: #E8F4FB; +border-bottom-left-radius: 5px; +border-bottom-right-radius: 5px; +margin: auto; +} +#single_reply_status_form.status_form .status_bottom .submit_status_label .toot_button_label i { +font-size: 18px; +margin-right: 8px; +} +.overlay_copy_link { +width: 600px; +margin: auto; +margin-top: 20%; +} +.overlay_copy_link_header { +width: 600px; +padding: 16px; +box-sizing: border-box; +background-color: #fff; +border-top-left-radius: 5px; +border-top-right-radius: 5px; +margin: auto; +text-align: center; +color: #66757F; +font-size: 18px; +font-weight: 300; +border-bottom: 1px solid #E6ECF0; +} +.overlay_copy_link .overlay_copy_link_form { +width: 600px; +padding: 16px; +box-sizing: border-box; +background-color: #fff; +border-bottom-left-radius: 5px; +border-bottom-right-radius: 5px; +margin: auto; +} +.overlay_copy_link .overlay_copy_link_form input { +width: 100%; +height: 36px; +padding: 4px 16px; +border: 1px solid #E6ECF0; +background-color: #F5F8FA; +box-sizing: border-box; +font-size: 14px; +border-radius: 3px; +} +.relationship_button { +display: flex; +flex-wrap: nowrap; +align-items: center; +font-size: 13px; +padding: 6px 13px; +margin-top: 4px; +border-radius: 4px; +border: 1px solid #189EFC; +} +.relationship_button i { +margin-right: 4px; +} +.relationship_button span { +font-weight: 600; +} +.follow_button {border: 1px solid #189EFC; color: #189EFC;} +.follow_button i {color: #189EFC} +.follow_button:hover, +.follow_button:hover i {background-color: #189EFC;color: #fff;} +.following_button, +.following_button i {background-color: #189EFC;color: #fff;} +.following_button:hover, +.following_button:hover i {background-color: #E20055;color: #fff;} +.muting_button {background-color: #E20055;color: #fff;} +.muting_button i {color: #fff;} +.muting_button:hover, +.muting_button:hover i {background-color: #B82424;color: #fff;} +.blocking_button{background-color: #fff;color: #E20055} +.blocking_button i {color: #E20055;} +.blocking_button:hover, +.blocking_button:hover i {background-color: #B82424;} +.profile_edit_button{background-color: #FFF;color: #66757F;border: 1px solid #66757F;} +.profile_edit_button:hover, +.profile_edit_button:hover i {background-color: #F5F8FA;} +.timeline_header { +background-color: #fff; +box-sizing: border-box; +border: 1px solid #ECF1F4; +border-bottom: none; +border-top-right-radius: 5px; +border-top-left-radius: 5px; +} +.timeline_header .header_items { +display: flex; +flex-wrap: nowrap; +align-items: center; +} +.timeline_header .header_items .item { +display: inline-block; +font-size: 18px; +font-weight: 300; +padding: 15px; +color: #189EFC; +box-sizing: border-box; +} +.timeline_header .header_items .item.view { +font-weight: 600; +color: #000; +} +.timeline { +background-color: #fff; +box-sizing: border-box; +border: 1px solid #ECF1F4; +} +.timeline .boost_author_box { +margin-left: 46px; +margin-bottom: -12px; +padding: 8px 0; +font-size: 12px; +color: rgb(101, 119, 134); +height: 14px; +} +.timeline .boost_author_box i { +display: inline-block; +width: 10px; +height: 10px; +padding: 2px; +margin-right: 11px; +color: #fff; +background-color: #17BF63; +border-radius: 2px; +font-size: 10px; +/*! height: 14px; */ +} +.toot_entry { +cursor: pointer; +background-color: #fff; +list-style: none; +} +.toot_entry:hover { +background-color: #F5F8FA; +} +.toot_entry .toot_entry_body { +display: flex; +flex-wrap: nowrap; +padding: 12px; +box-sizing: border-box; +border-bottom: 1px solid #ECF1F4; +} +.toot_entry .toot_entry_body > a { +height: 48px; +} +.toot_entry .toot_entry_body .icon_box { +flex-shrink: 0; +width: 48px; +height: 48px; +margin-right: 12px; +border-radius: 5px; +overflow: hidden; +z-index: 1; +} +.toot_entry .toot_entry_body .icon_box img { +width: 48px; +height: 48px; +} +.toot_entry .toot_entry_body .toot_content { +flex-grow: 1; +height: 100%; +max-width: 504px; +/*! z-index: 1; */ +} +.toot_entry .toot_entry_body .toot_content .toot_header { +color: rgb(101, 119, 134); +position: relative; +font-size: 14px; +padding-right: 16px; +} +.toot_entry .toot_entry_body .toot_content .toot_header .text_ellipsis a { +line-height: 1; +height: 16.5px; +margin-bottom: -4.5px; +} +.toot_entry .toot_entry_body .toot_content .toot_header .displayname { +color: rgb(20, 23, 26); +font-weight: bold; +} +.toot_entry .toot_entry_body .toot_content .toot_header .displayname:hover { +color: #189EFC; +} +.toot_entry .toot_entry_body .toot_content .toot_header .right-top_button { +flex: 1; +height: 100%; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap { +position: absolute; +top: 0; +right: 0; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_button { +position: absolute; +right: 0; +top: 0; +color: #AAB8C2; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_button:hover { +color: #189EFC; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu { +display: block; +position: absolute; +cursor: pointer; +top: 36px; +right: -152px; +width: 180px; +padding: 8px 21px; +font-size: 12px; +border-radius: 3px; +box-sizing: border-box; +background-color: #fff; +box-shadow: 0.5px 0.5px 3px rgba(0,0,0,0.26); +z-index: 1; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu::before { +display: block; +content: ""; +z-index: -1; +width: 20px; +height: 20px; +position: absolute; +transform: rotate(45deg); +top: -5px; +left: 8px; +background-color: #fff; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul { +margin: 0 -21px; +margin-bottom: 8px; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul::after { +content: ""; +display: block; +margin-top: 8px; +border-bottom: 1px solid #E6ECF0; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul:last-child::after { +border-bottom: 0px solid #E6ECF0; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul li { +box-sizing: border-box; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul:last-child li { +margin-bottom: 0; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu a { +display: block; +padding: 8px 21px; +box-sizing: border-box; +} +.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu a:hover { +background-color: #189EFC; +text-decoration: none; +color: #fff; +} +.toot_entry .toot_entry_body .toot_content .cw_button { +background-color: #6D768C; +border-radius: 3px; +padding: 4px; +margin: auto 4px; +font-size: 8px; +box-sizing: border-box; +color: #fff; +} +.toot_entry .toot_entry_body .toot_content .toot_article { +font-size: 14px; +line-height: 20px; +margin-top: 4px; +} +.toot_entry .toot_entry_body .toot_content .toot_article a { + color: #2588D0; +} +.toot_entry .toot_entry_body .toot_content .toot_article.content_warning .status_content { +display: none; +} +.toot_entry .toot_entry_body .toot_content .toot_footer { +display: flex; +flex-wrap: nowrap; +align-items: center; +width: 240px; +height: 21px; +margin-top: 8px; +} +.toot_entry .toot_entry_body .toot_content .toot_reaction { +height: 21px; +flex-grow: 1; +} +.toot_entry .toot_entry_body .toot_content .toot_reaction button { +margin: auto; +color: #AAB8C2; +font-size: 18px; +height: 21px; +} +.toot_entry .toot_entry_body .toot_content .toot_reaction button.active { +animation-name: status_action_active; +animation-duration: 0.5s; +} +.toot_entry .toot_entry_body .toot_content .toot_reaction button .reaction_count { +color: #AAB8C2; +font-size: 12px; +font-weight: 600; +} +@keyframes status_action_active { +0% { transform: scale(1); } +50% { transform: scale(2); } +100% { transform: scale(1); } +} +.toot_entry .toot_entry_body .toot_content .toot_reaction .reply_button:hover { +color: #1DA1F2; +} +.toot_entry .toot_entry_body .toot_content .toot_reaction .boost_button[reblogged="null"]:hover, +.toot_entry .toot_entry_body .toot_content .toot_reaction .boost_button[reblogged="true"], +.toot_entry .toot_entry_body .toot_content .toot_reaction .boost_button[reblogged="null"]:hover .reaction_count, +.toot_entry .toot_entry_body .toot_content .toot_reaction .boost_button[reblogged="true"] .reaction_count { +color: #17BF63; +} +.toot_entry .toot_entry_body .toot_content .toot_reaction .fav_button[favourited="null"]:hover, +.toot_entry .toot_entry_body .toot_content .toot_reaction .fav_button[favourited="true"], +.toot_entry .toot_entry_body .toot_content .toot_reaction .fav_button[favourited="null"]:hover .reaction_count, +.toot_entry .toot_entry_body .toot_content .toot_reaction .fav_button[favourited="true"] .reaction_count { +color: #FFAD1A; +} +.media_views { +margin: 8px 0; +height: 336px; +width: 100%; +border-radius: 5px; +overflow: hidden; +position: relative; +box-sizing: border-box; +border: 1px solid #DCDFE1; +} +.media_views .media_attachment { +overflow: hidden; +width: 100%; +height: 100%; +} +.media_views .media_attachment > * { +width: 100%; +height: 100%; +object-fit: cover; +} +.media_views .media_attachment > iframe { +object-fit: fill; +} +.media_views.sensitive .sensitive_alart { +display: flex; +z-index: 1; +flex-direction: column; +justify-content: center; +align-items: center; +position: absolute; +width: 100%; +height: 100%; +background-color: #000; +} +.media_views.sensitive .sensitive_alart .text1 { +font-size: 26px; +font-weight: 200; +padding: 8px 16px; +color: #fff; +} +.media_views.sensitive .sensitive_alart .text2 { +font-weight: 200; +padding: 2px 4px; +margin-top: 3px; +color: #fff; +} +.media_views[media_length="2"] { +display: flex; +} +.media_views[media_length="2"] .media_attachment { +flex-grow: 1; +overflow: hidden; +width: 50%; +height: 100%; +} +.media_views[media_length="2"] .media_attachment[mediacount="0"] { +padding-right: 5px; +box-sizing: border-box; +} +.media_views[media_length="3"], +.media_views[media_length="4"] { +display: flex; +} +.media_views[media_length="3"] .media_attachment[mediacount="0"], +.media_views[media_length="4"] .media_attachment[mediacount="0"] { +flex-grow: 2; +padding-right: 5px; +box-sizing: border-box; +} +.media_views[media_length="3"] .media_attachments_right, +.media_views[media_length="4"] .media_attachments_right { +flex-grow: 1; +flex-shrink: 2; +display: flex; +flex-direction: column; +height: 100%; +} +.media_views[media_length="3"] .media_attachments_right .media_attachment { +padding-bottom: 5px; +box-sizing: border-box; +height: 50%; +} +.media_views[media_length="3"] .media_attachments_right .media_attachment[mediacount="2"] { +padding-bottom: 0; +} +.media_views[media_length="4"] .media_attachments_right .media_attachment { +padding-bottom: 5px; +box-sizing: border-box; +height: calc( 100% / 3 ); +} +.media_views[media_length="4"] .media_attachments_right .media_attachment[mediacount="3"] { +padding-bottom: 0; +} +.timeline .notice_entry { +padding: 10px 12px 10px 70px; +font-size: 14px; +line-height: 18px; +border-bottom: 1px solid #E6ECF0; +} +.timeline .notice_entry .notice_entry_body { +width: 480px; +border: 1px solid #E6ECF0; +border-radius: 5px; +padding: 8px 12px; +} +.timeline .notice_entry .notice_entry_body .toot_header { +height: 17px; +} +.timeline .notice_entry .notice_entry_body .toot_article p { +white-space: nowrap; +overflow: hidden; +text-overflow: ellipsis; +} +.timeline .notice_entry .icon_box { +width: 24px; +height: 24px; +border-radius: 3px; +overflow: hidden; +} +.timeline .notice_entry .icon_box img { +width: 24px; +} +.timeline .notice_entry .font-icon { +position: relative; +padding: 3px; +left: -23px; +top: -26px; +width: 10px; +font-size: 10px; +border-radius: 3px; +color: #fff; +} +.timeline .notice_entry .font-icon.follow { +background: #1DA1F2;; +} +.timeline .notice_entry .font-icon.boost { +background: #17BF63; +} +.timeline .notice_entry .font-icon.favourite { +background: #FFAD1A; +} +.timeline .notice_entry .notice_author_box { +padding: 3px 0; +} +.timeline .notice_entry .notice_author_box > a.notice_author { +margin-left: -18px; +} +.timeline .notice_entry .notice_author_box > a.notice_author span { +font-weight: 600; +} +.timeline .notice_entry .toot_content .toot_header a .displayname { +font-weight: 600; +} +.timeline .notice_entry .toot_content .toot_header a .username { +color: #66757F; +} +.timeline_footer { +padding: 24px; +background-color: #fff; +box-sizing: border-box; +border: 1px solid #ECF1F4; +border-top: none; +border-bottom-right-radius: 5px; +border-bottom-left-radius: 5px; +color: #AAB8C2; +font-size: 36px; +text-align: center; +} +#js-follows_profile{ +display: flex; +width: 900px; +box-sizing: border-box; +height: auto; +flex-wrap: wrap; +} +#js-follows_profile .follows_profile_box { +width: 290px; +margin: 0 5px; +margin-bottom: 10px; +box-sizing: border-box; +border-radius: 5px; +background-color: #fff; +overflow: hidden; +border: 1px solid #E6ECF0; +} +#js-follows_profile .follows_profile_box .follows_profile_header { +height: 96px; +overflow: hidden; +background-color: #189EFC; +} +#js-follows_profile .follows_profile_box .follows_profile_header img { +width: 100%; +height: 100%; +object-fit: cover; +} +#js-follows_profile .follows_profile_box .follows_profile { +position: relative; +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_icon { +position: absolute; +width: 74px; +height: 74px; +padding: 3px; +margin-left: 16px; +border-radius: 8px; +top: -76px; +background-color: #fff; +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_icon img { +border-radius: 5px; +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_name_box { +width: auto; +/*! margin-left: 15px; */ +padding-bottom: 2px; +padding-top: 4px; +margin: 0 16px; +margin-top: 36px; +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_name_box h2 { +font-weight: 700; +font-size: 18px; +line-height: 25px; +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_name_box span { +display: block; +width: 180px; +color: #657786; +font-size: 14px; +/*! overflow: hidden; */ +white-space: nowrap; +text-overflow: ellipsis; +margin: 4px 0; +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_name_box span::before { +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_bio { +height: 58px; +font-size: 14px; +font-weight: 400; +color: #66757f; +margin: 0 16px; +margin-bottom: 0px; +margin-bottom: 16px; +line-height: 1.3; +overflow: hidden; +/*! width: 100%; */ +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_bio p { +/*! white-space: nowrap; */ +overflow: hidden; +word-break: break-all; +height: auto; +/*! max-width: 100%; */ +} +#js-follows_profile .follows_profile_box .follows_profile .follows_profile_bio p a { +color: #189EFC +} +#js-follows_profile .follow_button { +display: flex; +flex-wrap: nowrap; +align-items: center; +font-size: 13px; +padding: 6px 18px; +margin-top: 4px; +border-radius: 4px; +border: 1px solid #189EFC; +position: absolute; +right: 16px; +top: -32px; +} +#js-follows_profile .follow_button i { +color: #189EFC; +margin-right: 4px; +} +#js-follows_profile .follow_button span { +font-weight: 600; +} +#js-follows_profile .follow_button:hover, +#js-follows_profile .follow_button:hover i { +background-color: #189EFC; +color: #fff!important; +} +#js-follows_profile .following_button { +display: flex; +flex-wrap: nowrap; +align-items: center; +font-size: 13px; +padding: 6px 18px; +margin-top: 4px; +border-radius: 4px; +border: 1px solid #2B94DA; +background-color: #189EFC; +position: absolute; +right: 16px; +top: -32px; +} +#js-follows_profile .following_button i { +color: #fff; +margin-right: 4px; +} +#js-follows_profile .following_button span { +font-weight: 600; +color: #fff; +} +#js-follows_profile .following_button:hover, +#js-follows_profile .following_button:hover i { +background-color: #E20055; +color: #fff!important; +} +#js-follows_footer { +color: #66757F; +font-size: 36px; +text-align: center; +padding: 16px; +} +#js-stream_update { +height: 0; +padding: 0px; +box-sizing: border-box; +text-align: center; +font-size: 13px; +background-color: #F5F8FA; +overflow: hidden; +transition: 0.3s; +cursor: pointer; +} +#js-stream_update:hover { +background-color: #E6ECF0; +} +#js-stream_update button { +color: #189EFC; +} +.current_profile_box { +margin-bottom: 10px; +border-radius: 5px; +background-color: #fff; +overflow: hidden; +border: 1px solid #E6ECF0; +} +.current_profile_box .current_profile_header { +height: 96px; +overflow: hidden; +background-color: #189EFC; +} +.current_profile_box .current_profile_header img { +width: 100%; +height: 100%; +object-fit: cover; +} +.current_profile_box .current_profile { +position: relative; +} +.current_profile_box .current_profile .current_profile_icon { +position: absolute; +width: 70px; +height: 70px; +padding: 3px; +margin-left: 8px; +border-radius: 8px; +top: -30px; +background-color: #fff; +} +.current_profile_box .current_profile .current_profile_icon img { +border-radius: 5px; +} +.current_profile_box .current_profile .current_profile_name_box { +width: 180px; +margin-left: 90px; +padding-bottom: 10px; +padding-top: 8px; +} +.current_profile_box .current_profile .current_profile_name_box h2 { +font-weight: 700; +font-size: 18px; +line-height: 25px; +} +.current_profile_box .current_profile .current_profile_name_box span { +display: block; +width: 180px; +color: #657786; +font-size: 14px; +overflow: hidden; +white-space: nowrap; +text-overflow: ellipsis; +} +.current_profile_box .current_profile .current_profile_name_box span::before { +content: "@"; +} +.current_profile_box .current_profile .current_profile_counts { +display: flex; +} +.current_profile_box .current_profile .current_profile_counts .current_profile_count { +flex-grow: 1; +padding-left: 16px; +padding-bottom: 8px; +} +.current_profile_box .current_profile .current_profile_counts .current_profile_count a { +display: flex; +flex-direction: column; +justify-content: space-around; +text-decoration: none; +} +.current_profile_box .current_profile .current_profile_counts .current_profile_count a .title { +color: #657786; +font-size: 10px; +} +.current_profile_box .current_profile .current_profile_counts .current_profile_count a:hover .title { +color: #189EFC; +} +.current_profile_box .current_profile .current_profile_counts .current_profile_count a .count { +font-size: 18px; +font-weight: 400; +padding-top: 3px; +color: #189EFC; +} +.side_widget { +padding: 15px; +margin-bottom: 8px; +border-radius: 5px; +background-color: #fff; +border: 1px solid #E6ECF0; +} +.side_widgets_footer { +color: rgb(101, 119, 134); +font-size: 12px; +padding: 16px 8px; +} +.side_widgets_footer ul li { +display: inline-block; +margin: 0 12px 8px 0; +} +.side_widget h2 { +color: #66757F; +font-size: 18px; +font-weight: 300; +margin-bottom: 15px; +} +.side_widget h3 { +color: #66757F; +font-size: 16px; +font-weight: 300; +} +.side_widget.stream_options .form_title{ +display: flex; +align-items: baseline; +} +.side_widget.stream_options .form_title h2 { +margin-bottom: 0; +flex-grow: 1; +} +.side_widget.stream_options .form_title button { +cursor: pointer; +flex-grow: 1; +font-size: 12px; +color: #189EFC; +text-align: right; +} +.side_widget form.pulldown_form { +overflow: hidden; +height: 0; +opacity: 0; +margin-top: 0px; +transition: 0.13s ease-out; +} +.side_widget form.pulldown_form.view { +height: 240px; +opacity: 1; +margin-top: 16px; +transition: 0.13s ease-out; +} +.side_widget select, .side_widget input { +margin: 8px 0 16px; +width: 100%; +font-size: 14px; +color: #66757F; +box-sizing: border-box; +} +.side_widget .account_box { +display: flex; +flex-wrap: nowrap; +align-items: center; +height: 100%; +margin-bottom: 12px; +} +.side_widget .account_box .icon_box { +width: 48px; +height: 48px; +overflow: hidden; +margin-right: 8px; +border-radius: 5px; +} +.side_widget .account_box .label_box { +width: 200px; +} +.side_widget .account_box .label_box h3 { +overflow: hidden; +white-space: nowrap; +text-overflow: ellipsis; +color: #333; +} +.side_widget .account_box .label_box h3 .dn { +font-size: 14px; +font-weight: 700; +} +.side_widget .account_box .label_box h3 .un { +font-size: 14px; +color: #66757F; +} +.side_widget .account_box .label_box .follow_button { +display: flex; +flex-wrap: nowrap; +align-items: center; +font-size: 12px; +padding: 5px 16px; +margin-top: 4px; +border-radius: 4px; +} +.side_widget .account_box .label_box .follow_button i { +color: #189EFC; +margin-right: 4px; +} +.side_widget .account_box .label_box .follow_button span { +font-weight: 600; +} +.side_widget .account_box .label_box .follow_button:hover, +.side_widget .account_box .label_box .follow_button:hover i { +background-color: #189EFC; +color: #fff!important; +} +.side_widget .account_box .label_box .following_button { +display: flex; +color: #fff; +flex-wrap: nowrap; +align-items: center; +font-size: 12px; +padding: 5px 18px; +margin-top: 4px; +border-radius: 4px; +background-color: #189EFC; +border: 1px solid #189EFC; +} +.side_widget .account_box .label_box .following_button:hover { +background-color: #E20055; +} +.side_widget .account_box .label_box .following_button i { +color: #FFF; +margin-right: 4px; +} +.side_widget .account_box .label_box .following_button span { +font-weight: 600; +} +#header { +display: flex; +position: fixed; +z-index: 999; +width: 100%; +height: 47px; +color: #66757F; +background-color: #fff; +box-shadow: 0 1px 1px rgba(0,0,0,0.26); +} +#header .header_nav_wrap { +box-sizing: border-box; +display: flex; +width: 1190px; +height: 100%; +margin: auto; +padding: 0 5px; +} +#header .header_nav_wrap .header_left_box { +display: flex; +justify-content: flex-start; +flex: 2; +height: 100%; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list { +display: flex; +width: 100%; +height: 100%; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item { +display: flex; +align-items: center; +height: 100%; +position: relative; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item .nav_badge { +width: 6px; +height: 6px; +background-color: #1B95E0; +border-radius: 50%; +position: absolute; +left: 6px; +top: 8px; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item .nav_badge.notification_badge { +position: absolute; +background-color: #189EFC; +border-radius: 40%; +font-size: 10px; +top: 8px; +left: 20px; +border: 2px solid #fff; +color: #fff; +padding: 2px; +box-sizing: border-box; +height: 20px; +width: 20px; +display: flex; +align-items: center; +justify-content: center; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a { +display: flex; +justify-content: center; +align-items: center; +width: 100%; +height: 100%; +color: #66757F; +box-sizing: border-box; +padding-right: 18px; +padding-left: 9px; +border-top: 0px solid transparent; +border-bottom: 0px solid #189EFC; +transition: 0.15s ease-out; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a:hover { +color: #189EFC; +text-decoration: none; +border-top: 5px solid transparent; +border-bottom: 5px solid #189EFC; +transition: 0.15s ease-out; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a.view { +text-decoration: none; +border-top: 5px solid transparent; +border-bottom: 5px solid #189EFC; +transition: 0.15s ease-out; +position: relative; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a > i, +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a > span { +display: inline-block; +text-align: center; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a > i { +margin-right: 4px; +font-size: 21px; +} +#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a > span { +font-size: 13px; +font-weight: 400; +} +#header .header_nav_wrap .header_center_box { +display: flex; +flex: 1.2; +height: 100%; +box-sizing: border-box; +padding: 8px 0; +align-items: center; +justify-content: center; +} +#header .logo_box { +height: 96%; +padding: 4px; +box-sizing: border-box; +} +#header .logo_box img { +width: auto; +display: block; +} +#header .header_nav_wrap .header_right_box { +flex: 2; +box-sizing: border-box; +padding: 8px 0; +height: 100%; +} +#header .header_nav_wrap .header_right_box ul.header_nav_list { +display: flex; +justify-content: flex-end; +align-items: center; +width: 100%; +height: 100%; +} +#header .header_nav_wrap .header_right_box ul.header_nav_list li.header_nav_item { +display: flex; +height: 100%; +justify-content: center; +align-items: center; +padding-right: 16px; +} +#header .header_nav_wrap .header_right_box .search_form { +width: 221px; +height: 95%; +outline: 0; +position: relative; +} +#header .header_nav_wrap .header_right_box .search_form .search_form_input { +box-sizing: border-box; +padding: 5px 12px; +font-size: 12px; +width: 100%; +border-radius: 16px; +border: 1px solid #E8EEF1; +background-color: #F5F8FA; +height: 100%; +transition: 0.15s ease-out;; +} +#header .header_nav_wrap .header_right_box .search_form .search_form_input:focus { +background-color: transparent; +transition: 0.15s ease-out;; +} +#header .header_nav_wrap .header_right_box .search_form .search_form_submit { +display: block; +position: absolute; +height: 14px; +font-size: 14px; +top: 5px; +right: 12px; +margin: 2px -4px; +} +#header .header_nav_wrap .header_right_box .search_form .search_form_submit button, +#header .header_nav_wrap .header_right_box .search_form .search_form_submit i { +display: block; +color: #66757F; +} +#header .header_nav_wrap .header_right_box .my_account_wrap { +position: relative; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .my_account { +height: 35px; +width: 35px; +margin: auto; +display: flex; +justify-content: center; +align-items: center; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .my_account img { +width: 32px; +height: 32px; +overflow: hidden; +border-radius: 50%; +transition: 0.15s ease-out; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav { +display: block; +position: absolute; +cursor: pointer; +top: 42px; +right: 14px; +width: 180px; +padding: 8px 21px; +font-size: 12px; +border-radius: 3px; +box-sizing: border-box; +background-color: #fff; +box-shadow: 0.5px 0.5px 3px rgba(0,0,0,0.26); +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav::before { +display: block; +content: ""; +z-index: -1; +width: 20px; +height: 20px; +position: absolute; +transform: rotate(45deg); +top: -5px; +right: 8px; +background-color: #fff; +border: 0.5px solid rgba(0,0,0,.26); +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul { +margin: 0 -21px; +margin-bottom: 8px; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul::after { +content: ""; +display: block; +margin-top: 8px; +border-bottom: 1px solid #E6ECF0; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul:last-child::after { +border-bottom: 0px solid #E6ECF0; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul li { +box-sizing: border-box; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul li a .display_name { +display: block; +color: #000; +font-size: 14px; +font-weight: 600; +margin-bottom: 4px; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav a { +display: block; +padding: 8px 21px; +} +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav a:hover, +#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul li a:hover .display_name { +background-color: #189EFC; +text-decoration: none; +color: #fff; +} +#header .header_nav_wrap .header_right_box .toot_button { +width: 90px; +height: 100%; +border-radius: 4px; +color: #fff; +background-color: #2588D0; +transition: 0.15s ease-out;; +} +#header .header_nav_wrap .header_right_box .toot_button:hover { +background-color: #2571D0; +transition: 0.15s ease-out;; +} +#header .header_nav_wrap .header_right_box .toot_button:active { +background-color: #255ED0; +transition: 0.15s ease-out;; +} +#header .header_nav_wrap .header_right_box .toot_button .toot_button_label { +display: flex; +justify-content: center; +align-items: center; +} +#header .header_nav_wrap .header_right_box .toot_button i { +display: inline-block; +font-size: 21px; +margin-right: 2px; +} +#header .header_nav_wrap .header_right_box .toot_button span { +font-size: 13px; +font-weight: 500; +} +#main { +padding-top: 47px; +} +#main > .header_image_box { +width: 100%; +height: 460px; +overflow: hidden; +} +#main > .header_image_box img { +min-width: 100%; +object-fit: cover; +} +#main .profile_nav_wrap { +height: 60px; +width: 100%; +background-color: #fff; +box-shadow: 0 1px 3px 0 rgba(0,0,0,0.25); +} +#main .profile_nav_wrap .profile_nav { +display: flex; +flex-wrap: nowrap; +width: 1200px; +height: 100%; +margin: auto; +padding: 0 5px; +box-sizing: border-box; +} +#main .profile_nav_wrap .profile_nav .profile_nav_left { +width: 300px; +height: 100%; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right { +width: 900px; +height: 100%; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list { +display: flex; +flex-wrap: nowrap; +align-items: center; +height: 100%; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item { +height: 100%; +color: #66757F; +border-color: transparent; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item a { +display: flex; +flex-direction: column; +flex-wrap: nowrap; +align-items: center; +justify-content: center; +height: 100%; +padding: 0 15px; +box-sizing: border-box; +border-top: 0px solid transparent; +border-bottom: 0px solid #189EFC; +transition: 0.15s; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item:hover { +color: #189EFC; +box-sizing: border-box; +text-decoration: none; +border-top: 4px solid transparent; +border-bottom: 4px solid #189EFC; +transition: 0.15s; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item.view { +color: #189EFC; +box-sizing: border-box; +border-top: 4px solid transparent; +border-bottom: 4px solid #189EFC; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item a:hover { +text-decoration: none; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item a h2 { +display: inline-block; +font-size: 11px; +font-weight: normal; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item a span { +display: inline-block; +font-size: 18px; +font-weight: 600; +margin-top: 3px; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_button_box { +display: flex; +align-items: center; +justify-content: flex-end; +flex: 1; +height: 100%; +} +#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_button_box button { +float: right; +padding: 9px 16px; +border-radius: 4px; +font-size: 14px; +font-weight: 700; +} +#js-search_title_box { +width: 100%; +height: 64px; +padding: 16px 0; + overflow: hidden; +box-sizing: border-box; +background-color: #189EFC; +} +#js-search_title_box h1 { +display: block; +width: 1200px; +margin: 0 auto; +padding: 0 16px; +font-size: 27px; +font-weight: 400; +line-height: 32px; +color: #fff; +box-sizing: border-box; +} +#main .search_nav_wrap { +height: 50px; +width: 100%; +background-color: #fff; +box-shadow: 0 1px 3px 0 rgba(0,0,0,0.25); +margin-bottom: 4px; +} +#main .search_nav_wrap .search_nav { +display: flex; +flex-wrap: nowrap; +width: 1200px; +height: 100%; +margin: auto; +padding: 0 5px; +box-sizing: border-box; +} +#main .search_nav_wrap .search_nav .search_nav_left { +width: 900px; +height: 100%; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list { +display: flex; +flex-wrap: nowrap; +align-items: center; +height: 100%; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item { +height: 100%; +color: #66757F; +/*! font-size: 13px; */ +} +#main .search_nav_wrap #js-search_nav_peoples.view a , +#main .search_nav_wrap #js-search_nav_toots.view a { +border-top: 4px solid transparent; +border-bottom: 4px solid #189EFC; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a { +display: flex; +flex-direction: column; +flex-wrap: nowrap; +align-items: center; +justify-content: center; +height: 100%; +padding: 0 15px; +box-sizing: border-box; +border-top: 0px solid transparent; +border-bottom: 0px solid #189EFC; +transition: 0.15s; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a:hover { +color: #189EFC; +text-decoration: none; +border-top: 4px solid transparent; +border-bottom: 4px solid #189EFC; +transition: 0.15s; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a.view { +color: #189EFC; +border-top: 4px solid transparent; +border-bottom: 4px solid #189EFC; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a h2 { +display: inline-block; +font-size: 14px; +font-weight: normal; +color: #189EFC; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a span { +display: inline-block; +font-size: 18px; +font-weight: 600; +margin-top: 3px; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_button_box { +display: flex; +align-items: center; +justify-content: flex-end; +flex: 1; +height: 100%; +} +#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_button_box button { +float: right; +padding: 9px 16px; +border-radius: 4px; +font-size: 14px; +font-weight: 700; +} +#main .article_wrap { +display: flex; +flex-wrap: nowrap; +width: 1200px; +margin: auto; +} +#main .article_wrap .left_column { +position: relative; +width: 300px; +padding: 10px 5px; +box-sizing: border-box; +} +#main .article_wrap .left_column > .profile_icon_box { +position: absolute; +top: -185px; +width: 200px; +height: 200px; +margin-left: 10px; +padding: 5px; +background-color: #fff; +border-radius: 14px; +border: 1px solid #FBFBFC; +box-shadow: 0 0.1px 0.3px rgba(0,0,0,0.26); +cursor: pointer; +} +#main .article_wrap .left_column .profile_icon_box img { +width: 100%; +height: 100%; +border-radius: 8px; +} +#main .article_wrap .left_column .profile_section_wrap { +padding: 36px 16px 0 15px; +word-break: break-all; +} +#main .article_wrap .left_column .profile_section_wrap > .profile_displayname { +font-size: 22px; +font-weight: 700; +line-height: 1; +color: rgb(20, 23, 26); +margin-bottom: 8px; +} +#main .article_wrap .left_column .profile_section_wrap > .profile_username { +color: rgb(101, 119, 134); +font-size: 14px; +font-weight: 300; +margin-bottom: 8px; +} +#main .article_wrap .left_column .profile_section_wrap > .profile_username .profile_followed_by { +font-size: 10px; +display: inline-block; +margin-left: 8px; +} +#main .article_wrap .left_column .profile_section_wrap > .profile_bio { +font-size: 14px; +font-weight: 400; +line-height: 20px; +margin-bottom: 10px; +word-wrap: break-word; +} +#main .article_wrap .left_column .profile_section_wrap > .profile_bio a { +color: #2588D0; +} +#js_profile_recent_images a { +color: #2588D0; +font-size: 13px; +font-weight: 300; +} +#js_profile_recent_images a i { +color: #657786; +margin-right: 8px; +font-size: 16px; +} +#js_profile_recent_images_box { +width: 100%; +font-size: 14px; +display: flex; +margin-top: 8px; +flex-wrap: wrap; +} +#js_profile_recent_images_box .profile_recent_images_item { +width: 80px; +height: 80px; +margin: 0 5px 5px 0; +border-radius: 5px; +overflow: hidden; +flex-shrink: 0; +cursor: pointer; +} +#js_profile_recent_images_box .profile_recent_images_item img { +width: 100%; +height: 100%; +max-width: none; +max-height: none; +object-fit: cover; +} +#main .article_wrap .center_column { +width: auto; +flex: 1; +padding: 10px 5px; +box-sizing: border-box; +} +#main .article_wrap .right_column { +width: 300px; +padding: 10px 5px; +box-sizing: border-box; +} +#js-overlay_content_wrap { +display: none; +position: fixed; +z-index: 1000; +top: 0; +left: 0; +width: 100%; +height: 100%; +overflow: scroll; +} +#js-overlay_content_wrap.view { +display: block; +background-color: rgba(0, 0, 0, 0); +transition: 0.5s; +} +@keyframes fadein_05 { +0% { background-color: rgba(0, 0, 0, 0); } +100% {background-color: rgba(0, 0, 0, 0.5);} +} +@keyframes fadein_08 { +0% { background-color: rgba(0, 0, 0, 0); } +100% {background-color: rgba(0, 0, 0, 0.8);} +} +#js-overlay_content_wrap.view.black_05 { +animation-name: fadein_05; +animation-duration: 0.35s; +animation-fill-mode: forwards; +} +#js-overlay_content_wrap.view.black_08 { +background-color: rgba(0, 0, 0, 0.8); +} +#js-overlay_content_wrap #js-overlay_content { +width: 628px; +height: auto; +margin: 56px auto; +position: relative; +} +#js-overlay_content_wrap #js-overlay_content .close_button { +color: #fff; +position: absolute; +right: -32px; +top: 0; +font-size: 28px; +} +#js-overlay_content_wrap .temporary_object .thumb_box { +display: flex; +align-items: center; +justify-content: center; +width: 100%; +height: 100%; +} +#overlay_message { +position: fixed; +top: -47px; +left: 0; +right: 0; +bottom: 0; +margin: 0 auto; +width: 658px; +height: 58px; +border-bottom-left-radius: 8px; +border-bottom-right-radius: 8px; +background-color: #fff; +box-shadow: 1px 1px 3px rgba(0,0,0,0.35); +z-index: 998; +} +@keyframes overlay_message_active { +0% { top: -47px } +10% { top: 47px; } +85% { top: 47px; } +100% { top: -47px } +} +#overlay_message.view { +animation-name: overlay_message_active; +animation-duration: 3s; +} +#overlay_message section { +color: #999; +font-size: 14px; +padding: 16px; +margin: auto; +display: block; +box-sizing: border-box; +height: 100%; +width: 100%; +display: flex; +justify-content: center; +align-items: center; +} +.toot_detail_wrap { +border-radius: 5px; +} +.toot_detail_wrap .toot_detail:first-child, +.toot_detail_wrap .toot_entry:first-child { +border-top-left-radius: 5px; +border-top-right-radius: 5px; +} +.toot_detail_wrap .toot_detail:last-child, +.toot_detail_wrap .toot_entry:last-child { +border-bottom-left-radius: 5px; +border-bottom-right-radius: 5px; +} +.toot_detail { +width: 628px; +box-sizing: border-box; +background-color: #fff; +} +.toot_entry.ancestors_status .toot_entry_body, +.toot_entry.descendants_status .toot_entry_body { +padding: 18px 40px; +border-bottom: none; +position: relative; +/*! padding-bottom: 8px; */ +} +.toot_entry.ancestors_status.default_padding .toot_entry_body, +.toot_entry.descendants_status.default_padding .toot_entry_body { +padding: 12px; +} +.toot_entry.ancestors_status .toot_entry_body::after, +.toot_entry.descendants_status .toot_entry_body::after { +content: ""; +display: block; +border: 2px solid #76BFEC; +position: absolute; +border-radius: 2px; +position: absolute; +left: 62px; +height: calc(100% - 57px); +top: 68px; +} +.toot_entry.ancestors_status.default_padding .toot_entry_body::after, +.toot_entry.descendants_status.default_padding .toot_entry_body::after { +left: 35px; +height: calc(100% - 60px); +top: 64px; +} +.toot_entry.descendants_status:last-child .toot_entry_body::after { +border: 0px solid #76BFEC; +} +.toot_detail .toot_header { +display: flex; +} +.toot_detail .toot_header .icon_box { +flex-shrink: 0; +width: 48px; +height: 48px; +border-radius: 3px; +overflow: hidden; +margin-right: 8px; +} +.toot_detail .toot_header a { +flex-grow: 1; +display: flex; +flex-direction: column; +justify-content: center; +} +.toot_detail .toot_header a .displayname { +color: #000; +font-size: 17px; +font-weight: 600; +line-height: 1.35; +} +.toot_detail .toot_header a .username { +color: #66757F; +font-size: 14px; +} +.toot_detail .toot_header a:hover { +text-decoration: none; +} +.toot_detail .toot_header a:hover .displayname { +color: #189EFC; +} +.toot_detail .toot_header .expand_button_wrap { +float: right; +position: relative; +width: 48px; +height: 48px; +} +.toot_detail .toot_header .expand_button_wrap .expand_button { +position: absolute; +right: 0; +top: 0; +color: #AAB8C2; +} +.toot_detail .toot_header .expand_button_wrap .expand_button:hover { +color: #189EFC; +} +.toot_detail .toot_header .expand_button_wrap .expand_menu { +display: block; +position: absolute; +cursor: pointer; +top: 36px; +right: -152px; +width: 180px; +padding: 8px 21px; +font-size: 12px; +border-radius: 3px; +box-sizing: border-box; +background-color: #fff; +box-shadow: 0.5px 0.5px 3px rgba(0,0,0,0.26); +z-index: 1; +} +.toot_detail .toot_header .expand_button_wrap .expand_menu::before { +display: block; +content: ""; +z-index: -1; +width: 20px; +height: 20px; +position: absolute; +transform: rotate(45deg); +top: -5px; +left: 8px; +background-color: #fff; +} +.toot_detail .toot_header .expand_button_wrap .expand_menu ul { +margin: 0 -21px; +margin-bottom: 8px; +} +.toot_detail .toot_header .expand_button_wrap .expand_menu ul::after { +content: ""; +display: block; +margin-top: 8px; +border-bottom: 1px solid #E6ECF0; +} +.toot_detail .toot_header .expand_button_wrap .expand_menu ul:last-child::after { +border-bottom: 0px solid #E6ECF0; +} +.toot_detail .toot_header .expand_button_wrap .expand_menu ul li { +box-sizing: border-box; +} +.toot_detail .toot_header .expand_button_wrap .expand_menu a { +display: block; +padding: 8px 21px; +} +.toot_detail .toot_header .expand_button_wrap .expand_menu a:hover { +background-color: #189EFC; +text-decoration: none; +color: #fff; +} +.toot_detail .toot_detail_body { +padding: 30px 40px; +/*! border-radius: 4px; */ +} +.toot_detail .toot_content .toot_article { +font-size: 14px; +line-height: 20px; +margin: 16px auto; +} +.toot_detail.main_status .toot_content .toot_article { +font-size: 24px; +line-height: 1.35; +} +.toot_detail.main_status .toot_content .toot_article .cw_button { +background-color: #6D768C; +border-radius: 3px; +padding: 4px; +margin: auto 4px; +font-size: 12px; +box-sizing: border-box; +color: #fff; +} +.toot_detail.main_status .toot_content .toot_article.content_warning .status_content { +display: none; +} +.toot_detail.main_status .toot_content a { +color: #189EFC; +} +.toot_detail.main_status .toot_content time { +color: #66757F; +font-size: 13px; +font-weight: 300; +} +.toot_detail .toot_footer { +display: flex; +flex-wrap: nowrap; +align-items: center; +width: 230px; +height: 21px; +margin-top: 12px; +} +.toot_detail .toot_footer .toot_reaction { +height: 21px; +flex-grow: 1; +} +.toot_detail .toot_footer .toot_reaction button { +margin: auto; +color: #AAB8C2; +font-size: 18px; +height: 21px; +} +.toot_detail .toot_footer .toot_reaction button.active { +animation-name: status_action_active; +animation-duration: 0.5s; +} +.toot_detail .toot_footer .toot_reaction button .reaction_count { +color: #AAB8C2; +font-size: 12px; +font-weight: 600; +} +@keyframes status_action_active { +0% { transform: scale(1); } +50% { transform: scale(2); } +100% { transform: scale(1); } +} +.toot_detail .toot_footer .toot_reaction .reply_button:hover { +color: #1DA1F2; +} +.toot_detail .toot_footer .toot_reaction .boost_button[reblogged="false"]:hover, +.toot_detail .toot_footer .toot_reaction .boost_button[reblogged="true"], +.toot_detail .toot_footer .toot_reaction .boost_button[reblogged="false"]:hover .reaction_count, +.toot_detail .toot_footer .toot_reaction .boost_button[reblogged="true"] .reaction_count { +color: #17BF63; +} +.toot_detail .toot_footer .toot_reaction .fav_button[favourited="false"]:hover, +.toot_detail .toot_footer .toot_reaction .fav_button[favourited="true"], +.toot_detail .toot_footer .toot_reaction .fav_button[favourited="false"]:hover .reaction_count, +.toot_detail .toot_footer .toot_reaction .fav_button[favourited="true"] .reaction_count { +color: #FFAD1A; +} +.toot_detail .status_form { +border-top: 1px solid #E6ECF0; +border-bottom: 1px solid #E6ECF0; +} +.media_detail { +max-height: 100%; +} +.media_detail .media_box { +background-color: #000; +border-top-right-radius: 5px; +border-top-left-radius: 5px; +overflow: hidden; +text-align: center; +} +.media_detail .toot_entry { +border-bottom-right-radius: 5px; +border-bottom-left-radius: 5px; +} +.media_detail .toot_entry .toot_entry_body { +border-bottom: none; +} +.media_detail .toot_entry .media_views { +display: none; +} diff --git a/public_html/assets/images/favicon.ico b/assets/images/favicon.ico similarity index 100% rename from public_html/assets/images/favicon.ico rename to assets/images/favicon.ico diff --git a/public_html/assets/images/halcyon.png b/assets/images/halcyon.png similarity index 100% rename from public_html/assets/images/halcyon.png rename to assets/images/halcyon.png diff --git a/public_html/assets/images/halcyon_logo.png b/assets/images/halcyon_logo.png similarity index 100% rename from public_html/assets/images/halcyon_logo.png rename to assets/images/halcyon_logo.png diff --git a/public_html/assets/images/halcyon_w.png b/assets/images/halcyon_w.png similarity index 100% rename from public_html/assets/images/halcyon_w.png rename to assets/images/halcyon_w.png diff --git a/assets/images/mastodon.png b/assets/images/mastodon.png new file mode 100644 index 0000000000000000000000000000000000000000..26bde5289ffdd1237e079d67a2a619c90acf49db GIT binary patch literal 4875 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 diff --git a/public_html/assets/images/missing.png b/assets/images/missing.png similarity index 100% rename from public_html/assets/images/missing.png rename to assets/images/missing.png diff --git a/public_html/assets/images/missing_header.png b/assets/images/missing_header.png similarity index 100% rename from public_html/assets/images/missing_header.png rename to assets/images/missing_header.png diff --git a/public_html/assets/images/self_auth.png b/assets/images/self_auth.png similarity index 100% rename from public_html/assets/images/self_auth.png rename to assets/images/self_auth.png diff --git a/assets/images/self_auth_min.png b/assets/images/self_auth_min.png new file mode 100644 index 0000000000000000000000000000000000000000..6eeab1e8ca4b15b2c9b2de2dc063a19b392b9c77 GIT binary patch literal 2017 zcmZXVcUV*R8pluAGDJ2aXd2lz3&IEu!wgIq5{3)|#Xuqi$RLR%43$DbmRzljK*3rB zEMAHzhyw&{5d;%ZD?=(vLFBnAAeEt@_e6PY?{ok7{eI_t-|zYS-tnC0aPDFrJvyE# zghnxASR7Z_d}{{`%3`>}LL7WizB~dmmPJnCGXqoh2SumEM`IZ99Y0YuNumqE)F z7Aq9;T#!hSNQ4mCBe?t+BpQpwB2jioJ3Bb2fD4j2Lb@2v5$u*DJ~N0+K{TJm6SBA* zsGLcU;vNyY!eC$=x(OGu4*yN(2sX@tWj(>_7KnC=o`$`-rhhvL#+PdsR;cw`WJMdM#K7lZZB>Tdnj z@W7dCS*^uBX<@5DBj0%e61|erXZ=j? zzWJll(q^kAL6dIkos|2z+sxDRS(as;1JLtNH^kecJc2QIS2m^xsHeh7ZG9#td#Zb> zUAyBb7p*L6iGF?3D~FdqawFe9TA*G{Nd*%8vKNO`;WVnvj_%o?=|P2^@6?Re4j!8V zJjY4MVa$q~v*YB;E43C$lWBSt+Hv9eAIZUJZ(HR{R`+!>8{%Ul>X%=NetMRg({L{& z;`ZyEf89&&dFW(wI;PJN+i(l~{I>AOVFCa^?3OQxxW+vR02J3K#JxeGS%VVa*zg1T zJs)S=*ZO9OHTh}VeU)<)&tzx>Qf?0o1(Oo0p!z7cKKEL89` zGW;47!Js$C)*Qk}g48fKd2~y2_VZi)Ypuri$;e8lB|D1B26DavJ1ZLaX64D!*>g&- zR)xJp63s)?quH-3NFhCdt0q%Z%4C(_==ipN=;S-c8h}L7gGqEVOGD^DXHK28fo=;c zx4v^t$)SGNw|RTa_9T?~>pb2u?QY&vS+EnW+rR!evT{_P`a9LumM+XaeIBZvLyn+| zcU@P`3r~N8G4okp48WNg|FS5J(wt7-{pQ7C=z8_EMGg)dfA88TltnV%{(;?}O_tVBuMS1TOD8>E8-U!k|0OkQ9?rr)VTI9JpkusIW{005i{-P2WNtnb0CBV?NKHE8pf$@x~?lm&In-H;lzS}sgr#!YX|pe zq`nH^LFeAR{=5v2(jI3{g;r+K)GI0zIZglJXwi8QvWg8^cdL8tl#=Nm1>^(2Nc@k} zj9-ZkVy|oOEc}W9#kQ&pj+Gzv;Yc2Y?YMN@=xh6()-~hSjD^L4t?lo|AU9f)+U&Du zUuzHm+)#x~`mTKYYSJ^57lO8UVIo2QHX%zB**}5D!Cs794t|_!f{(4!(G+&!P+)rV z>!&=klT8iuX7pGlVQnEwf!6$oFvA7Uefk^P#Izo%z}|7Zy&}8P2BLDEQZ-i1dQL7d zXlk+VObvOs`m|h8*7RPU)&3GqMT_o-7{Lvh4-irKi|%fg>iW1LIt7>#bv_WbZ{ z`2ExOz;MKK#$RNr>LuTXL#w3;!@fR$Iw#!_O5R=;^o*086_w(R3l-)+7Ij}Gk@!Pf zp2VydovbXr;P#_uz;W)d&$QJK8X!kBJ&Ehc3%9n?1gMj_bC9Yx!sJANibLP>*lJnS z7KAXg=w=CiyR|%V%wH*eZG6-~If)%pTVy<-dd4W$AkT5D&E?43=Dk@m{Hbs%s;=vp zwf0OV; rel="(.+?)", <.+api\/v1\/(.+?)>; rel="(.+?)"/); +let di = new Object(); +if(re){ +di[re[2]] = re[1]; +di[re[4]] = re[3]; +} +return di; +} +function getRelativeURL(url, id, options) { +const array = url.split('/'); +if ( array.length >= 4 ) { +if ( !options ) { +var options = "" +}; +if (id) { +if (array[array.length-1].substr(0,1) === '@') { +const link= '/'+array[array.length-1]+'@'+array[2]+options+'?mid='+id+'&'; +return link; +} +else { +const link= '/@'+array[array.length-1]+'@'+array[2]+options+'?mid='+id+'&'; +return link; +} +} +else { +if (array[array.length-1].substr(0,1) === '@') { +const link= '/'+array[array.length-1]+'@'+array[2]+options; +return link; +} else { +const link= '/@'+array[array.length-1]+'@'+array[2]+options; +return link; +} +} +} +} +function replaceInternalLink(){ +$(".h-card > a").each(function(i) { +$(this).attr('href',getRelativeURL($(this).attr('href'))); +}); +$(".toot_article a").each(function(i) { +const tags = $(this).attr('href').match(/https:\/\/.+..+\/tags\/(.+)\/?/); +if (tags) { +$(this).attr('href','/search?q='+tags[1]); +} +}); +} +function getConversionedDate(key, value) { +if (value === null || +value.constructor !== String || +value.search(/^\d{4}-\d{2}-\d{2}/g) === -1) +return value; +return new Date(value); +} +function getRelativeDatetime(current_time, posted_time) { +const calendar = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; +var posted_time_original = posted_time, +posted_time = getConversionedDate(null, posted_time_original).getTime(), +elapsedTime = Math.ceil((current_time-posted_time)/1000); +if (elapsedTime < 60) { +const datetime ="・" + elapsedTime + "s"; +return datetime; +} +else if (elapsedTime < 120) { +const datetime ="・1m"; +return datetime; +} +else if (elapsedTime < (60*60)) { +const datetime ="・" + (Math.floor(elapsedTime / 60) < 10 ? " " : "") + Math.floor(elapsedTime / 60) + "m"; +return datetime; +} +else if (elapsedTime < (120*60)) { +const datetime ="・1h"; +return datetime; +} +else if (elapsedTime < (24*60*60)) { +const datetime ="・" + (Math.floor(elapsedTime / 3600) < 10 ? " " : "") + Math.floor(elapsedTime / 3600) + "h"; +return datetime; +} +else { +const datetime ="・" + calendar[posted_time_original.getMonth()] + " " + posted_time_original.getDate(); +return datetime; +} +} +function resetApp() { +current_id = Number(localStorage.getItem("current_id")); +current_instance = localStorage.getItem("current_instance"); +authtoken= localStorage.getItem("current_authtoken"); +api = new MastodonAPI({ +instance: 'https://'+current_instance, +api_user_token: authtoken +}); +api.get("accounts/verify_credentials", function(AccountObj) { +localStorage.setItem("current_display_name", AccountObj["display_name"]); +localStorage.setItem("current_acct", AccountObj["acct"]); +localStorage.setItem("current_url", getRelativeURL(AccountObj["url"],AccountObj["id"])); +localStorage.setItem("current_header", AccountObj["header"]); +localStorage.setItem("current_avatar", AccountObj["avatar"]); +localStorage.setItem("current_statuses_count", AccountObj["statuses_count"]); +localStorage.setItem("current_following_count", AccountObj["following_count"]); +localStorage.setItem("current_followers_count", AccountObj["followers_count"]); +localStorage.setItem("current_statuses_count_link", getRelativeURL(AccountObj["url"],AccountObj["id"])); +localStorage.setItem("current_following_count_link", getRelativeURL(AccountObj["url"],AccountObj["id"],'/following')); +localStorage.setItem("current_followers_count_link", getRelativeURL(AccountObj["url"],AccountObj["id"],'/followers')); +localStorage.setItem("current_favourites_link", getRelativeURL(AccountObj["url"],AccountObj["id"],'/favourites')); +current_display_name = localStorage.getItem("current_display_name"); +current_acct = localStorage.getItem("current_acct"); +current_url = localStorage.getItem("current_url"); +current_header = localStorage.getItem("current_header"); +current_avatar = localStorage.getItem("current_avatar"); +current_statuses_count = localStorage.getItem("current_statuses_count"); +current_following_count = localStorage.getItem("current_following_count"); +current_followers_count = localStorage.getItem("current_followers_count"); +current_statuses_count_link = localStorage.getItem("current_statuses_count_link"); +current_following_count_link = localStorage.getItem("current_following_count_link"); +current_followers_count_link = localStorage.getItem("current_followers_count_link"); +current_favourites_link = localStorage.getItem("current_favourites_link"); +$(".js_current_profile_displayname").text(current_display_name); +$(".js_current_profile_username").text(current_acct); +$(".js_current_profile_link").attr('href', current_url); +$(".js_current_header_image").attr('src', current_header); +$(".js_current_profile_image").attr('src', current_avatar); +$(".js_current_toots_count").text(current_statuses_count); +$(".js_current_following_count").text(current_following_count); +$(".js_current_followers_count").text(current_followers_count); +$(".current_toots_count_link").attr('href', current_statuses_count_link); +$(".current_following_count_link").attr('href', current_following_count_link); +$(".current_followers_count_link").attr('href', current_followers_count_link); +replace_emoji(); +}); +$.cookie("session", "true", { path: '/' }); +} +function refreshApp() { +current_id = Number(localStorage.getItem("current_id")); +current_instance = localStorage.getItem("current_instance"); +authtoken= localStorage.getItem("current_authtoken"); +api = new MastodonAPI({ +instance: "https://"+current_instance, +api_user_token: authtoken +}); +current_display_name = localStorage.getItem("current_display_name"); +current_acct = localStorage.getItem("current_acct"); +current_url= localStorage.getItem("current_url"); +current_header = localStorage.getItem("current_header"); +current_avatar = localStorage.getItem("current_avatar"); +current_statuses_count = localStorage.getItem("current_statuses_count"); +current_following_count= localStorage.getItem("current_following_count"); +current_followers_count= localStorage.getItem("current_followers_count"); +current_statuses_count_link= localStorage.getItem("current_statuses_count_link"); +current_following_count_link = localStorage.getItem("current_following_count_link"); +current_followers_count_link = localStorage.getItem("current_followers_count_link"); +current_favourites_link= localStorage.getItem("current_favourites_link"); +} +function setCurrentProfile() { +$(".js_current_profile_displayname").text(current_display_name); +$(".js_current_profile_username").text(current_acct); +$(".js_current_profile_link").attr("href", current_url); +$(".js_current_header_image").attr("src", current_header); +$(".js_current_profile_image").attr("src", current_avatar); +$(".js_current_toots_count").text(current_statuses_count); +$(".js_current_following_count").text(current_following_count); +$(".js_current_followers_count").text(current_followers_count); +$(".current_toots_count_link").attr("href", current_statuses_count_link); +$(".current_following_count_link").attr("href", current_following_count_link); +$(".current_followers_count_link").attr("href", current_followers_count_link); +replace_emoji(); +} +function putMessage(Message) { +$('#overlay_message').addClass('view'); +$('#overlay_message section span').text(Message); +setTimeout(function(){ +$("#overlay_message").removeClass("view"); +},3000); +}; \ No newline at end of file diff --git a/assets/js/halcyon/halcyonUI.js b/assets/js/halcyon/halcyonUI.js new file mode 100644 index 0000000..dc69247 --- /dev/null +++ b/assets/js/halcyon/halcyonUI.js @@ -0,0 +1,2340 @@ +$(function() { +$('input[type="file"]').val(''); +}); +$(function() { +$(document).on('click','a', function(e) { +e.stopPropagation(); +}); +$(document).on('keypress',"input.disallow_enter[type='text']", function(e) { +if((e.which == 13) || (e.keyCode == 13)){ return false; } +}); +$(document).on('click','.follow_button', function(e) { +e.stopPropagation(); +if ($(this).attr('mid') !== null) { +api.post('accounts/'+$(this).attr('mid')+'/follow', function (data) { +}); +} else if ($(this).attr('data')!== null) { +api.post("follows", {uri:$(this).attr('data')}, function (data) { +}); +} +$(this).toggleClass('follow_button'); +$(this).toggleClass('following_button'); +$(this).html('Following'); +return false; +}); +$(document).on('click','.following_button', function(e) { +e.stopPropagation(); +if ($(this).attr('mid') !== null) { +api.post('accounts/'+$(this).attr('mid')+'/unfollow', function (data) { +}); +} +$(this).toggleClass('following_button'); +$(this).toggleClass('follow_button'); +$(this).html('Follow'); +return false; +}); +$(document).on('click','.mute_button', function(e) { +if ($(this).attr('mid') !== null) { +api.post('accounts/'+$(this).attr('mid')+'/mute', function (data) { +}); +} +putMessage("You'll no longer receive notifications from this user"); +return false; +}); +$(document).on('click','.muting_button', function(e) { +if($(this).attr('mid')!=null) { +api.post('accounts/'+$(this).attr('mid')+'/unmute', function (data) { +}); +} +$(this).toggleClass('muting_button'); +$(this).toggleClass('follow_button'); +$(this).html('Follow'); +putMessage("Unmuted this user"); +return false; +}); +$(document).on('click','.block_button', function(e) { +if ($(this).attr('mid') !== null) { +api.post('accounts/'+$(this).attr('mid')+'/block', function (data) { +}); +} +putMessage("This user has been blocked"); +return false; +}); +$(document).on('click','.blocking_button', function(e) { +e.stopPropagation(); +if ($(this).attr('mid') !== null) { +api.post('accounts/'+$(this).attr('mid')+'/unblock', function (data) { +}); +} +$(this).toggleClass('blocking_button'); +$(this).toggleClass('follow_button'); +$(this).html('Follow'); +putMessage("Unblocked this user"); +return false; +}); +$(document).on('click','.boost_button', function(e) { +e.stopPropagation(); +if($(this).attr('reblogged') !== 'true'){ +api.post("statuses/"+$(this).attr('tid')+"/reblog", function (data) { +}); +$(this).attr('reblogged', "true"); +$(this).toggleClass('active'); +} else { +api.post("statuses/"+$(this).attr('tid')+"/unreblog", function (data) { +}); +$(this).attr('reblogged', "hold"); +$(this).toggleClass('active'); +$(this).mouseout(function(e) { +$(this).attr('reblogged', "null"); +}); +} +return false; +}); +$(document).on('click','.fav_button', function(e) { +e.stopPropagation(); +if($(this).attr('favourited') !== 'true'){ +api.post("statuses/"+$(this).attr('tid')+"/favourite", function (data) { +}); +$(this).attr('favourited', "true"); +$(this).toggleClass('active'); +} else { +api.post("statuses/"+$(this).attr('tid')+"/unfavourite", function (data) { +}); +$(this).attr('favourited', "hold"); +$(this).toggleClass('active'); +$(this).mouseout(function(e) { +$(this).attr('favourited', "null"); +}); +} +return false; +}); +$(document).on('click','.delete_button', function(e) { +const sid = $(this).attr('tid'); +api.delete("statuses/"+sid, function (data) { +$('.toot_entry[sid="'+sid+'"]').remove(); +putMessage("Your Toot has been deleted"); +}); +}); +$(document).on('click','.cw_button', function(e) { +e.stopPropagation(); +const article = $(this).parent(); +if ( article.hasClass('content_warning') ) { +$(this).text('SHOW LESS'); +article.removeClass('content_warning'); +} else { +$(this).text('SHOW MORE'); +article.addClass('content_warning'); +} +return false; +}); +$(document).on('click','.sensitive_alart', function(e) { +e.stopPropagation(); +$(this).toggleClass('invisible'); +return false; +}); +$(document).on('click','.header_account_avatar', function(e) { +e.stopPropagation(); +$(this).next('.header_my_account_nav').toggleClass('invisible'); +}); +$(document).on('click','.expand_button', function(e) { +e.stopPropagation(); +$(this).next('.expand_menu').toggleClass('invisible'); +return false; +}); +$(document).on('click','.status_form.ready .active_submit_button', function(e) { +e.stopImmediatePropagation() +return false; +}); +}); +$(function() { +$(document).on('click', function(e) { +$('.header_my_account_nav').addClass('invisible'); +$('.expand_menu').addClass('invisible'); +}); +}) +function mediaattachments_template(status) { +let media_views = ""; +if(status.media_attachments[0].remote_url != null) { +status.media_attachments[0].url = status.media_attachments[0].remote_url; +} +if ( status.media_attachments[0].url === "/files/original/missing.png" ) { +return ""; +} else if ( !status.sensitive ) { +media_views = `
`; +} else { +media_views = ` +
+
+Sensitive content +Click to view +
`; +} +if ( status.media_attachments[0].type === "video" | status.media_attachments[0].type === "gifv" ) { +media_views += (` +
+ +
`); +} else { +if ( status.media_attachments.length <= 2 ) { +for ( let i in status.media_attachments ) { +if(status.media_attachments[i].remote_url != null) { +status.media_attachments[i].url = status.media_attachments[i].remote_url; +} +media_views += (` +
+ +
`); +} +} else { +for ( let i in status.media_attachments ) { +if (Number(i) === 1) { +if(status.media_attachments[i].remote_url != null) { +status.media_attachments[i].url = status.media_attachments[i].remote_url; +} +media_views += (` +
+
+ +
`); +} else { +media_views += (` +
+ +
`); +} +} +media_views += "
"; +} +media_views += "
"; +} +return media_views; +} +function timeline_template(status) { +if (status.reblog === null) { +if ( +status.account.id !== JSON.parse(localStorage.getItem("what_to_follow_0")).id & +status.account.id !== JSON.parse(localStorage.getItem("what_to_follow_1")).id & +status.account.id !== JSON.parse(localStorage.getItem("what_to_follow_2")).id & +status.account.id !== current_id +) { +localStorage.setItem("what_to_follow_"+String(Math.floor(Math.random()*3)), JSON.stringify(status.account) ); +} +const status_account_link= getRelativeURL(status.account.url, status.account.id), +status_datetime= getRelativeDatetime(Date.now(), getConversionedDate(null, status.created_at)), +status_attr_datetime = getConversionedDate(null, status.created_at); +let alart_text= "", +article_option= "", +toot_reblogs_count= "", +toot_favourites_count = "", +media_views = ""; +if ( status.spoiler_text ) { +alart_text = ""+status.spoiler_text+"", +article_option = "content_warning"; +} +if (status.reblogs_count) { +toot_reblogs_count = status.reblogs_count; +} +if (status.favourites_count) { +toot_favourites_count = status.favourites_count; +} +if ( status.media_attachments.length ) { +media_views = mediaattachments_template(status); +} +const html=(` +
  • +
    + +
    + +
    +
    +
    +
    + + +
    +
    +${alart_text} + +${status.content} + +${media_views} +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
  • `); +return $(html) +} else { +if ( +status.reblog.account.id !== JSON.parse(localStorage.getItem("what_to_follow_0")).id & +status.reblog.account.id !== JSON.parse(localStorage.getItem("what_to_follow_1")).id & +status.reblog.account.id !== JSON.parse(localStorage.getItem("what_to_follow_2")).id & +status.account.id!== current_id +) { +localStorage.setItem("what_to_follow_" + String(Math.floor(Math.random()*3)), JSON.stringify(status.reblog.account)); +} +const status_datetime= getRelativeDatetime(Date.now(), getConversionedDate(null, status.reblog.created_at)), +status_attr_datetime = getConversionedDate(null, status.reblog.created_at), +status_reblog_account_link = getRelativeURL(status.reblog.account.url, status.reblog.account.id), +status_account_link= getRelativeURL(status.account.url, status.account.id); +let alart_text= "", +article_option= "", +toot_reblogs_count= "", +toot_favourites_count = "", +media_views = ""; +if ( status.reblog.spoiler_text ) { +alart_text = ""+status.reblog.spoiler_text+"", +article_option = "content_warning"; +} +if (status.reblog.reblogs_count) { +toot_reblogs_count = status.reblog.reblogs_count; +} +if (status.reblog.favourites_count) { +toot_favourites_count = status.reblog.favourites_count; +} +if ( status.reblog.media_attachments.length ) { +media_views = mediaattachments_template(status.reblog); +} +const html = (` +
  • + +
    + +
    + +
    +
    +
    +
    + + +
    +
    +${alart_text} + +${status.reblog.content} + +${media_views} +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
  • `); +return $(html) +} +} +function notifications_template(NotificationObj) { +const notice_author_link = getRelativeURL(NotificationObj.account.url, NotificationObj.account.id); +if ( NotificationObj.type === 'favourite' | NotificationObj.type === 'reblog' ) { +const toot_author_link = getRelativeURL(NotificationObj.status.account.url, NotificationObj.status.account.id), +toot_datetime= getRelativeDatetime(Date.now(), getConversionedDate(null, NotificationObj.status.created_at)), +toot_attr_datetime = getConversionedDate(null, NotificationObj.status.created_at); +if( NotificationObj.type=='favourite' ){ +const html = (` +
  • + +
    +
    +
    + +
    +
    +

    ${NotificationObj.status.content}

    +
    +
    +
    +
    +
  • `); +return $(html); +} else if ( NotificationObj.type === 'reblog' ) { +const sid= NotificationObj.status.id, +html = (` +
  • + +
    +
    +
    + +
    +
    +

    ${NotificationObj.status.content}

    +
    +
    +
    +
    +
  • `); +return $(html); +} +} else if ( NotificationObj.type === 'mention' ) { +const toot_author_link = getRelativeURL(NotificationObj.status.account.url, NotificationObj.status.account.id), +toot_datetime= getRelativeDatetime(Date.now(), getConversionedDate(null, NotificationObj.status.created_at)), +toot_attr_datetime = getConversionedDate(null, NotificationObj.status.created_at); +let alart_text= "", +article_option= "", +toot_reblogs_count= "", +toot_favourites_count = "", +media_views = ""; +if (NotificationObj.status.spoiler_text) { +alart_text = ''+NotificationObj.status.spoiler_text+'', +article_option = 'content_warning'; +} +if (NotificationObj.status.reblogs_count) { +toot_reblogs_count = NotificationObj.status.reblogs_count; +} +if (NotificationObj.status.favourites_count) { +toot_favourites_count = NotificationObj.status.favourites_count; +} +if (NotificationObj.status.media_attachments.length) { +media_views = mediaattachments_template(NotificationObj.status); +} +const html=(` +
  • +
    + +
    + +
    +
    +
    +
    + + +
    +
    +${alart_text} + +${NotificationObj.status.content} + +${media_views} +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
  • `); +return $(html); +} else { +const html=(` +
  • + +
  • `); +return $(html); +} +} +function follows_template(AccountObj) { +const array = AccountObj.url.split('/'), +profile_link = '/'+array[array.length-1]+'@'+array[array.length-2]+'?mid='+AccountObj.id+'&'; +const html = (` +
    +
    + +
    +
    +
    + +
    + + +
    +

    ${AccountObj.note}

    +
    +
    +
    `); +return $(html) +} +function status_template(status, class_options) { +if ( status.reblog === null ) { +const status_account_link= getRelativeURL(status.account.url, status.account.id), +status_datetime= getConversionedDate(null, status.created_at), +status_attr_datetime = getConversionedDate(null, status.created_at); +let alart_text= "", +article_option= "", +toot_reblogs_count= "", +toot_favourites_count = "", +media_views = ""; +if (status.spoiler_text) { +alart_text = ''+status.spoiler_text+'', +article_option = 'content_warning'; +} +if (status.reblogs_count) { +toot_reblogs_count = status.reblogs_count; +} +if (status.favourites_count) { +toot_favourites_count = status.favourites_count; +} +if (status.media_attachments.length) { +media_views = mediaattachments_template(status); +} +const html=(` +
    +
    +
    +
    + +
    + + +${status.account.display_name} + + +@${status.account.acct} + + + +
    +
    +
    +${alart_text} + +${status.content} + +${media_views} +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + + +
    +
    + +
    `); +history.pushState(null, null, getRelativeURL(status.account.url, status.account.id, '/status/'+status.id)); +return $(html) +} else { +const status_datetime= getConversionedDate(null, status.reblog.created_at), +status_attr_datetime = getConversionedDate(null, status.reblog.created_at), +status_reblog_account_link = getRelativeURL(status.reblog.account.url, status.reblog.account.id), +status_account_link= getRelativeURL(status.reblog.account.url, status.reblog.account.id); +let alart_text= "", +article_option= "", +toot_reblogs_count= "", +toot_favourites_count = "", +media_views = ""; +if (status.spoiler_text) { +alart_text = ''+status.reblog.spoiler_text+'', +article_option = 'content_warning'; +} +if (status.reblog.reblogs_count) { +toot_reblogs_count = status.reblog.reblogs_count; +} +if (status.reblog.favourites_count) { +toot_favourites_count = status.reblog.favourites_count; +} +if(status.reblog.media_attachments.length){ +media_views = mediaattachments_template(status.reblog); +} +const html=(` +
    +
    +
    +
    + +
    + + +${status.reblog.account.display_name} + + +@${status.reblog.account.acct} + + + +
    +
    +
    +${alart_text} + +${status.reblog.content} + +${media_views} +
    + +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    + +
    + + +
    +
    + +
    +`); +history.pushState(null, null, getRelativeURL(status.reblog.account.url, status.reblog.id, '/status/'+status.reblog.id)); +return $(html) +} +} +function media_template(status, mediaURL) { +if ( !status ) { +const html = (` +
    +
    + +
    +
    `); +return $(html) +} else { +const status_template = timeline_template(status).html(), +html = (` +
    +
    + +
    +
    +${status_template} +
    +
    `); +return $(html) +} +} +function context_template(status, class_options) { +if ( status.reblog === null ) { +const status_account_link= getRelativeURL(status.account.url, status.account.id), +status_datetime= getRelativeDatetime(Date.now(), getConversionedDate(null, status.created_at)), +status_attr_datetime = getConversionedDate(null, status.created_at); +let alart_text= "", +article_option= "", +toot_reblogs_count= "", +toot_favourites_count = "", +media_views = ""; +if ( status.spoiler_text ) { +alart_text = ''+status.spoiler_text+'', +article_option = 'content_warning'; +} +if (status.reblogs_count) { +toot_reblogs_count = status.reblogs_count; +} +if (status.favourites_count) { +toot_favourites_count = status.favourites_count; +} +if( status.media_attachments.length) { +media_views = mediaattachments_template(status); +} +const html=(` +
    +
    +
    + +
    +
    +
    + + +${status.account.display_name} + + +@${status.account.acct} + + + + +
    +
    +${alart_text} + +${status.content} + +${media_views} +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    `); +return $(html) +} else { +const status_datetime= getRelativeDatetime(Date.now(), getConversionedDate(null, status.reblog.created_at)), +status_attr_datetime = getConversionedDate(null, status.reblog.created_at), +status_reblog_account_link = getRelativeURL(status.reblog.account.url, status.reblog.account.id), +status_account_link= getRelativeURL(status.account.url, status.account.id); +let alart_text= "", +article_option= "", +toot_reblogs_count= "", +toot_favourites_count = "", +media_views = ""; +if ( status.spoiler_text ) { +alart_text = ''+status.reblog.spoiler_text+'', +article_option = 'content_warning'; +} +if (status.reblog.reblogs_count) { +toot_reblogs_count = status.reblog.reblogs_count; +} +if (status.reblog.favourites_count) { +toot_favourites_count = status.reblog.favourites_count; +} +if (status.reblog.media_attachments.length) { +media_views = mediaattachments_template(status.reblog); +} +const html=(` +
    + +
    +
    + +
    +
    +
    + + +${status.reblog.account.display_name} + + +@${status.reblog.account.acct} + + + + +
    +
    +${alart_text} + +${status.reblog.content} + +${media_views} +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    `); +return $(html) +} +} +function setTimeline(level,load_options) { +let isSyncing = true; +if ( load_options === undefined ) { +var load_options = []; +} +api.get(level, load_options, function(statuses) { +let reply_sources = {}; +for ( let i in statuses ) { +timeline_template(statuses[i]).appendTo("#js-timeline"); +if (statuses[i].in_reply_to_id && level === "timelines/home" | level === "timelines/public" ) { +if (!reply_sources[statuses[i].in_reply_to_id] & !$(".toot_entry[sid='"+statuses[i].in_reply_to_id+"']").length ) { +reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; +api.get('statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { +$("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); +replace_emoji(); +}); +} +} +}; +links = getLinkFromXHRHeader(responce_headers); +replaceInternalLink(); +replace_emoji(); +if (!statuses.length) { +$('#js-timeline_footer > i').css({"display":"none"}); +} +isSyncing = false; +}); +$(window).scroll(function () { +if ( $(window).scrollTop()+window.innerHeight >= $(document).height()-700 ) { +if (!isSyncing) { +isSyncing = true; +load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); +api.get(level, load_options, function(statuses) { +if (statuses.length) { +let reply_sources = {}; +for ( let i in statuses ) { +timeline_template(statuses[i]).appendTo("#js-timeline"); +if (statuses[i].in_reply_to_id && level === "timelines/home" | level === "timelines/public" ) { +if (!reply_sources[statuses[i].in_reply_to_id] & !$(".toot_entry[sid='"+statuses[i].in_reply_to_id+"']").length) { +reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; +api.get('statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { +$("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); +replace_emoji(); +}); +} +} +}; +links = getLinkFromXHRHeader(responce_headers); +replaceInternalLink(); +replace_emoji(); +isSyncing = false; +} else { +$('.timeline_footer > i').css({"display":"none"}); +$('.timeline_footer').append(''); +isSyncing = true; +} +}); +load_options.shift(); +}; +}; +}); +$(function() { +if ( level === "timelines/home" ) { +var streamscope = "user", +scope = "home"; +} else if ( level === "timelines/public" & load_options.length) { +var streamscope = "public:local", +scope = "local"; +} else if ( level === "timelines/public" & !load_options.length) { +var streamscope = "public", +scope = "federated"; +} +let statuses = []; +const original_title = $('title').text(); +api.stream(streamscope, function(userstream) { +if (userstream.event === "update") { +const streaming_option = localStorage.getItem("setting_post_stream"); +if ( streaming_option === "manual" ) { +if ( !$('.toot_entry[sid="'+userstream.payload.id+'"]').length ) { +$('#js-stream_update').css({'display':'block','height':'auto','padding':'10px'}); +statuses.unshift(userstream.payload); +$('#js-stream_update > button > span').text(statuses.length); +$('title').text("("+statuses.length+") "+original_title); +$('#header .header_nav_list .'+scope+'_badge').removeClass('invisible'); +} +} else if ( streaming_option === "auto" ) { +if ( !$('.toot_entry[sid="'+userstream.payload.id+'"]').length ) { +timeline_template(userstream.payload).prependTo("#js-timeline"); +replaceInternalLink(); +replace_emoji(); +if ( level === "timelines/home" | level === "timelines/public" ) { +if (userstream.payload.in_reply_to_id & !$(".toot_entry[sid='"+userstream.in_reply_to_id+"']").length) { +let reply_source = userstream.payload.id; +api.get('statuses/'+userstream.payload.in_reply_to_id, function(in_reply_statuses) { +$("#js-timeline .toot_entry[sid='"+reply_source+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); +replaceInternalLink(); +replace_emoji(); +}); +} +} +} +} +} +}); +$(document).on('click','#js-stream_update', function(e) { +$('#header .header_nav_list .'+scope+'_badge').addClass('invisible'); +$('#js-stream_update').css({'display':'none','height':'0','padding':'0px'}); +statuses.reverse(); +for ( let i in statuses ) { +timeline_template(statuses[i]).prependTo("#js-timeline"); +replace_emoji(); +if ( level === "timelines/home" | level === "timelines/public" ) { +if (statuses[i].in_reply_to_id) { +const reply_source = statuses[i].id; +api.get('statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { +$("#js-timeline .toot_entry[sid='"+reply_source+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); +replace_emoji(); +}); +} +} +$('title').text(original_title); +}; +statuses = []; +}); +}); +}; +function setOtherTimeline(instance, load_options) { +let isSyncing = true; +if ( load_options === undefined ) { +var load_options = []; +} +const loadstatus = instance + "timelines/public" +api.getOther(loadstatus, load_options, function(statuses) { +let reply_sources = {}; +for ( let i in statuses ) { +timeline_template(statuses[i]).appendTo("#js-timeline"); +if (statuses[i].in_reply_to_id ) { +if (!reply_sources[statuses[i].in_reply_to_id]) { +reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; +api.getOther(instance + 'statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { +$("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); +replace_emoji(); +}); +} +} +}; +$('.toot_entry .toot_footer').addClass('invisible'); +links = getLinkFromXHRHeader(responce_headers); +replaceInternalLink(); +replace_emoji(); +if (!statuses.length) { +$('#js-timeline_footer > i').css({"display":"none"}); +} +isSyncing = false; +}); +$(window).scroll(function () { +if ( $(window).scrollTop()+window.innerHeight >= $(document).height()-700 ) { +if (!isSyncing) { +isSyncing = true; +load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); +api.getOther(loadstatus, load_options, function(statuses) { +if (statuses.length) { +let reply_sources = {}; +for ( let i in statuses ) { +timeline_template(statuses[i]).appendTo("#js-timeline"); +if (statuses[i].in_reply_to_id ) { +if (!reply_sources[statuses[i].in_reply_to_id]) { +reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; +api.getOther(instance+'statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { +$("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); +replace_emoji(); +}); +} +} +}; +$('.toot_entry .toot_footer').addClass('invisible'); +links = getLinkFromXHRHeader(responce_headers); +replaceInternalLink(); +replace_emoji(); +isSyncing = false; +} else { +$('.timeline_footer > i').css({"display":"none"}); +$('.timeline_footer').append(''); +isSyncing = true; +} +}); +load_options.shift(); +}; +}; +}); +}; +function setNotifications(load_options) { +let isSyncing = true; +if (load_options === undefined) { +var load_options = []; +} +api.get('notifications', load_options, function(NotificationObj) { +for (let i in NotificationObj) { +notifications_template(NotificationObj[i]).appendTo("#js-timeline"); +}; +links = getLinkFromXHRHeader(responce_headers); +replaceInternalLink(); +replace_emoji(); +if (!NotificationObj.length) { +$('#js-timeline_footer > i').css({"display":"none"}); +} +isSyncing = false; +}); +$(window).scroll(function () { +if($(window).scrollTop() + window.innerHeight >= $(document).height()-700) { +if( !isSyncing ){ +isSyncing = true; +load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); +api.get('notifications', load_options, function(NotificationObj) { +if (NotificationObj.length) { +for (let i in NotificationObj) { +notifications_template(NotificationObj[i]).appendTo("#js-timeline"); +}; +links = getLinkFromXHRHeader(responce_headers); +replaceInternalLink(); +replace_emoji(); +isSyncing = false; +} else { +$('.timeline_footer > i').css({"display":"none"}); +$('.timeline_footer').append(''); +isSyncing = true; +} +}); +load_options.shift(); +}; +}; +}); +api.stream("user", function(userstream) { +const original_title = $('title').text(); +if (userstream.event === "notification") { +const streaming_option = localStorage.getItem("setting_post_stream"); +if ( streaming_option === "manual" ) { +} else if ( streaming_option === "auto" ) { +notifications_template(userstream.payload).prependTo("#js-timeline"); +replaceInternalLink(); +replace_emoji(); +} +} +}); +} +function setFollows(mid, param, load_options) { +let isSyncing = true, +followsList = []; +api.get('accounts/'+mid+'/'+param, load_options, function(follows) { + +for (let i in follows) { +follows_template(follows[i]).appendTo("#js-follows_profile"); +followsList.unshift(follows[i].id); +}; +api.getArray('accounts/relationships', [{name:'id', data:followsList}], function(RelationshipsObj) { +for ( let i in RelationshipsObj ) { +if ( RelationshipsObj[i].following ) { +const button = $('#js-follows_profile .follow_button[mid="'+RelationshipsObj[i].id+'"]'); +button.removeClass("follow_button"); +button.addClass("following_button"); +button.text('Following'); +} +} +}); +links = getLinkFromXHRHeader(responce_headers); +replace_emoji(); +$("#js-follows_footer > i").css({"display":"none"}); +isSyncing = false; +}); +$(window).scroll(function () { +if ($(window).scrollTop() + window.innerHeight >= $(document).height()-700) { +if( !isSyncing ){ +isSyncing = true; +load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); +api.get('accounts/'+mid+'/'+param, load_options, function(follows) { +let followsList = []; +if (follows.length) { +for(let i in follows) { +follows_template(follows[i]).appendTo("#js-follows_profile"); +followsList.unshift(follows[i].id); +}; +api.getArray('accounts/relationships', [{name:'id', data:followsList}], function(RelationshipsObj) { +for ( let i in RelationshipsObj ) { +if ( RelationshipsObj[i].following ) { +const button = $('#js-follows_profile .follow_button[mid="'+RelationshipsObj[i].id+'"]'); +button.removeClass("follow_button"); +button.addClass("following_button"); +button.text('Following'); +} +} +}); +links = getLinkFromXHRHeader(responce_headers); +replace_emoji(); +isSyncing = false; +} else { +isSyncing = true; +} +}); +load_options.shift(); +}; +}; +}); +}; +function setUserSearch(query) { +api.get('search', [{name:'q',data:query},{name:'resolve',data:'true'}], function(search) { +for(let i in search.accounts) { +follows_template(search.accounts[i]).appendTo("#js-follows_profile");; +} +$("#js-follows_footer > i").css({"display":"none"}); +replace_emoji(); +}); +}; +function setAccount(AccountObj) { +$("#js_header_image").attr('src', AccountObj.header); +$("#js_profile_image").attr('src', AccountObj.avatar); +$("#js_toots_count").text(AccountObj.statuses_count); +$("#js_following_count").text(AccountObj.following_count); +$("#js_followers_count").text(AccountObj.followers_count); +$("#js_profile_displayname").text(AccountObj.display_name); +$("#js_profile_username").text(AccountObj.acct); +$("#js_profile_bio").html(AccountObj.note); +if( AccountObj.id === current_id ) { +$(` +`).appendTo('.profile_button_box'); +$(` +

    FAVOURITES

    +Show +
    `).appendTo("#js-profile_nav_favourites"); +} else { +api.get('accounts/relationships', [{name:'id', data:String(AccountObj.id)}], function(RelationshipObj) { +if (RelationshipObj[0].followed_by) { +$('#main .profile_username .profile_followed_by').removeClass('invisible'); +} +if (RelationshipObj[0].blocking) { +$(``).appendTo('.profile_button_box'); +} else if (RelationshipObj[0].muting) { +$(``).appendTo('.profile_button_box'); +} else if (RelationshipObj[0].requested) { +$(` +`).appendTo('.profile_button_box'); +} else if(RelationshipObj[0].following){ +$(``).appendTo('.profile_button_box'); +} else { +$(``).appendTo('.profile_button_box'); +} +}); +}; +replace_emoji(); +} +function setRecentImages(mid) { +api.get("accounts/"+mid+"/statuses", [{name:'only_media',data:'true'},{name:'limit',data:'6'}], function(statuses) { +if ( statuses.length ) { +$('#js_profile_recent_images span').text(`${statuses[0].account.statuses_count} Photos and toots`); +$('#js_profile_recent_images a').attr('href', $("#media_link").attr('href')); +for ( i in statuses ) { +$(`
    + +
    `).appendTo('#js_profile_recent_images_box'); +}; +} +}); +}; +function badges_update(){ +let current_count = Number(localStorage.getItem("notification_count")); +if ( current_count ) { +$('#header .header_nav_list .notification_badge').removeClass('invisible'); +$('#header .header_nav_list .notification_badge').text( current_count ); +} +api.stream("user", function(userstream) { +if (userstream.event === "update" & location.pathname !== "/" ) { +$('#header .header_nav_list .home_badge').removeClass('invisible'); +} else if (userstream.event === "notification" & location.pathname !== "/notifications") { +current_count += 1; +localStorage.setItem("notification_count", current_count ); +$('#header .header_nav_list .notification_badge').text( current_count ); +if ( $('#header .header_nav_list .notification_badge').hasClass('invisible') ) { +$('#header .header_nav_list .notification_badge').removeClass('invisible') +} +} +}); +} +function setOverlayStatus(sid) { +if ( !window.getSelection().toString() ) { +$("#js-overlay_content .temporary_object").empty(); +$('#js-overlay_content_wrap').addClass('view'); +$('#js-overlay_content_wrap').addClass('black_05'); +api.get('statuses/'+sid+'/', function(status) { +$('
    ').appendTo("#js-overlay_content .temporary_object"); +status_template(status, 'main_status').appendTo('#js-overlay_content .toot_detail_wrap'); +replaceInternalLink(); +replace_emoji(); +api.get('statuses/'+sid+'/context', function(status) { +if (status.ancestors.length) { +status.ancestors.reverse(); +for ( let i in status.ancestors ) { +context_template(status.ancestors[i], 'ancestors_status').prependTo("#js-overlay_content .temporary_object .toot_detail_wrap"); +} +} +if (status.descendants.length) { +for ( let i in status.descendants) { +context_template(status.descendants[i], 'descendants_status').appendTo("#js-overlay_content .temporary_object .toot_detail_wrap"); +} +} +replaceInternalLink(); +replace_emoji(); +}); +}); +} +} +$(function() { +$(document).on('click','.toot_entry.ancestors_status, .toot_entry.descendants_status', function(e) { +$("#js-overlay_content .temporary_object").empty(); +}); +$(document).on('click','.toot_entry', function(e) { +setOverlayStatus($(this).attr('sid')); +}); +}) +function setOverlayMedia(sid,url) { +$("#js-overlay_content .temporary_object").empty(); +$('#js-overlay_content_wrap').addClass('view'); +$('#js-overlay_content_wrap').addClass('black_08'); +$('#js-overlay_content .temporary_object').addClass('visible'); +api.get("statuses/"+sid, function(status) { +if ( !status.reblog ) { +media_template(status, url).appendTo("#js-overlay_content .temporary_object"); +replaceInternalLink(); +replace_emoji(); +} else { +media_template(status.reblog, url).appendTo("#js-overlay_content .temporary_object"); +replaceInternalLink(); +replace_emoji(); +} +}); +} +$(function() { +$(document).on('click','.media_attachment[otype="image"]', function(e) { +e.stopPropagation(); +setOverlayMedia($(this).attr('sid'),$(this).attr('url')); +$('.media_detail .toot_entry .media_views').addClass('invisible'); +}); +}) +function setOverlayMediaWithoutStatus(url) { +$("#js-overlay_content .temporary_object").empty(); +$('#js-overlay_content_wrap').addClass('view'); +$('#js-overlay_content_wrap').addClass('black_05'); +media_template(null, url).appendTo("#js-overlay_content .temporary_object"); +} +$(function() { +$(document).on('click','img[mediaaccess="true"]', function(e) { +e.stopPropagation(); +setOverlayMediaWithoutStatus($(this).attr('src')); +}); +}) +$(function() { +$(document).on('click', '#creat_status', function(e) { +$('.overlay_status').removeClass('invisible'); +$("#js-overlay_content_wrap .temporary_object").empty(); +$('#js-overlay_content_wrap').addClass('view'); +$('#js-overlay_content_wrap').addClass('black_08'); +$('#overlay_status_form .status_textarea textarea').addClass('focus'); +$('.overlay_status .submit_status_label').addClass('active_submit_button'); +$('#overlay_status_form .status_textarea textarea').focus() +$('#overlay_status_form input[name="privacy_option"]').val([localStorage.getItem("setting_post_privacy")]); +$('#overlay_status_form .expand_privacy_menu_button > i').attr('class', "fa " + localStorage.getItem("setting_post_privacy")); +}); +$(document).on('change keyup','#overlay_status_form textarea, #overlay_status_form .status_spoiler', function(e) { +if ( +e.keyCode !== 224 & +e.keyCode !== 17& +e.keyCode !== undefined +) { +const textCount = $('#overlay_status_form textarea').val().length + $('#overlay_status_form .status_spoiler').val().length; +let textLen = ( 500 - textCount ); +if ( textLen <= -1 ) { +$('#overlay_status_form .character_count').addClass('red'); +$('#overlay_status_form').addClass('ready'); +} else if ( textLen === 500 ) { +$('#overlay_status_form').addClass('ready'); +} else { +$('#overlay_status_form .character_count').removeClass('red'); +$('#overlay_status_form').removeClass('ready'); +} +$(this).val(replaced_emoji_return($(this).val())); +$('#overlay_status_form .character_count').text(textLen); +} +}); +$(document).on('click','#overlay_status_form .status_CW', function(e) { +$('#overlay_status_form .status_spoiler').toggleClass('invisible'); +}); +$(document).on('click','#overlay_status_form .expand_privacy_menu_button', function(e) { +$('#overlay_status_form .expand_privacy_menu').removeClass('invisible'); +}); +$(document).on('click','#overlay_status_form .status_privacy.select_privacy', function(e) { +e.stopPropagation(); +$('#overlay_status_form .expand_privacy_menu_button > i').attr('class', $(this).attr('privacyicon')); +$('#overlay_status_form .expand_privacy_menu').addClass('invisible'); +}); +$(document).on('change','#overlay_status_media_atta', function(e) { +$('#overlay_status_form .media_attachments_preview_area').empty(); +$('#overlay_status_form .status_textarea .media_attachments_preview_area').removeClass('invisible'); +for ( let i = 0, f; f = e.target.files[i]; i++ ) { +let reader= new FileReader(); +reader.readAsDataURL(f); +reader.onloadend = (function() { +return function (e) { +const html = (`
    + +
    `); +$(html).appendTo('#overlay_status_form .media_attachments_preview_area'); +} +})(f); +} +}); +$(document).on('click','#overlay_status_form .status_NSFW', function(e) { +$('#overlay_status_form .media_attachments_preview_area').toggleClass('nsfw'); +}); +$(document).on('click','#overlay_status_form .submit_status_label', function(e) { +$('#overlay_status_form').addClass('ready'); +$('#overlay_status_form .status_textarea').addClass('disallow_select'); +$('#overlay_status_form .character_count').html(''); +const form = document.forms.overlay_status_form; +if ( !$('#overlay_status_media_atta')[0].files.length ) { +const params = { +status : form.status_textarea.value, +sensitive: form.status_nsfw.checked, +spoiler_text : form.status_spoiler.value, +visibility : form.privacy_option.value +} +api.post("statuses", params, function (data) { +$('#overlay_status_form .media_attachments_preview_area').empty(); +$('#overlay_status_form .status_spoiler').addClass('invisible'); +$('#overlay_status_form .status_textarea .media_attachments_preview_area').addClass('invisible'); +form.reset(); +$('#overlay_status_form').removeClass('ready'); +$('#overlay_status_form .status_textarea').removeClass('disallow_select'); +$('#overlay_status_form .character_count').html('500'); +$('.overlay_status .submit_status_label').removeClass('active_submit_button'); +$('.overlay_status').addClass('invisible'); +$('#js-overlay_content_wrap').removeClass('view'); +$('#js-overlay_content_wrap').removeClass('black_05'); +putMessage('Your Toot was posted!'); +}); +} else { +const dummy_form= $('
    ').append($('#overlay_status_media_atta')), +files = dummy_form[0][0].files, +filesLen= files.length -1; +let media_array = []; +$("#overlay_status_form .status_bottom").append($('')); +for (let i=0; i i').attr('class', $(this).attr('privacyicon')); +$('#header_status_form .expand_privacy_menu').addClass('invisible'); +}); +$(document).on('click','#header_status_form', function(e) { +if(!$('#header_status_form .status_textarea textarea').hasClass('focus')) { +$('#header_status_form input[name="privacy_option"]').val([localStorage.getItem("setting_post_privacy")]); +$('#header_status_form .expand_privacy_menu_button > i').attr('class', "fa " + localStorage.getItem("setting_post_privacy")); +$('#header_status_form .status_textarea textarea').addClass('focus'); +$('#header_status_form .status_bottom').removeClass('invisible'); +$('#header_status_form .submit_status_label').addClass('active_submit_button'); +} +}); +$(document).on('change','#header_status_media_atta', function(e) { +$('#header_status_form .media_attachments_preview_area').empty(); +$('#header_status_form .status_textarea .media_attachments_preview_area').removeClass('invisible'); +for ( let i = 0, f; f = e.target.files[i]; i++ ) { +let reader= new FileReader(); +reader.readAsDataURL(f); +reader.onloadend = (function() { +return function (e) { +const html = (`
    + +
    `); +$(html).appendTo('#header_status_form .media_attachments_preview_area'); +} +})(f); +} +}); +$(document).on('click','#header_status_form .status_NSFW', function(e) { +$('#header_status_form .media_attachments_preview_area').toggleClass('nsfw'); +}); +$(document).on('click','#header_status_form .submit_status_label', function(e) { +$('#header_status_form').addClass('ready'); +$('#header_status_form .status_textarea').addClass('disallow_select'); +$('#header_status_form .character_count').html(''); +const form = document.forms.header_status_form; +if ( !$('#header_status_media_atta')[0].files.length ) { +const params = { +status : form.status_textarea.value, +sensitive: form.status_nsfw.checked, +spoiler_text : form.status_spoiler.value, +visibility : form.privacy_option.value +} +api.post("statuses", params, function (data) { +$('#header_status_form .media_attachments_preview_area').empty(); +$('#header_status_form .status_spoiler').addClass('invisible'); +$('#header_status_form .status_textarea .media_attachments_preview_area').addClass('invisible'); +form.reset(); +$('#header_status_form').removeClass('ready'); +$('#header_status_form .status_textarea').removeClass('disallow_select'); +$('#header_status_form .character_count').html('500'); +}); +} else { +const dummy_form = $('
    ').append($('#header_status_media_atta')), +files= dummy_form[0][0].files, +filesLen = files.length -1; +let media_array = []; +$("#header_status_form .status_bottom").append($('')); +for (let i=0; i i').attr('class', "fa " + localStorage.getItem("setting_post_privacy")); +} +}); +$(document).on('change keyup','#reply_status_form textarea, #reply_status_form .status_spoiler', function(e) { +if ( +e.keyCode !== 224 & +e.keyCode !== 17& +e.keyCode !== undefined +) { +const textCount = $('#reply_status_form textarea').val().length + $('#reply_status_form .status_spoiler').val().length; +let textLen = ( 500 - textCount ); +if ( textLen <= -1 ) { +$('#reply_status_form .character_count').addClass('red'); +$('#reply_status_form').addClass('ready'); +} else if ( textLen === 500 ) { +$('#reply_status_form').addClass('ready'); +} else { +$('#reply_status_form .character_count').removeClass('red'); +$('#reply_status_form').removeClass('ready'); +} +$(this).val(replaced_emoji_return($(this).val())); +$('#reply_status_form .character_count').text(textLen); +} +}); +$(document).on('click','#reply_status_form .status_CW', function(e) { +$('#reply_status_form .status_spoiler').toggleClass('invisible'); +}); +$(document).on('click','#reply_status_form .expand_privacy_menu_button', function(e) { +$('#reply_status_form .expand_privacy_menu').removeClass('invisible'); +}); +$(document).on('click','#reply_status_form .status_privacy.select_privacy', function(e) { +e.stopPropagation(); +$('#reply_status_form .expand_privacy_menu_button > i').attr('class', $(this).attr('privacyicon')); +$('#reply_status_form .expand_privacy_menu').addClass('invisible'); +}); +$(document).on('change','#reply_status_media_atta', function(e) { +$('#reply_status_form .media_attachments_preview_area').empty(); +$('#reply_status_form .status_textarea .media_attachments_preview_area').removeClass('invisible'); +for ( let i = 0, f; f = e.target.files[i]; i++ ) { +let reader= new FileReader(); +reader.readAsDataURL(f); +reader.onloadend = (function() { +return function (e) { +const html = (`
    + +
    `); +$(html).appendTo('#reply_status_form .media_attachments_preview_area'); +} +})(f); +} +}); +$(document).on('click','#reply_status_form .status_NSFW', function(e) { +$('#reply_status_form .media_attachments_preview_area').toggleClass('nsfw'); +}); +$(document).on('click','#reply_status_form .submit_status_label', function(e) { +$('#reply_status_form').addClass('ready'); +$('#reply_status_form .status_textarea').addClass('disallow_select'); +$('#reply_status_form .character_count').html(''); +let form = document.forms.reply_status_form; +if ( !$('#reply_status_media_atta')[0].files.length ) { +const params = { +status : form.status_textarea.value, +sensitive: form.status_nsfw.checked, +spoiler_text : form.status_spoiler.value, +visibility : form.privacy_option.value, +in_reply_to_id : $('#reply_status_form').attr('sid') +} +api.post("statuses", params, function (data) { +$('#reply_status_form .media_attachments_preview_area').empty(); +$('#reply_status_form .status_spoiler').addClass('invisible'); +$('#reply_status_form .status_textarea .media_attachments_preview_area').addClass('invisible'); +form.reset(); +$('#reply_status_form').removeClass('ready'); +$('#reply_status_form .status_textarea').removeClass('disallow_select'); +$('#reply_status_form .character_count').html('500'); +$('.reply_status .submit_status_label').removeClass('active_submit_button'); +context_template(data, 'descendants_status').appendTo("#js-overlay_content .temporary_object .toot_detail_wrap"); +replace_emoji(); +putMessage('Your Toot was posted!'); +}); +} else { +const dummy_form = $('
    ').append($('#reply_status_media_atta')), +files= dummy_form[0][0].files, +filesLen = files.length -1; +let media_array = []; +$('#reply_status_form .status_bottom').append($('')); +for (let i=0; i i').attr('class', "fa " + localStorage.getItem("setting_post_privacy")); +$('#single_reply_status_form').attr('tid',sid); +$('.single_reply_status .single_reply_status_header span').text("Reply to "+display_name); +$('#single_reply_status_form textarea').val(acct+" "); +api.get('statuses/'+sid+'/', function(status) { +timeline_template(status).appendTo(".single_reply_status .status_preview"); +replace_emoji(); +}); +return false; +}); +$(document).on('change keyup','#single_reply_status_form textarea, #single_reply_status_form .status_spoiler', function(e) { +if ( +e.keyCode !== 224 & +e.keyCode !== 17& +e.keyCode !== undefined +) { +const textCount = $('#single_reply_status_form textarea').val().length + $('#single_reply_status_form .status_spoiler').val().length; +let textLen = ( 500 - textCount ); +if ( textLen <= -1 ) { +$('#single_reply_status_form .character_count').addClass('red'); +$('#single_reply_status_form').addClass('ready'); +} else if ( textLen === 500 ) { +$('#single_reply_status_form').addClass('ready'); +} else { +$('#single_reply_status_form .character_count').removeClass('red'); +$('#single_reply_status_form').removeClass('ready'); +} +$(this).val(replaced_emoji_return($(this).val())); +$('#single_reply_status_form .character_count').text(textLen); +} +}); +$(document).on('click','#single_reply_status_form .status_CW', function(e) { +$('#single_reply_status_form .status_spoiler').toggleClass('invisible'); +}); +$(document).on('click','#single_reply_status_form .expand_privacy_menu_button', function(e) { +$('#single_reply_status_form .expand_privacy_menu').removeClass('invisible'); +}); +$(document).on('click','#single_reply_status_form .status_privacy.select_privacy', function(e) { +e.stopPropagation(); +$('#single_reply_status_form .expand_privacy_menu_button > i').attr('class', $(this).attr('privacyicon')); +$('#single_reply_status_form .expand_privacy_menu').addClass('invisible'); +}); +$(document).on('change','#single_reply_status_media_atta', function(e) { +$('#single_reply_status_form .media_attachments_preview_area').empty(); +$('#single_reply_status_form .status_textarea .media_attachments_preview_area').removeClass('invisible'); +for ( let i = 0, f; f = e.target.files[i]; i++ ) { +let reader= new FileReader(); +reader.readAsDataURL(f); +reader.onloadend = (function() { +return function (e) { +const html = (`
    + +
    `); +$(html).appendTo('#single_reply_status_form .media_attachments_preview_area'); +} +})(f); +} +}); +$(document).on('click','#single_reply_status_form .status_NSFW', function(e) { +$('#single_reply_status_form .media_attachments_preview_area').toggleClass('nsfw'); +}); +$(document).on('click','#single_reply_status_form .submit_status_label', function(e) { +$('#single_reply_status_form').addClass('ready'); +$('#single_reply_status_form .status_textarea').addClass('disallow_select'); +$('#single_reply_status_form .character_count').html(''); +let form = document.forms.single_reply_status_form; +if ( !$('#single_reply_status_media_atta')[0].files.length ) { +const params = { +status : form.status_textarea.value, +sensitive: form.status_nsfw.checked, +spoiler_text : form.status_spoiler.value, +visibility : form.privacy_option.value, +in_reply_to_id : $('#single_reply_status_form').attr('tid') +} +api.post("statuses", params, function (data) { +$('#single_reply_status_form .media_attachments_preview_area').empty(); +$('#single_reply_status_form .status_spoiler').addClass('invisible'); +$('#single_reply_status_form .status_textarea .media_attachments_preview_area').addClass('invisible'); +form.reset(); +$('#single_reply_status_form').removeClass('ready'); +$('#single_reply_status_form .status_textarea').removeClass('disallow_select'); +$('#single_reply_status_form .character_count').html('500'); +$('.single_reply_status .submit_status_label').removeClass('active_submit_button'); +$('.single_reply_status').addClass('invisible'); +$('#js-overlay_content_wrap').removeClass('view'); +$('#js-overlay_content_wrap').removeClass('black_05'); +$("#js-overlay_content_wrap .single_reply_status .status_preview").empty(); +putMessage('Your Reply was posted!'); +}); +} else { +const dummy_form= $('
    ').append($('#single_reply_status_media_atta')), +files = dummy_form[0][0].files, +filesLen= files.length -1; +let media_array = []; +$("#single_reply_status_form .status_bottom").append($('')); +for (let i=0; i *, .parmanent_object > *', function(e) { +e.stopPropagation(); +}); +$(document).on('click','#js-overlay_content_wrap', function(e) { +$(this).removeClass('view'); +$("#js-overlay_content_wrap .temporary_object").empty(); +$("#js-overlay_content_wrap .single_reply_status .status_preview").empty(); +$('#js-overlay_content_wrap .overlay_status').addClass('invisible'); +$('#js-overlay_content_wrap .single_reply_status').addClass('invisible'); +$('#js-overlay_content_wrap .overlay_copy_link').addClass('invisible'); +$('#js-overlay_content .temporary_object, #js-overlay_content .parmanent_object').removeClass('visible'); +$('#js-overlay_content_wrap .overlay_status.submit_status_label').removeClass('active_submit_button'); +$('#js-overlay_content_wrap .single_reply_status .submit_status_label').removeClass('active_submit_button'); +$('#js-overlay_content_wrap #reply_status_form .submit_status_label').removeClass('active_submit_button'); +$('#js-overlay_content_wrap #header_status_form.submit_status_label').removeClass('active_submit_button'); +$('#js-overlay_content_wrap').removeClass('black_05'); +$('#js-overlay_content_wrap').removeClass('black_08'); +if ( current_file === "/user" ) { +history.pushState(null, null, "/"+location.pathname.split("/")[1]+location.search); +} else { +history.pushState(null, null, current_file); +} +}); +}) +$(function () { +$(document).on('click','.side_widget.stream_options .form_title button', function(e) { +$(this).parent().next('.pulldown_form').toggleClass('view'); +if ( $(this).text() === "SHOW" ) { +$(this).text("HIDE"); +} else { +$(this).text("SHOW"); +} +const html_post_steraming = $(``) +const html_post_privacy = $(``) +const html_local_instance = $(``) +const html_search_filter = $(``) +html_post_steraming.val(localStorage.getItem("setting_post_stream")); +html_post_privacy.val(localStorage.getItem("setting_post_privacy")); +html_local_instance.val(localStorage.getItem("setting_local_instance")); +html_search_filter.val(localStorage.getItem("setting_search_filter")); +$('.post_steraming_wrap').html(html_post_steraming) +$('.post_privacy_wrap').html(html_post_privacy); +$('.local_instance_wrap').html(html_local_instance); +$('.search_filter_wrap').html(html_search_filter); +return false; +}); +$(document).on('change',".post_steraming_wrap select[name='post_steraming']", function(e) { +localStorage.setItem("setting_post_stream", $(this).val() ); +putMessage("Changed setting to "+$(this).val() ); +}); +$(document).on('change', ".post_privacy_wrap select[name='post_privacy']", function(e) { +localStorage.setItem("setting_post_privacy", $(this).val() ); +putMessage("Changed setting to "+$(this).val() ); +}); +$(document).on('change',".search_filter_wrap select[name='search_filter']", function(e) { +localStorage.setItem("setting_search_filter", $(this).val() ); +putMessage("Changed setting to "+$(this).val() ); +}); +$(document).on('focus',".local_instance_wrap input[name='local_instance']", function(e) { +$(this).attr("placeholder","https://"+current_instance); +}); +$(document).on('change',".local_instance_wrap input[name='local_instance']", function(e) { +if ( $(this).val() ) { +localStorage.setItem("setting_local_instance", $(this).val() ); +} else { +localStorage.setItem("setting_local_instance", "default" ); +} +putMessage("Changed setting to "+$(this).val() ); +}); +}) +$(function() { +shortcut.add("n",function() { +$("#creat_status").click(); +},{ + "disable_in_input":true, +}); +shortcut.add("/",function() { +$("#search_form").focus(); +},{ +"disable_in_input":true, +'keycode':191 +}); +shortcut.add("Meta+Enter",function() { +$(".active_submit_button").click(); +}); +shortcut.add("Ctrl+Enter",function() { +$(".active_submit_button").click(); +}); +shortcut.add(".",function() { +$("#js-stream_update").click(); +},{ + "disable_in_input":true, +}); +shortcut.add("Shift+h",function() { +location.href="/home"; +},{ +"disable_in_input":true, +}); +shortcut.add("Shift+l",function() { +location.href="/local"; +},{ +"disable_in_input":true, +}); +shortcut.add("Shift+f",function() { +location.href="/federated"; +},{ +"disable_in_input":true, +}); +shortcut.add("Shift+n",function() { +location.href="/notifications"; +},{ +"disable_in_input":true, +}); +shortcut.add("Shift+p",function() { +location.href=current_url; +},{ +"disable_in_input":true, +}); +shortcut.add("Shift+v",function() { +location.href=current_favourites_link; +},{ +"disable_in_input":true, +}); +shortcut.add("esc",function() { +$("#js-overlay_content_wrap").click(); +}); +}); \ No newline at end of file diff --git a/public_html/assets/js/jquery-cookie/MIT-LICENSE.txt b/assets/js/jquery-cookie/MIT-LICENSE.txt similarity index 100% rename from public_html/assets/js/jquery-cookie/MIT-LICENSE.txt rename to assets/js/jquery-cookie/MIT-LICENSE.txt diff --git a/assets/js/jquery-cookie/src/jquery.cookie.js b/assets/js/jquery-cookie/src/jquery.cookie.js new file mode 100644 index 0000000..c8f6260 --- /dev/null +++ b/assets/js/jquery-cookie/src/jquery.cookie.js @@ -0,0 +1,78 @@ +/*! + * jQuery Cookie Plugin v1.4.1 + * https://github.com/carhartl/jquery-cookie + * + * Copyright 2006, 2014 Klaus Hartl + * Released under the MIT license + */ +(function (factory) { +if (typeof define === 'function' && define.amd) { +define(['jquery'], factory); +} else if (typeof exports === 'object') { +module.exports = factory(require('jquery')); +} else { +factory(jQuery); +} +}(function ($) { +var pluses = /\+/g; +function encode(s) { +return config.raw ? s : encodeURIComponent(s); +} +function decode(s) { +return config.raw ? s : decodeURIComponent(s); +} +function stringifyCookieValue(value) { +return encode(config.json ? JSON.stringify(value) : String(value)); +} +function parseCookieValue(s) { +if (s.indexOf('"') === 0) { +s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); +} +try { +s = decodeURIComponent(s.replace(pluses, ' ')); +return config.json ? JSON.parse(s) : s; +} catch(e) {} +} +function read(s, converter) { +var value = config.raw ? s : parseCookieValue(s); +return $.isFunction(converter) ? converter(value) : value; +} +var config = $.cookie = function (key, value, options) { +if (arguments.length > 1 && !$.isFunction(value)) { +options = $.extend({}, config.defaults, options); +if (typeof options.expires === 'number') { +var days = options.expires, t = options.expires = new Date(); +t.setMilliseconds(t.getMilliseconds() + days * 864e+5); +} +return (document.cookie = [ +encode(key), '=', stringifyCookieValue(value), +options.expires ? '; expires=' + options.expires.toUTCString() : '', +options.path ? '; path=' + options.path : '', +options.domain ? '; domain=' + options.domain : '', +options.secure ? '; secure' : '' +].join('')); +} +var result = key ? undefined : {}, +cookies = document.cookie ? document.cookie.split('; ') : [], +i = 0, +l = cookies.length; +for (; i < l; i++) { +var parts = cookies[i].split('='), +name = decode(parts.shift()), +cookie = parts.join('='); +if (key === name) { +result = read(cookie, value); +break; +} +if (!key && (cookie = read(cookie)) !== undefined) { +result[name] = cookie; +} +} +return result; +}; +config.defaults = {}; +$.removeCookie = function (key, options) { +$.cookie(key, '', $.extend({}, options, { expires: -1 })); +return !$.cookie(key); +}; +})); \ No newline at end of file diff --git a/public_html/assets/js/mastodon.js/LICENSE b/assets/js/mastodon.js/LICENSE similarity index 100% rename from public_html/assets/js/mastodon.js/LICENSE rename to assets/js/mastodon.js/LICENSE diff --git a/assets/js/mastodon.js/mastodon.js b/assets/js/mastodon.js/mastodon.js new file mode 100644 index 0000000..e609d8e --- /dev/null +++ b/assets/js/mastodon.js/mastodon.js @@ -0,0 +1,207 @@ +// mastodon javascript lib +// by @kirschn@pleasehug.me 2017 +// no fucking copyright +// do whatever you want with it +// but please don't hurt it (and keep this header) +var MastodonAPI = function(config) { +var apiBase = config.instance + "/api/v1/"; +return { +setConfig: function (key, value) { +config[key] = value; +}, +getConfig: function(key) { +return config[key]; +}, +get: function (endpoint) { +var queryData, callback, +queryStringAppend = "?"; +if (typeof arguments[1] === "function") { +queryData = {}; +callback = arguments[1]; +} else { +queryData = arguments[1]; +callback = arguments[2]; +} +for (var i in queryData) { +if (queryData.hasOwnProperty(i)) { +if (typeof queryData[i] === "string") { +queryStringAppend += queryData[i] + "&"; +} else if (typeof queryData[i] === "object") { +queryStringAppend += queryData[i].name + "="+ queryData[i].data + "&"; +} +} +} +$.ajax({ +url: apiBase + endpoint + queryStringAppend, +type: "GET", +headers: {"Authorization": "Bearer " + config.api_user_token}, +success: function(data, textStatus, xhr) { +console.log("Successful GET API request to " +apiBase+endpoint); +responce_headers = xhr.getAllResponseHeaders(); +callback(data,textStatus); +}, +error: function(xhr, textStatus, errorThrown) { +putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); +if ( xhr.status === 401 ) { +location.href = "/logout" +} +} +}); +}, +getArray: function (endpoint) { +var queryData, callback, +queryStringAppend = "?"; +if (typeof arguments[1] === "function") { +queryData = {}; +callback = arguments[1]; +} else { +queryData = arguments[1]; +callback = arguments[2]; +} +for (var i in queryData) { +if (queryData.hasOwnProperty(i)) { +if (typeof queryData[i] === "string") { +queryStringAppend += queryData[i] + "&"; +} else if (typeof queryData[i] === "object") { +for ( var j in queryData[i].data ){ +queryStringAppend += queryData[i].name + "[]="+ queryData[i].data[j] + "&"; +} +} +} +} +$.ajax({ +url: apiBase + endpoint + queryStringAppend, +type: "GET", +headers: {"Authorization": "Bearer " + config.api_user_token}, +success: function(data, textStatus, xhr) { +console.log("Successful GET API request to " +apiBase+endpoint); +responce_headers = xhr.getAllResponseHeaders(); +callback(data,textStatus); +}, +error: function(xhr, textStatus, errorThrown) { +putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); +if ( xhr.status === 401 ) { +location.href = "/logout" +} +} +}); +}, +getOther: function (domainAndEndpoint) { +var queryData, callback, +queryStringAppend = "?"; +if (typeof arguments[1] === "function") { +queryData = {}; +callback = arguments[1]; +} else { +queryData = arguments[1]; +callback = arguments[2]; +} +for (var i in queryData) { +if (queryData.hasOwnProperty(i)) { +if (typeof queryData[i] === "string") { +queryStringAppend += queryData[i] + "&"; +} else if (typeof queryData[i] === "object") { +queryStringAppend += queryData[i].name + "="+ queryData[i].data + "&"; +} +} +} +$.ajax({ +url: domainAndEndpoint + queryStringAppend, +type: "GET", +success: function(data, textStatus, xhr) { +console.log("Successful GET API request to " +domainAndEndpoint); +responce_headers = xhr.getAllResponseHeaders(); +callback(data,textStatus); +}, +error: function(xhr, textStatus, errorThrown) { +putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); +if ( xhr.status === 401 ) { +location.href = "/logout" +} +} +}); +}, +post: function (endpoint) { +var postData, callback; +if (typeof arguments[1] === "function") { +postData = {}; +callback = arguments[1]; +} else { +postData = arguments[1]; +callback = arguments[2]; +} +$.ajax({ +url: apiBase + endpoint, +type: "POST", +data: postData, +headers: {"Authorization": "Bearer " + config.api_user_token}, +success: function(data, textStatus) { +console.log("Successful POST API request to " +apiBase+endpoint); +callback(data,textStatus) +}, +error: function(xhr, textStatus, errorThrown) { +putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); +if ( xhr.status === 401 ) { +location.href = "/logout" +} +} +}); +}, +postMedia: function (endpoint) { +var postData, callback; +if (typeof arguments[1] === "function") { +postData = {}; +callback = arguments[1]; +} else { +postData = arguments[1]; +callback = arguments[2]; +} +$.ajax({ +url: apiBase + endpoint, +type: "POST", +data: postData, +contentType: false, +processData: false, +headers: {"Authorization": "Bearer " + config.api_user_token}, +success: function(data, textStatus) { +console.log("Successful POST API request to " +apiBase+endpoint); +callback(data,textStatus) +}, +error: function(xhr, textStatus, errorThrown) { +putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); +if ( xhr.status === 401 ) { +location.href = "/logout" +} +} +}); +}, +delete: function (endpoint, callback) { +$.ajax({ +url: apiBase + endpoint, +type: "DELETE", +headers: {"Authorization": "Bearer " + config.api_user_token}, +success: function(data, textStatus) { +console.log("Successful DELETE API request to " +apiBase+endpoint); +callback(data,textStatus) +}, +error: function(xhr, textStatus, errorThrown) { +putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); +if ( xhr.status === 401 ) { +location.href = "/logout" +} +} +}); +}, +stream: function (streamType, onData) { +var es = new WebSocket("wss://" + apiBase.substr(8) ++"streaming?access_token=" + config.api_user_token + "&stream=" + streamType); +var listener = function (event) { +console.log("Got Data from Stream " + streamType); +event = JSON.parse(event.data); +event.payload = JSON.parse(event.payload); +onData(event); +}; +es.onmessage = listener; +} +}; +}; \ No newline at end of file diff --git a/assets/js/replace_emoji.js b/assets/js/replace_emoji.js new file mode 100644 index 0000000..ca35b51 --- /dev/null +++ b/assets/js/replace_emoji.js @@ -0,0 +1,3473 @@ +const emoji_dict = {":hash:": "#⃣", +":zero:": "0⃣", +":one:": "1⃣", +":two:": "2⃣", +":three:": "3⃣", +":four:": "4⃣", +":five:": "5⃣", +":six:": "6⃣", +":seven:": "7⃣", +":eight:": "8⃣", +":nine:": "9⃣", +":copyright:": "©", +":registered:": "®", +":bangbang:": "‼", +":interrobang:": "⁉", +":tm:": "™", +":information_source:": "ℹ", +":left_right_arrow:": "↔", +":arrow_up_down:": "↕", +":arrow_upper_left:": "↖", +":third_place:": "🥉", +":third_place_medal:": "🥉", +":arrow_upper_right:": "↗", +":arrow_lower_right:": "↘", +":arrow_lower_left:": "↙", +":second_place:": "🥈", +":second_place_medal:": "🥈", +":leftwards_arrow_with_hook:": "↩", +":arrow_right_hook:": "↪", +":watch:": "⌚", +":hourglass:": "⌛", +":fast_forward:": "⏩", +":rewind:": "⏪", +":arrow_double_up:": "⏫", +":arrow_double_down:": "⏬", +":alarm_clock:": "⏰", +":hourglass_flowing_sand:": "⏳", +":m:": "Ⓜ", +":black_small_square:": "▪", +":white_small_square:": "▫", +":arrow_forward:": "▶", +":arrow_backward:": "◀", +":white_medium_square:": "◻", +":black_medium_square:": "◼", +":white_medium_small_square:": "◽", +":black_medium_small_square:": "◾", +":sunny:": "☀", +":cloud:": "☁", +":telephone:": "☎", +":ballot_box_with_check:": "☑", +":umbrella:": "☔", +":coffee:": "☕", +":point_up:": "☝", +":relaxed:": "☺", +":aries:": "♈", +":first_place:": "🥇", +":first_place_medal:": "🥇", +":taurus:": "♉", +":fencer:": "🤺", +":fencing:": "🤺", +":gemini:": "♊", +":cancer:": "♋", +":goal:": "🥅", +":goal_net:": "🥅", +":leo:": "♌", +":asterisk_symbol:": "*", +":virgo:": "♍", +":handball:": "🤾", +":libra:": "♎", +":regional_indicator_z:": "🇿", +":water_polo:": "🤽", +":scorpius:": "♏", +":sagittarius:": "♐", +":martial_arts_uniform:": "🥋", +":karate_uniform:": "🥋", +":capricorn:": "♑", +":boxing_glove:": "🥊", +":boxing_gloves:": "🥊", +":aquarius:": "♒", +":wrestlers:": "🤼", +":wrestling:": "🤼", +":pisces:": "♓", +":spades:": "♠", +":clubs:": "♣", +":hearts:": "♥", +":diamonds:": "♦", +":hotsprings:": "♨", +":recycle:": "♻", +":juggling:": "🤹", +":juggler:": "🤹", +":wheelchair:": "♿", +":anchor:": "⚓", +":warning:": "⚠", +":zap:": "⚡", +":white_circle:": "⚪", +":black_circle:": "⚫", +":soccer:": "⚽", +":baseball:": "⚾", +":snowman:": "⛄", +":partly_sunny:": "⛅", +":ophiuchus:": "⛎", +":cartwheel:": "🤸", +":person_doing_cartwheel:": "🤸", +":no_entry:": "⛔", +":church:": "⛪", +":fountain:": "⛲", +":canoe:": "🛶", +":kayak:": "🛶", +":golf:": "⛳", +":sailboat:": "⛵", +":tent:": "⛺", +":fuelpump:": "⛽", +":scissors:": "✂", +":white_check_mark:": "✅", +":airplane:": "✈", +":envelope:": "✉", +":fist:": "✊", +":raised_hand:": "✋", +":v:": "✌", +":pencil2:": "✏", +":black_nib:": "✒", +":heavy_check_mark:": "✔", +":heavy_multiplication_x:": "✖", +":sparkles:": "✨", +":eight_spoked_asterisk:": "✳", +":eight_pointed_black_star:": "✴", +":snowflake:": "❄", +":sparkle:": "❇", +":x:": "❌", +":negative_squared_cross_mark:": "❎", +":question:": "❓", +":grey_question:": "❔", +":motor_scooter:": "🛵", +":motorbike:": "🛵", +":grey_exclamation:": "❕", +":exclamation:": "❗", +":heart:": "❤", +":heavy_plus_sign:": "➕", +":heavy_minus_sign:": "➖", +":heavy_division_sign:": "➗", +":arrow_right:": "➡", +":curly_loop:": "➰", +":arrow_heading_up:": "⤴", +":arrow_heading_down:": "⤵", +":arrow_left:": "⬅", +":arrow_up:": "⬆", +":scooter:": "🛴", +":arrow_down:": "⬇", +":black_large_square:": "⬛", +":white_large_square:": "⬜", +":star:": "⭐", +":o:": "⭕", +":wavy_dash:": "〰", +":part_alternation_mark:": "〽", +":congratulations:": "㊗", +":shopping_cart:": "🛒", +":shopping_trolley:": "🛒", +":secret:": "㊙", +":mahjong:": "🀄", +":black_joker:": "🃏", +":a:": "🅰", +":b:": "🅱", +":o2:": "🅾", +":parking:": "🅿", +":octagonal_sign:": "🛑", +":stop_sign:": "🛑", +":ab:": "🆎", +":cl:": "🆑", +":regional_indicator_y:": "🇾", +":cool:": "🆒", +":free:": "🆓", +":id:": "🆔", +":new:": "🆕", +":ng:": "🆖", +":ok:": "🆗", +":sos:": "🆘", +":spoon:": "🥄", +":up:": "🆙", +":vs:": "🆚", +":flag_cn:": "🇨🇳", +":cn:": "🇨🇳", +":flag_de:": "🇩🇪", +":de:": "🇩🇪", +":flag_es:": "🇪🇸", +":es:": "🇪🇸", +":flag_fr:": "🇫🇷", +":fr:": "🇫🇷", +":flag_gb:": "🇬🇧", +":gb:": "🇬🇧", +":champagne_glass:": "🥂", +":clinking_glass:": "🥂", +":tumbler_glass:": "🥃", +":whisky:": "🥃", +":flag_it:": "🇮🇹", +":it:": "🇮🇹", +":flag_jp:": "🇯🇵", +":jp:": "🇯🇵", +":flag_kr:": "🇰🇷", +":kr:": "🇰🇷", +":flag_us:": "🇺🇸", +":us:": "🇺🇸", +":flag_ru:": "🇷🇺", +":ru:": "🇷🇺", +":koko:": "🈁", +":sa:": "🈂", +":u7121:": "🈚", +":u6307:": "🈯", +":stuffed_flatbread:": "🥙", +":stuffed_pita:": "🥙", +":u7981:": "🈲", +":u7a7a:": "🈳", +":u5408:": "🈴", +":u6e80:": "🈵", +":u6709:": "🈶", +":shallow_pan_of_food:": "🥘", +":paella:": "🥘", +":u6708:": "🈷", +":u7533:": "🈸", +":u5272:": "🈹", +":salad:": "🥗", +":green_salad:": "🥗", +":u55b6:": "🈺", +":ideograph_advantage:": "🉐", +":accept:": "🉑", +":cyclone:": "🌀", +":french_bread:": "🥖", +":baguette_bread:": "🥖", +":foggy:": "🌁", +":closed_umbrella:": "🌂", +":night_with_stars:": "🌃", +":sunrise_over_mountains:": "🌄", +":sunrise:": "🌅", +":city_dusk:": "🌆", +":carrot:": "🥕", +":city_sunset:": "🌇", +":city_sunrise:": "🌇", +":rainbow:": "🌈", +":potato:": "🥔", +":bridge_at_night:": "🌉", +":ocean:": "🌊", +":volcano:": "🌋", +":milky_way:": "🌌", +":earth_asia:": "🌏", +":new_moon:": "🌑", +":bacon:": "🥓", +":first_quarter_moon:": "🌓", +":waxing_gibbous_moon:": "🌔", +":full_moon:": "🌕", +":crescent_moon:": "🌙", +":first_quarter_moon_with_face:": "🌛", +":star2:": "🌟", +":cucumber:": "🥒", +":stars:": "🌠", +":chestnut:": "🌰", +":avocado:": "🥑", +":seedling:": "🌱", +":palm_tree:": "🌴", +":cactus:": "🌵", +":tulip:": "🌷", +":cherry_blossom:": "🌸", +":rose:": "🌹", +":hibiscus:": "🌺", +":sunflower:": "🌻", +":blossom:": "🌼", +":corn:": "🌽", +":croissant:": "🥐", +":ear_of_rice:": "🌾", +":herb:": "🌿", +":four_leaf_clover:": "🍀", +":maple_leaf:": "🍁", +":fallen_leaf:": "🍂", +":leaves:": "🍃", +":mushroom:": "🍄", +":tomato:": "🍅", +":eggplant:": "🍆", +":grapes:": "🍇", +":melon:": "🍈", +":watermelon:": "🍉", +":tangerine:": "🍊", +":wilted_rose:": "🥀", +":wilted_flower:": "🥀", +":banana:": "🍌", +":pineapple:": "🍍", +":apple:": "🍎", +":green_apple:": "🍏", +":peach:": "🍑", +":cherries:": "🍒", +":strawberry:": "🍓", +":rhino:": "🦏", +":rhinoceros:": "🦏", +":hamburger:": "🍔", +":pizza:": "🍕", +":meat_on_bone:": "🍖", +":lizard:": "🦎", +":poultry_leg:": "🍗", +":rice_cracker:": "🍘", +":rice_ball:": "🍙", +":gorilla:": "🦍", +":rice:": "🍚", +":curry:": "🍛", +":deer:": "🦌", +":ramen:": "🍜", +":spaghetti:": "🍝", +":bread:": "🍞", +":fries:": "🍟", +":butterfly:": "🦋", +":sweet_potato:": "🍠", +":dango:": "🍡", +":fox:": "🦊", +":fox_face:": "🦊", +":oden:": "🍢", +":sushi:": "🍣", +":owl:": "🦉", +":fried_shrimp:": "🍤", +":fish_cake:": "🍥", +":shark:": "🦈", +":icecream:": "🍦", +":bat:": "🦇", +":shaved_ice:": "🍧", +":regional_indicator_x:": "🇽", +":ice_cream:": "🍨", +":duck:": "🦆", +":doughnut:": "🍩", +":eagle:": "🦅", +":cookie:": "🍪", +":black_heart:": "🖤", +":chocolate_bar:": "🍫", +":candy:": "🍬", +":lollipop:": "🍭", +":custard:": "🍮", +":pudding:": "🍮", +":flan:": "🍮", +":honey_pot:": "🍯", +":fingers_crossed:": "🤞", +":hand_with_index_and_middle_finger_crossed:": "🤞", +":cake:": "🍰", +":bento:": "🍱", +":stew:": "🍲", +":handshake:": "🤝", +":shaking_hands:": "🤝", +":cooking:": "🍳", +":fork_and_knife:": "🍴", +":tea:": "🍵", +":sake:": "🍶", +":wine_glass:": "🍷", +":cocktail:": "🍸", +":tropical_drink:": "🍹", +":beer:": "🍺", +":beers:": "🍻", +":ribbon:": "🎀", +":gift:": "🎁", +":birthday:": "🎂", +":jack_o_lantern:": "🎃", +":left_facing_fist:": "🤛", +":left_fist:": "🤛", +":right_facing_fist:": "🤜", +":right_fist:": "🤜", +":christmas_tree:": "🎄", +":santa:": "🎅", +":fireworks:": "🎆", +":raised_back_of_hand:": "🤚", +":back_of_hand:": "🤚", +":sparkler:": "🎇", +":balloon:": "🎈", +":tada:": "🎉", +":confetti_ball:": "🎊", +":tanabata_tree:": "🎋", +":crossed_flags:": "🎌", +":call_me:": "🤙", +":call_me_hand:": "🤙", +":bamboo:": "🎍", +":man_dancing:": "🕺", +":male_dancer:": "🕺", +":dolls:": "🎎", +":selfie:": "🤳", +":flags:": "🎏", +":pregnant_woman:": "🤰", +":expecting_woman:": "🤰", +":wind_chime:": "🎐", +":face_palm:": "🤦", +":facepalm:": "🤦", +":shrug:": "🤷", +":rice_scene:": "🎑", +":school_satchel:": "🎒", +":mortar_board:": "🎓", +":carousel_horse:": "🎠", +":ferris_wheel:": "🎡", +":roller_coaster:": "🎢", +":fishing_pole_and_fish:": "🎣", +":microphone:": "🎤", +":pound_symbol:": "#", +":movie_camera:": "🎥", +":cinema:": "🎦", +":headphones:": "🎧", +":mrs_claus:": "🤶", +":mother_christmas:": "🤶", +":art:": "🎨", +":man_in_tuxedo:": "🤵", +":tophat:": "🎩", +":circus_tent:": "🎪", +":prince:": "🤴", +":ticket:": "🎫", +":clapper:": "🎬", +":performing_arts:": "🎭", +":sneezing_face:": "🤧", +":sneeze:": "🤧", +":video_game:": "🎮", +":dart:": "🎯", +":slot_machine:": "🎰", +":8ball:": "🎱", +":game_die:": "🎲", +":bowling:": "🎳", +":flower_playing_cards:": "🎴", +":lying_face:": "🤥", +":liar:": "🤥", +":musical_note:": "🎵", +":notes:": "🎶", +":saxophone:": "🎷", +":drooling_face:": "🤤", +":drool:": "🤤", +":guitar:": "🎸", +":musical_keyboard:": "🎹", +":trumpet:": "🎺", +":rofl:": "🤣", +":rolling_on_the_floor_laughing:": "🤣", +":violin:": "🎻", +":musical_score:": "🎼", +":running_shirt_with_sash:": "🎽", +":nauseated_face:": "🤢", +":sick:": "🤢", +":tennis:": "🎾", +":ski:": "🎿", +":basketball:": "🏀", +":checkered_flag:": "🏁", +":clown:": "🤡", +":clown_face:": "🤡", +":snowboarder:": "🏂", +":runner:": "🏃", +":surfer:": "🏄", +":trophy:": "🏆", +":football:": "🏈", +":swimmer:": "🏊", +":house:": "🏠", +":house_with_garden:": "🏡", +":office:": "🏢", +":post_office:": "🏣", +":hospital:": "🏥", +":bank:": "🏦", +":atm:": "🏧", +":hotel:": "🏨", +":love_hotel:": "🏩", +":convenience_store:": "🏪", +":school:": "🏫", +":department_store:": "🏬", +":cowboy:": "🤠", +":face_with_cowboy_hat:": "🤠", +":factory:": "🏭", +":izakaya_lantern:": "🏮", +":japanese_castle:": "🏯", +":european_castle:": "🏰", +":snail:": "🐌", +":snake:": "🐍", +":racehorse:": "🐎", +":sheep:": "🐑", +":monkey:": "🐒", +":chicken:": "🐔", +":boar:": "🐗", +":elephant:": "🐘", +":octopus:": "🐙", +":shell:": "🐚", +":prince_tone1:": "🤴🏻", +":bug:": "🐛", +":ant:": "🐜", +":bee:": "🐝", +":beetle:": "🐞", +":fish:": "🐟", +":tropical_fish:": "🐠", +":blowfish:": "🐡", +":turtle:": "🐢", +":hatching_chick:": "🐣", +":baby_chick:": "🐤", +":hatched_chick:": "🐥", +":bird:": "🐦", +":penguin:": "🐧", +":koala:": "🐨", +":poodle:": "🐩", +":camel:": "🐫", +":dolphin:": "🐬", +":mouse:": "🐭", +":cow:": "🐮", +":tiger:": "🐯", +":rabbit:": "🐰", +":cat:": "🐱", +":dragon_face:": "🐲", +":whale:": "🐳", +":horse:": "🐴", +":monkey_face:": "🐵", +":dog:": "🐶", +":pig:": "🐷", +":frog:": "🐸", +":hamster:": "🐹", +":wolf:": "🐺", +":bear:": "🐻", +":panda_face:": "🐼", +":pig_nose:": "🐽", +":feet:": "🐾", +":paw_prints:": "🐾", +":prince_tone2:": "🤴🏼", +":eyes:": "👀", +":ear:": "👂", +":nose:": "👃", +":lips:": "👄", +":tongue:": "👅", +":prince_tone3:": "🤴🏽", +":point_up_2:": "👆", +":point_down:": "👇", +":point_left:": "👈", +":point_right:": "👉", +":punch:": "👊", +":wave:": "👋", +":ok_hand:": "👌", +":thumbsup:": "👍", +":+1:": "👍", +":thumbup:": "👍", +":thumbsdown:": "👎", +":1:": "👎", +":thumbdown:": "👎", +":clap:": "👏", +":open_hands:": "👐", +":crown:": "👑", +":womans_hat:": "👒", +":eyeglasses:": "👓", +":necktie:": "👔", +":shirt:": "👕", +":prince_tone4:": "🤴🏾", +":jeans:": "👖", +":dress:": "👗", +":kimono:": "👘", +":prince_tone5:": "🤴🏿", +":bikini:": "👙", +":womans_clothes:": "👚", +":purse:": "👛", +":handbag:": "👜", +":pouch:": "👝", +":mans_shoe:": "👞", +":athletic_shoe:": "👟", +":high_heel:": "👠", +":sandal:": "👡", +":boot:": "👢", +":footprints:": "👣", +":bust_in_silhouette:": "👤", +":mrs_claus_tone1:": "🤶🏻", +":mother_christmas_tone1:": "🤶🏻", +":boy:": "👦", +":girl:": "👧", +":man:": "👨", +":woman:": "👩", +":family:": "👪", +":couple:": "👫", +":cop:": "👮", +":dancers:": "👯", +":bride_with_veil:": "👰", +":person_with_blond_hair:": "👱", +":man_with_gua_pi_mao:": "👲", +":man_with_turban:": "👳", +":older_man:": "👴", +":older_woman:": "👵", +":grandma:": "👵", +":baby:": "👶", +":construction_worker:": "👷", +":princess:": "👸", +":japanese_ogre:": "👹", +":mrs_claus_tone2:": "🤶🏼", +":mother_christmas_tone2:": "🤶🏼", +":japanese_goblin:": "👺", +":ghost:": "👻", +":angel:": "👼", +":alien:": "👽", +":space_invader:": "👾", +":mrs_claus_tone3:": "🤶🏽", +":mother_christmas_tone3:": "🤶🏽", +":imp:": "👿", +":skull:": "💀", +":skeleton:": "💀", +":card_index:": "📇", +":information_desk_person:": "💁", +":guardsman:": "💂", +":dancer:": "💃", +":lipstick:": "💄", +":nail_care:": "💅", +":ledger:": "📒", +":massage:": "💆", +":notebook:": "📓", +":haircut:": "💇", +":notebook_with_decorative_cover:": "📔", +":barber:": "💈", +":closed_book:": "📕", +":syringe:": "💉", +":book:": "📖", +":pill:": "💊", +":green_book:": "📗", +":kiss:": "💋", +":blue_book:": "📘", +":love_letter:": "💌", +":orange_book:": "📙", +":ring:": "💍", +":books:": "📚", +":gem:": "💎", +":mrs_claus_tone4:": "🤶🏾", +":mother_christmas_tone4:": "🤶🏾", +":name_badge:": "📛", +":couplekiss:": "💏", +":scroll:": "📜", +":bouquet:": "💐", +":pencil:": "📝", +":mrs_claus_tone5:": "🤶🏿", +":mother_christmas_tone5:": "🤶🏿", +":couple_with_heart:": "💑", +":telephone_receiver:": "📞", +":wedding:": "💒", +":pager:": "📟", +":fax:": "📠", +":heartbeat:": "💓", +":satellite:": "📡", +":loudspeaker:": "📢", +":man_in_tuxedo_tone1:": "🤵🏻", +":tuxedo_tone1:": "🤵🏻", +":broken_heart:": "💔", +":mega:": "📣", +":outbox_tray:": "📤", +":two_hearts:": "💕", +":inbox_tray:": "📥", +":package:": "📦", +":man_in_tuxedo_tone2:": "🤵🏼", +":tuxedo_tone2:": "🤵🏼", +":sparkling_heart:": "💖", +":email:": "📧", +":incoming_envelope:": "📨", +":heartpulse:": "💗", +":man_in_tuxedo_tone3:": "🤵🏽", +":tuxedo_tone3:": "🤵🏽", +":envelope_with_arrow:": "📩", +":mailbox_closed:": "📪", +":cupid:": "💘", +":mailbox:": "📫", +":man_in_tuxedo_tone4:": "🤵🏾", +":tuxedo_tone4:": "🤵🏾", +":postbox:": "📮", +":blue_heart:": "💙", +":newspaper:": "📰", +":man_in_tuxedo_tone5:": "🤵🏿", +":tuxedo_tone5:": "🤵🏿", +":iphone:": "📱", +":green_heart:": "💚", +":shrug_tone1:": "🤷🏻", +":calling:": "📲", +":vibration_mode:": "📳", +":yellow_heart:": "💛", +":shrug_tone2:": "🤷🏼", +":mobile_phone_off:": "📴", +":signal_strength:": "📶", +":shrug_tone3:": "🤷🏽", +":purple_heart:": "💜", +":shrug_tone4:": "🤷🏾", +":camera:": "📷", +":video_camera:": "📹", +":gift_heart:": "💝", +":tv:": "📺", +":shrug_tone5:": "🤷🏿", +":radio:": "📻", +":revolving_hearts:": "💞", +":vhs:": "📼", +":face_palm_tone1:": "🤦🏻", +":facepalm_tone1:": "🤦🏻", +":arrows_clockwise:": "🔃", +":heart_decoration:": "💟", +":loud_sound:": "🔊", +":battery:": "🔋", +":diamond_shape_with_a_dot_inside:": "💠", +":electric_plug:": "🔌", +":mag:": "🔍", +":face_palm_tone2:": "🤦🏼", +":facepalm_tone2:": "🤦🏼", +":bulb:": "💡", +":mag_right:": "🔎", +":lock_with_ink_pen:": "🔏", +":anger:": "💢", +":closed_lock_with_key:": "🔐", +":key:": "🔑", +":bomb:": "💣", +":lock:": "🔒", +":unlock:": "🔓", +":zzz:": "💤", +":bell:": "🔔", +":bookmark:": "🔖", +":boom:": "💥", +":face_palm_tone3:": "🤦🏽", +":facepalm_tone3:": "🤦🏽", +":link:": "🔗", +":radio_button:": "🔘", +":sweat_drops:": "💦", +":back:": "🔙", +":end:": "🔚", +":droplet:": "💧", +":face_palm_tone4:": "🤦🏾", +":facepalm_tone4:": "🤦🏾", +":on:": "🔛", +":soon:": "🔜", +":dash:": "💨", +":top:": "🔝", +":underage:": "🔞", +":poop:": "💩", +":shit:": "💩", + ":hankey:": "💩", +":poo:": "💩", +":keycap_ten:": "🔟", +":muscle:": "💪", +":capital_abcd:": "🔠", +":abcd:": "🔡", +":dizzy:": "💫", +":face_palm_tone5:": "🤦🏿", +":facepalm_tone5:": "🤦🏿", +":1234:": "🔢", +":symbols:": "🔣", +":speech_balloon:": "💬", +":abc:": "🔤", +":fire:": "🔥", +":flame:": "🔥", +":white_flower:": "💮", +":flashlight:": "🔦", +":wrench:": "🔧", +":100:": "💯", +":hammer:": "🔨", +":nut_and_bolt:": "🔩", +":moneybag:": "💰", +":knife:": "🔪", +":gun:": "🔫", +":currency_exchange:": "💱", +":pregnant_woman_tone1:": "🤰🏻", +":expecting_woman_tone1:": "🤰🏻", +":crystal_ball:": "🔮", +":heavy_dollar_sign:": "💲", +":six_pointed_star:": "🔯", +":credit_card:": "💳", +":beginner:": "🔰", +":trident:": "🔱", +":yen:": "💴", +":pregnant_woman_tone2:": "🤰🏼", +":expecting_woman_tone2:": "🤰🏼", +":black_square_button:": "🔲", +":white_square_button:": "🔳", +":dollar:": "💵", +":red_circle:": "🔴", +":blue_circle:": "🔵", +":money_with_wings:": "💸", +":large_orange_diamond:": "🔶", +":large_blue_diamond:": "🔷", +":chart:": "💹", +":pregnant_woman_tone3:": "🤰🏽", +":expecting_woman_tone3:": "🤰🏽", +":small_orange_diamond:": "🔸", +":small_blue_diamond:": "🔹", +":seat:": "💺", +":small_red_triangle:": "🔺", +":small_red_triangle_down:": "🔻", +":computer:": "💻", +":arrow_up_small:": "🔼", +":briefcase:": "💼", +":arrow_down_small:": "🔽", +":clock1:": "🕐", +":minidisc:": "💽", +":clock2:": "🕑", +":floppy_disk:": "💾", +":pregnant_woman_tone4:": "🤰🏾", +":expecting_woman_tone4:": "🤰🏾", +":clock3:": "🕒", +":cd:": "💿", +":clock4:": "🕓", +":dvd:": "📀", +":clock5:": "🕔", +":clock6:": "🕕", +":file_folder:": "📁", +":clock7:": "🕖", +":clock8:": "🕗", +":open_file_folder:": "📂", +":clock9:": "🕘", +":clock10:": "🕙", +":page_with_curl:": "📃", +":clock11:": "🕚", +":clock12:": "🕛", +":page_facing_up:": "📄", +":mount_fuji:": "🗻", +":tokyo_tower:": "🗼", +":date:": "📅", +":statue_of_liberty:": "🗽", +":japan:": "🗾", +":calendar:": "📆", +":moyai:": "🗿", +":grin:": "😁", +":joy:": "😂", +":smiley:": "😃", +":chart_with_upwards_trend:": "📈", +":smile:": "😄", +":sweat_smile:": "😅", +":chart_with_downwards_trend:": "📉", +":laughing:": "😆", +":satisfied:": "😆", +":wink:": "😉", +":bar_chart:": "📊", +":blush:": "😊", +":yum:": "😋", +":clipboard:": "📋", +":relieved:": "😌", +":heart_eyes:": "😍", +":pushpin:": "📌", +":smirk:": "😏", +":unamused:": "😒", +":round_pushpin:": "📍", +":sweat:": "😓", +":pensive:": "😔", +":paperclip:": "📎", +":confounded:": "😖", +":kissing_heart:": "😘", +":pregnant_woman_tone5:": "🤰🏿", +":expecting_woman_tone5:": "🤰🏿", +":straight_ruler:": "📏", +":kissing_closed_eyes:": "😚", +":stuck_out_tongue_winking_eye:": "😜", +":triangular_ruler:": "📐", +":stuck_out_tongue_closed_eyes:": "😝", +":disappointed:": "😞", +":bookmark_tabs:": "📑", +":angry:": "😠", +":rage:": "😡", +":cry:": "😢", +":persevere:": "😣", +":triumph:": "😤", +":disappointed_relieved:": "😥", +":fearful:": "😨", +":weary:": "😩", +":sleepy:": "😪", +":tired_face:": "😫", +":sob:": "😭", +":cold_sweat:": "😰", +":scream:": "😱", +":astonished:": "😲", +":flushed:": "😳", +":dizzy_face:": "😵", +":mask:": "😷", +":smile_cat:": "😸", +":joy_cat:": "😹", +":smiley_cat:": "😺", +":heart_eyes_cat:": "😻", +":smirk_cat:": "😼", +":kissing_cat:": "😽", +":pouting_cat:": "😾", +":crying_cat_face:": "😿", +":scream_cat:": "🙀", +":no_good:": "🙅", +":ok_woman:": "🙆", +":bow:": "🙇", +":see_no_evil:": "🙈", +":man_dancing_tone1:": "🕺🏻", +":male_dancer_tone1:": "🕺🏻", +":hear_no_evil:": "🙉", +":speak_no_evil:": "🙊", +":man_dancing_tone2:": "🕺🏼", +":male_dancer_tone2:": "🕺🏼", +":raising_hand:": "🙋", +":raised_hands:": "🙌", +":person_frowning:": "🙍", +":person_with_pouting_face:": "🙎", +":pray:": "🙏", +":rocket:": "🚀", +":railway_car:": "🚃", +":bullettrain_side:": "🚄", +":bullettrain_front:": "🚅", +":metro:": "🚇", +":station:": "🚉", +":bus:": "🚌", +":busstop:": "🚏", +":ambulance:": "🚑", +":fire_engine:": "🚒", +":police_car:": "🚓", +":taxi:": "🚕", +":red_car:": "🚗", +":blue_car:": "🚙", +":truck:": "🚚", +":ship:": "🚢", +":speedboat:": "🚤", +":traffic_light:": "🚥", +":construction:": "🚧", +":rotating_light:": "🚨", +":triangular_flag_on_post:": "🚩", +":door:": "🚪", +":man_dancing_tone3:": "🕺🏽", +":male_dancer_tone3:": "🕺🏽", +":no_entry_sign:": "🚫", +":smoking:": "🚬", +":no_smoking:": "🚭", +":bike:": "🚲", +":walking:": "🚶", +":mens:": "🚹", +":womens:": "🚺", +":man_dancing_tone4:": "🕺🏾", +":male_dancer_tone4:": "🕺🏾", +":restroom:": "🚻", +":baby_symbol:": "🚼", +":man_dancing_tone5:": "🕺🏿", +":male_dancer_tone5:": "🕺🏿", +":toilet:": "🚽", +":wc:": "🚾", +":selfie_tone1:": "🤳🏻", +":bath:": "🛀", +":metal:": "🤘", +":sign_of_the_horns:": "🤘", +":grinning:": "😀", +":innocent:": "😇", +":smiling_imp:": "😈", +":sunglasses:": "😎", +":neutral_face:": "😐", +":expressionless:": "😑", +":confused:": "😕", +":kissing:": "😗", +":selfie_tone2:": "🤳🏼", +":kissing_smiling_eyes:": "😙", +":stuck_out_tongue:": "😛", +":worried:": "😟", +":frowning:": "😦", +":anguished:": "😧", +":grimacing:": "😬", +":open_mouth:": "😮", +":hushed:": "😯", +":sleeping:": "😴", +":no_mouth:": "😶", +":helicopter:": "🚁", +":steam_locomotive:": "🚂", +":train2:": "🚆", +":light_rail:": "🚈", +":tram:": "🚊", +":oncoming_bus:": "🚍", +":trolleybus:": "🚎", +":minibus:": "🚐", +":oncoming_police_car:": "🚔", +":oncoming_taxi:": "🚖", +":oncoming_automobile:": "🚘", +":articulated_lorry:": "🚛", +":selfie_tone3:": "🤳🏽", +":tractor:": "🚜", +":monorail:": "🚝", +":mountain_railway:": "🚞", +":suspension_railway:": "🚟", +":mountain_cableway:": "🚠", +":aerial_tramway:": "🚡", +":rowboat:": "🚣", +":vertical_traffic_light:": "🚦", +":selfie_tone4:": "🤳🏾", +":put_litter_in_its_place:": "🚮", +":do_not_litter:": "🚯", +":selfie_tone5:": "🤳🏿", +":potable_water:": "🚰", +":nonpotable_water:": "🚱", +":no_bicycles:": "🚳", +":fingers_crossed_tone1:": "🤞🏻", +":hand_with_index_and_middle_fingers_crossed_tone1:": "🤞🏻", +":bicyclist:": "🚴", +":mountain_bicyclist:": "🚵", +":no_pedestrians:": "🚷", +":children_crossing:": "🚸", +":shower:": "🚿", +":bathtub:": "🛁", +":passport_control:": "🛂", +":fingers_crossed_tone2:": "🤞🏼", +":hand_with_index_and_middle_fingers_crossed_tone2:": "🤞🏼", +":customs:": "🛃", +":baggage_claim:": "🛄", +":fingers_crossed_tone3:": "🤞🏽", +":hand_with_index_and_middle_fingers_crossed_tone3:": "🤞🏽", +":left_luggage:": "🛅", +":earth_africa:": "🌍", +":earth_americas:": "🌎", +":globe_with_meridians:": "🌐", +":waxing_crescent_moon:": "🌒", +":waning_gibbous_moon:": "🌖", +":last_quarter_moon:": "🌗", +":waning_crescent_moon:": "🌘", +":new_moon_with_face:": "🌚", +":last_quarter_moon_with_face:": "🌜", +":full_moon_with_face:": "🌝", +":sun_with_face:": "🌞", +":evergreen_tree:": "🌲", +":deciduous_tree:": "🌳", +":lemon:": "🍋", +":fingers_crossed_tone4:": "🤞🏾", +":hand_with_index_and_middle_fingers_crossed_tone4:": "🤞🏾", +":pear:": "🍐", +":baby_bottle:": "🍼", +":horse_racing:": "🏇", +":rugby_football:": "🏉", +":european_post_office:": "🏤", +":rat:": "🐀", +":mouse2:": "🐁", +":ox:": "🐂", +":water_buffalo:": "🐃", +":cow2:": "🐄", +":tiger2:": "🐅", +":leopard:": "🐆", +":rabbit2:": "🐇", +":cat2:": "🐈", +":dragon:": "🐉", +":crocodile:": "🐊", +":whale2:": "🐋", +":ram:": "🐏", +":goat:": "🐐", +":rooster:": "🐓", +":dog2:": "🐕", +":pig2:": "🐖", +":fingers_crossed_tone5:": "🤞🏿", +":hand_with_index_and_middle_fingers_crossed_tone5:": "🤞🏿", +":dromedary_camel:": "🐪", +":busts_in_silhouette:": "👥", +":two_men_holding_hands:": "👬", +":two_women_holding_hands:": "👭", +":thought_balloon:": "💭", +":euro:": "💶", +":call_me_tone1:": "🤙🏻", +":call_me_hand_tone1:": "🤙🏻", +":pound:": "💷", +":mailbox_with_mail:": "📬", +":mailbox_with_no_mail:": "📭", +":call_me_tone2:": "🤙🏼", +":call_me_hand_tone2:": "🤙🏼", +":postal_horn:": "📯", +":no_mobile_phones:": "📵", +":twisted_rightwards_arrows:": "🔀", +":repeat:": "🔁", +":repeat_one:": "🔂", +":arrows_counterclockwise:": "🔄", +":call_me_tone3:": "🤙🏽", +":call_me_hand_tone3:": "🤙🏽", +":low_brightness:": "🔅", +":high_brightness:": "🔆", +":mute:": "🔇", +":sound:": "🔉", +":no_bell:": "🔕", +":microscope:": "🔬", +":telescope:": "🔭", +":clock130:": "🕜", +":clock230:": "🕝", +":clock330:": "🕞", +":clock430:": "🕟", +":clock530:": "🕠", +":clock630:": "🕡", +":clock730:": "🕢", +":clock830:": "🕣", +":clock930:": "🕤", +":clock1030:": "🕥", +":clock1130:": "🕦", +":clock1230:": "🕧", +":speaker:": "🔈", +":train:": "🚋", +":loop:": "➿", +":flag_af:": "🇦🇫", +":af:": "🇦🇫", +":flag_al:": "🇦🇱", +":al:": "🇦🇱", +":flag_dz:": "🇩🇿", +":dz:": "🇩🇿", +":flag_ad:": "🇦🇩", +":ad:": "🇦🇩", +":flag_ao:": "🇦🇴", +":ao:": "🇦🇴", +":flag_ag:": "🇦🇬", +":ag:": "🇦🇬", +":flag_ar:": "🇦🇷", +":ar:": "🇦🇷", +":flag_am:": "🇦🇲", +":am:": "🇦🇲", +":flag_au:": "🇦🇺", +":au:": "🇦🇺", +":flag_at:": "🇦🇹", +":at:": "🇦🇹", +":flag_az:": "🇦🇿", +":az:": "🇦🇿", +":flag_bs:": "🇧🇸", +":bs:": "🇧🇸", +":flag_bh:": "🇧🇭", +":bh:": "🇧🇭", +":flag_bd:": "🇧🇩", +":bd:": "🇧🇩", +":flag_bb:": "🇧🇧", +":bb:": "🇧🇧", +":flag_by:": "🇧🇾", +":by:": "🇧🇾", +":flag_be:": "🇧🇪", +":be:": "🇧🇪", +":flag_bz:": "🇧🇿", +":bz:": "🇧🇿", +":flag_bj:": "🇧🇯", +":bj:": "🇧🇯", +":flag_bt:": "🇧🇹", +":bt:": "🇧🇹", +":flag_bo:": "🇧🇴", +":bo:": "🇧🇴", +":flag_ba:": "🇧🇦", +":ba:": "🇧🇦", +":flag_bw:": "🇧🇼", +":bw:": "🇧🇼", +":flag_br:": "🇧🇷", +":br:": "🇧🇷", +":flag_bn:": "🇧🇳", +":bn:": "🇧🇳", +":flag_bg:": "🇧🇬", +":bg:": "🇧🇬", +":flag_bf:": "🇧🇫", +":bf:": "🇧🇫", +":flag_bi:": "🇧🇮", +":bi:": "🇧🇮", +":flag_kh:": "🇰🇭", +":kh:": "🇰🇭", +":flag_cm:": "🇨🇲", +":cm:": "🇨🇲", +":flag_ca:": "🇨🇦", +":ca:": "🇨🇦", +":flag_cv:": "🇨🇻", +":cv:": "🇨🇻", +":call_me_tone4:": "🤙🏾", +":call_me_hand_tone4:": "🤙🏾", +":flag_cf:": "🇨🇫", +":cf:": "🇨🇫", +":flag_td:": "🇹🇩", +":td:": "🇹🇩", +":flag_cl:": "🇨🇱", +":chile:": "🇨🇱", +":flag_co:": "🇨🇴", +":co:": "🇨🇴", +":flag_km:": "🇰🇲", +":km:": "🇰🇲", +":flag_cr:": "🇨🇷", +":cr:": "🇨🇷", +":flag_ci:": "🇨🇮", +":ci:": "🇨🇮", +":flag_hr:": "🇭🇷", +":hr:": "🇭🇷", +":flag_cu:": "🇨🇺", +":cu:": "🇨🇺", +":flag_cy:": "🇨🇾", +":cy:": "🇨🇾", +":flag_cz:": "🇨🇿", +":cz:": "🇨🇿", +":call_me_tone5:": "🤙🏿", +":call_me_hand_tone5:": "🤙🏿", +":flag_cd:": "🇨🇩", +":congo:": "🇨🇩", +":left_facing_fist_tone1:": "🤛🏻", +":left_fist_tone1:": "🤛🏻", +":flag_dk:": "🇩🇰", +":dk:": "🇩🇰", +":flag_dj:": "🇩🇯", +":dj:": "🇩🇯", +":flag_dm:": "🇩🇲", +":dm:": "🇩🇲", +":flag_do:": "🇩🇴", +":do:": "🇩🇴", +":flag_tl:": "🇹🇱", +":tl:": "🇹🇱", +":flag_ec:": "🇪🇨", +":ec:": "🇪🇨", +":flag_eg:": "🇪🇬", +":eg:": "🇪🇬", +":flag_sv:": "🇸🇻", +":sv:": "🇸🇻", +":flag_gq:": "🇬🇶", +":gq:": "🇬🇶", +":flag_er:": "🇪🇷", +":er:": "🇪🇷", +":flag_ee:": "🇪🇪", +":ee:": "🇪🇪", +":flag_et:": "🇪🇹", +":et:": "🇪🇹", +":left_facing_fist_tone2:": "🤛🏼", +":left_fist_tone2:": "🤛🏼", +":flag_fj:": "🇫🇯", +":fj:": "🇫🇯", +":flag_fi:": "🇫🇮", +":fi:": "🇫🇮", +":flag_ga:": "🇬🇦", +":ga:": "🇬🇦", +":flag_gm:": "🇬🇲", +":gm:": "🇬🇲", +":flag_ge:": "🇬🇪", +":ge:": "🇬🇪", +":flag_gh:": "🇬🇭", +":gh:": "🇬🇭", +":flag_gr:": "🇬🇷", +":gr:": "🇬🇷", +":flag_gd:": "🇬🇩", +":gd:": "🇬🇩", +":flag_gt:": "🇬🇹", +":gt:": "🇬🇹", +":flag_gn:": "🇬🇳", +":gn:": "🇬🇳", +":flag_gw:": "🇬🇼", +":gw:": "🇬🇼", +":flag_gy:": "🇬🇾", +":gy:": "🇬🇾", +":flag_ht:": "🇭🇹", +":ht:": "🇭🇹", +":flag_hn:": "🇭🇳", +":hn:": "🇭🇳", +":flag_hu:": "🇭🇺", +":hu:": "🇭🇺", +":flag_is:": "🇮🇸", +":is:": "🇮🇸", +":flag_in:": "🇮🇳", +":in:": "🇮🇳", +":flag_id:": "🇮🇩", +":indonesia:": "🇮🇩", +":flag_ir:": "🇮🇷", +":ir:": "🇮🇷", +":flag_iq:": "🇮🇶", +":iq:": "🇮🇶", +":flag_ie:": "🇮🇪", +":ie:": "🇮🇪", +":flag_il:": "🇮🇱", +":il:": "🇮🇱", +":flag_jm:": "🇯🇲", +":jm:": "🇯🇲", +":flag_jo:": "🇯🇴", +":jo:": "🇯🇴", +":flag_kz:": "🇰🇿", +":kz:": "🇰🇿", +":flag_ke:": "🇰🇪", +":ke:": "🇰🇪", +":flag_ki:": "🇰🇮", +":ki:": "🇰🇮", +":flag_xk:": "🇽🇰", +":xk:": "🇽🇰", +":flag_kw:": "🇰🇼", +":kw:": "🇰🇼", +":flag_kg:": "🇰🇬", +":kg:": "🇰🇬", +":left_facing_fist_tone3:": "🤛🏽", +":left_fist_tone3:": "🤛🏽", +":flag_la:": "🇱🇦", +":la:": "🇱🇦", +":flag_lv:": "🇱🇻", +":lv:": "🇱🇻", +":flag_lb:": "🇱🇧", +":lb:": "🇱🇧", +":flag_ls:": "🇱🇸", +":ls:": "🇱🇸", +":flag_lr:": "🇱🇷", +":lr:": "🇱🇷", +":flag_ly:": "🇱🇾", +":ly:": "🇱🇾", +":flag_li:": "🇱🇮", +":li:": "🇱🇮", +":flag_lt:": "🇱🇹", +":lt:": "🇱🇹", +":flag_lu:": "🇱🇺", +":lu:": "🇱🇺", +":flag_mk:": "🇲🇰", +":mk:": "🇲🇰", +":flag_mg:": "🇲🇬", +":mg:": "🇲🇬", +":flag_mw:": "🇲🇼", +":mw:": "🇲🇼", +":flag_my:": "🇲🇾", +":my:": "🇲🇾", +":flag_mv:": "🇲🇻", +":mv:": "🇲🇻", +":flag_ml:": "🇲🇱", +":ml:": "🇲🇱", +":flag_mt:": "🇲🇹", +":mt:": "🇲🇹", +":flag_mh:": "🇲🇭", +":mh:": "🇲🇭", +":flag_mr:": "🇲🇷", +":mr:": "🇲🇷", +":flag_mu:": "🇲🇺", +":mu:": "🇲🇺", +":flag_mx:": "🇲🇽", +":mx:": "🇲🇽", +":flag_fm:": "🇫🇲", +":fm:": "🇫🇲", +":flag_md:": "🇲🇩", +":md:": "🇲🇩", +":flag_mc:": "🇲🇨", +":mc:": "🇲🇨", +":flag_mn:": "🇲🇳", +":mn:": "🇲🇳", +":flag_me:": "🇲🇪", +":me:": "🇲🇪", +":flag_ma:": "🇲🇦", +":ma:": "🇲🇦", +":flag_mz:": "🇲🇿", +":mz:": "🇲🇿", +":flag_mm:": "🇲🇲", +":mm:": "🇲🇲", +":flag_na:": "🇳🇦", +":na:": "🇳🇦", +":flag_nr:": "🇳🇷", +":nr:": "🇳🇷", +":flag_np:": "🇳🇵", +":np:": "🇳🇵", +":flag_nl:": "🇳🇱", +":nl:": "🇳🇱", +":flag_nz:": "🇳🇿", +":nz:": "🇳🇿", +":flag_ni:": "🇳🇮", +":ni:": "🇳🇮", +":flag_ne:": "🇳🇪", +":ne:": "🇳🇪", +":flag_ng:": "🇳🇬", +":nigeria:": "🇳🇬", +":flag_kp:": "🇰🇵", +":kp:": "🇰🇵", +":flag_no:": "🇳🇴", +":no:": "🇳🇴", +":flag_om:": "🇴🇲", +":om:": "🇴🇲", +":flag_pk:": "🇵🇰", +":pk:": "🇵🇰", +":flag_pw:": "🇵🇼", +":pw:": "🇵🇼", +":flag_pa:": "🇵🇦", +":pa:": "🇵🇦", +":flag_pg:": "🇵🇬", +":pg:": "🇵🇬", +":left_facing_fist_tone4:": "🤛🏾", +":left_fist_tone4:": "🤛🏾", +":flag_py:": "🇵🇾", +":py:": "🇵🇾", +":flag_pe:": "🇵🇪", +":pe:": "🇵🇪", +":flag_ph:": "🇵🇭", +":ph:": "🇵🇭", +":flag_pl:": "🇵🇱", +":pl:": "🇵🇱", +":flag_pt:": "🇵🇹", +":pt:": "🇵🇹", +":flag_qa:": "🇶🇦", +":qa:": "🇶🇦", +":flag_tw:": "🇹🇼", +":tw:": "🇹🇼", +":flag_cg:": "🇨🇬", +":cg:": "🇨🇬", +":flag_ro:": "🇷🇴", +":ro:": "🇷🇴", +":flag_rw:": "🇷🇼", +":rw:": "🇷🇼", +":flag_kn:": "🇰🇳", +":kn:": "🇰🇳", +":flag_lc:": "🇱🇨", +":lc:": "🇱🇨", +":flag_vc:": "🇻🇨", +":vc:": "🇻🇨", +":flag_ws:": "🇼🇸", +":ws:": "🇼🇸", +":flag_sm:": "🇸🇲", +":sm:": "🇸🇲", +":flag_st:": "🇸🇹", +":st:": "🇸🇹", +":flag_sa:": "🇸🇦", +":saudiarabia:": "🇸🇦", +":saudi:": "🇸🇦", +":left_facing_fist_tone5:": "🤛🏿", +":left_fist_tone5:": "🤛🏿", +":flag_sn:": "🇸🇳", +":sn:": "🇸🇳", +":flag_rs:": "🇷🇸", +":rs:": "🇷🇸", +":flag_sc:": "🇸🇨", +":sc:": "🇸🇨", +":flag_sl:": "🇸🇱", +":sl:": "🇸🇱", +":flag_sg:": "🇸🇬", +":sg:": "🇸🇬", +":flag_sk:": "🇸🇰", +":sk:": "🇸🇰", +":flag_si:": "🇸🇮", +":si:": "🇸🇮", +":flag_sb:": "🇸🇧", +":sb:": "🇸🇧", +":flag_so:": "🇸🇴", +":so:": "🇸🇴", +":flag_za:": "🇿🇦", +":za:": "🇿🇦", +":flag_lk:": "🇱🇰", +":lk:": "🇱🇰", +":flag_sd:": "🇸🇩", +":sd:": "🇸🇩", +":flag_sr:": "🇸🇷", +":sr:": "🇸🇷", +":flag_sz:": "🇸🇿", +":sz:": "🇸🇿", +":flag_se:": "🇸🇪", +":se:": "🇸🇪", +":flag_ch:": "🇨🇭", +":ch:": "🇨🇭", +":flag_sy:": "🇸🇾", +":sy:": "🇸🇾", +":flag_tj:": "🇹🇯", +":tj:": "🇹🇯", +":flag_tz:": "🇹🇿", +":tz:": "🇹🇿", +":flag_th:": "🇹🇭", +":th:": "🇹🇭", +":flag_tg:": "🇹🇬", +":tg:": "🇹🇬", +":flag_to:": "🇹🇴", +":to:": "🇹🇴", +":flag_tt:": "🇹🇹", +":tt:": "🇹🇹", +":flag_tn:": "🇹🇳", +":tn:": "🇹🇳", +":flag_tr:": "🇹🇷", +":tr:": "🇹🇷", +":flag_tm:": "🇹🇲", +":turkmenistan:": "🇹🇲", +":flag_tv:": "🇹🇻", +":tuvalu:": "🇹🇻", +":flag_ug:": "🇺🇬", +":ug:": "🇺🇬", +":flag_ua:": "🇺🇦", +":ua:": "🇺🇦", +":flag_ae:": "🇦🇪", +":ae:": "🇦🇪", +":flag_uy:": "🇺🇾", +":uy:": "🇺🇾", +":flag_uz:": "🇺🇿", +":uz:": "🇺🇿", +":flag_vu:": "🇻🇺", +":vu:": "🇻🇺", +":flag_va:": "🇻🇦", +":va:": "🇻🇦", +":flag_ve:": "🇻🇪", +":ve:": "🇻🇪", +":flag_vn:": "🇻🇳", +":vn:": "🇻🇳", +":flag_eh:": "🇪🇭", +":eh:": "🇪🇭", +":right_facing_fist_tone1:": "🤜🏻", +":right_fist_tone1:": "🤜🏻", +":flag_ye:": "🇾🇪", +":ye:": "🇾🇪", +":flag_zm:": "🇿🇲", +":zm:": "🇿🇲", +":flag_zw:": "🇿🇼", +":zw:": "🇿🇼", +":flag_pr:": "🇵🇷", +":pr:": "🇵🇷", +":flag_ky:": "🇰🇾", +":ky:": "🇰🇾", +":flag_bm:": "🇧🇲", +":bm:": "🇧🇲", +":flag_pf:": "🇵🇫", +":pf:": "🇵🇫", +":flag_ps:": "🇵🇸", +":ps:": "🇵🇸", +":flag_nc:": "🇳🇨", +":nc:": "🇳🇨", +":right_facing_fist_tone2:": "🤜🏼", +":right_fist_tone2:": "🤜🏼", +":flag_sh:": "🇸🇭", +":sh:": "🇸🇭", +":flag_aw:": "🇦🇼", +":aw:": "🇦🇼", +":flag_vi:": "🇻🇮", +":vi:": "🇻🇮", +":flag_hk:": "🇭🇰", +":hk:": "🇭🇰", +":flag_ac:": "🇦🇨", +":ac:": "🇦🇨", +":flag_ms:": "🇲🇸", +":ms:": "🇲🇸", +":flag_gu:": "🇬🇺", +":gu:": "🇬🇺", +":flag_gl:": "🇬🇱", +":gl:": "🇬🇱", +":flag_nu:": "🇳🇺", +":nu:": "🇳🇺", +":flag_wf:": "🇼🇫", +":wf:": "🇼🇫", +":flag_mo:": "🇲🇴", +":mo:": "🇲🇴", +":right_facing_fist_tone3:": "🤜🏽", +":right_fist_tone3:": "🤜🏽", +":flag_fo:": "🇫🇴", +":fo:": "🇫🇴", +":flag_fk:": "🇫🇰", +":fk:": "🇫🇰", +":flag_je:": "🇯🇪", +":je:": "🇯🇪", +":flag_ai:": "🇦🇮", +":ai:": "🇦🇮", +":flag_gi:": "🇬🇮", +":gi:": "🇬🇮", +":film_frames:": "🎞", +":tickets:": "🎟", +":admission_tickets:": "🎟", +":medal:": "🏅", +":sports_medal:": "🏅", +":lifter:": "🏋", +":weight_lifter:": "🏋", +":golfer:": "🏌", +":motorcycle:": "🏍", +":racing_motorcycle:": "🏍", +":race_car:": "🏎", +":racing_car:": "🏎", +":military_medal:": "🎖", +":reminder_ribbon:": "🎗", +":hot_pepper:": "🌶", +":right_facing_fist_tone4:": "🤜🏾", +":right_fist_tone4:": "🤜🏾", +":cloud_rain:": "🌧", +":cloud_with_rain:": "🌧", +":cloud_snow:": "🌨", +":cloud_with_snow:": "🌨", +":cloud_lightning:": "🌩", +":cloud_with_lightning:": "🌩", +":cloud_tornado:": "🌪", +":cloud_with_tornado:": "🌪", +":fog:": "🌫", +":wind_blowing_face:": "🌬", +":chipmunk:": "🐿", +":spider:": "🕷", +":spider_web:": "🕸", +":thermometer:": "🌡", +":microphone2:": "🎙", +":studio_microphone:": "🎙", +":level_slider:": "🎚", +":control_knobs:": "🎛", +":flag_white:": "🏳", +":waving_white_flag:": "🏳", +":flag_black:": "🏴", +":waving_black_flag:": "🏴", +":rosette:": "🏵", +":label:": "🏷", +":camera_with_flash:": "📸", +":projector:": "📽", +":film_projector:": "📽", +":cross:": "✝", +":latin_cross:": "✝", +":om_symbol:": "🕉", +":dove:": "🕊", +":dove_of_peace:": "🕊", +":candle:": "🕯", +":clock:": "🕰", +":mantlepiece_clock:": "🕰", +":hole:": "🕳", +":dark_sunglasses:": "🕶", +":joystick:": "🕹", +":paperclips:": "🖇", +":linked_paperclips:": "🖇", +":pen_ballpoint:": "🖊", +":lower_left_ballpoint_pen:": "🖊", +":pen_fountain:": "🖋", +":lower_left_fountain_pen:": "🖋", +":paintbrush:": "🖌", +":lower_left_paintbrush:": "🖌", +":crayon:": "🖍", +":lower_left_crayon:": "🖍", +":desktop:": "🖥", +":desktop_computer:": "🖥", +":printer:": "🖨", +":right_facing_fist_tone5:": "🤜🏿", +":right_fist_tone5:": "🤜🏿", +":keyboard:": "⌨", +":trackball:": "🖲", +":raised_back_of_hand_tone1:": "🤚🏻", +":back_of_hand_tone1:": "🤚🏻", +":frame_photo:": "🖼", +":frame_with_picture:": "🖼", +":dividers:": "🗂", +":card_index_dividers:": "🗂", +":card_box:": "🗃", +":card_file_box:": "🗃", +":file_cabinet:": "🗄", +":wastebasket:": "🗑", +":notepad_spiral:": "🗒", +":spiral_note_pad:": "🗒", +":calendar_spiral:": "🗓", +":spiral_calendar_pad:": "🗓", +":compression:": "🗜", +":key2:": "🗝", +":old_key:": "🗝", +":newspaper2:": "🗞", +":rolled_up_newspaper:": "🗞", +":dagger:": "🗡", +":dagger_knife:": "🗡", +":speaking_head:": "🗣", +":speaking_head_in_silhouette:": "🗣", +":speech_left:": "🗨", +":left_speech_bubble:": "🗨", +":raised_back_of_hand_tone2:": "🤚🏼", +":back_of_hand_tone2:": "🤚🏼", +":anger_right:": "🗯", +":right_anger_bubble:": "🗯", +":raised_back_of_hand_tone3:": "🤚🏽", +":back_of_hand_tone3:": "🤚🏽", +":ballot_box:": "🗳", +":ballot_box_with_ballot:": "🗳", +":map:": "🗺", +":world_map:": "🗺", +":sleeping_accommodation:": "🛌", +":tools:": "🛠", +":hammer_and_wrench:": "🛠", +":shield:": "🛡", +":oil:": "🛢", +":oil_drum:": "🛢", +":satellite_orbital:": "🛰", +":fork_knife_plate:": "🍽", +":fork_and_knife_with_plate:": "🍽", +":eye:": "👁", +":levitate:": "🕴", +":man_in_business_suit_levitating:": "🕴", +":spy:": "🕵", +":sleuth_or_spy:": "🕵", +":writing_hand:": "✍", +":hand_splayed:": "🖐", +":raised_hand_with_fingers_splayed:": "🖐", +":middle_finger:": "🖕", +":reversed_hand_with_middle_finger_extended:": "🖕", +":vulcan:": "🖖", +":raised_hand_with_part_between_middle_and_ring_fingers:": "🖖", +":slight_frown:": "🙁", +":slightly_frowning_face:": "🙁", +":slight_smile:": "🙂", +":slightly_smiling_face:": "🙂", +":mountain_snow:": "🏔", +":snow_capped_mountain:": "🏔", +":camping:": "🏕", +":beach:": "🏖", +":beach_with_umbrella:": "🏖", +":construction_site:": "🏗", +":building_construction:": "🏗", +":homes:": "🏘", +":house_buildings:": "🏘", +":cityscape:": "🏙", +":house_abandoned:": "🏚", +":derelict_house_building:": "🏚", +":classical_building:": "🏛", +":desert:": "🏜", +":island:": "🏝", +":desert_island:": "🏝", +":park:": "🏞", +":national_park:": "🏞", +":stadium:": "🏟", +":couch:": "🛋", +":couch_and_lamp:": "🛋", +":raised_back_of_hand_tone4:": "🤚🏾", +":back_of_hand_tone4:": "🤚🏾", +":shopping_bags:": "🛍", +":bellhop:": "🛎", +":bellhop_bell:": "🛎", +":bed:": "🛏", +":motorway:": "🛣", +":railway_track:": "🛤", +":railroad_track:": "🛤", +":motorboat:": "🛥", +":airplane_small:": "🛩", +":small_airplane:": "🛩", +":airplane_departure:": "🛫", +":airplane_arriving:": "🛬", +":cruise_ship:": "🛳", +":passenger_ship:": "🛳", +":baby_tone1:": "👶🏻", +":baby_tone2:": "👶🏼", +":baby_tone3:": "👶🏽", +":baby_tone4:": "👶🏾", +":baby_tone5:": "👶🏿", +":boy_tone1:": "👦🏻", +":boy_tone2:": "👦🏼", +":boy_tone3:": "👦🏽", +":boy_tone4:": "👦🏾", +":boy_tone5:": "👦🏿", +":girl_tone1:": "👧🏻", +":girl_tone2:": "👧🏼", +":girl_tone3:": "👧🏽", +":girl_tone4:": "👧🏾", +":girl_tone5:": "👧🏿", +":man_tone1:": "👨🏻", +":man_tone2:": "👨🏼", +":man_tone3:": "👨🏽", +":man_tone4:": "👨🏾", +":man_tone5:": "👨🏿", +":woman_tone1:": "👩🏻", +":woman_tone2:": "👩🏼", +":woman_tone3:": "👩🏽", +":woman_tone4:": "👩🏾", +":woman_tone5:": "👩🏿", +":bride_with_veil_tone1:": "👰🏻", +":bride_with_veil_tone2:": "👰🏼", +":raised_back_of_hand_tone5:": "🤚🏿", +":back_of_hand_tone5:": "🤚🏿", +":bride_with_veil_tone3:": "👰🏽", +":bride_with_veil_tone4:": "👰🏾", +":bride_with_veil_tone5:": "👰🏿", +":person_with_blond_hair_tone1:": "👱🏻", +":person_with_blond_hair_tone2:": "👱🏼", +":person_with_blond_hair_tone3:": "👱🏽", +":person_with_blond_hair_tone4:": "👱🏾", +":person_with_blond_hair_tone5:": "👱🏿", +":man_with_gua_pi_mao_tone1:": "👲🏻", +":man_with_gua_pi_mao_tone2:": "👲🏼", +":man_with_gua_pi_mao_tone3:": "👲🏽", +":man_with_gua_pi_mao_tone4:": "👲🏾", +":man_with_gua_pi_mao_tone5:": "👲🏿", +":man_with_turban_tone1:": "👳🏻", +":man_with_turban_tone2:": "👳🏼", +":man_with_turban_tone3:": "👳🏽", +":man_with_turban_tone4:": "👳🏾", +":man_with_turban_tone5:": "👳🏿", +":older_man_tone1:": "👴🏻", +":older_man_tone2:": "👴🏼", +":older_man_tone3:": "👴🏽", +":older_man_tone4:": "👴🏾", +":older_man_tone5:": "👴🏿", +":older_woman_tone1:": "👵🏻", +":grandma_tone1:": "👵🏻", +":older_woman_tone2:": "👵🏼", +":grandma_tone2:": "👵🏼", +":older_woman_tone3:": "👵🏽", +":grandma_tone3:": "👵🏽", +":older_woman_tone4:": "👵🏾", +":grandma_tone4:": "👵🏾", +":older_woman_tone5:": "👵🏿", +":grandma_tone5:": "👵🏿", +":cop_tone1:": "👮🏻", +":cop_tone2:": "👮🏼", +":cop_tone3:": "👮🏽", +":cop_tone4:": "👮🏾", +":cop_tone5:": "👮🏿", +":construction_worker_tone1:": "👷🏻", +":construction_worker_tone2:": "👷🏼", +":construction_worker_tone3:": "👷🏽", +":construction_worker_tone4:": "👷🏾", +":construction_worker_tone5:": "👷🏿", +":princess_tone1:": "👸🏻", +":princess_tone2:": "👸🏼", +":princess_tone3:": "👸🏽", +":princess_tone4:": "👸🏾", +":cartwheel_tone1:": "🤸🏻", +":person_doing_cartwheel_tone1:": "🤸🏻", +":princess_tone5:": "👸🏿", +":guardsman_tone1:": "💂🏻", +":guardsman_tone2:": "💂🏼", +":cartwheel_tone2:": "🤸🏼", +":person_doing_cartwheel_tone2:": "🤸🏼", +":guardsman_tone3:": "💂🏽", +":guardsman_tone4:": "💂🏾", +":guardsman_tone5:": "💂🏿", +":cartwheel_tone3:": "🤸🏽", +":person_doing_cartwheel_tone3:": "🤸🏽", +":angel_tone1:": "👼🏻", +":angel_tone2:": "👼🏼", +":angel_tone3:": "👼🏽", +":angel_tone4:": "👼🏾", +":angel_tone5:": "👼🏿", +":bow_tone1:": "🙇🏻", +":bow_tone2:": "🙇🏼", +":bow_tone3:": "🙇🏽", +":bow_tone4:": "🙇🏾", +":bow_tone5:": "🙇🏿", +":information_desk_person_tone1:": "💁🏻", +":information_desk_person_tone2:": "💁🏼", +":information_desk_person_tone3:": "💁🏽", +":cartwheel_tone4:": "🤸🏾", +":person_doing_cartwheel_tone4:": "🤸🏾", +":information_desk_person_tone4:": "💁🏾", +":information_desk_person_tone5:": "💁🏿", +":no_good_tone1:": "🙅🏻", +":cartwheel_tone5:": "🤸🏿", +":person_doing_cartwheel_tone5:": "🤸🏿", +":no_good_tone2:": "🙅🏼", +":no_good_tone3:": "🙅🏽", +":no_good_tone4:": "🙅🏾", +":no_good_tone5:": "🙅🏿", +":ok_woman_tone1:": "🙆🏻", +":ok_woman_tone2:": "🙆🏼", +":ok_woman_tone3:": "🙆🏽", +":ok_woman_tone4:": "🙆🏾", +":ok_woman_tone5:": "🙆🏿", +":raising_hand_tone1:": "🙋🏻", +":raising_hand_tone2:": "🙋🏼", +":raising_hand_tone3:": "🙋🏽", +":raising_hand_tone4:": "🙋🏾", +":raising_hand_tone5:": "🙋🏿", +":person_with_pouting_face_tone1:": "🙎🏻", +":person_with_pouting_face_tone2:": "🙎🏼", +":person_with_pouting_face_tone3:": "🙎🏽", +":person_with_pouting_face_tone4:": "🙎🏾", +":person_with_pouting_face_tone5:": "🙎🏿", +":person_frowning_tone1:": "🙍🏻", +":person_frowning_tone2:": "🙍🏼", +":person_frowning_tone3:": "🙍🏽", +":person_frowning_tone4:": "🙍🏾", +":person_frowning_tone5:": "🙍🏿", +":massage_tone1:": "💆🏻", +":massage_tone2:": "💆🏼", +":massage_tone3:": "💆🏽", +":massage_tone4:": "💆🏾", +":massage_tone5:": "💆🏿", +":haircut_tone1:": "💇🏻", +":haircut_tone2:": "💇🏼", +":haircut_tone3:": "💇🏽", +":haircut_tone4:": "💇🏾", +":haircut_tone5:": "💇🏿", +":raised_hands_tone1:": "🙌🏻", +":raised_hands_tone2:": "🙌🏼", +":raised_hands_tone3:": "🙌🏽", +":raised_hands_tone4:": "🙌🏾", +":raised_hands_tone5:": "🙌🏿", +":clap_tone1:": "👏🏻", +":clap_tone2:": "👏🏼", +":clap_tone3:": "👏🏽", +":water_polo_tone1:": "🤽🏻", +":clap_tone4:": "👏🏾", +":clap_tone5:": "👏🏿", +":water_polo_tone2:": "🤽🏼", +":ear_tone1:": "👂🏻", +":ear_tone2:": "👂🏼", +":ear_tone3:": "👂🏽", +":ear_tone4:": "👂🏾", +":ear_tone5:": "👂🏿", +":nose_tone1:": "👃🏻", +":nose_tone2:": "👃🏼", +":nose_tone3:": "👃🏽", +":nose_tone4:": "👃🏾", +":nose_tone5:": "👃🏿", +":nail_care_tone1:": "💅🏻", +":nail_care_tone2:": "💅🏼", +":nail_care_tone3:": "💅🏽", +":nail_care_tone4:": "💅🏾", +":nail_care_tone5:": "💅🏿", +":wave_tone1:": "👋🏻", +":wave_tone2:": "👋🏼", +":wave_tone3:": "👋🏽", +":wave_tone4:": "👋🏾", +":wave_tone5:": "👋🏿", +":thumbsup_tone1:": "👍🏻", +":+1_tone1:": "👍🏻", +":thumbup_tone1:": "👍🏻", +":thumbsup_tone2:": "👍🏼", +":+1_tone2:": "👍🏼", +":thumbup_tone2:": "👍🏼", +":thumbsup_tone3:": "👍🏽", +":+1_tone3:": "👍🏽", +":thumbup_tone3:": "👍🏽", +":thumbsup_tone4:": "👍🏾", +":+1_tone4:": "👍🏾", +":thumbup_tone4:": "👍🏾", +":thumbsup_tone5:": "👍🏿", +":+1_tone5:": "👍🏿", +":thumbup_tone5:": "👍🏿", +":thumbsdown_tone1:": "👎🏻", +":1_tone1:": "👎🏻", +":thumbdown_tone1:": "👎🏻", +":thumbsdown_tone2:": "👎🏼", +":1_tone2:": "👎🏼", +":thumbdown_tone2:": "👎🏼", +":thumbsdown_tone3:": "👎🏽", +":1_tone3:": "👎🏽", +":thumbdown_tone3:": "👎🏽", +":thumbsdown_tone4:": "👎🏾", +":1_tone4:": "👎🏾", +":thumbdown_tone4:": "👎🏾", +":thumbsdown_tone5:": "👎🏿", +":1_tone5:": "👎🏿", +":thumbdown_tone5:": "👎🏿", +":point_up_tone1:": "☝🏻", +":point_up_tone2:": "☝🏼", +":point_up_tone3:": "☝🏽", +":point_up_tone4:": "☝🏾", +":point_up_tone5:": "☝🏿", +":point_up_2_tone1:": "👆🏻", +":point_up_2_tone2:": "👆🏼", +":point_up_2_tone3:": "👆🏽", +":point_up_2_tone4:": "👆🏾", +":point_up_2_tone5:": "👆🏿", +":point_down_tone1:": "👇🏻", +":point_down_tone2:": "👇🏼", +":point_down_tone3:": "👇🏽", +":point_down_tone4:": "👇🏾", +":point_down_tone5:": "👇🏿", +":point_left_tone1:": "👈🏻", +":point_left_tone2:": "👈🏼", +":point_left_tone3:": "👈🏽", +":point_left_tone4:": "👈🏾", +":point_left_tone5:": "👈🏿", +":point_right_tone1:": "👉🏻", +":point_right_tone2:": "👉🏼", +":point_right_tone3:": "👉🏽", +":point_right_tone4:": "👉🏾", +":point_right_tone5:": "👉🏿", +":ok_hand_tone1:": "👌🏻", +":ok_hand_tone2:": "👌🏼", +":water_polo_tone3:": "🤽🏽", +":ok_hand_tone3:": "👌🏽", +":ok_hand_tone4:": "👌🏾", +":water_polo_tone4:": "🤽🏾", +":ok_hand_tone5:": "👌🏿", +":v_tone1:": "✌🏻", +":v_tone2:": "✌🏼", +":v_tone3:": "✌🏽", +":v_tone4:": "✌🏾", +":v_tone5:": "✌🏿", +":punch_tone1:": "👊🏻", +":punch_tone2:": "👊🏼", +":punch_tone3:": "👊🏽", +":punch_tone4:": "👊🏾", +":punch_tone5:": "👊🏿", +":fist_tone1:": "✊🏻", +":fist_tone2:": "✊🏼", +":fist_tone3:": "✊🏽", +":fist_tone4:": "✊🏾", +":fist_tone5:": "✊🏿", +":raised_hand_tone1:": "✋🏻", +":raised_hand_tone2:": "✋🏼", +":raised_hand_tone3:": "✋🏽", +":raised_hand_tone4:": "✋🏾", +":raised_hand_tone5:": "✋🏿", +":muscle_tone1:": "💪🏻", +":muscle_tone2:": "💪🏼", +":muscle_tone3:": "💪🏽", +":muscle_tone4:": "💪🏾", +":muscle_tone5:": "💪🏿", +":open_hands_tone1:": "👐🏻", +":open_hands_tone2:": "👐🏼", +":open_hands_tone3:": "👐🏽", +":open_hands_tone4:": "👐🏾", +":open_hands_tone5:": "👐🏿", +":pray_tone1:": "🙏🏻", +":water_polo_tone5:": "🤽🏿", +":pray_tone2:": "🙏🏼", +":pray_tone3:": "🙏🏽", +":handball_tone1:": "🤾🏻", +":pray_tone4:": "🙏🏾", +":pray_tone5:": "🙏🏿", +":handball_tone2:": "🤾🏼", +":runner_tone1:": "🏃🏻", +":runner_tone2:": "🏃🏼", +":runner_tone3:": "🏃🏽", +":runner_tone4:": "🏃🏾", +":handball_tone3:": "🤾🏽", +":runner_tone5:": "🏃🏿", +":walking_tone1:": "🚶🏻", +":walking_tone2:": "🚶🏼", +":walking_tone3:": "🚶🏽", +":walking_tone4:": "🚶🏾", +":walking_tone5:": "🚶🏿", +":dancer_tone1:": "💃🏻", +":handball_tone4:": "🤾🏾", +":dancer_tone2:": "💃🏼", +":dancer_tone3:": "💃🏽", +":handball_tone5:": "🤾🏿", +":dancer_tone4:": "💃🏾", +":dancer_tone5:": "💃🏿", +":juggling_tone1:": "🤹🏻", +":juggler_tone1:": "🤹🏻", +":rowboat_tone1:": "🚣🏻", +":rowboat_tone2:": "🚣🏼", +":rowboat_tone3:": "🚣🏽", +":rowboat_tone4:": "🚣🏾", +":rowboat_tone5:": "🚣🏿", +":swimmer_tone1:": "🏊🏻", +":swimmer_tone2:": "🏊🏼", +":juggling_tone2:": "🤹🏼", +":juggler_tone2:": "🤹🏼", +":swimmer_tone3:": "🏊🏽", +":swimmer_tone4:": "🏊🏾", +":swimmer_tone5:": "🏊🏿", +":juggling_tone3:": "🤹🏽", +":juggler_tone3:": "🤹🏽", +":surfer_tone1:": "🏄🏻", +":surfer_tone2:": "🏄🏼", +":surfer_tone3:": "🏄🏽", +":surfer_tone4:": "🏄🏾", +":surfer_tone5:": "🏄🏿", +":bath_tone1:": "🛀🏻", +":bath_tone2:": "🛀🏼", +":juggling_tone4:": "🤹🏾", +":juggler_tone4:": "🤹🏾", +":bath_tone3:": "🛀🏽", +":bath_tone4:": "🛀🏾", +":bath_tone5:": "🛀🏿", +":juggling_tone5:": "🤹🏿", +":juggler_tone5:": "🤹🏿", +":bicyclist_tone1:": "🚴🏻", +":bicyclist_tone2:": "🚴🏼", +":bicyclist_tone3:": "🚴🏽", +":rainbow_flag:": "🏳🌈", +":gay_pride_flag:": "🏳🌈", +":bicyclist_tone4:": "🚴🏾", +":bicyclist_tone5:": "🚴🏿", +":mountain_bicyclist_tone1:": "🚵🏻", +":mountain_bicyclist_tone2:": "🚵🏼", +":mountain_bicyclist_tone3:": "🚵🏽", +":mountain_bicyclist_tone4:": "🚵🏾", +":mountain_bicyclist_tone5:": "🚵🏿", +":horse_racing_tone1:": "🏇🏻", +":horse_racing_tone2:": "🏇🏼", +":horse_racing_tone3:": "🏇🏽", +":horse_racing_tone4:": "🏇🏾", +":horse_racing_tone5:": "🏇🏿", +":writing_hand_tone1:": "✍🏻", +":writing_hand_tone2:": "✍🏼", +":writing_hand_tone3:": "✍🏽", +":writing_hand_tone4:": "✍🏾", +":writing_hand_tone5:": "✍🏿", +":hand_splayed_tone1:": "🖐🏻", +":raised_hand_with_fingers_splayed_tone1:": "🖐🏻", +":hand_splayed_tone2:": "🖐🏼", +":raised_hand_with_fingers_splayed_tone2:": "🖐🏼", +":hand_splayed_tone3:": "🖐🏽", +":raised_hand_with_fingers_splayed_tone3:": "🖐🏽", +":hand_splayed_tone4:": "🖐🏾", +":raised_hand_with_fingers_splayed_tone4:": "🖐🏾", +":hand_splayed_tone5:": "🖐🏿", +":raised_hand_with_fingers_splayed_tone5:": "🖐🏿", +":middle_finger_tone1:": "🖕🏻", +":reversed_hand_with_middle_finger_extended_tone1:": "🖕🏻", +":middle_finger_tone2:": "🖕🏼", +":reversed_hand_with_middle_finger_extended_tone2:": "🖕🏼", +":middle_finger_tone3:": "🖕🏽", +":reversed_hand_with_middle_finger_extended_tone3:": "🖕🏽", +":middle_finger_tone4:": "🖕🏾", +":reversed_hand_with_middle_finger_extended_tone4:": "🖕🏾", +":middle_finger_tone5:": "🖕🏿", +":reversed_hand_with_middle_finger_extended_tone5:": "🖕🏿", +":vulcan_tone1:": "🖖🏻", +":raised_hand_with_part_between_middle_and_ring_fingers_tone1:": "🖖🏻", +":vulcan_tone2:": "🖖🏼", +":raised_hand_with_part_between_middle_and_ring_fingers_tone2:": "🖖🏼", +":vulcan_tone3:": "🖖🏽", +":raised_hand_with_part_between_middle_and_ring_fingers_tone3:": "🖖🏽", +":vulcan_tone4:": "🖖🏾", +":raised_hand_with_part_between_middle_and_ring_fingers_tone4:": "🖖🏾", +":vulcan_tone5:": "🖖🏿", +":raised_hand_with_part_between_middle_and_ring_fingers_tone5:": "🖖🏿", +":family_mmb:": "👨‍👨‍👦", +":family_mmbb:": "👨‍👨‍👦‍👦", +":family_mmg:": "👨‍👨‍👧", +":family_mmgb:": "👨‍👨‍👧‍👦", +":family_mmgg:": "👨‍👨‍👧‍👧", +":family_mwbb:": "👨‍👩‍👧‍👦", +":family_mwg:": "👨‍👩‍👧", +":family_mwgb:": "👨‍👩‍👧‍👦", +":family_mwgg:": "👨‍👩‍👧‍👧", +":family_wwb:": "👩‍👩‍👦", +":family_wwbb:": "👩‍👩‍👦‍👦", +":family_wwg:": "👩‍👩‍👧", +":family_wwgb:": "👩‍👩‍👧‍👦", +":family_wwgg:": "👩‍👩‍👧‍👧", +":couple_ww:": "👭", +":couple_with_heart_ww:": "👩‍❤️‍👩", +":couple_mm:": "👬", +":couple_with_heart_mm:": "👨‍❤️‍👨", +":kiss_ww:": "👩‍❤️‍💋‍👩", +":couplekiss_ww:": "👩‍❤️‍💋‍👩", +":kiss_mm:": "👨‍❤️‍💋‍👨", +":couplekiss_mm:": "👨‍❤️‍💋‍👨", +":tone1:": "🏻", +":tone2:": "🏼", +":tone3:": "🏽", +":tone4:": "🏾", +":tone5:": "🏿", +":asterisk:": "ℍ", +":keycap_asterisk:": "ℍ", +":eject:": "⏏", +":eject_symbol:": "⏏", +":track_next:": "⏭", +":next_track:": "⏭", +":track_previous:": "⏮", +":previous_track:": "⏮", +":play_pause:": "⏯", +":eye_in_speech_bubble:": "👁🗨", +":stopwatch:": "⏱", +":timer:": "⏲", +":timer_clock:": "⏲", +":pause_button:": "⏸", +":double_vertical_bar:": "⏸", +":stop_button:": "⏹", +":record_button:": "⏺", +":umbrella2:": "☂", +":snowman2:": "☃", +":comet:": "☄", +":shamrock:": "☘", +":skull_crossbones:": "☠", +":skull_and_crossbones:": "☠", +":radioactive:": "☢", +":radioactive_sign:": "☢", +":biohazard:": "☣", +":biohazard_sign:": "☣", +":orthodox_cross:": "☦", +":star_and_crescent:": "☪", +":peace:": "☮", +":peace_symbol:": "☮", +":yin_yang:": "☯", +":wheel_of_dharma:": "☸", +":frowning2:": "☹", +":white_frowning_face:": "☹", +":hammer_pick:": "⚒", +":hammer_and_pick:": "⚒", +":crossed_swords:": "⚔", +":scales:": "⚖", +":alembic:": "⚗", +":gear:": "⚙", +":atom:": "⚛", +":atom_symbol:": "⚛", +":fleurdelis:": "⚜", +":coffin:": "⚰", +":urn:": "⚱", +":funeral_urn:": "⚱", +":thunder_cloud_rain:": "⛈", +":thunder_cloud_and_rain:": "⛈", +":pick:": "⛏", +":helmet_with_cross:": "⛑", +":helmet_with_white_cross:": "⛑", +":chains:": "⛓", +":shinto_shrine:": "⛩", +":mountain:": "⛰", +":beach_umbrella:": "⛱", +":umbrella_on_ground:": "⛱", +":ferry:": "⛴", +":skier:": "⛷", +":ice_skate:": "⛸", +":basketball_player:": "⛹", +":person_with_ball:": "⛹", +":star_of_david:": "✡", +":heart_exclamation:": "❣", +":heavy_heart_exclamation_mark_ornament:": "❣", +":white_sun_small_cloud:": "🌤", +":white_sun_with_small_cloud:": "🌤", +":white_sun_cloud:": "🌥", +":white_sun_behind_cloud:": "🌥", +":white_sun_rain_cloud:": "🌦", +":white_sun_behind_cloud_with_rain:": "🌦", +":mouse_three_button:": "🖱", +":three_button_mouse:": "🖱", +":santa_tone1:": "🎅🏻", +":santa_tone2:": "🎅🏼", +":santa_tone3:": "🎅🏽", +":santa_tone4:": "🎅🏾", +":santa_tone5:": "🎅🏿", +":metal_tone1:": "🤘🏻", +":sign_of_the_horns_tone1:": "🤘🏻", +":metal_tone2:": "🤘🏼", +":sign_of_the_horns_tone2:": "🤘🏼", +":metal_tone3:": "🤘🏽", +":sign_of_the_horns_tone3:": "🤘🏽", +":metal_tone4:": "🤘🏾", +":sign_of_the_horns_tone4:": "🤘🏾", +":metal_tone5:": "🤘🏿", +":sign_of_the_horns_tone5:": "🤘🏿", +":lifter_tone1:": "🏋🏻", +":weight_lifter_tone1:": "🏋🏻", +":lifter_tone2:": "🏋🏼", +":weight_lifter_tone2:": "🏋🏼", +":lifter_tone3:": "🏋🏽", +":weight_lifter_tone3:": "🏋🏽", +":lifter_tone4:": "🏋🏾", +":weight_lifter_tone4:": "🏋🏾", +":lifter_tone5:": "🏋🏿", +":weight_lifter_tone5:": "🏋🏿", +":basketball_player_tone1:": "⛹🏻", +":person_with_ball_tone1:": "⛹🏻", +":basketball_player_tone2:": "⛹🏼", +":person_with_ball_tone2:": "⛹🏼", +":basketball_player_tone3:": "⛹🏽", +":person_with_ball_tone3:": "⛹🏽", +":basketball_player_tone4:": "⛹🏾", +":person_with_ball_tone4:": "⛹🏾", +":basketball_player_tone5:": "⛹🏿", +":person_with_ball_tone5:": "⛹🏿", +":upside_down:": "🙃", +":upside_down_face:": "🙃", +":money_mouth:": "🤑", +":money_mouth_face:": "🤑", +":nerd:": "🤓", +":nerd_face:": "🤓", +":hugging:": "🤗", +":hugging_face:": "🤗", +":rolling_eyes:": "🙄", +":face_with_rolling_eyes:": "🙄", +":thinking:": "🤔", +":thinking_face:": "🤔", +":zipper_mouth:": "🤐", +":zipper_mouth_face:": "🤐", +":thermometer_face:": "🤒", +":face_with_thermometer:": "🤒", +":head_bandage:": "🤕", +":face_with_head_bandage:": "🤕", +":robot:": "🤖", +":robot_face:": "🤖", +":lion_face:": "🦁", +":lion:": "🦁", +":unicorn:": "🦄", +":unicorn_face:": "🦄", +":scorpion:": "🦂", +":crab:": "🦀", +":turkey:": "🦃", +":cheese:": "🧀", +":cheese_wedge:": "🧀", +":hotdog:": "🌭", +":hot_dog:": "🌭", +":taco:": "🌮", +":burrito:": "🌯", +":popcorn:": "🍿", +":champagne:": "🍾", +":bottle_with_popping_cork:": "🍾", +":bow_and_arrow:": "🏹", +":archery:": "🏹", +":amphora:": "🏺", +":place_of_worship:": "🛐", +":worship_symbol:": "🛐", +":kaaba:": "🕋", +":mosque:": "🕌", +":synagogue:": "🕍", +":menorah:": "🕎", +":prayer_beads:": "📿", +":cricket:": "🏏", +":cricket_bat_ball:": "🏏", +":volleyball:": "🏐", +":field_hockey:": "🏑", +":hockey:": "🏒", +":ping_pong:": "🏓", +":table_tennis:": "🏓", +":badminton:": "🏸", +":flag_ax:": "🇦🇽", +":ax:": "🇦🇽", +":flag_ta:": "🇹🇦", +":ta:": "🇹🇦", +":flag_io:": "🇮🇴", +":io:": "🇮🇴", +":flag_bq:": "🇧🇶", +":bq:": "🇧🇶", +":flag_cx:": "🇨🇽", +":cx:": "🇨🇽", +":flag_cc:": "🇨🇨", +":cc:": "🇨🇨", +":flag_gg:": "🇬🇬", +":gg:": "🇬🇬", +":flag_im:": "🇮🇲", +":im:": "🇮🇲", +":flag_yt:": "🇾🇹", +":yt:": "🇾🇹", +":flag_nf:": "🇳🇫", +":nf:": "🇳🇫", +":flag_pn:": "🇵🇳", +":pn:": "🇵🇳", +":flag_bl:": "🇧🇱", +":bl:": "🇧🇱", +":flag_pm:": "🇵🇲", +":pm:": "🇵🇲", +":flag_gs:": "🇬🇸", +":gs:": "🇬🇸", +":flag_tk:": "🇹🇰", +":tk:": "🇹🇰", +":flag_bv:": "🇧🇻", +":bv:": "🇧🇻", +":flag_hm:": "🇭🇲", +":hm:": "🇭🇲", +":flag_sj:": "🇸🇯", +":sj:": "🇸🇯", +":flag_um:": "🇺🇲", +":um:": "🇺🇲", +":flag_ic:": "🇮🇨", +":ic:": "🇮🇨", +":flag_ea:": "🇪🇦", +":ea:": "🇪🇦", +":flag_cp:": "🇨🇵", +":cp:": "🇨🇵", +":flag_dg:": "🇩🇬", +":dg:": "🇩🇬", +":flag_as:": "🇦🇸", +":as:": "🇦🇸", +":flag_aq:": "🇦🇶", +":aq:": "🇦🇶", +":flag_vg:": "🇻🇬", +":vg:": "🇻🇬", +":flag_ck:": "🇨🇰", +":ck:": "🇨🇰", +":flag_cw:": "🇨🇼", +":cw:": "🇨🇼", +":flag_eu:": "🇪🇺", +":eu:": "🇪🇺", +":flag_gf:": "🇬🇫", +":gf:": "🇬🇫", +":flag_tf:": "🇹🇫", +":tf:": "🇹🇫", +":flag_gp:": "🇬🇵", +":gp:": "🇬🇵", +":flag_mq:": "🇲🇶", +":mq:": "🇲🇶", +":flag_mp:": "🇲🇵", +":mp:": "🇲🇵", +":flag_re:": "🇷🇪", +":re:": "🇷🇪", +":flag_sx:": "🇸🇽", +":sx:": "🇸🇽", +":flag_ss:": "🇸🇸", +":ss:": "🇸🇸", +":flag_tc:": "🇹🇨", +":tc:": "🇹🇨", +":flag_mf:": "🇲🇫", +":mf:": "🇲🇫", +":spy_tone1:": "🕵🏻", +":sleuth_or_spy_tone1:": "🕵🏻", +":spy_tone2:": "🕵🏼", +":sleuth_or_spy_tone2:": "🕵🏼", +":spy_tone3:": "🕵🏽", +":sleuth_or_spy_tone3:": "🕵🏽", +":spy_tone4:": "🕵🏾", +":sleuth_or_spy_tone4:": "🕵🏾", +":spy_tone5:": "🕵🏿", +":sleuth_or_spy_tone5:": "🕵🏿", +":drum:": "🥁", +":drum_with_drumsticks:": "🥁", +":shrimp:": "🦐", +":squid:": "🦑", +":egg:": "🥚", +":milk:": "🥛", +":glass_of_milk:": "🥛", +":peanuts:": "🥜", +":shelled_peanut:": "🥜", +":kiwi:": "🥝", +":kiwifruit:": "🥝", +":pancakes:": "🥞", +":regional_indicator_w:": "🇼", +":regional_indicator_v:": "🇻", +":regional_indicator_u:": "🇺", +":regional_indicator_t:": "🇹", +":regional_indicator_s:": "🇸", +":regional_indicator_r:": "🇷", +":regional_indicator_q:": "🇶", +":regional_indicator_p:": "🇵", +":regional_indicator_o:": "🇴", +":regional_indicator_n:": "🇳", +":regional_indicator_m:": "🇲", +":regional_indicator_l:": "🇱", +":regional_indicator_k:": "🇰", +":regional_indicator_j:": "🇯", +":regional_indicator_i:": "🇮", +":regional_indicator_h:": "🇭", +":regional_indicator_g:": "🇬", +":regional_indicator_f:": "🇫", +":regional_indicator_e:": "🇪", +":regional_indicator_d:": "🇩", +":regional_indicator_c:": "🇨", +":regional_indicator_b:": "🇧", +":regional_indicator_a:": "🇦", +":digit_nine:": "9", +":digit_eight:": "8", +":digit_seven:": "7", +":digit_six:": "6", +":digit_five:": "5", +":digit_four:": "4", +":digit_three:": "3", +":digit_two:": "2", +":digit_one:": "1", +":digit_zero:": "0", +":men_with_bunny_ears_partying:": "👯", +":women_with_bunny_ears_partying:": "👯", +":snowboarder_tone1:": "🏂🏻", +":snowboarder_light_skin_tone:": "🏂🏻", +":man_golfing:": "🏌", +":man_golfing_tone1:": "🏌🏻", +":man_golfing_light_skin_tone:": "🏌🏻", +":man_golfing_tone2:": "🏌🏼", +":man_golfing_medium_light_skin_tone:": "🏌🏼", +":man_golfing_tone3:": "🏌🏽", +":man_golfing_medium_skin_tone:": "🏌🏽", +":man_golfing_tone4:": "🏌🏾", +":man_golfing_medium_dark_skin_tone:": "🏌🏾", +":man_golfing_tone5:": "🏌🏿", +":man_golfing_dark_skin_tone:": "🏌🏿", +":woman_golfing:": "🏌", +":woman_golfing_tone1:": "🏌🏻", +":woman_golfing_light_skin_tone:": "🏌🏻", +":woman_golfing_tone2:": "🏌🏼", +":woman_golfing_medium_light_skin_tone:": "🏌🏼", +":woman_golfing_tone3:": "🏌🏽", +":woman_golfing_medium_skin_tone:": "🏌🏽", +":woman_golfing_tone4:": "🏌🏾", +":woman_golfing_medium_dark_skin_tone:": "🏌🏾", +":woman_golfing_tone5:": "🏌🏿", +":woman_golfing_dark_skin_tone:": "🏌🏿", +":men_wrestling:": "🤼", +":women_wrestling:": "🤼", +":man_juggling_tone5:": "🤹🏿", +":man_juggling_dark_skin_tone:": "🤹🏿", +":man_juggling_tone4:": "🤹🏾", +":man_juggling_medium_dark_skin_tone:": "🤹🏾", +":man_juggling_tone3:": "🤹🏽", +":man_juggling_medium_skin_tone:": "🤹🏽", +":man_juggling_tone2:": "🤹🏼", +":man_juggling_medium_light_skin_tone:": "🤹🏼", +":man_juggling_tone1:": "🤹🏻", +":man_juggling_light_skin_tone:": "🤹🏻", +":man_juggling:": "🤹", +":woman_juggling_tone5:": "🤹🏿", +":woman_juggling_dark_skin_tone:": "🤹🏿", +":woman_juggling_tone4:": "🤹🏾", +":woman_juggling_medium_dark_skin_tone:": "🤹🏾", +":woman_juggling_tone3:": "🤹🏽", +":woman_juggling_medium_skin_tone:": "🤹🏽", +":woman_juggling_tone2:": "🤹🏼", +":woman_juggling_medium_light_skin_tone:": "🤹🏼", +":woman_juggling_tone1:": "🤹🏻", +":woman_juggling_light_skin_tone:": "🤹🏻", +":woman_juggling:": "🤹", +":man_playing_handball_tone5:": "🤾🏿", +":man_playing_handball_dark_skin_tone:": "🤾🏿", +":man_playing_handball_tone4:": "🤾🏾", +":man_playing_handball_medium_dark_skin_tone:": "🤾🏾", +":man_playing_handball_tone3:": "🤾🏽", +":man_playing_handball_medium_skin_tone:": "🤾🏽", +":man_playing_handball_tone2:": "🤾🏼", +":man_playing_handball_medium_light_skin_tone:": "🤾🏼", +":man_playing_handball_tone1:": "🤾🏻", +":man_playing_handball_light_skin_tone:": "🤾🏻", +":man_playing_handball:": "🤾", +":woman_playing_handball_tone5:": "🤾🏿", +":woman_playing_handball_dark_skin_tone:": "🤾🏿", +":woman_playing_handball_tone4:": "🤾🏾", +":woman_playing_handball_medium_dark_skin_tone:": "🤾🏾", +":woman_playing_handball_tone3:": "🤾🏽", +":woman_playing_handball_medium_skin_tone:": "🤾🏽", +":woman_playing_handball_tone2:": "🤾🏼", +":woman_playing_handball_medium_light_skin_tone:": "🤾🏼", +":woman_playing_handball_tone1:": "🤾🏻", +":woman_playing_handball_light_skin_tone:": "🤾🏻", +":woman_playing_handball:": "🤾", +":man_playing_water_polo_tone5:": "🤽🏿", +":man_playing_water_polo_dark_skin_tone:": "🤽🏿", +":man_playing_water_polo_tone4:": "🤽🏾", +":man_playing_water_polo_medium_dark_skin_tone:": "🤽🏾", +":man_playing_water_polo_tone3:": "🤽🏽", +":man_playing_water_polo_medium_skin_tone:": "🤽🏽", +":man_playing_water_polo_tone2:": "🤽🏼", +":man_playing_water_polo_medium_light_skin_tone:": "🤽🏼", +":man_playing_water_polo_tone1:": "🤽🏻", +":man_playing_water_polo_light_skin_tone:": "🤽🏻", +":man_playing_water_polo:": "🤽", +":woman_playing_water_polo_tone5:": "🤽🏿", +":woman_playing_water_polo_dark_skin_tone:": "🤽🏿", +":woman_playing_water_polo_tone4:": "🤽🏾", +":woman_playing_water_polo_medium_dark_skin_tone:": "🤽🏾", +":woman_playing_water_polo_tone3:": "🤽🏽", +":woman_playing_water_polo_medium_skin_tone:": "🤽🏽", +":woman_playing_water_polo_tone2:": "🤽🏼", +":woman_playing_water_polo_medium_light_skin_tone:": "🤽🏼", +":woman_playing_water_polo_tone1:": "🤽🏻", +":woman_playing_water_polo_light_skin_tone:": "🤽🏻", +":woman_playing_water_polo:": "🤽", +":man_cartwheeling_tone5:": "🤸🏿", +":man_cartwheeling_dark_skin_tone:": "🤸🏿", +":man_cartwheeling_tone4:": "🤸🏾", +":man_cartwheeling_medium_dark_skin_tone:": "🤸🏾", +":man_cartwheeling_tone3:": "🤸🏽", +":man_cartwheeling_medium_skin_tone:": "🤸🏽", +":man_cartwheeling_tone2:": "🤸🏼", +":man_cartwheeling_medium_light_skin_tone:": "🤸🏼", +":man_cartwheeling_tone1:": "🤸🏻", +":man_cartwheeling_light_skin_tone:": "🤸🏻", +":man_cartwheeling:": "🤸", +":woman_cartwheeling_tone5:": "🤸🏿", +":woman_cartwheeling_dark_skin_tone:": "🤸🏿", +":woman_cartwheeling_tone4:": "🤸🏾", +":woman_cartwheeling_medium_dark_skin_tone:": "🤸🏾", +":woman_cartwheeling_tone3:": "🤸🏽", +":woman_cartwheeling_medium_skin_tone:": "🤸🏽", +":woman_cartwheeling_tone2:": "🤸🏼", +":woman_cartwheeling_medium_light_skin_tone:": "🤸🏼", +":woman_cartwheeling_tone1:": "🤸🏻", +":woman_cartwheeling_light_skin_tone:": "🤸🏻", +":woman_cartwheeling:": "🤸", +":man_walking_tone5:": "🚶🏿", +":man_walking_dark_skin_tone:": "🚶🏿", +":man_walking_tone4:": "🚶🏾", +":man_walking_medium_dark_skin_tone:": "🚶🏾", +":man_walking_tone3:": "🚶🏽", +":man_walking_medium_skin_tone:": "🚶🏽", +":man_walking_tone2:": "🚶🏼", +":man_walking_medium_light_skin_tone:": "🚶🏼", +":man_walking_tone1:": "🚶🏻", +":man_walking_light_skin_tone:": "🚶🏻", +":man_walking:": "🚶", +":woman_walking_tone5:": "🚶🏿", +":woman_walking_dark_skin_tone:": "🚶🏿", +":woman_walking_tone4:": "🚶🏾", +":woman_walking_medium_dark_skin_tone:": "🚶🏾", +":woman_walking_tone3:": "🚶🏽", +":woman_walking_medium_skin_tone:": "🚶🏽", +":woman_walking_tone2:": "🚶🏼", +":woman_walking_medium_light_skin_tone:": "🚶🏼", +":woman_walking_tone1:": "🚶🏻", +":woman_walking_light_skin_tone:": "🚶🏻", +":woman_walking:": "🚶", +":man_mountain_biking_tone5:": "🚵🏿", +":man_mountain_biking_dark_skin_tone:": "🚵🏿", +":man_mountain_biking_tone4:": "🚵🏾", +":man_mountain_biking_medium_dark_skin_tone:": "🚵🏾", +":man_mountain_biking_tone3:": "🚵🏽", +":man_mountain_biking_medium_skin_tone:": "🚵🏽", +":man_mountain_biking_tone2:": "🚵🏼", +":man_mountain_biking_medium_light_skin_tone:": "🚵🏼", +":man_mountain_biking_tone1:": "🚵🏻", +":man_mountain_biking_light_skin_tone:": "🚵🏻", +":man_mountain_biking:": "🚵", +":woman_mountain_biking_tone5:": "🚵🏿", +":woman_mountain_biking_dark_skin_tone:": "🚵🏿", +":woman_mountain_biking_tone4:": "🚵🏾", +":woman_mountain_biking_medium_dark_skin_tone:": "🚵🏾", +":woman_mountain_biking_tone3:": "🚵🏽", +":woman_mountain_biking_medium_skin_tone:": "🚵🏽", +":woman_mountain_biking_tone2:": "🚵🏼", +":woman_mountain_biking_medium_light_skin_tone:": "🚵🏼", +":woman_mountain_biking_tone1:": "🚵🏻", +":woman_mountain_biking_light_skin_tone:": "🚵🏻", +":woman_mountain_biking:": "🚵", +":man_biking_tone5:": "🚴🏿", +":man_biking_dark_skin_tone:": "🚴🏿", +":man_biking_tone4:": "🚴🏾", +":man_biking_medium_dark_skin_tone:": "🚴🏾", +":man_biking_tone3:": "🚴🏽", +":man_biking_medium_skin_tone:": "🚴🏽", +":man_biking_tone2:": "🚴🏼", +":man_biking_medium_light_skin_tone:": "🚴🏼", +":man_biking_tone1:": "🚴🏻", +":man_biking_light_skin_tone:": "🚴🏻", +":man_biking:": "🚴", +":woman_biking_tone5:": "🚴🏿", +":woman_biking_dark_skin_tone:": "🚴🏿", +":woman_biking_tone4:": "🚴🏾", +":woman_biking_medium_dark_skin_tone:": "🚴🏾", +":woman_biking_tone3:": "🚴🏽", +":woman_biking_medium_skin_tone:": "🚴🏽", +":woman_biking_tone2:": "🚴🏼", +":woman_biking_medium_light_skin_tone:": "🚴🏼", +":woman_biking_tone1:": "🚴🏻", +":woman_biking_light_skin_tone:": "🚴🏻", +":woman_biking:": "🚴", +":man_rowing_boat_tone5:": "🚣🏿", +":man_rowing_boat_dark_skin_tone:": "🚣🏿", +":man_rowing_boat_tone4:": "🚣🏾", +":man_rowing_boat_medium_dark_skin_tone:": "🚣🏾", +":man_rowing_boat_tone3:": "🚣🏽", +":man_rowing_boat_medium_skin_tone:": "🚣🏽", +":man_rowing_boat_tone2:": "🚣🏼", +":man_rowing_boat_medium_light_skin_tone:": "🚣🏼", +":man_rowing_boat_tone1:": "🚣🏻", +":man_rowing_boat_light_skin_tone:": "🚣🏻", +":man_rowing_boat:": "🚣", +":woman_rowing_boat_tone5:": "🚣🏿", +":woman_rowing_boat_dark_skin_tone:": "🚣🏿", +":woman_rowing_boat_tone4:": "🚣🏾", +":woman_rowing_boat_medium_dark_skin_tone:": "🚣🏾", +":woman_rowing_boat_tone3:": "🚣🏽", +":woman_rowing_boat_medium_skin_tone:": "🚣🏽", +":woman_rowing_boat_tone2:": "🚣🏼", +":woman_rowing_boat_medium_light_skin_tone:": "🚣🏼", +":woman_rowing_boat_tone1:": "🚣🏻", +":woman_rowing_boat_light_skin_tone:": "🚣🏻", +":woman_rowing_boat:": "🚣", +":man_lifting_weights_tone5:": "🏋🏿", +":man_lifting_weights_dark_skin_tone:": "🏋🏿", +":man_lifting_weights_tone4:": "🏋🏾", +":man_lifting_weights_medium_dark_skin_tone:": "🏋🏾", +":man_lifting_weights_tone3:": "🏋🏽", +":man_lifting_weights_medium_skin_tone:": "🏋🏽", +":man_lifting_weights_tone2:": "🏋🏼", +":man_lifting_weights_medium_light_skin_tone:": "🏋🏼", +":man_lifting_weights_tone1:": "🏋🏻", +":man_lifting_weights_light_skin_tone:": "🏋🏻", +":man_lifting_weights:": "🏋", +":woman_lifting_weights_tone5:": "🏋🏿", +":woman_lifting_weights_dark_skin_tone:": "🏋🏿", +":woman_lifting_weights_tone4:": "🏋🏾", +":woman_lifting_weights_medium_dark_skin_tone:": "🏋🏾", +":woman_lifting_weights_tone3:": "🏋🏽", +":woman_lifting_weights_medium_skin_tone:": "🏋🏽", +":woman_lifting_weights_tone2:": "🏋🏼", +":woman_lifting_weights_medium_light_skin_tone:": "🏋🏼", +":woman_lifting_weights_tone1:": "🏋🏻", +":woman_lifting_weights_light_skin_tone:": "🏋🏻", +":woman_lifting_weights:": "🏋", +":man_swimming_tone5:": "🏊🏿", +":man_swimming_dark_skin_tone:": "🏊🏿", +":man_swimming_tone4:": "🏊🏾", +":man_swimming_medium_dark_skin_tone:": "🏊🏾", +":man_swimming_tone3:": "🏊🏽", +":man_swimming_medium_skin_tone:": "🏊🏽", +":man_swimming_tone2:": "🏊🏼", +":man_swimming_medium_light_skin_tone:": "🏊🏼", +":man_swimming_tone1:": "🏊🏻", +":man_swimming_light_skin_tone:": "🏊🏻", +":man_swimming:": "🏊", +":woman_swimming_tone5:": "🏊🏿", +":woman_swimming_dark_skin_tone:": "🏊🏿", +":woman_swimming_tone4:": "🏊🏾", +":woman_swimming_medium_dark_skin_tone:": "🏊🏾", +":woman_swimming_tone3:": "🏊🏽", +":woman_swimming_medium_skin_tone:": "🏊🏽", +":woman_swimming_tone2:": "🏊🏼", +":woman_swimming_medium_light_skin_tone:": "🏊🏼", +":woman_swimming_tone1:": "🏊🏻", +":woman_swimming_light_skin_tone:": "🏊🏻", +":woman_swimming:": "🏊", +":man_surfing_tone5:": "🏄🏿", +":man_surfing_dark_skin_tone:": "🏄🏿", +":man_surfing_tone4:": "🏄🏾", +":man_surfing_medium_dark_skin_tone:": "🏄🏾", +":man_surfing_tone3:": "🏄🏽", +":man_surfing_medium_skin_tone:": "🏄🏽", +":man_surfing_tone2:": "🏄🏼", +":man_surfing_medium_light_skin_tone:": "🏄🏼", +":man_surfing_tone1:": "🏄🏻", +":man_surfing_light_skin_tone:": "🏄🏻", +":man_surfing:": "🏄", +":woman_surfing_tone5:": "🏄🏿", +":woman_surfing_dark_skin_tone:": "🏄🏿", +":woman_surfing_tone4:": "🏄🏾", +":woman_surfing_medium_dark_skin_tone:": "🏄🏾", +":woman_surfing_tone3:": "🏄🏽", +":woman_surfing_medium_skin_tone:": "🏄🏽", +":woman_surfing_tone2:": "🏄🏼", +":woman_surfing_medium_light_skin_tone:": "🏄🏼", +":woman_surfing_tone1:": "🏄🏻", +":woman_surfing_light_skin_tone:": "🏄🏻", +":woman_surfing:": "🏄", +":man_running_tone5:": "🏃🏿", +":man_running_dark_skin_tone:": "🏃🏿", +":man_running_tone4:": "🏃🏾", +":man_running_medium_dark_skin_tone:": "🏃🏾", +":man_running_tone3:": "🏃🏽", +":man_running_medium_skin_tone:": "🏃🏽", +":man_running_tone2:": "🏃🏼", +":man_running_medium_light_skin_tone:": "🏃🏼", +":man_running_tone1:": "🏃🏻", +":man_running_light_skin_tone:": "🏃🏻", +":man_running:": "🏃", +":woman_running_tone5:": "🏃🏿", +":woman_running_dark_skin_tone:": "🏃🏿", +":woman_running_tone4:": "🏃🏾", +":woman_running_medium_dark_skin_tone:": "🏃🏾", +":woman_running_tone3:": "🏃🏽", +":woman_running_medium_skin_tone:": "🏃🏽", +":woman_running_tone2:": "🏃🏼", +":woman_running_medium_light_skin_tone:": "🏃🏼", +":woman_running_tone1:": "🏃🏻", +":woman_running_light_skin_tone:": "🏃🏻", +":woman_running:": "🏃", +":man_bouncing_ball_tone5:": "𓢞", +":man_bouncing_ball_dark_skin_tone:": "𓢞", +":man_bouncing_ball_tone4:": "𒢞", +":man_bouncing_ball_medium_dark_skin_tone:": "𒢞", +":man_bouncing_ball_tone3:": "𑢞", +":man_bouncing_ball_medium_skin_tone:": "𑢞", +":man_bouncing_ball_tone2:": "𐢞", +":man_bouncing_ball_medium_light_skin_tone:": "𐢞", +":man_bouncing_ball_tone1:": "", +":man_bouncing_ball_light_skin_tone:": "", +":man_bouncing_ball:": "䴻", +":woman_bouncing_ball_tone5:": "𓢜", +":woman_bouncing_ball_dark_skin_tone:": "𓢜", +":woman_bouncing_ball_tone4:": "𒢜", +":woman_bouncing_ball_medium_dark_skin_tone:": "𒢜", +":woman_bouncing_ball_tone3:": "𑢜", +":woman_bouncing_ball_medium_skin_tone:": "𑢜", +":woman_bouncing_ball_tone2:": "𐢜", +":woman_bouncing_ball_medium_light_skin_tone:": "𐢜", +":woman_bouncing_ball_tone1:": "", +":woman_bouncing_ball_light_skin_tone:": "", +":woman_bouncing_ball:": "䴹", +":man_shrugging_tone5:": "🤷🏿", +":man_shrugging_dark_skin_tone:": "🤷🏿", +":man_shrugging_tone4:": "🤷🏾", +":man_shrugging_medium_dark_skin_tone:": "🤷🏾", +":man_shrugging_tone3:": "🤷🏽", +":man_shrugging_medium_skin_tone:": "🤷🏽", +":man_shrugging_tone2:": "🤷🏼", +":man_shrugging_medium_light_skin_tone:": "🤷🏼", +":man_shrugging_tone1:": "🤷🏻", +":man_shrugging_light_skin_tone:": "🤷🏻", +":man_shrugging:": "🤷", +":woman_shrugging_tone5:": "🤷🏿", +":woman_shrugging_dark_skin_tone:": "🤷🏿", +":woman_shrugging_tone4:": "🤷🏾", +":woman_shrugging_medium_dark_skin_tone:": "🤷🏾", +":woman_shrugging_tone3:": "🤷🏽", +":woman_shrugging_medium_skin_tone:": "🤷🏽", +":woman_shrugging_tone2:": "🤷🏼", +":woman_shrugging_medium_light_skin_tone:": "🤷🏼", +":woman_shrugging_tone1:": "🤷🏻", +":woman_shrugging_light_skin_tone:": "🤷🏻", +":woman_shrugging:": "🤷", +":man_facepalming_tone5:": "🤦🏿", +":man_facepalming_dark_skin_tone:": "🤦🏿", +":man_facepalming_tone4:": "🤦🏾", +":man_facepalming_medium_dark_skin_tone:": "🤦🏾", +":man_facepalming_tone3:": "🤦🏽", +":man_facepalming_medium_skin_tone:": "🤦🏽", +":man_facepalming_tone2:": "🤦🏼", +":man_facepalming_medium_light_skin_tone:": "🤦🏼", +":man_facepalming_tone1:": "🤦🏻", +":man_facepalming_light_skin_tone:": "🤦🏻", +":man_facepalming:": "🤦", +":woman_facepalming_tone5:": "🤦🏿", +":woman_facepalming_dark_skin_tone:": "🤦🏿", +":woman_facepalming_tone4:": "🤦🏾", +":woman_facepalming_medium_dark_skin_tone:": "🤦🏾", +":woman_facepalming_tone3:": "🤦🏽", +":woman_facepalming_medium_skin_tone:": "🤦🏽", +":woman_facepalming_tone2:": "🤦🏼", +":woman_facepalming_medium_light_skin_tone:": "🤦🏼", +":woman_facepalming_tone1:": "🤦🏻", +":woman_facepalming_light_skin_tone:": "🤦🏻", +":woman_facepalming:": "🤦", +":man_pouting_tone5:": "🙎🏿", +":man_pouting_dark_skin_tone:": "🙎🏿", +":man_pouting_tone4:": "🙎🏾", +":man_pouting_medium_dark_skin_tone:": "🙎🏾", +":man_pouting_tone3:": "🙎🏽", +":man_pouting_medium_skin_tone:": "🙎🏽", +":man_pouting_tone2:": "🙎🏼", +":man_pouting_medium_light_skin_tone:": "🙎🏼", +":man_pouting_tone1:": "🙎🏻", +":man_pouting_light_skin_tone:": "🙎🏻", +":man_pouting:": "🙎", +":woman_pouting_tone5:": "🙎🏿", +":woman_pouting_dark_skin_tone:": "🙎🏿", +":woman_pouting_tone4:": "🙎🏾", +":woman_pouting_medium_dark_skin_tone:": "🙎🏾", +":woman_pouting_tone3:": "🙎🏽", +":woman_pouting_medium_skin_tone:": "🙎🏽", +":woman_pouting_tone2:": "🙎🏼", +":woman_pouting_medium_light_skin_tone:": "🙎🏼", +":woman_pouting_tone1:": "🙎🏻", +":woman_pouting_light_skin_tone:": "🙎🏻", +":woman_pouting:": "🙎", +":man_frowning_tone5:": "🙍🏿", +":man_frowning_dark_skin_tone:": "🙍🏿", +":man_frowning_tone4:": "🙍🏾", +":man_frowning_medium_dark_skin_tone:": "🙍🏾", +":man_frowning_tone3:": "🙍🏽", +":man_frowning_medium_skin_tone:": "🙍🏽", +":man_frowning_tone2:": "🙍🏼", +":man_frowning_medium_light_skin_tone:": "🙍🏼", +":man_frowning_tone1:": "🙍🏻", +":man_frowning_light_skin_tone:": "🙍🏻", +":man_frowning:": "🙍", +":woman_frowning_tone5:": "🙍🏿", +":woman_frowning_dark_skin_tone:": "🙍🏿", +":woman_frowning_tone4:": "🙍🏾", +":woman_frowning_medium_dark_skin_tone:": "🙍🏾", +":woman_frowning_tone3:": "🙍🏽", +":woman_frowning_medium_skin_tone:": "🙍🏽", +":woman_frowning_tone2:": "🙍🏼", +":woman_frowning_medium_light_skin_tone:": "🙍🏼", +":woman_frowning_tone1:": "🙍🏻", +":woman_frowning_light_skin_tone:": "🙍🏻", +":woman_frowning:": "🙍", +":man_raising_hand_tone5:": "🙋🏿", +":man_raising_hand_dark_skin_tone:": "🙋🏿", +":man_raising_hand_tone4:": "🙋🏾", +":man_raising_hand_medium_dark_skin_tone:": "🙋🏾", +":man_raising_hand_tone3:": "🙋🏽", +":man_raising_hand_medium_skin_tone:": "🙋🏽", +":man_raising_hand_tone2:": "🙋🏼", +":man_raising_hand_medium_light_skin_tone:": "🙋🏼", +":man_raising_hand_tone1:": "🙋🏻", +":man_raising_hand_light_skin_tone:": "🙋🏻", +":man_raising_hand:": "🙋", +":woman_raising_hand_tone5:": "🙋🏿", +":woman_raising_hand_dark_skin_tone:": "🙋🏿", +":woman_raising_hand_tone4:": "🙋🏾", +":woman_raising_hand_medium_dark_skin_tone:": "🙋🏾", +":woman_raising_hand_tone3:": "🙋🏽", +":woman_raising_hand_medium_skin_tone:": "🙋🏽", +":woman_raising_hand_tone2:": "🙋🏼", +":woman_raising_hand_medium_light_skin_tone:": "🙋🏼", +":woman_raising_hand_tone1:": "🙋🏻", +":woman_raising_hand_light_skin_tone:": "🙋🏻", +":woman_raising_hand:": "🙋", +":man_bowing_tone5:": "🙇🏿", +":man_bowing_dark_skin_tone:": "🙇🏿", +":man_bowing_tone4:": "🙇🏾", +":man_bowing_medium_dark_skin_tone:": "🙇🏾", +":man_bowing_tone3:": "🙇🏽", +":man_bowing_medium_skin_tone:": "🙇🏽", +":man_bowing_tone2:": "🙇🏼", +":man_bowing_medium_light_skin_tone:": "🙇🏼", +":man_bowing_tone1:": "🙇🏻", +":man_bowing_light_skin_tone:": "🙇🏻", +":man_bowing:": "🙇", +":woman_bowing_tone5:": "🙇🏿", +":woman_bowing_dark_skin_tone:": "🙇🏿", +":woman_bowing_tone4:": "🙇🏾", +":woman_bowing_medium_dark_skin_tone:": "🙇🏾", +":woman_bowing_tone3:": "🙇🏽", +":woman_bowing_medium_skin_tone:": "🙇🏽", +":woman_bowing_tone2:": "🙇🏼", +":woman_bowing_medium_light_skin_tone:": "🙇🏼", +":woman_bowing_tone1:": "🙇🏻", +":woman_bowing_light_skin_tone:": "🙇🏻", +":woman_bowing:": "🙇", +":man_gesturing_ok_tone5:": "🙆🏿", +":man_gesturing_ok_dark_skin_tone:": "🙆🏿", +":man_gesturing_ok_tone4:": "🙆🏾", +":man_gesturing_ok_medium_dark_skin_tone:": "🙆🏾", +":man_gesturing_ok_tone3:": "🙆🏽", +":man_gesturing_ok_medium_skin_tone:": "🙆🏽", +":man_gesturing_ok_tone2:": "🙆🏼", +":man_gesturing_ok_medium_light_skin_tone:": "🙆🏼", +":man_gesturing_ok_tone1:": "🙆🏻", +":man_gesturing_ok_light_skin_tone:": "🙆🏻", +":man_gesturing_ok:": "🙆", +":woman_gesturing_ok_tone5:": "🙆🏿", +":woman_gesturing_ok_dark_skin_tone:": "🙆🏿", +":woman_gesturing_ok_tone4:": "🙆🏾", +":woman_gesturing_ok_medium_dark_skin_tone:": "🙆🏾", +":woman_gesturing_ok_tone3:": "🙆🏽", +":woman_gesturing_ok_medium_skin_tone:": "🙆🏽", +":woman_gesturing_ok_tone2:": "🙆🏼", +":woman_gesturing_ok_medium_light_skin_tone:": "🙆🏼", +":woman_gesturing_ok_tone1:": "🙆🏻", +":woman_gesturing_ok_light_skin_tone:": "🙆🏻", +":woman_gesturing_ok:": "🙆", +":man_gesturing_no_tone5:": "🙅🏿", +":man_gesturing_no_dark_skin_tone:": "🙅🏿", +":man_gesturing_no_tone4:": "🙅🏾", +":man_gesturing_no_medium_dark_skin_tone:": "🙅🏾", +":man_gesturing_no_tone3:": "🙅🏽", +":man_gesturing_no_medium_skin_tone:": "🙅🏽", +":man_gesturing_no_tone2:": "🙅🏼", +":man_gesturing_no_medium_light_skin_tone:": "🙅🏼", +":man_gesturing_no_tone1:": "🙅🏻", +":man_gesturing_no_light_skin_tone:": "🙅🏻", +":man_gesturing_no:": "🙅", +":woman_gesturing_no_tone5:": "🙅🏿", +":woman_gesturing_no_dark_skin_tone:": "🙅🏿", +":woman_gesturing_no_tone4:": "🙅🏾", +":woman_gesturing_no_medium_dark_skin_tone:": "🙅🏾", +":woman_gesturing_no_tone3:": "🙅🏽", +":woman_gesturing_no_medium_skin_tone:": "🙅🏽", +":woman_gesturing_no_tone2:": "🙅🏼", +":woman_gesturing_no_medium_light_skin_tone:": "🙅🏼", +":woman_gesturing_no_tone1:": "🙅🏻", +":woman_gesturing_no_light_skin_tone:": "🙅🏻", +":woman_gesturing_no:": "🙅", +":man_getting_haircut_tone5:": "💇🏿", +":man_getting_haircut_dark_skin_tone:": "💇🏿", +":man_getting_haircut_tone4:": "💇🏾", +":man_getting_haircut_medium_dark_skin_tone:": "💇🏾", +":man_getting_haircut_tone3:": "💇🏽", +":man_getting_haircut_medium_skin_tone:": "💇🏽", +":man_getting_haircut_tone2:": "💇🏼", +":man_getting_haircut_medium_light_skin_tone:": "💇🏼", +":man_getting_haircut_tone1:": "💇🏻", +":man_getting_haircut_light_skin_tone:": "💇🏻", +":man_getting_haircut:": "💇", +":woman_getting_haircut_tone5:": "💇🏿", +":woman_getting_haircut_dark_skin_tone:": "💇🏿", +":woman_getting_haircut_tone4:": "💇🏾", +":woman_getting_haircut_medium_dark_skin_tone:": "💇🏾", +":woman_getting_haircut_tone3:": "💇🏽", +":woman_getting_haircut_medium_skin_tone:": "💇🏽", +":woman_getting_haircut_tone2:": "💇🏼", +":woman_getting_haircut_medium_light_skin_tone:": "💇🏼", +":woman_getting_haircut_tone1:": "💇🏻", +":woman_getting_haircut_light_skin_tone:": "💇🏻", +":woman_getting_haircut:": "💇", +":man_getting_face_massage_tone5:": "💆🏿", +":man_getting_face_massage_dark_skin_tone:": "💆🏿", +":man_getting_face_massage_tone4:": "💆🏾", +":man_getting_face_massage_medium_dark_skin_tone:": "💆🏾", +":man_getting_face_massage_tone3:": "💆🏽", +":man_getting_face_massage_medium_skin_tone:": "💆🏽", +":man_getting_face_massage_tone2:": "💆🏼", +":man_getting_face_massage_medium_light_skin_tone:": "💆🏼", +":man_getting_face_massage_tone1:": "💆🏻", +":man_getting_face_massage_light_skin_tone:": "💆🏻", +":man_getting_face_massage:": "💆", +":woman_getting_face_massage_tone5:": "💆🏿", +":woman_getting_face_massage_dark_skin_tone:": "💆🏿", +":woman_getting_face_massage_tone4:": "💆🏾", +":woman_getting_face_massage_medium_dark_skin_tone:": "💆🏾", +":woman_getting_face_massage_tone3:": "💆🏽", +":woman_getting_face_massage_medium_skin_tone:": "💆🏽", +":woman_getting_face_massage_tone2:": "💆🏼", +":woman_getting_face_massage_medium_light_skin_tone:": "💆🏼", +":woman_getting_face_massage_tone1:": "💆🏻", +":woman_getting_face_massage_light_skin_tone:": "💆🏻", +":woman_getting_face_massage:": "💆", +":man_tipping_hand_tone5:": "💁🏿", +":man_tipping_hand_dark_skin_tone:": "💁🏿", +":man_tipping_hand_tone4:": "💁🏾", +":man_tipping_hand_medium_dark_skin_tone:": "💁🏾", +":man_tipping_hand_tone3:": "💁🏽", +":man_tipping_hand_medium_skin_tone:": "💁🏽", +":man_tipping_hand_tone2:": "💁🏼", +":man_tipping_hand_medium_light_skin_tone:": "💁🏼", +":man_tipping_hand_tone1:": "💁🏻", +":man_tipping_hand_light_skin_tone:": "💁🏻", +":man_tipping_hand:": "💁", +":woman_tipping_hand_tone5:": "💁🏿", +":woman_tipping_hand_dark_skin_tone:": "💁🏿", +":woman_tipping_hand_tone4:": "💁🏾", +":woman_tipping_hand_medium_dark_skin_tone:": "💁🏾", +":woman_tipping_hand_tone3:": "💁🏽", +":woman_tipping_hand_medium_skin_tone:": "💁🏽", +":woman_tipping_hand_tone2:": "💁🏼", +":woman_tipping_hand_medium_light_skin_tone:": "💁🏼", +":woman_tipping_hand_tone1:": "💁🏻", +":woman_tipping_hand_light_skin_tone:": "💁🏻", +":woman_tipping_hand:": "💁", +":blondhaired_man_tone5:": "👱🏿", +":blondhaired_man_dark_skin_tone:": "👱🏿", +":blondhaired_man_tone4:": "👱🏾", +":blondhaired_man_medium_dark_skin_tone:": "👱🏾", +":blondhaired_man_tone3:": "👱🏽", +":blondhaired_man_medium_skin_tone:": "👱🏽", +":blondhaired_man_tone2:": "👱🏼", +":blondhaired_man_medium_light_skin_tone:": "👱🏼", +":blondhaired_man_tone1:": "👱🏻", +":blondhaired_man_light_skin_tone:": "👱🏻", +":blondhaired_man:": "👱", +":blondhaired_woman_tone5:": "👱🏿", +":blondhaired_woman_dark_skin_tone:": "👱🏿", +":blondhaired_woman_tone4:": "👱🏾", +":blondhaired_woman_medium_dark_skin_tone:": "👱🏾", +":blondhaired_woman_tone3:": "👱🏽", +":blondhaired_woman_medium_skin_tone:": "👱🏽", +":blondhaired_woman_tone2:": "👱🏼", +":blondhaired_woman_medium_light_skin_tone:": "👱🏼", +":blondhaired_woman_tone1:": "👱🏻", +":blondhaired_woman_light_skin_tone:": "👱🏻", +":blondhaired_woman:": "👱", +":man_wearing_turban_tone5:": "👳🏿", +":man_wearing_turban_dark_skin_tone:": "👳🏿", +":man_wearing_turban_tone4:": "👳🏾", +":man_wearing_turban_medium_dark_skin_tone:": "👳🏾", +":man_wearing_turban_tone3:": "👳🏽", +":man_wearing_turban_medium_skin_tone:": "👳🏽", +":man_wearing_turban_tone2:": "👳🏼", +":man_wearing_turban_medium_light_skin_tone:": "👳🏼", +":man_wearing_turban_tone1:": "👳🏻", +":man_wearing_turban_light_skin_tone:": "👳🏻", +":man_wearing_turban:": "👳", +":woman_wearing_turban_tone5:": "👳🏿", +":woman_wearing_turban_dark_skin_tone:": "👳🏿", +":woman_wearing_turban_tone4:": "👳🏾", +":woman_wearing_turban_medium_dark_skin_tone:": "👳🏾", +":woman_wearing_turban_tone3:": "👳🏽", +":woman_wearing_turban_medium_skin_tone:": "👳🏽", +":woman_wearing_turban_tone2:": "👳🏼", +":woman_wearing_turban_medium_light_skin_tone:": "👳🏼", +":woman_wearing_turban_tone1:": "👳🏻", +":woman_wearing_turban_light_skin_tone:": "👳🏻", +":woman_wearing_turban:": "👳", +":man_guard_tone5:": "💂🏿", +":man_guard_dark_skin_tone:": "💂🏿", +":man_guard_tone4:": "💂🏾", +":man_guard_medium_dark_skin_tone:": "💂🏾", +":man_guard_tone3:": "💂🏽", +":man_guard_medium_skin_tone:": "💂🏽", +":man_guard_tone2:": "💂🏼", +":man_guard_medium_light_skin_tone:": "💂🏼", +":man_guard_tone1:": "💂🏻", +":man_guard_light_skin_tone:": "💂🏻", +":man_guard:": "💂", +":woman_guard_tone5:": "💂🏿", +":woman_guard_dark_skin_tone:": "💂🏿", +":woman_guard_tone4:": "💂🏾", +":woman_guard_medium_dark_skin_tone:": "💂🏾", +":woman_guard_tone3:": "💂🏽", +":woman_guard_medium_skin_tone:": "💂🏽", +":woman_guard_tone2:": "💂🏼", +":woman_guard_medium_light_skin_tone:": "💂🏼", +":woman_guard_tone1:": "💂🏻", +":woman_guard_light_skin_tone:": "💂🏻", +":woman_guard:": "💂", +":man_detective_tone5:": "🕵🏿", +":man_detective_dark_skin_tone:": "🕵🏿", +":man_detective_tone4:": "🕵🏾", +":man_detective_medium_dark_skin_tone:": "🕵🏾", +":man_detective_tone3:": "🕵🏽", +":man_detective_medium_skin_tone:": "🕵🏽", +":man_detective_tone2:": "🕵🏼", +":man_detective_medium_light_skin_tone:": "🕵🏼", +":man_detective_tone1:": "🕵🏻", +":man_detective_light_skin_tone:": "🕵🏻", +":man_detective:": "🕵", +":woman_detective_tone5:": "🕵🏿", +":woman_detective_dark_skin_tone:": "🕵🏿", +":woman_detective_tone4:": "🕵🏾", +":woman_detective_medium_dark_skin_tone:": "🕵🏾", +":woman_detective_tone3:": "🕵🏽", +":woman_detective_medium_skin_tone:": "🕵🏽", +":woman_detective_tone2:": "🕵🏼", +":woman_detective_medium_light_skin_tone:": "🕵🏼", +":woman_detective_tone1:": "🕵🏻", +":woman_detective_light_skin_tone:": "🕵🏻", +":woman_detective:": "🕵", +":man_construction_worker_tone5:": "👷🏿", +":man_construction_worker_dark_skin_tone:": "👷🏿", +":man_construction_worker_tone4:": "👷🏾", +":man_construction_worker_medium_dark_skin_tone:": "👷🏾", +":man_construction_worker_tone3:": "👷🏽", +":man_construction_worker_medium_skin_tone:": "👷🏽", +":man_construction_worker_tone2:": "👷🏼", +":man_construction_worker_medium_light_skin_tone:": "👷🏼", +":man_construction_worker_tone1:": "👷🏻", +":man_construction_worker_light_skin_tone:": "👷🏻", +":man_construction_worker:": "👷", +":woman_construction_worker_tone5:": "👷🏿", +":woman_construction_worker_dark_skin_tone:": "👷🏿", +":woman_construction_worker_tone4:": "👷🏾", +":woman_construction_worker_medium_dark_skin_tone:": "👷🏾", +":woman_construction_worker_tone3:": "👷🏽", +":woman_construction_worker_medium_skin_tone:": "👷🏽", +":woman_construction_worker_tone2:": "👷🏼", +":woman_construction_worker_medium_light_skin_tone:": "👷🏼", +":woman_construction_worker_tone1:": "👷🏻", +":woman_construction_worker_light_skin_tone:": "👷🏻", +":woman_construction_worker:": "👷", +":man_police_officer_tone5:": "👮🏿", +":man_police_officer_dark_skin_tone:": "👮🏿", +":man_police_officer_tone4:": "👮🏾", +":man_police_officer_medium_dark_skin_tone:": "👮🏾", +":man_police_officer_tone3:": "👮🏽", +":man_police_officer_medium_skin_tone:": "👮🏽", +":man_police_officer_tone2:": "👮🏼", +":man_police_officer_medium_light_skin_tone:": "👮🏼", +":man_police_officer_tone1:": "👮🏻", +":man_police_officer_light_skin_tone:": "👮🏻", +":man_police_officer:": "👮", +":woman_police_officer_tone5:": "👮🏿", +":woman_police_officer_dark_skin_tone:": "👮🏿", +":woman_police_officer_tone4:": "👮🏾", +":woman_police_officer_medium_dark_skin_tone:": "👮🏾", +":woman_police_officer_tone3:": "👮🏽", +":woman_police_officer_medium_skin_tone:": "👮🏽", +":woman_police_officer_tone2:": "👮🏼", +":woman_police_officer_medium_light_skin_tone:": "👮🏼", +":woman_police_officer_tone1:": "👮🏻", +":woman_police_officer_light_skin_tone:": "👮🏻", +":woman_police_officer:": "👮", +":man_technologist_tone5:": "👨🏿💻", +":man_technologist_dark_skin_tone:": "👨🏿💻", +":man_technologist_tone4:": "👨🏾💻", +":man_technologist_medium_dark_skin_tone:": "👨🏾💻", +":man_technologist_tone3:": "👨🏽💻", +":man_technologist_medium_skin_tone:": "👨🏽💻", +":man_technologist_tone2:": "👨🏼💻", +":man_technologist_medium_light_skin_tone:": "👨🏼💻", +":man_technologist_tone1:": "👨🏻💻", +":man_technologist_light_skin_tone:": "👨🏻💻", +":man_technologist:": "👨💻", +":woman_technologist_tone5:": "👩🏿💻", +":woman_technologist_dark_skin_tone:": "👩🏿💻", +":woman_technologist_tone4:": "👩🏾💻", +":woman_technologist_medium_dark_skin_tone:": "👩🏾💻", +":woman_technologist_tone3:": "👩🏽💻", +":woman_technologist_medium_skin_tone:": "👩🏽💻", +":woman_technologist_tone2:": "👩🏼💻", +":woman_technologist_medium_light_skin_tone:": "👩🏼💻", +":woman_technologist_tone1:": "👩🏻💻", +":woman_technologist_light_skin_tone:": "👩🏻💻", +":woman_technologist:": "👩💻", +":man_teacher_tone5:": "👨🏿🏫", +":man_teacher_dark_skin_tone:": "👨🏿🏫", +":man_teacher_tone4:": "👨🏾🏫", +":man_teacher_medium_dark_skin_tone:": "👨🏾🏫", +":man_teacher_tone3:": "👨🏽🏫", +":man_teacher_medium_skin_tone:": "👨🏽🏫", +":man_teacher_tone2:": "👨🏼🏫", +":man_teacher_medium_light_skin_tone:": "👨🏼🏫", +":man_teacher_tone1:": "👨🏻🏫", +":man_teacher_light_skin_tone:": "👨🏻🏫", +":man_teacher:": "👨🏫", +":woman_teacher_tone5:": "👩🏿🏫", +":woman_teacher_dark_skin_tone:": "👩🏿🏫", +":woman_teacher_tone4:": "👩🏾🏫", +":woman_teacher_medium_dark_skin_tone:": "👩🏾🏫", +":woman_teacher_tone3:": "👩🏽🏫", +":woman_teacher_medium_skin_tone:": "👩🏽🏫", +":woman_teacher_tone2:": "👩🏼🏫", +":woman_teacher_medium_light_skin_tone:": "👩🏼🏫", +":woman_teacher_tone1:": "👩🏻🏫", +":woman_teacher_light_skin_tone:": "👩🏻🏫", +":woman_teacher:": "👩🏫", +":man_student_tone5:": "👨🏿🎓", +":man_student_dark_skin_tone:": "👨🏿🎓", +":man_student_tone4:": "👨🏾🎓", +":man_student_medium_dark_skin_tone:": "👨🏾🎓", +":man_student_tone3:": "👨🏽🎓", +":man_student_medium_skin_tone:": "👨🏽🎓", +":man_student_tone2:": "👨🏼🎓", +":man_student_medium_light_skin_tone:": "👨🏼🎓", +":man_student_tone1:": "👨🏻🎓", +":man_student_light_skin_tone:": "👨🏻🎓", +":man_student:": "👨🎓", +":woman_student_tone5:": "👩🏿🎓", +":woman_student_dark_skin_tone:": "👩🏿🎓", +":woman_student_tone4:": "👩🏾🎓", +":woman_student_medium_dark_skin_tone:": "👩🏾🎓", +":woman_student_tone3:": "👩🏽🎓", +":woman_student_medium_skin_tone:": "👩🏽🎓", +":woman_student_tone2:": "👩🏼🎓", +":woman_student_medium_light_skin_tone:": "👩🏼🎓", +":woman_student_tone1:": "👩🏻🎓", +":woman_student_light_skin_tone:": "👩🏻🎓", +":woman_student:": "👩🎓", +":man_singer_tone5:": "👨🏿🎤", +":man_singer_dark_skin_tone:": "👨🏿🎤", +":man_singer_tone4:": "👨🏾🎤", +":man_singer_medium_dark_skin_tone:": "👨🏾🎤", +":man_singer_tone3:": "👨🏽🎤", +":man_singer_medium_skin_tone:": "👨🏽🎤", +":man_singer_tone2:": "👨🏼🎤", +":man_singer_medium_light_skin_tone:": "👨🏼🎤", +":man_singer_tone1:": "👨🏻🎤", +":man_singer_light_skin_tone:": "👨🏻🎤", +":man_singer:": "👨🎤", +":woman_singer_tone5:": "👩🏿🎤", +":woman_singer_dark_skin_tone:": "👩🏿🎤", +":woman_singer_tone4:": "👩🏾🎤", +":woman_singer_medium_dark_skin_tone:": "👩🏾🎤", +":woman_singer_tone3:": "👩🏽🎤", +":woman_singer_medium_skin_tone:": "👩🏽🎤", +":woman_singer_tone2:": "👩🏼🎤", +":woman_singer_medium_light_skin_tone:": "👩🏼🎤", +":woman_singer_tone1:": "👩🏻🎤", +":woman_singer_light_skin_tone:": "👩🏻🎤", +":woman_singer:": "👩🎤", +":man_scientist_tone5:": "👨🏿🔬", +":man_scientist_dark_skin_tone:": "👨🏿🔬", +":man_scientist_tone4:": "👨🏾🔬", +":man_scientist_medium_dark_skin_tone:": "👨🏾🔬", +":man_scientist_tone3:": "👨🏽🔬", +":man_scientist_medium_skin_tone:": "👨🏽🔬", +":man_scientist_tone2:": "👨🏼🔬", +":man_scientist_medium_light_skin_tone:": "👨🏼🔬", +":man_scientist_tone1:": "👨🏻🔬", +":man_scientist_light_skin_tone:": "👨🏻🔬", +":man_scientist:": "👨🔬", +":woman_scientist_tone5:": "👩🏿🔬", +":woman_scientist_dark_skin_tone:": "👩🏿🔬", +":woman_scientist_tone4:": "👩🏾🔬", +":woman_scientist_medium_dark_skin_tone:": "👩🏾🔬", +":woman_scientist_tone3:": "👩🏽🔬", +":woman_scientist_medium_skin_tone:": "👩🏽🔬", +":woman_scientist_tone2:": "👩🏼🔬", +":woman_scientist_medium_light_skin_tone:": "👩🏼🔬", +":woman_scientist_tone1:": "👩🏻🔬", +":woman_scientist_light_skin_tone:": "👩🏻🔬", +":woman_scientist:": "👩🔬", +":man_office_worker_tone5:": "👨🏿💼", +":man_office_worker_dark_skin_tone:": "👨🏿💼", +":man_office_worker_tone4:": "👨🏾💼", +":man_office_worker_medium_dark_skin_tone:": "👨🏾💼", +":man_office_worker_tone3:": "👨🏽💼", +":man_office_worker_medium_skin_tone:": "👨🏽💼", +":man_office_worker_tone2:": "👨🏼💼", +":man_office_worker_medium_light_skin_tone:": "👨🏼💼", +":man_office_worker_tone1:": "👨🏻💼", +":man_office_worker_light_skin_tone:": "👨🏻💼", +":man_office_worker:": "👨💼", +":woman_office_worker_tone5:": "👩🏿💼", +":woman_office_worker_dark_skin_tone:": "👩🏿💼", +":woman_office_worker_tone4:": "👩🏾💼", +":woman_office_worker_medium_dark_skin_tone:": "👩🏾💼", +":woman_office_worker_tone3:": "👩🏽💼", +":woman_office_worker_medium_skin_tone:": "👩🏽💼", +":woman_office_worker_tone2:": "👩🏼💼", +":woman_office_worker_medium_light_skin_tone:": "👩🏼💼", +":woman_office_worker_tone1:": "👩🏻💼", +":woman_office_worker_light_skin_tone:": "👩🏻💼", +":woman_office_worker:": "👩💼", +":man_mechanic_tone5:": "👨🏿🔧", +":man_mechanic_dark_skin_tone:": "👨🏿🔧", +":man_mechanic_tone4:": "👨🏾🔧", +":man_mechanic_medium_dark_skin_tone:": "👨🏾🔧", +":man_mechanic_tone3:": "👨🏽🔧", +":man_mechanic_medium_skin_tone:": "👨🏽🔧", +":man_mechanic_tone2:": "👨🏼🔧", +":man_mechanic_medium_light_skin_tone:": "👨🏼🔧", +":man_mechanic_tone1:": "👨🏻🔧", +":man_mechanic_light_skin_tone:": "👨🏻🔧", +":man_mechanic:": "👨🔧", +":woman_mechanic_tone5:": "👩🏿🔧", +":woman_mechanic_dark_skin_tone:": "👩🏿🔧", +":woman_mechanic_tone4:": "👩🏾🔧", +":woman_mechanic_medium_dark_skin_tone:": "👩🏾🔧", +":woman_mechanic_tone3:": "👩🏽🔧", +":woman_mechanic_medium_skin_tone:": "👩🏽🔧", +":woman_mechanic_tone2:": "👩🏼🔧", +":woman_mechanic_medium_light_skin_tone:": "👩🏼🔧", +":woman_mechanic_tone1:": "👩🏻🔧", +":woman_mechanic_light_skin_tone:": "👩🏻🔧", +":woman_mechanic:": "👩🔧", +":man_health_worker_tone5:": "👨🏿⚕", +":man_health_worker_dark_skin_tone:": "👨🏿⚕", +":man_health_worker_tone4:": "👨🏾⚕", +":man_health_worker_medium_dark_skin_tone:": "👨🏾⚕", +":man_health_worker_tone3:": "👨🏽⚕", +":man_health_worker_medium_skin_tone:": "👨🏽⚕", +":man_health_worker_tone2:": "👨🏼⚕", +":man_health_worker_medium_light_skin_tone:": "👨🏼⚕", +":man_health_worker_tone1:": "👨🏻⚕", +":man_health_worker_light_skin_tone:": "👨🏻⚕", +":man_health_worker:": "👨⚕", +":woman_health_worker_tone5:": "👩🏿⚕", +":woman_health_worker_dark_skin_tone:": "👩🏿⚕", +":woman_health_worker_tone4:": "👩🏾⚕", +":woman_health_worker_medium_dark_skin_tone:": "👩🏾⚕", +":woman_health_worker_tone3:": "👩🏽⚕", +":woman_health_worker_medium_skin_tone:": "👩🏽⚕", +":woman_health_worker_tone2:": "👩🏼⚕", +":woman_health_worker_medium_light_skin_tone:": "👩🏼⚕", +":woman_health_worker_tone1:": "👩🏻⚕", +":woman_health_worker_light_skin_tone:": "👩🏻⚕", +":woman_health_worker:": "👩⚕", +":man_factory_worker_tone5:": "👨🏿🏭", +":man_factory_worker_dark_skin_tone:": "👨🏿🏭", +":man_factory_worker_tone4:": "👨🏾🏭", +":man_factory_worker_medium_dark_skin_tone:": "👨🏾🏭", +":man_factory_worker_tone3:": "👨🏽🏭", +":man_factory_worker_medium_skin_tone:": "👨🏽🏭", +":man_factory_worker_tone2:": "👨🏼🏭", +":man_factory_worker_medium_light_skin_tone:": "👨🏼🏭", +":man_factory_worker_tone1:": "👨🏻🏭", +":man_factory_worker_light_skin_tone:": "👨🏻🏭", +":man_factory_worker:": "👨🏭", +":woman_factory_worker_tone5:": "👩🏿🏭", +":woman_factory_worker_dark_skin_tone:": "👩🏿🏭", +":woman_factory_worker_tone4:": "👩🏾🏭", +":woman_factory_worker_medium_dark_skin_tone:": "👩🏾🏭", +":woman_factory_worker_tone3:": "👩🏽🏭", +":woman_factory_worker_medium_skin_tone:": "👩🏽🏭", +":woman_factory_worker_tone2:": "👩🏼🏭", +":woman_factory_worker_medium_light_skin_tone:": "👩🏼🏭", +":woman_factory_worker_tone1:": "👩🏻🏭", +":woman_factory_worker_light_skin_tone:": "👩🏻🏭", +":woman_factory_worker:": "👩🏭", +":man_cook_tone5:": "👨🏿🍳", +":man_cook_dark_skin_tone:": "👨🏿🍳", +":man_cook_tone4:": "👨🏾🍳", +":man_cook_medium_dark_skin_tone:": "👨🏾🍳", +":man_cook_tone3:": "👨🏽🍳", +":man_cook_medium_skin_tone:": "👨🏽🍳", +":man_cook_tone2:": "👨🏼🍳", +":man_cook_medium_light_skin_tone:": "👨🏼🍳", +":man_cook_tone1:": "👨🏻🍳", +":man_cook_light_skin_tone:": "👨🏻🍳", +":man_cook:": "👨🍳", +":woman_cook_tone5:": "👩🏿🍳", +":woman_cook_dark_skin_tone:": "👩🏿🍳", +":woman_cook_tone4:": "👩🏾🍳", +":woman_cook_medium_dark_skin_tone:": "👩🏾🍳", +":woman_cook_tone3:": "👩🏽🍳", +":woman_cook_medium_skin_tone:": "👩🏽🍳", +":woman_cook_tone2:": "👩🏼🍳", +":woman_cook_medium_light_skin_tone:": "👩🏼🍳", +":woman_cook_tone1:": "👩🏻🍳", +":woman_cook_light_skin_tone:": "👩🏻🍳", +":woman_cook:": "👩🍳", +":man_farmer_tone5:": "👨🏿🌾", +":man_farmer_dark_skin_tone:": "👨🏿🌾", +":man_farmer_tone4:": "👨🏾🌾", +":man_farmer_medium_dark_skin_tone:": "👨🏾🌾", +":man_farmer_tone3:": "👨🏽🌾", +":man_farmer_medium_skin_tone:": "👨🏽🌾", +":man_farmer_tone2:": "👨🏼🌾", +":man_farmer_medium_light_skin_tone:": "👨🏼🌾", +":man_farmer_tone1:": "👨🏻🌾", +":man_farmer_light_skin_tone:": "👨🏻🌾", +":man_farmer:": "👨🌾", +":woman_farmer_tone5:": "👩🏿🌾", +":woman_farmer_dark_skin_tone:": "👩🏿🌾", +":woman_farmer_tone4:": "👩🏾🌾", +":woman_farmer_medium_dark_skin_tone:": "👩🏾🌾", +":woman_farmer_tone3:": "👩🏽🌾", +":woman_farmer_medium_skin_tone:": "👩🏽🌾", +":woman_farmer_tone2:": "👩🏼🌾", +":woman_farmer_medium_light_skin_tone:": "👩🏼🌾", +":woman_farmer_tone1:": "👩🏻🌾", +":woman_farmer_light_skin_tone:": "👩🏻🌾", +":woman_farmer:": "👩🌾", +":man_in_business_suit_levitating_tone1:": "🕴🏻", +":man_in_business_suit_levitating_light_skin_tone:": "🕴🏻", +":man_in_business_suit_levitating_tone2:": "🕴🏼", +":man_in_business_suit_levitating_medium_light_skin_tone:": "🕴🏼", +":man_in_business_suit_levitating_tone3:": "🕴🏽", +":man_in_business_suit_levitating_medium_skin_tone:": "🕴🏽", +":man_in_business_suit_levitating_tone4:": "🕴🏾", +":man_in_business_suit_levitating_medium_dark_skin_tone:": "🕴🏾", +":man_in_business_suit_levitating_tone5:": "🕴🏿", +":man_in_business_suit_levitating_dark_skin_tone:": "🕴🏿", +":person_in_bed_tone1:": "🛌🏻", +":person_in_bed_light_skin_tone:": "🛌🏻", +":person_in_bed_tone2:": "🛌🏼", +":person_in_bed_medium_light_skin_tone:": "🛌🏼", +":person_in_bed_tone3:": "🛌🏽", +":person_in_bed_medium_skin_tone:": "🛌🏽", +":person_in_bed_tone4:": "🛌🏾", +":person_in_bed_medium_dark_skin_tone:": "🛌🏾", +":person_in_bed_tone5:": "🛌🏿", +":person_in_bed_dark_skin_tone:": "🛌🏿", +":family_man_boy:": "👨👦", +":family_man_boy_boy:": "👨👦👦", +":family_man_girl:": "👨👧", +":family_man_girl_boy:": "👨👧👦", +":family_woman_boy:": "👩👦", +":family_woman_boy_boy:": "👩👦👦", +":family_woman_girl:": "👩👧", +":family_woman_girl_boy:": "👩👧👦", +":family_woman_girl_girl:": "👩👧👧", +":man_judge:": "👨⚖", +":man_judge_tone1:": "👨🏻⚖", +":man_judge_light_skin_tone:": "👨🏻⚖", +":man_judge_tone2:": "👨🏼⚖", +":man_judge_medium_light_skin_tone:": "👨🏼⚖", +":man_judge_tone3:": "👨🏽⚖", +":man_judge_medium_skin_tone:": "👨🏽⚖", +":man_judge_tone4:": "👨🏾⚖", +":man_judge_medium_dark_skin_tone:": "👨🏾⚖", +":man_judge_tone5:": "👨🏿⚖", +":man_judge_dark_skin_tone:": "👨🏿⚖", +":woman_judge:": "👩⚖", +":woman_judge_tone1:": "👩🏻⚖", +":woman_judge_light_skin_tone:": "👩🏻⚖", +":woman_judge_tone2:": "👩🏼⚖", +":woman_judge_medium_light_skin_tone:": "👩🏼⚖", +":woman_judge_tone3:": "👩🏽⚖", +":woman_judge_medium_skin_tone:": "👩🏽⚖", +":woman_judge_tone4:": "👩🏾⚖", +":woman_judge_medium_dark_skin_tone:": "👩🏾⚖", +":woman_judge_tone5:": "👩🏿⚖", +":woman_judge_dark_skin_tone:": "👩🏿⚖", +":man_pilot:": "👨✈", +":man_pilot_tone1:": "👨🏻✈", +":man_pilot_light_skin_tone:": "👨🏻✈", +":man_pilot_tone2:": "👨🏼✈", +":man_pilot_medium_light_skin_tone:": "👨🏼✈", +":man_pilot_tone3:": "👨🏽✈", +":man_pilot_medium_skin_tone:": "👨🏽✈", +":man_pilot_tone4:": "👨🏾✈", +":man_pilot_medium_dark_skin_tone:": "👨🏾✈", +":man_pilot_tone5:": "👨🏿✈", +":man_pilot_dark_skin_tone:": "👨🏿✈", +":woman_pilot:": "👩✈", +":woman_pilot_tone1:": "👩🏻✈", +":woman_pilot_light_skin_tone:": "👩🏻✈", +":woman_pilot_tone2:": "👩🏼✈", +":woman_pilot_medium_light_skin_tone:": "👩🏼✈", +":woman_pilot_tone3:": "👩🏽✈", +":woman_pilot_medium_skin_tone:": "👩🏽✈", +":woman_pilot_tone4:": "👩🏾✈", +":woman_pilot_medium_dark_skin_tone:": "👩🏾✈", +":woman_pilot_tone5:": "👩🏿✈", +":woman_pilot_dark_skin_tone:": "👩🏿✈", +":man_artist:": "👨🎨", +":man_artist_tone1:": "👨🏻🎨", +":man_artist_light_skin_tone:": "👨🏻🎨", +":man_artist_tone2:": "👨🏼🎨", +":man_artist_medium_light_skin_tone:": "👨🏼🎨", +":man_artist_tone3:": "👨🏽🎨", +":man_artist_medium_skin_tone:": "👨🏽🎨", +":man_artist_tone4:": "👨🏾🎨", +":man_artist_medium_dark_skin_tone:": "👨🏾🎨", +":man_artist_tone5:": "👨🏿🎨", +":man_artist_dark_skin_tone:": "👨🏿🎨", +":woman_artist:": "👩🎨", +":woman_artist_tone1:": "👩🏻🎨", +":woman_artist_light_skin_tone:": "👩🏻🎨", +":woman_artist_tone2:": "👩🏼🎨", +":woman_artist_medium_light_skin_tone:": "👩🏼🎨", +":woman_artist_tone3:": "👩🏽🎨", +":woman_artist_medium_skin_tone:": "👩🏽🎨", +":woman_artist_tone4:": "👩🏾🎨", +":woman_artist_medium_dark_skin_tone:": "👩🏾🎨", +":woman_artist_tone5:": "👩🏿🎨", +":woman_artist_dark_skin_tone:": "👩🏿🎨", +":man_astronaut:": "👨🚀", +":man_astronaut_tone1:": "👨🏻🚀", +":man_astronaut_light_skin_tone:": "👨🏻🚀", +":man_astronaut_tone2:": "👨🏼🚀", +":man_astronaut_medium_light_skin_tone:": "👨🏼🚀", +":man_astronaut_tone3:": "👨🏽🚀", +":man_astronaut_medium_skin_tone:": "👨🏽🚀", +":man_astronaut_tone4:": "👨🏾🚀", +":man_astronaut_medium_dark_skin_tone:": "👨🏾🚀", +":man_astronaut_tone5:": "👨🏿🚀", +":man_astronaut_dark_skin_tone:": "👨🏿🚀", +":woman_astronaut:": "👩🚀", +":woman_astronaut_tone1:": "👩🏻🚀", +":woman_astronaut_light_skin_tone:": "👩🏻🚀", +":woman_astronaut_tone2:": "👩🏼🚀", +":woman_astronaut_medium_light_skin_tone:": "👩🏼🚀", +":woman_astronaut_tone3:": "👩🏽🚀", +":woman_astronaut_medium_skin_tone:": "👩🏽🚀", +":woman_astronaut_tone4:": "👩🏾🚀", +":woman_astronaut_medium_dark_skin_tone:": "👩🏾🚀", +":woman_astronaut_tone5:": "👩🏿🚀", +":woman_astronaut_dark_skin_tone:": "👩🏿🚀", +":man_firefighter:": "👨🚒", +":man_firefighter_tone1:": "👨🏻🚒", +":man_firefighter_light_skin_tone:": "👨🏻🚒", +":man_firefighter_tone2:": "👨🏼🚒", +":man_firefighter_medium_light_skin_tone:": "👨🏼🚒", +":man_firefighter_tone3:": "👨🏽🚒", +":man_firefighter_medium_skin_tone:": "👨🏽🚒", +":man_firefighter_tone4:": "👨🏾🚒", +":man_firefighter_medium_dark_skin_tone:": "👨🏾🚒", +":man_firefighter_tone5:": "👨🏿🚒", +":man_firefighter_dark_skin_tone:": "👨🏿🚒", +":woman_firefighter:": "👩🚒", +":woman_firefighter_tone1:": "👩🏻🚒", +":woman_firefighter_light_skin_tone:": "👩🏻🚒", +":woman_firefighter_tone2:": "👩🏼🚒", +":woman_firefighter_medium_light_skin_tone:": "👩🏼🚒", +":woman_firefighter_tone3:": "👩🏽🚒", +":woman_firefighter_medium_skin_tone:": "👩🏽🚒", +":woman_firefighter_tone4:": "👩🏾🚒", +":woman_firefighter_medium_dark_skin_tone:": "👩🏾🚒", +":woman_firefighter_tone5:": "👩🏿🚒", +":woman_firefighter_dark_skin_tone:": "👩🏿🚒", +":female_sign:": "♀", +":male_sign:": "♂", +":medical_symbol:": "⚕", +":united_nations:": "🇺🇳", +":snowboarder_tone2:": "🏂🏼", +":snowboarder_medium_light_skin_tone:": "🏂🏼", +":snowboarder_tone3:": "🏂🏽", +":snowboarder_medium_skin_tone:": "🏂🏽", +":snowboarder_tone4:": "🏂🏾", +":snowboarder_medium_dark_skin_tone:": "🏂🏾", +":snowboarder_tone5:": "🏂🏿", +":snowboarder_dark_skin_tone:": "🏂🏿", +":person_golfing_tone1:": "🏌🏻", +":person_golfing_light_skin_tone:": "🏌🏻", +":person_golfing_tone2:": "🏌🏼", +":person_golfing_medium_light_skin_tone:": "🏌🏼", +":person_golfing_tone3:": "🏌🏽", +} +function replace_emoji() { +$('.emoji_poss').each(function(){ +const emoji = $(this).html().match(/(:.+?:)|✅/g); +for(let i in emoji) { +if(emoji_dict[emoji[i]]) { +$(this).html($(this).html().replace(emoji[i], emoji_dict[emoji[i]])); +$(this).removeClass('emoji_poss'); +} +} +$(this).html($(this).html().replace("✅", "")); +}); +twemoji.parse(document.body,{base:(location.protocol==="https:"?"https:":"http:")+"//cdn.staticfile.org/twemoji/2.2.5/"}); +}; +function replaced_emoji_return(original) { +const emoji = original.match(/(:.+?:)/g); +for(let i in emoji) { +if(emoji_dict[emoji[i]]) { +original = original.replace(emoji[i], emoji_dict[emoji[i]]); +} +} +return original +}; \ No newline at end of file diff --git a/assets/js/shortcut.js b/assets/js/shortcut.js new file mode 100644 index 0000000..19640aa --- /dev/null +++ b/assets/js/shortcut.js @@ -0,0 +1,186 @@ +/** + * http://www.openjs.com/scripts/events/keyboard_shortcuts/ + * Version : 2.01.B + * By Binny V A + * License : BSD + */ +shortcut = { +'all_shortcuts':{}, +'add': function(shortcut_combination,callback,opt) { +var default_options = { +'type':'keydown', +'propagate':false, +'disable_in_input':false, +'target':document, +'keycode':false +} +if(!opt) opt = default_options; +else { +for(var dfo in default_options) { +if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo]; +} +} +var ele = opt.target; +if(typeof opt.target == 'string') ele = document.getElementById(opt.target); +var ths = this; +shortcut_combination = shortcut_combination.toLowerCase(); +var func = function(e) { +e = e || window.event; +if(opt['disable_in_input']) { +var element; +if(e.target) element=e.target; +else if(e.srcElement) element=e.srcElement; +if(element.nodeType==3) element=element.parentNode; +if(element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return; +} +if (e.keyCode) code = e.keyCode; +else if (e.which) code = e.which; +var character = String.fromCharCode(code).toLowerCase(); +if(code == 188) character=","; +if(code == 190) character="."; +var keys = shortcut_combination.split("+"); +var kp = 0; +var shift_nums = { +"`":"~", +"1":"!", +"2":"@", +"3":"#", +"4":"$", +"5":"%", +"6":"^", +"7":"&", +"8":"*", +"9":"(", +"0":")", +"-":"_", +"=":"+", +";":":", +"'":"\"", +",":"<", +".":">", +"/":"?", +"\\":"|" +} +var special_keys = { +'esc':27, +'escape':27, +'tab':9, +'space':32, +'return':13, +'enter':13, +'backspace':8, +'scrolllock':145, +'scroll_lock':145, +'scroll':145, +'capslock':20, +'caps_lock':20, +'caps':20, +'numlock':144, +'num_lock':144, +'num':144, +'pause':19, +'break':19, +'insert':45, +'home':36, +'delete':46, +'end':35, +'pageup':33, +'page_up':33, +'pu':33, +'pagedown':34, +'page_down':34, +'pd':34, +'left':37, +'up':38, +'right':39, +'down':40, +'f1':112, +'f2':113, +'f3':114, +'f4':115, +'f5':116, +'f6':117, +'f7':118, +'f8':119, +'f9':120, +'f10':121, +'f11':122, +'f12':123 +} +var modifiers = { +shift: { wanted:false, pressed:false}, +ctrl : { wanted:false, pressed:false}, +alt : { wanted:false, pressed:false}, +meta : { wanted:false, pressed:false} +}; +if(e.ctrlKey)modifiers.ctrl.pressed = true; +if(e.shiftKey)modifiers.shift.pressed = true; +if(e.altKey)modifiers.alt.pressed = true; +if(e.metaKey) modifiers.meta.pressed = true; +for(var i=0; k=keys[i],i 1) { +if(special_keys[k] == code) kp++; +} else if(opt['keycode']) { +if(opt['keycode'] == code) kp++; +} else { +if(character == k) kp++; +else { +if(shift_nums[character] && e.shiftKey) { +character = shift_nums[character]; +if(character == k) kp++; +} +} +} +} +if(kp == keys.length && +modifiers.ctrl.pressed == modifiers.ctrl.wanted && +modifiers.shift.pressed == modifiers.shift.wanted && +modifiers.alt.pressed == modifiers.alt.wanted && +modifiers.meta.pressed == modifiers.meta.wanted) { +callback(e); +if(!opt['propagate']) { +e.cancelBubble = true; +e.returnValue = false; +if (e.stopPropagation) { +e.stopPropagation(); +e.preventDefault(); +} +return false; +} +} +} +this.all_shortcuts[shortcut_combination] = { +'callback':func, +'target':ele, +'event': opt['type'] +}; +if(ele.addEventListener) ele.addEventListener(opt['type'], func, false); +else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func); +else ele['on'+opt['type']] = func; +}, +'remove':function(shortcut_combination) { +shortcut_combination = shortcut_combination.toLowerCase(); +var binding = this.all_shortcuts[shortcut_combination]; +delete(this.all_shortcuts[shortcut_combination]) +if(!binding) return; +var type = binding['event']; +var ele = binding['target']; +var callback = binding['callback']; +if(ele.detachEvent) ele.detachEvent('on'+type, callback); +else if(ele.removeEventListener) ele.removeEventListener(type, callback, false); +else ele['on'+type] = false; +} +} \ No newline at end of file diff --git a/authorize/.htaccess b/authorize/.htaccess new file mode 100644 index 0000000..0855d49 --- /dev/null +++ b/authorize/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/authorize/Mastodon-api-php/Mastodon_api.php b/authorize/Mastodon-api-php/Mastodon_api.php deleted file mode 100755 index 0f5ee35..0000000 --- a/authorize/Mastodon-api-php/Mastodon_api.php +++ /dev/null @@ -1,970 +0,0 @@ - - * @copyright KwangSeon Yun - * @license https://raw.githubusercontent.com/yks118/Mastodon-api-php/master/LICENSE MIT License - * @link https://github.com/yks118/Mastodon-api-php - */ -class Mastodon_api { - private $mastodon_url = ''; - private $client_id = ''; - private $client_secret = ''; - - private $token = array(); - private $scopes = array(); - - public function __construct () {} - - public function __destruct () {} - - /** - * _post - * - * curl post - * - * @param string $url - * @param array $data - * - * @return array $response - */ - private function _post ($url,$data = array()) { - $parameters = array(); - $parameters[CURLOPT_POST] = 1; - - // set access_token - if (isset($this->token['access_token'])) { - $data['access_token'] = $this->token['access_token']; - } - - if (count($data)) { - $parameters[CURLOPT_POSTFIELDS] = http_build_query($data); - } - - $url = $this->mastodon_url.$url; - $response = $this->get_content_curl($url,$parameters); - return $response; - } - - /** - * _get - * - * @param string $url - * @param array $data - * - * @return array $response - */ - private function _get ($url,$data = array()) { - $parameters = array(); - - // set authorization bearer - if (isset($this->token['access_token'])) { - $authorization = 'Authorization: '.$this->token['token_type'].' '.$this->token['access_token']; - $parameters[CURLOPT_HTTPHEADER] = array('Content-Type: application/json',$authorization); - } - - $url = $this->mastodon_url.$url; - if (count($data)) { - $url .= '?'.http_build_query($data); - } - - $response = $this->get_content_curl($url,$parameters); - return $response; - } - - /** - * _patch - * - * @param string $url - * @param array $data - * - * @return array $parameters - */ - private function _patch ($url,$data = array()) { - $parameters = array(); - $parameters[CURLOPT_CUSTOMREQUEST] = 'PATCH'; - - // set authorization bearer - if (isset($this->token['access_token'])) { - $authorization = 'Authorization: '.$this->token['token_type'].' '.$this->token['access_token']; - $parameters[CURLOPT_HTTPHEADER] = array('Content-Type: application/json',$authorization); - } - - if (count($data)) { - $parameters[CURLOPT_POSTFIELDS] = json_encode($data); - } - - $url = $this->mastodon_url.$url; - $response = $this->get_content_curl($url,$parameters); - return $response; - } - - /** - * _delete - * - * @param string $url - * - * @return array $response - */ - private function _delete ($url) { - $parameters = array(); - $parameters[CURLOPT_CUSTOMREQUEST] = 'DELETE'; - - // set authorization bearer - if (isset($this->token['access_token'])) { - $authorization = 'Authorization: '.$this->token['token_type'].' '.$this->token['access_token']; - $parameters[CURLOPT_HTTPHEADER] = array('Content-Type: application/json',$authorization); - } - - $url = $this->mastodon_url.$url; - $response = $this->get_content_curl($url,$parameters); - return $response; - } - - /** - * get_content_curl - * - * @param string $url - * @param array $parameters - * - * @return array $data - */ - protected function get_content_curl ($url,$parameters = array()) { - $data = array(); - - // set CURLOPT_USERAGENT - if (!isset($parameters[CURLOPT_USERAGENT])) { - if (isset($_SERVER['HTTP_USER_AGENT'])) { - $parameters[CURLOPT_USERAGENT] = $_SERVER['HTTP_USER_AGENT']; - } else { - // default IE11 - $parameters[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'; - } - } - - // check curl_init - if (function_exists('curl_init')) { - $ch = curl_init(); - - // url 설정 - curl_setopt($ch,CURLOPT_URL,$url); - - foreach ($parameters as $key => $value) { - curl_setopt($ch,$key,$value); - } - - // https - if (!isset($parameters[CURLOPT_SSL_VERIFYPEER])) { - curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); - } - if (!isset($parameters[CURLOPT_SSLVERSION])) { - curl_setopt($ch,CURLOPT_SSLVERSION,6); - } - - // no header - if (!isset($parameters[CURLOPT_HEADER])) { - curl_setopt($ch,CURLOPT_HEADER,0); - } - - // POST / GET (default : GET) - if (!isset($parameters[CURLOPT_POST]) && !isset($parameters[CURLOPT_CUSTOMREQUEST])) { - curl_setopt($ch,CURLOPT_POST,0); - } - - // response get php value - if (!isset($parameters[CURLOPT_RETURNTRANSFER])) { - curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); - } - - // HTTP2 - if (!isset($parameters[CURLOPT_HTTP_VERSION])) { - curl_setopt($ch,CURLOPT_HTTP_VERSION,3); - } - if (!isset($parameters[CURLINFO_HEADER_OUT])) { - curl_setopt($ch,CURLINFO_HEADER_OUT,TRUE); - } - - $data['html'] = json_decode(curl_exec($ch),true); - $data['response'] = curl_getinfo($ch); - - curl_close($ch); - } - - return $data; - } - - /** - * set_url - * - * @param string $path - */ - public function set_url ($path) { - $this->mastodon_url = $path; - } - - /** - * set_client - * - * @param string $id - * @param string $secret - */ - public function set_client ($id,$secret) { - $this->client_id = $id; - $this->client_secret = $secret; - } - - /** - * set_token - * - * @param string $token - * @param string $type - */ - public function set_token ($token,$type) { - $this->token['access_token'] = $token; - $this->token['token_type'] = $type; - } - - /** - * set_scopes - * - * @param array $scopes read / write / follow - */ - public function set_scopes ($scopes) { - $this->scopes = $scopes; - } - - /** - * create_app - * - * @param string $client_name - * @param array $scopes read / write / follow - * @param string $redirect_uris - * @param string $website - * - * @return array $response - * int $response['id'] - * string $response['redirect_uri'] - * string $response['client_id'] - * string $response['client_secret'] - */ - public function create_app ($client_name,$scopes = array(),$redirect_uris = '',$website = '') { - $parameters = array(); - - if (count($scopes) == 0) { - if (count($this->scopes) == 0) { - $scopes = array('read','write','follow'); - } else { - $scopes = $this->scopes; - } - } - - $parameters['client_name'] = $client_name; - $parameters['scopes'] = implode(' ',$scopes); - - if (empty($redirect_uris)) { - $parameters['redirect_uris'] = 'urn:ietf:wg:oauth:2.0:oob'; - } else { - $parameters['redirect_uris'] = $redirect_uris; - } - - if ($website) { - $parameters['website'] = $website; - } - - $response = $this->_post('/api/v1/apps',$parameters); - - if (isset($response['html']['client_id'])) { - $this->client_id = $response['html']['client_id']; - $this->client_secret = $response['html']['client_secret']; - } - - return $response; - } - - /** - * login - * - * @param string $id E-mail Address - * @param string $password Password - * - * @return array $response - * string $response['access_token'] - * string $response['token_type'] bearer - * string $response['scope'] read - * int $response['created_at'] time - */ - public function login ($id,$password) { - $parameters = array(); - $parameters['client_id'] = $this->client_id; - $parameters['client_secret'] = $this->client_secret; - $parameters['grant_type'] = 'password'; - $parameters['username'] = $id; - $parameters['password'] = $password; - - if (count($this->scopes) == 0) { - $parameters['scope'] = implode(' ',array('read','write','follow')); - } else { - $parameters['scope'] = implode(' ',$this->scopes); - } - - $response = $this->_post('/oauth/token',$parameters); - - if (isset($response['html']["access_token"])) { - $this->token['access_token'] = $response['html']['access_token']; - $this->token['token_type'] = $response['html']['token_type']; - } - - return $response; - } - - public function get_access_token ($redirect_uri,$code) { - $parameters = array(); - $parameters['grant_type'] = 'authorization_code'; - $parameters['redirect_uri'] = $redirect_uri; - $parameters['client_id'] = $this->client_id; - $parameters['client_secret'] = $this->client_secret; - $parameters['code'] = $code; - $response = $this->_post('/oauth/token',$parameters); - - if (isset($response['html']["access_token"])) { - $this->token['access_token'] = $response['html']['access_token']; - $this->token['token_type'] = $response['html']['token_type']; - } - - return $response; - } - - /** - * accounts - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - * int $response['id'] - * string $response['username'] - * string $response['acct'] - * string $response['display_name'] The name to display in the user's profile - * bool $response['locked'] - * string $response['created_at'] - * int $response['followers_count'] - * int $response['following_count'] - * int $response['statuses_count'] - * string $response['note'] A new biography for the user - * string $response['url'] - * string $response['avatar'] A base64 encoded image to display as the user's avatar - * string $response['avatar_static'] - * string $response['header'] A base64 encoded image to display as the user's header image - * string $response['header_static'] - */ - public function accounts ($id) { - $response = $this->_get('/api/v1/accounts/'.$id); - return $response; - } - - /** - * accounts_verify_credentials - * - * Getting the current user - * - * @return array $response - */ - public function accounts_verify_credentials () { - $response = $this->_get('/api/v1/accounts/verify_credentials'); - return $response; - } - - /** - * accounts_update_credentials - * - * Updating the current user - * - * @param array $parameters - * string $parameters['display_name'] The name to display in the user's profile - * string $parameters['note'] A new biography for the user - * string $parameters['avatar'] A base64 encoded image to display as the user's avatar - * string $parameters['header'] A base64 encoded image to display as the user's header image - * - * @return array $response - */ - public function accounts_update_credentials ($parameters) { - $response = $this->_patch('/api/v1/accounts/update_credentials',$parameters); - return $response; - } - - /** - * accounts_followers - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_followers ($id) { - $response = $this->_get('/api/v1/accounts/'.$id.'/followers'); - return $response; - } - - /** - * accounts_following - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_following ($id) { - $response = $this->_get('/api/v1/accounts/'.$id.'/following'); - return $response; - } - - /** - * accounts_statuses - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_statuses ($id) { - $response = $this->_get('/api/v1/accounts/'.$id.'/statuses'); - return $response; - } - - /** - * accounts_follow - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_follow ($id) { - $response = $this->_post('/api/v1/accounts/'.$id.'/follow'); - return $response; - } - - /** - * accounts_unfollow - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_unfollow ($id) { - $response = $this->_post('/api/v1/accounts/'.$id.'/unfollow'); - return $response; - } - - /** - * accounts_block - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_block ($id) { - $response = $this->_post('/api/v1/accounts/'.$id.'/block'); - return $response; - } - - /** - * accounts_unblock - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_unblock ($id) { - $response = $this->_post('/api/v1/accounts/'.$id.'/unblock'); - return $response; - } - - /** - * accounts_mute - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_mute ($id) { - $response = $this->_post('/api/v1/accounts/'.$id.'/mute'); - return $response; - } - - /** - * accounts_unmute - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function accounts_unmute ($id) { - $response = $this->_post('/api/v1/accounts/'.$id.'/unmute'); - return $response; - } - - /** - * accounts_relationships - * - * @see https://your-domain/web/accounts/:id - * - * @param array $parameters - * int $parameters['id'] - * - * @return array $response - * int $response['id'] - * bool $response['following'] - * bool $response['followed_by'] - * bool $response['blocking'] - * bool $response['muting'] - * bool $response['requested'] - */ - public function accounts_relationships ($parameters) { - $response = $this->_get('/api/v1/accounts/relationships',$parameters); - return $response; - } - - /** - * accounts_search - * - * @param array $parameters - * string $parameters['q'] - * int $parameters['limit'] default : 40 - * - * @return array $response - */ - public function accounts_search ($parameters) { - $response = $this->_get('/api/v1/accounts/search',$parameters); - return $response; - } - - /** - * blocks - * - * @return array $response - */ - public function blocks () { - $response = $this->_get('/api/v1/blocks'); - return $response; - } - - /** - * favourites - * - * @return array $response - */ - public function favourites () { - $response = $this->_get('/api/v1/favourites'); - return $response; - } - - /** - * follow_requests - * - * @return array $response - */ - public function follow_requests () { - $response = $this->_get('/api/v1/follow_requests'); - return $response; - } - - /** - * follow_requests_authorize - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * - * @return array $response - */ - public function follow_requests_authorize ($id) { - $response = $this->_post('/api/v1/follow_requests/authorize',array('id'=>$id)); - return $response; - } - - /** - * follow_requests_reject - * - * @see https://your-domain/web/accounts/:id - * - * @param int $id - * @return array $response - */ - public function follow_requests_reject ($id) { - $response = $this->_post('/api/v1/follow_requests/reject',array('id'=>$id)); - return $response; - } - - /** - * follows - * - * Following a remote user - * - * @param string $uri username@domain of the person you want to follow - * @return array $response - */ - public function follows ($uri) { - $response = $this->_post('/api/v1/follows',array('uri'=>$uri)); - return $response; - } - - /** - * instance - * - * Getting instance information - * - * @return array $response - * string $response['uri'] - * string $response['title'] - * string $response['description'] - * string $response['email'] - */ - public function instance () { - $response = $this->_get('/api/v1/instance'); - return $response; - } - - /** - * media - * - * Uploading a media attachment - * - * @param string $file_path local path / http path - * - * @return array $response - * int $response['id'] ID of the attachment - * string $response['type'] One of: "image", "video", "gifv" - * string $response['url'] URL of the locally hosted version of the image - * string $response['remote_url'] For remote images, the remote URL of the original image - * string $response['preview_url'] URL of the preview image - * string $response['text_url'] Shorter URL for the image, for insertion into text (only present on local images) - */ - public function media ($file_path) { - $url = $this->mastodon_url.'/api/v1/media'; - $parameters = $data = array(); - $parameters[CURLOPT_HTTPHEADER] = array('Content-Type'=>'multipart/form-data'); - $parameters[CURLOPT_POST] = true; - - // set access_token - if (isset($this->token['access_token'])) { - $parameters[CURLOPT_POSTFIELDS]['access_token'] = $this->token['access_token']; - } - - if (is_file($file_path)) { - $mime_type = mime_content_type($file_path); - - $cf = curl_file_create($file_path,$mime_type,'file'); - $parameters[CURLOPT_POSTFIELDS]['file'] = $cf; - } - - $response = $this->get_content_curl($url,$parameters); - return $response; - } - - /** - * mutes - * - * Fetching a user's mutes - * - * @return array $response - */ - public function mutes () { - $response = $this->_get('/api/v1/mutes'); - return $response; - } - - /** - * notifications - * - * @param int $id - * - * @return array $response - */ - public function notifications ($id = 0) { - $url = '/api/v1/notifications'; - - if ($id > 0) { - $url .= '/'.$id; - } - - $response = $this->_get($url); - return $response; - } - - /** - * notifications_clear - * - * Clearing notifications - * - * @return array $response - */ - public function notifications_clear () { - $response = $this->_post('/api/v1/notifications/clear'); - return $response; - } - - /** - * get_reports - * - * Fetching a user's reports - * - * @return array $response - */ - public function get_reports () { - $response = $this->_get('/api/v1/reports'); - return $response; - } - - /** - * post_reports - * - * Reporting a user - * - * @param array $parameters - * int $parameters['account_id'] The ID of the account to report - * int $parameters['status_ids'] The IDs of statuses to report (can be an array) - * string $parameters['comment'] A comment to associate with the report. - * - * @return array $response - */ - public function post_reports ($parameters) { - $response = $this->_post('/api/v1/reports',$parameters); - return $response; - } - - /** - * search - * - * Searching for content - * - * @param array $parameters - * string $parameters['q'] The search query - * string $parameters['resolve'] Whether to resolve non-local accounts - * - * @return array $response - */ - public function search ($parameters) { - $response = $this->_get('/api/v1/search',$parameters); - return $response; - } - - /** - * statuses - * - * Fetching a status - * - * @param int $id - * - * @return array $response - */ - public function statuses ($id) { - $response = $this->_get('/api/v1/statuses/'.$id); - return $response; - } - - /** - * statuses_context - * - * Getting status context - * - * @param int $id - * - * @return array $response - */ - public function statuses_context ($id) { - $response = $this->_get('/api/v1/statuses/'.$id.'/context'); - return $response; - } - - /** - * statuses_card - * - * Getting a card associated with a status - * - * @param int $id - * - * @return array $response - */ - public function statuses_card ($id) { - $response = $this->_get('/api/v1/statuses/'.$id.'/card'); - return $response; - } - - /** - * statuses_reblogged_by - * - * Getting who reblogged a status - * - * @param int $id - * - * @return array $response - */ - public function statuses_reblogged_by ($id) { - $response = $this->_get('/api/v1/statuses/'.$id.'/reblogged_by'); - return $response; - } - - /** - * statuses_favourited_by - * - * Getting who favourited a status - * - * @param int $id - * - * @return array $response - */ - public function statuses_favourited_by ($id) { - $response = $this->_get('/api/v1/statuses/'.$id.'/favourited_by'); - return $response; - } - - /** - * post_statuses - * - * @param array $parameters - * string $parameters['status'] The text of the status - * int $parameters['in_reply_to_id'] (optional): local ID of the status you want to reply to - * int $parameters['media_ids'] (optional): array of media IDs to attach to the status (maximum 4) - * string $parameters['sensitive'] (optional): set this to mark the media of the status as NSFW - * string $parameters['spoiler_text'] (optional): text to be shown as a warning before the actual content - * string $parameters['visibility'] (optional): either "direct", "private", "unlisted" or "public" - * - * @return array $response - */ - public function post_statuses ($parameters) { - $response = $this->_post('/api/v1/statuses',$parameters); - return $response; - } - - /** - * delete_statuses - * - * Deleting a status - * - * @param int $id - * - * @return array $response empty - */ - public function delete_statuses ($id) { - $response = $this->_delete('/api/v1/statuses/'.$id); - return $response; - } - - /** - * statuses_reblog - * - * Reblogging a status - * - * @param int $id - * - * @return array $response - */ - public function statuses_reblog ($id) { - $response = $this->_post('/api/v1/statuses/'.$id.'/reblog'); - return $response; - } - - /** - * statuses_unreblog - * - * Unreblogging a status - * - * @param int $id - * - * @return array $response - */ - public function statuses_unreblog ($id) { - $response = $this->_post('/api/v1/statuses/'.$id.'/unreblog'); - return $response; - } - - /** - * statuses_favourite - * - * Favouriting a status - * - * @param int $id - * - * @return array $response - */ - public function statuses_favourite ($id) { - $response = $this->_post('/api/v1/statuses/'.$id.'/favourite'); - return $response; - } - - /** - * statuses_unfavourite - * - * Unfavouriting a status - * - * @param int $id - * - * @return array $response - */ - public function statuses_unfavourite ($id) { - $response = $this->_post('/api/v1/statuses/'.$id.'/unfavourite'); - return $response; - } - - /** - * timelines_home - * - * @return array $response - */ - public function timelines_home () { - $response = $this->_get('/api/v1/timelines/home'); - return $response; - } - - /** - * timelines_public - * - * @param array $parameters - * bool $parameters['local'] Only return statuses originating from this instance - * - * @return array $response - */ - public function timelines_public ($parameters = array()) { - $response = $this->_get('/api/v1/timelines/public',$parameters); - return $response; - } - - /** - * timelines_tag - * - * @param string $hashtag - * @param array $parameters - * bool $parameters['local'] Only return statuses originating from this instance - * - * @return array $response - */ - public function timelines_tag ($hashtag,$parameters = array()) { - $response = $this->_get('/api/v1/timelines/tag/'.$hashtag,$parameters); - return $response; - } - -} diff --git a/authorize/Mastodon-api-php/README.md b/authorize/Mastodon-api-php/README.md deleted file mode 100755 index 902b2ca..0000000 --- a/authorize/Mastodon-api-php/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Mastodon-api-php -A GNU Social-compatible microblogging server https://mastodon.social PHP API - -## How to use -require_once '/path/Mastodon_api.php';
    -
    -$mastodon_api = new Mastodon_api();
    -$mastodon_api->set_url('Mastodon url');
    -
    -// print_r($mastodon_api->create_app('APP Name',null,null,'Mastodon url'));
    -$mastodon_api->set_client('client_id','client_secret');
    -
    -// print_r($mastodon_api->login('your login email','your login password'));
    -$mastodon_api->set_token('access_token','token_type');
    -
    -$mastodon_api->timelines_home(); - -## Test Mastodon -https://ery.kr diff --git a/authorize/Mastodon.php b/authorize/Mastodon.php deleted file mode 100755 index 77ab619..0000000 --- a/authorize/Mastodon.php +++ /dev/null @@ -1,82 +0,0 @@ -clientName = $appSettings["App"]["api_client_name"]; - $this->clientRedirectUris = $appSettings["App"]["api_client_website"].'/auth urn:ietf:wg:oauth:2.0:oob'; - $this->clientWebsite = $appSettings["App"]["api_client_website"]; - $this->clientScopes = array('read', 'write', 'follow'); - $this->instances = array(); - - $this->dbHost = $appSettings["Mysql"]["db_host"]; - $this->dbUser = $appSettings["Mysql"]["db_user"]; - $this->dbPass = $appSettings["Mysql"]["db_pass"]; - $this->dbName = $appSettings["Mysql"]["db_name"]; - - $this->database = new Database($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName); - $this->readInstances(); - } - - /* note: $domainって書いてあるけど、ドメインじゃなくてURLです。すみません */ - - private function newInstance($domain) - { - $res = $this->create_app($this->clientName, $this->clientScopes, $this->clientRedirectUris, $this->clientWebsite); - if (isset($res['html']['client_id'])) { - $this->instances[$domain] = $res['html']; - $this->database->dbExecute("insert into instances(domain, client_id, client_secret) values(?,?,?)", array($domain, $res['html']['client_id'], $res['html']['client_secret'])); - // insert into instances(domain, client_id, client_secret) values($domain, $client_id, $client_secret) - }else{ - throw new Exception("Invalid instance"); - } - } - - public function selectInstance($domain) - { - $this->set_url($domain); - if (!$this->instanceExists($domain)) { - $this->newInstance($domain); - } - $this->set_client($this->instances[$domain]['client_id'], $this->instances[$domain]['client_secret']); - } - - public function getInstance($domain) - { - $this->set_url($domain); - if (!$this->instanceExists($domain)) { - $this->newInstance($domain); - } - return array('client_id' => $this->instances[$domain]['client_id'], 'client_secret' => $this->instances[$domain]['client_secret']); - } - - public function instanceExists($domain) - { - return isset($this->instances[$domain]); - } - - private function readInstances() - { - $stmt = $this->database->dbExecute("select domain,client_id,client_secret from instances"); - foreach($stmt->fetchAll(PDO::FETCH_ASSOC) as $row){ - $this->instances[$row['domain']] = $row; - } - } - -} -?> diff --git a/authorize/database.php b/authorize/database.php deleted file mode 100755 index 68c8acb..0000000 --- a/authorize/database.php +++ /dev/null @@ -1,50 +0,0 @@ -dbhost = $dbhost; - $this->dbuser = $dbuser; - $this->dbpass = $dbpass; - $this->dbname = $dbname; - $this->dsn = "mysql:dbname=".$this->dbname.";host=".$this->dbhost.";charset=utf8"; - $this->connecting = false; - $this->dbConnect(); - } - - public function dbConnect($commit=True){ - try{ - $dbh = new PDO($this->dsn, $this->dbuser, $this->dbpass); - $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); - if(!$commit){ - $dbh->beginTransaction(); - } - }catch (PDOException $e){ - throw new Exception($e); - } - $this->dbh = $dbh; - $this->connecting = true; - return $dbh; - } - - public function dbClose(){ - $this->dbh = Null; - $this->connecting = false; - } - - public function dbExecute($sql, $attr = null){ - if ($attr === null) { - $attr = array(); - } - if (!$this->connecting) { - $this->dbConnect(); - } - $stmt = $this->dbh->prepare($sql); - $stmt->execute($attr); - return $stmt; - } -} -?> diff --git a/authorize/Mastodon-api-php/LICENSE b/authorize/mastodon-api/LICENSE old mode 100755 new mode 100644 similarity index 100% rename from authorize/Mastodon-api-php/LICENSE rename to authorize/mastodon-api/LICENSE diff --git a/authorize/mastodon-api/mastodon.php b/authorize/mastodon-api/mastodon.php new file mode 100644 index 0000000..3d07633 --- /dev/null +++ b/authorize/mastodon-api/mastodon.php @@ -0,0 +1,374 @@ + + * @copyright KwangSeon Yun + * @license https://raw.githubusercontent.com/yks118/Mastodon-api-php/master/LICENSE MIT License + * @link https://github.com/yks118/Mastodon-api-php + */ +class Mastodon_api { +private $mastodon_url = ''; +private $client_id = ''; +private $client_secret = ''; +private $token = array(); +private $scopes = array(); +public function __construct () {} +public function __destruct () {} +private function _post ($url,$data = array()) { +$parameters = array(); +$parameters[CURLOPT_POST] = 1; +if (isset($this->token['access_token'])) { +$data['access_token'] = $this->token['access_token']; +} +if (count($data)) { +$parameters[CURLOPT_POSTFIELDS] = http_build_query($data); +} +$url = $this->mastodon_url.$url; +$response = $this->get_content_curl($url,$parameters); +return $response; +} +private function _get ($url,$data = array()) { +$parameters = array(); +if (isset($this->token['access_token'])) { +$authorization = 'Authorization: '.$this->token['token_type'].' '.$this->token['access_token']; +$parameters[CURLOPT_HTTPHEADER] = array('Content-Type: application/json',$authorization); +} +$url = $this->mastodon_url.$url; +if (count($data)) { +$url .= '?'.http_build_query($data); +} +$response = $this->get_content_curl($url,$parameters); +return $response; +} +private function _patch ($url,$data = array()) { +$parameters = array(); +$parameters[CURLOPT_CUSTOMREQUEST] = 'PATCH'; +if (isset($this->token['access_token'])) { +$authorization = 'Authorization: '.$this->token['token_type'].' '.$this->token['access_token']; +$parameters[CURLOPT_HTTPHEADER] = array('Content-Type: application/json',$authorization); +} +if (count($data)) { +$parameters[CURLOPT_POSTFIELDS] = json_encode($data); +} +$url = $this->mastodon_url.$url; +$response = $this->get_content_curl($url,$parameters); +return $response; +} +private function _delete ($url) { +$parameters = array(); +$parameters[CURLOPT_CUSTOMREQUEST] = 'DELETE'; +if (isset($this->token['access_token'])) { +$authorization = 'Authorization: '.$this->token['token_type'].' '.$this->token['access_token']; +$parameters[CURLOPT_HTTPHEADER] = array('Content-Type: application/json',$authorization); +} +$url = $this->mastodon_url.$url; +$response = $this->get_content_curl($url,$parameters); +return $response; +} +protected function get_content_curl ($url,$parameters = array()) { +$data = array(); +if (!isset($parameters[CURLOPT_USERAGENT])) { +if (isset($_SERVER['HTTP_USER_AGENT'])) { +$parameters[CURLOPT_USERAGENT] = $_SERVER['HTTP_USER_AGENT']; +} else { +$parameters[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'; +} +} +if (function_exists('curl_init')) { +$ch = curl_init(); +curl_setopt($ch,CURLOPT_URL,$url); +foreach ($parameters as $key => $value) { +curl_setopt($ch,$key,$value); +} +if (!isset($parameters[CURLOPT_SSL_VERIFYPEER])) { +curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); +} +if (!isset($parameters[CURLOPT_SSLVERSION])) { +curl_setopt($ch,CURLOPT_SSLVERSION,6); +} +if (!isset($parameters[CURLOPT_HEADER])) { +curl_setopt($ch,CURLOPT_HEADER,0); +} +if (!isset($parameters[CURLOPT_POST]) && !isset($parameters[CURLOPT_CUSTOMREQUEST])) { +curl_setopt($ch,CURLOPT_POST,0); +} +if (!isset($parameters[CURLOPT_RETURNTRANSFER])) { +curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); +} +if (!isset($parameters[CURLOPT_HTTP_VERSION])) { +curl_setopt($ch,CURLOPT_HTTP_VERSION,3); +} +if (!isset($parameters[CURLINFO_HEADER_OUT])) { +curl_setopt($ch,CURLINFO_HEADER_OUT,TRUE); +} +$data['html'] = json_decode(curl_exec($ch),true); +$data['response'] = curl_getinfo($ch); +curl_close($ch); +} +return $data; +} +public function set_url ($path) { +$this->mastodon_url = $path; +} +public function set_client ($id,$secret) { +$this->client_id = $id; +$this->client_secret = $secret; +} +public function set_token ($token,$type) { +$this->token['access_token'] = $token; +$this->token['token_type'] = $type; +} +public function set_scopes ($scopes) { +$this->scopes = $scopes; +} +public function create_app ($client_name,$scopes = array(),$redirect_uris = '',$website = '') { +$parameters = array(); +if (count($scopes) == 0) { +if (count($this->scopes) == 0) { +$scopes = array('read','write','follow'); +} else { +$scopes = $this->scopes; +} +} +$parameters['client_name'] = $client_name; +$parameters['scopes'] = implode(' ',$scopes); +if (empty($redirect_uris)) { +$parameters['redirect_uris'] = 'urn:ietf:wg:oauth:2.0:oob'; +} else { +$parameters['redirect_uris'] = $redirect_uris; +} +if ($website) { +$parameters['website'] = $website; +} +$response = $this->_post('/api/v1/apps',$parameters); +if (isset($response['html']['client_id'])) { +$this->client_id = $response['html']['client_id']; +$this->client_secret = $response['html']['client_secret']; +} +return $response; +} +public function login ($id,$password) { +$parameters = array(); +$parameters['client_id'] = $this->client_id; +$parameters['client_secret'] = $this->client_secret; +$parameters['grant_type'] = 'password'; +$parameters['username'] = $id; +$parameters['password'] = $password; +if (count($this->scopes) == 0) { +$parameters['scope'] = implode(' ',array('read','write','follow')); +} else { +$parameters['scope'] = implode(' ',$this->scopes); +} +$response = $this->_post('/oauth/token',$parameters); +if (isset($response['html']["access_token"])) { +$this->token['access_token'] = $response['html']['access_token']; +$this->token['token_type'] = $response['html']['token_type']; +} +return $response; +} +public function get_access_token ($redirect_uri,$code) { +$parameters = array(); +$parameters['grant_type'] = 'authorization_code'; +$parameters['redirect_uri'] = $redirect_uri; +$parameters['client_id'] = $this->client_id; +$parameters['client_secret'] = $this->client_secret; +$parameters['code'] = $code; +$response = $this->_post('/oauth/token',$parameters); +if (isset($response['html']["access_token"])) { +$this->token['access_token'] = $response['html']['access_token']; +$this->token['token_type'] = $response['html']['token_type']; +} +return $response; +} +public function accounts ($id) { +$response = $this->_get('/api/v1/accounts/'.$id); +return $response; +} +public function accounts_verify_credentials () { +$response = $this->_get('/api/v1/accounts/verify_credentials'); +return $response; +} +public function accounts_update_credentials ($parameters) { +$response = $this->_patch('/api/v1/accounts/update_credentials',$parameters); +return $response; +} +public function accounts_followers ($id) { +$response = $this->_get('/api/v1/accounts/'.$id.'/followers'); +return $response; +} +public function accounts_following ($id) { +$response = $this->_get('/api/v1/accounts/'.$id.'/following'); +return $response; +} +public function accounts_statuses ($id) { +$response = $this->_get('/api/v1/accounts/'.$id.'/statuses'); +return $response; +} +public function accounts_follow ($id) { +$response = $this->_post('/api/v1/accounts/'.$id.'/follow'); +return $response; +} +public function accounts_unfollow ($id) { +$response = $this->_post('/api/v1/accounts/'.$id.'/unfollow'); +return $response; +} +public function accounts_block ($id) { +$response = $this->_post('/api/v1/accounts/'.$id.'/block'); +return $response; +} +public function accounts_unblock ($id) { +$response = $this->_post('/api/v1/accounts/'.$id.'/unblock'); +return $response; +} +public function accounts_mute ($id) { +$response = $this->_post('/api/v1/accounts/'.$id.'/mute'); +return $response; +} +public function accounts_unmute ($id) { +$response = $this->_post('/api/v1/accounts/'.$id.'/unmute'); +return $response; +} +public function accounts_relationships ($parameters) { +$response = $this->_get('/api/v1/accounts/relationships',$parameters); +return $response; +} +public function accounts_search ($parameters) { +$response = $this->_get('/api/v1/accounts/search',$parameters); +return $response; +} +public function blocks () { +$response = $this->_get('/api/v1/blocks'); +return $response; +} +public function favourites () { +$response = $this->_get('/api/v1/favourites'); +return $response; +} +public function follow_requests () { +$response = $this->_get('/api/v1/follow_requests'); +return $response; +} +public function follow_requests_authorize ($id) { +$response = $this->_post('/api/v1/follow_requests/authorize',array('id'=>$id)); +return $response; +} +public function follow_requests_reject ($id) { +$response = $this->_post('/api/v1/follow_requests/reject',array('id'=>$id)); +return $response; +} +public function follows ($uri) { +$response = $this->_post('/api/v1/follows',array('uri'=>$uri)); +return $response; +} +public function instance () { +$response = $this->_get('/api/v1/instance'); +return $response; +} +public function media ($file_path) { +$url = $this->mastodon_url.'/api/v1/media'; +$parameters = $data = array(); +$parameters[CURLOPT_HTTPHEADER] = array('Content-Type'=>'multipart/form-data'); +$parameters[CURLOPT_POST] = true; +if (isset($this->token['access_token'])) { +$parameters[CURLOPT_POSTFIELDS]['access_token'] = $this->token['access_token']; +} +if (is_file($file_path)) { +$mime_type = mime_content_type($file_path); +$cf = curl_file_create($file_path,$mime_type,'file'); +$parameters[CURLOPT_POSTFIELDS]['file'] = $cf; +} +$response = $this->get_content_curl($url,$parameters); +return $response; +} +public function mutes () { +$response = $this->_get('/api/v1/mutes'); +return $response; +} +public function notifications ($id = 0) { +$url = '/api/v1/notifications'; +if ($id > 0) { +$url .= '/'.$id; +} +$response = $this->_get($url); +return $response; +} +public function notifications_clear () { +$response = $this->_post('/api/v1/notifications/clear'); +return $response; +} +public function get_reports () { +$response = $this->_get('/api/v1/reports'); +return $response; +} +public function post_reports ($parameters) { +$response = $this->_post('/api/v1/reports',$parameters); +return $response; +} +public function search ($parameters) { +$response = $this->_get('/api/v1/search',$parameters); +return $response; +} +public function statuses ($id) { +$response = $this->_get('/api/v1/statuses/'.$id); +return $response; +} +public function statuses_context ($id) { +$response = $this->_get('/api/v1/statuses/'.$id.'/context'); +return $response; +} +public function statuses_card ($id) { +$response = $this->_get('/api/v1/statuses/'.$id.'/card'); +return $response; +} +public function statuses_reblogged_by ($id) { +$response = $this->_get('/api/v1/statuses/'.$id.'/reblogged_by'); +return $response; +} +public function statuses_favourited_by ($id) { +$response = $this->_get('/api/v1/statuses/'.$id.'/favourited_by'); +return $response; +} +public function post_statuses ($parameters) { +$response = $this->_post('/api/v1/statuses',$parameters); +return $response; +} +public function delete_statuses ($id) { +$response = $this->_delete('/api/v1/statuses/'.$id); +return $response; +} +public function statuses_reblog ($id) { +$response = $this->_post('/api/v1/statuses/'.$id.'/reblog'); +return $response; +} +public function statuses_unreblog ($id) { +$response = $this->_post('/api/v1/statuses/'.$id.'/unreblog'); +return $response; +} +public function statuses_favourite ($id) { +$response = $this->_post('/api/v1/statuses/'.$id.'/favourite'); +return $response; +} +public function statuses_unfavourite ($id) { +$response = $this->_post('/api/v1/statuses/'.$id.'/unfavourite'); +return $response; +} +public function timelines_home () { +$response = $this->_get('/api/v1/timelines/home'); +return $response; +} +public function timelines_public ($parameters = array()) { +$response = $this->_get('/api/v1/timelines/public',$parameters); +return $response; +} +public function timelines_tag ($hashtag,$parameters = array()) { +$response = $this->_get('/api/v1/timelines/tag/'.$hashtag,$parameters); +return $response; +} +} +?> \ No newline at end of file diff --git a/authorize/mastodon.php b/authorize/mastodon.php new file mode 100644 index 0000000..66b5c22 --- /dev/null +++ b/authorize/mastodon.php @@ -0,0 +1,51 @@ +datadir = "../data"; +$this->clientName = $appSettings["App"]["api_client_name"]; +$this->clientRedirectUris = $appSettings["App"]["api_client_website"].'/auth urn:ietf:wg:oauth:2.0:oob'; +$this->clientWebsite = $appSettings["App"]["api_client_website"]; +$this->clientScopes = array('read','write','follow'); +$this->instances = array(); +$this->readInstances(); +} +private function newInstance($domain) { +$res = $this->create_app($this->clientName,$this->clientScopes,$this->clientRedirectUris,$this->clientWebsite); +if(isset($res['html']['client_id'])) { +$this->instances[$domain] = $res['html']; +file_put_contents($this->datadir."/".substr($domain,8).".txt",json_encode(array("client_id" => $res['html']['client_id'],"client_secret" => $res['html']['client_secret']))); +} +else { +throw new Exception("Invalid instance"); +} +} +public function selectInstance($domain) { +$this->set_url($domain); +if(!$this->instanceExists($domain)) { +$this->newInstance($domain); +} +$this->set_client($this->instances[$domain]['client_id'],$this->instances[$domain]['client_secret']); +} +public function getInstance($domain) { +$this->set_url($domain); +if (!$this->instanceExists($domain)) { +$this->newInstance($domain); +} +return array('client_id' => $this->instances[$domain]['client_id'],'client_secret' => $this->instances[$domain]['client_secret']); +} +public function instanceExists($domain) { +return isset($this->instances[$domain]); +} +private function readInstances() { +$instlist = array_diff(scandir($this->datadir),array("..",".",".htaccess")); +foreach($instlist as $index => $item) { +$itemname = "https://".substr($item,0,-4); +$this->instances[$itemname] = json_decode(file_get_contents($this->datadir."/".$item),true); +} +} +} +?> \ No newline at end of file diff --git a/config.ini.sample b/config.ini.sample index 2661a1f..13fada1 100644 --- a/config.ini.sample +++ b/config.ini.sample @@ -2,10 +2,3 @@ [App] api_client_name = APPLICATION'S NAME api_client_website = HTTPS://YOURDOMAIN.COM/ - -; MySQL Settings -[Mysql] -db_host = YOUR DATABASE'S HOST -db_user = YOUR DATABASE'S USER -db_pass = YOUR DATABASE'S PASSWORD -db_name = YOUR DATABASE'S NAME diff --git a/data/.htaccess b/data/.htaccess new file mode 100644 index 0000000..8d2f256 --- /dev/null +++ b/data/.htaccess @@ -0,0 +1 @@ +deny from all diff --git a/federated.php b/federated.php new file mode 100644 index 0000000..dbc1a04 --- /dev/null +++ b/federated.php @@ -0,0 +1,37 @@ + +
    +
    + +
    +
    + +
    +
    + +
    +
      +
    +
    + +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/public_html/footer.php b/footer.php similarity index 66% rename from public_html/footer.php rename to footer.php index e1bb889..27f3f4a 100644 --- a/public_html/footer.php +++ b/footer.php @@ -1,76 +1,52 @@ - -
    -
    - -
    -
    - -
    - -
    - -
    - - - -
    - - - -
    +
    +
    +
    +
    + + + +
    + +
    - - - \ No newline at end of file diff --git a/header.php b/header.php new file mode 100644 index 0000000..f6d20c3 --- /dev/null +++ b/header.php @@ -0,0 +1,125 @@ + + + + + + +Halcyon + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/home.php b/home.php new file mode 100644 index 0000000..ff260c1 --- /dev/null +++ b/home.php @@ -0,0 +1,37 @@ + +
    +
    + +
    +
    + +
    +
    + +
    +
      +
    +
    + +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/public_html/index.php b/index.php similarity index 100% rename from public_html/index.php rename to index.php diff --git a/local.php b/local.php new file mode 100644 index 0000000..ddb5013 --- /dev/null +++ b/local.php @@ -0,0 +1,44 @@ + +
    +
    + +
    +
    + +
    +
    + +
    +
      +
    +
    + +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/login/assets/css/style.css b/login/assets/css/style.css new file mode 100644 index 0000000..4e5f847 --- /dev/null +++ b/login/assets/css/style.css @@ -0,0 +1,451 @@ +@charset "utf-8"; +* { +margin: 0; +padding: 0; +font-size: 100%; +} +a { +text-decoration: none; +word-break: break-all; +color: inherit; +} +a:hover { +text-decoration: underline; +} +ul, ol { +list-style: none; +padding: 0; +margin: 0; +} +img { +vertical-align: top; +border: 0; +max-width: 100%; +max-height: 100%; +} +button { +font-size: 100%; +} +.clear { +clear: both; +} +.red { +color: red!important; +} +.invisible { +display: none!important; +} +.no-events { +pointer-events: none!important; +} +.no-underline, +.no-underline:hover { +text-decoration: none!important; +} +.disallow_select { +user-select: none; +-ms-user-select: none; +-webkit-user-select: none; +-moz-user-select: none; +} +.text_ellipsis { +text-overflow: ellipsis; +overflow: hidden; +white-space: nowrap; +} +.pointer { +cursor: pointer; +} +.khmer_font { +font-family: "Khmer MN", Helvetica, Arial, sans-serif!important; +} +.gill_font { +font-family: "Gill Sans", Helvetica, Arial, sans-serif!important; +} +.trebuchet_font { +font-family: "Trebuchet MS", Helvetica, Arial, sans-serif!important; +} +h1, h2, h3, h4, h5, h6 { +font-weight: normal; +line-height: 1; +margin: 0; +padding: 0; +} +blockquote, q { +quotes: none; +margin: 0; +} +blockquote * { +margin: 0; +word-break: break-all; +} +blockquote:before, blockquote:after, +q:before, q:after { +content:''; +content:none; +} +article,aside,details,figcaption,figure, +footer,header,hgroup,menu,nav,section { +display:block; +} +textarea { +width: 100%; +} +input { +max-width: 100%; +} +button, +input[type="submit"], +input[type="button"], +input[type="text"], +input[type="password"], +textarea, +select{ +background-color: transparent; +border: none; +cursor: pointer; +outline: none; +padding: 0; +appearance: none; +} +input:-webkit-autofill { +-webkit-box-shadow: 0 0 0px 1000px transparent inset; +} +img.emoji { +height: 1em; +width: 1em; +margin: 0 .05em 0 .1em; +vertical-align: -0.1em; +} +html { +font-family : "Trebuchet MS",Helvetica,Arial,sans-serif; +font-size : 100%; +line-height : 1; +color: #333; +min-width: 100%; +min-height: 100%; +} +body { +margin: 0; +padding: 0; +min-width: 100%; +min-height: 100%; +word-wrap:break-word; +background-color: #F5F8FA; +} +#header { +width: 100%; +height: 56px; +color: #fff; +background-color: #222; +box-shadow: 0px 3px 5px rgba(0,0,0,0.26); +position: fixed; +z-index: 999; +} +#header #header_wrap { +display: flex; +justify-content: flex-start; +align-items: center; +width: 100%; +height: 100%; +} +#header #header_wrap > .header_box { +height: 100%; +flex-grow: 1; +flex-shrink: 0; +} +#header #header_wrap .header_box.header_right_box { +display: flex; +justify-content: flex-start; +} +#header #header_wrap .header_box.header_right_box .title_box { +height: 100%; +margin-left: 24px; +box-sizing: border-box; +} +#header #header_wrap .header_box.header_left_box { +display: flex; +justify-content: flex-end; +} +#header #header_wrap .header_box.header_left_box nav { +height: 100%; +} +#header #header_wrap .header_box.header_left_box .nav_box ul { +display: block; +height: 100%; +width: 100%; +} +#header #header_wrap .header_box.header_left_box .nav_box ul a { +height: 100%; +} +#header #header_wrap .header_box.header_left_box .nav_box ul li { +display: block; +float: left; +cursor: pointer; +height: calc(100% - 5px*2 ); +margin-top: 5px; +border-bottom: 0px solid #007BD0; +} +#header #header_wrap .header_box.header_left_box .nav_box ul li span { +display: block; +height: 100%; +margin: auto; +padding: 15px 24px; +font-size: 14px; +box-sizing: border-box; +} +#header #header_wrap .header_box.header_left_box .nav_box ul li span i { +margin-right: 4px; +} +#header #header_wrap .header_box.header_left_box .nav_box ul li:hover { +color: #189EFC; +border-bottom-width: 5px; +transition: 0.15s ease-out; +} +#main { +padding-top: 56px; +} +#main #login_form_wrap { +width: 100%; +height: 560px; +padding: 56px 0; +margin-bottom: -200px; +box-sizing: border-box; +background-image: url("/login/assets/images/background.jpg"); +background-size: cover; +background-repeat: no-repeat; +} +#main #login_form_wrap .login_form { +position: relative; +width: 640px; +height: 220px; +padding: 36px 24px; +margin: auto; +overflow: hidden; +background: inherit; +box-sizing: border-box; +border-radius: 4px; +border: 1px solid #C9EFF8; +text-align: center; +box-shadow: 0px 5px 5px rgba(0,0,0,0.26); +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form.expand { +width: 780px; +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form::before { +display: block; +position: absolute; +content: ""; +top: -3px; +left: -3px; +right: -3px; +bottom: -3px; +background: inherit; +background-position: top center; +filter: blur(3px); +border-radius: 5px; +z-index: 0; +} +#main #login_form_wrap .login_form form { +position: relative; +margin: auto; +z-index: 1; +color: #C9EFF8; +} +#main #login_form_wrap .login_form form a { +color: #fff; +} +#main #login_form_wrap .login_form h2 { +font-size: 32px; +font-weight: 600; +margin-bottom: 16px; +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form.expand h2 { +font-size: 42px; +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form p { +margin-bottom: 16px; +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form.expand p { +opacity: 0; +margin-bottom: 0; +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form .login_form_main { +display: flex; +flex-wrap: nowrap; +justify-content: flex-start; +align-items: center; +margin: auto; +height: 32px; +width: 276px; +border: 1px solid #C9EFF8; +border-radius: 32px; +background-color: rgba(0,0,0,.3); +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form.expand .login_form_main { +width: 360px; +height: 42px; +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form .login_form_main.active { +box-shadow: 0px 3px 5px rgba(0,0,0,0.26); +} +#main #login_form_wrap .login_form .login_form_main input[name="acct"] { +display: block; +-webkit-appearance : none; +flex-grow: 1; +padding: 4px 0 4px 14px; +color: #C9EFF8; +border: none; +background: none; +box-sizing: border-box; +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form.expand .login_form_main input[name="acct"]{ +flex-grow: 2; +padding: 8px 0 8px 14px; +transition: 0.25s ease-out; +} +#main #login_form_wrap .login_form .login_form_main .login_form_continue { +display: block; +flex-grow: 1; +color: #C9EFF8; +} +#main #login_form_wrap .login_form .login_form_main .login_form_continue:hover { +color: #fff; +} +#main #login_form_wrap .login_form .login_form_agree { +margin: 16px auto 0; +} +#main #login_form_wrap .login_form .login_form_agree i { +color: #fff; +} +#article { +position: relative; +width: 640px; +margin: auto; +margin-bottom: 56px; +padding: 24px 36px 36px; +border-radius: 4px; +background-color: #fff; +box-sizing: border-box; +box-shadow: 3px 3px 5px rgba(0,0,0,0.26); +} +#article h2 { +font-size: 32px; +font-weight: 600; +margin: 16px 0; +} +#article p { +display: inline-block; +margin-bottom: 16px; +font-size: 16px; +line-height: 1.2; +} +#article .image_wrap { +display: block; +position: relative; +margin: 0 -36px 24px; +border-top: 0.5px solid #555; +border-bottom: 0.5px solid #555; +} +#article .image_wrap ul { +display: block; +position: relative; +width: 100%; +height: 370px; +overflow: hidden; +} +#article .image_wrap ul li { +position: absolute; +top: 0; +left: 0; +} +@keyframes fadeout { +0% {opacity: 1;} +100% {opacity: 0;} +} +@keyframes fadein { +0% {opacity: 0;} +100% {opacity: 1;} +} +#article .image_wrap ul li.fadeout { +animation-name: fadeout; +animation-duration: 0.5s; +animation-fill-mode: forwards; +} +#article .image_wrap ul li.fadein { +animation-name: fadein; +animation-duration: 0.5s; +animation-fill-mode: forwards; +} +#article .image_wrap .switch_button { +display: block; +opacity: 0; +position: absolute; +top: 0; +width: 30px; +height: 100%; +color: #fff; +background-color: rgba(0, 0, 0, .3); +transition: 0.15s ease-out; +} +#article .image_wrap:hover .switch_button { +opacity: 1; +transition: 0.15s ease-out; +} +@keyframes switching_image_list { +0% {background-color: rgba(0, 0, 0, .3);} +50% {background-color: rgba(0, 0, 0, .8);} +100% {background-color: rgba(0, 0, 0, .3);} +} +#article .image_wrap:hover .switch_button.active { +animation-name: switching_image_list; +animation-duration: 0.35s; +} +#article .image_wrap .switch_button.prev_button { +left: 0; +} +#article .image_wrap .switch_button.next_button { +right: 0; +} + +#article a { +color: #189EFC; +} +#footer { +width: 640px; +padding: 24px 36px 12px; +box-sizing: border-box; +margin: auto; +border-top-right-radius: 4px; +border-top-left-radius: 4px; +box-shadow: 3px 3px 5px rgba(0,0,0,0.26); +background-color: #222; +} +#footer .footer_anchor { +display: flex; +justify-content: center; +align-items: center; +color: #444; +font-size: 36px; +transition: 0.15s ease-out; +} +#footer .footer_anchor:hover { +color: #555; +transition: 0.15s ease-out; +} +#footer span { +font-size: 14px; +color: #ddd; +margin: auto; +display: block; +text-align: center; +} \ No newline at end of file diff --git a/public_html/login/assets/images/background.jpg b/login/assets/images/background.jpg similarity index 100% rename from public_html/login/assets/images/background.jpg rename to login/assets/images/background.jpg diff --git a/public_html/login/assets/images/halcyon-title.png b/login/assets/images/halcyon-title.png similarity index 100% rename from public_html/login/assets/images/halcyon-title.png rename to login/assets/images/halcyon-title.png diff --git a/public_html/login/assets/images/halcyon_logo.png b/login/assets/images/halcyon_logo.png similarity index 100% rename from public_html/login/assets/images/halcyon_logo.png rename to login/assets/images/halcyon_logo.png diff --git a/public_html/login/assets/images/preview0.png b/login/assets/images/preview0.png similarity index 100% rename from public_html/login/assets/images/preview0.png rename to login/assets/images/preview0.png diff --git a/public_html/login/assets/images/preview1.png b/login/assets/images/preview1.png similarity index 100% rename from public_html/login/assets/images/preview1.png rename to login/assets/images/preview1.png diff --git a/public_html/login/assets/images/preview2.png b/login/assets/images/preview2.png similarity index 100% rename from public_html/login/assets/images/preview2.png rename to login/assets/images/preview2.png diff --git a/login/assets/js/halcyon_login.js b/login/assets/js/halcyon_login.js new file mode 100644 index 0000000..7ff4d97 --- /dev/null +++ b/login/assets/js/halcyon_login.js @@ -0,0 +1,43 @@ +$(function() { +$(document).on('change','.login_form_agree #agree', function(e) { +const icon = $(this).parent().find('i.fa'); +if ( $(this).prop('checked') ) { +icon.addClass("fa-check-square-o"); +icon.removeClass("fa-square-o"); +} else if ( !$(this).prop('checked') ) { +icon.addClass("fa-square-o"); +icon.removeClass("fa-check-square-o"); +} +}); +$(document).on('focus', '#main #login_form_wrap .login_form .login_form_main input[name="acct"]', function(e) { +$(this).parent().addClass('active') +$(".login_form").addClass('expand'); +}) +$(document).on('blur', '#main #login_form_wrap .login_form .login_form_main input[name="acct"]', function(e) { +$(this).parent().removeClass('active') +$(".login_form").removeClass('expand'); +}) +$(document).on('mousedown', '.image_wrap .switch_button', function(e) { +const self = $(this); +self.addClass('active'); +setTimeout(function() { +self.removeClass('active'); +}, 500); +}) +$(document).on('click', '.image_wrap .prev_button', function(e) { +const firstChild = $(this).parent(".image_wrap").find('ul li:first-child'); +firstChild.appendTo(".image_wrap ul"); +firstChild.addClass('fadein'); +setTimeout(function() { +firstChild.removeClass('fadein'); +}, 500); +}) +$(document).on('click', '.image_wrap .next_button', function(e) { +const lastChild = $(this).parent(".image_wrap").find('ul li:last-child');; +lastChild.addClass('fadeout'); +setTimeout(function() { +lastChild.prependTo(".image_wrap ul"); +lastChild.removeClass('fadeout'); +}, 500); +}) +}) \ No newline at end of file diff --git a/login/auth.php b/login/auth.php new file mode 100644 index 0000000..3302580 --- /dev/null +++ b/login/auth.php @@ -0,0 +1,49 @@ + + + + +selectInstance($URL); +$response = $api->get_access_token($api->clientWebsite.'/auth?&host='.$domain, htmlspecialchars((string)filter_input(INPUT_GET, 'code'), ENT_QUOTES)); +if ($response['html']["access_token"]) { +$access_token = $response['html']["access_token"]; +$account_id = $api->accounts_verify_credentials()['html']['id']; +echo " + +"; +} +} +?> + + + + + + diff --git a/login/login.php b/login/login.php new file mode 100644 index 0000000..529207e --- /dev/null +++ b/login/login.php @@ -0,0 +1,170 @@ +clientWebsite.'/login?cause=domain', true, 303); +die(); +} else { +try { +$client_id = $api->getInstance($URL)["client_id"]; +$authorizeURL= $URL.'/oauth/authorize?client_id='.$client_id.'&response_type=code&scope=read+write+follow&website='.$api->clientWebsite.'&redirect_uri='.urlencode($api->clientWebsite.'/auth?&host='.$domain); +header("Location: {$authorizeURL}", true, 303); +die(); +} catch (Exception $e) { +header('Location: '.$api->clientWebsite.'/login?cause=domain', true, 303); +die(); +} +} +} +?> + + + + + + +Halcyon for Mastodon + + + + + + + + + + +
    +
    + +
    +
    +

    What is Halcyon

    +

    +Halcyon is standard Twitter like client of Mastodon, And you can use it just by login to your instance. Let's Toot like a tweet. +

    +
    +
      +
    • halcyon_screenshot
    • +
    • halcyon_screenshot
    • +
    • halcyon_screenshot
    • +
    + + +
    +

    Contact / Feedback

    +

    +Mastodon: @halcyon@social.csswg.org
    +Email: Use my contact form
    +Github: halcyon-suite/halcyon +

    +

    Help us

    +

    +Bitcoin: 1D6GThQqHQYnruKYrKyW9JC86ZGWxjt1hK
    +

    +
    +
    + + + + + + + \ No newline at end of file diff --git a/public_html/login/logout.php b/login/logout.php similarity index 89% rename from public_html/login/logout.php rename to login/logout.php index bb5475b..53cd0b0 100644 --- a/public_html/login/logout.php +++ b/login/logout.php @@ -1,3 +1,3 @@ - + \ No newline at end of file diff --git a/login/terms.php b/login/terms.php new file mode 100644 index 0000000..0849bf8 --- /dev/null +++ b/login/terms.php @@ -0,0 +1,100 @@ + + + + + + +Halcyon for Mastodon + + + + + + + + + +
    +
    +

    Halcyon Terms of Use

    +

    This terms of use agreement is for the users of web service Halcyon for Mastodon (Halcyon for short) hosted at example.com.

    +
    +

    1. Agreement

    +

    By logging into Halcyon you agree to this terms of use agreement. Do not use this service if you do not agree to these terms.

    +
    +

    2. Change

    +

    We reserve the right to modify these terms of use at any time if deemed necessary.

    +
    +

    3. Account

    +

    Users can connect to various Mastodon accounts from Halcyon, and Halcyon will not interfere with those connection.

    +
    +

    4. Content

    +

    Halcyon does not own the right to or hold responsibility for any text, image, animation, audio content accessible from Halcyon. The right and responsibility belong to the owners of instances that host those content.

    +
    +

    5. Guideline

    +

    Halcyon reserves the right to terminate service for

    +
      +
    • actions violating the laws of countries
    • +
    • actions contrary to public order and standards of decency
    • +
    • violation of third party’s right to intellectual property, brand, privacy, etc.
    • +
    • acts of violence, sexual nature, of discrimination
    • +
    • phishing or spamming
    • +
    • actions causing problem to the network infrastructure of Halcyon
    • +
    +
    +

    6. Disclaimer

    +

    Halcyon is not responsible for any damage caused by using this service.

    +
    +

    Last updated 2017/5/12

    +
    +
    + + \ No newline at end of file diff --git a/notifications.php b/notifications.php new file mode 100644 index 0000000..44d9baa --- /dev/null +++ b/notifications.php @@ -0,0 +1,42 @@ + +
    +
    + +
    +
    + +
    +
    + +
    +
      +
    +
    + +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/public_html/404.php b/public_html/404.php deleted file mode 100644 index fe03c53..0000000 --- a/public_html/404.php +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - Halcyon / ? - - - - - - - -
    - -

    404

    -

    Sorry, something went wrong.

    - -
    - - - \ No newline at end of file diff --git a/public_html/assets/css/404.css b/public_html/assets/css/404.css deleted file mode 100644 index 9a68a47..0000000 --- a/public_html/assets/css/404.css +++ /dev/null @@ -1,169 +0,0 @@ -@charset "utf-8"; - -/*-------------------------------------- - Reset ---------------------------------------*/ - -* { - margin: 0; - padding: 0; - font-size: 100%; -} - -a { - text-decoration: none; - word-break: break-all; - color: inherit; -} - -a:hover { - text-decoration: underline; -} - -ul, ol { - list-style: none; - padding: 0; - margin: 0; -} - -img { - vertical-align: top; - border: 0; - max-width: 100%; - max-height: 100%; -} - -button { - font-size: 100%; -} - -.clear { - clear: both; -} - -.red { - color: red!important; -} - -.invisible { - display: none!important; -} - -.no-events { - pointer-events: none; -} - -.disallow_select { - user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - -moz-user-select: none; -} - -.text_ellipsis { - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -h1, h2, h3, h4, h5, h6 { - font-weight: normal; - line-height: 1; - margin: 0; - padding: 0; -} - -blockquote, q { - quotes: none; - margin: 0; -} - -blockquote * { - margin: 0; - word-break: break-all; -} - -blockquote:before, blockquote:after, -q:before, q:after { - content:''; - content:none; -} - -article,aside,details,figcaption,figure, -footer,header,hgroup,menu,nav,section { - display:block; -} - -textarea { - width: 100%; -} - -input { - max-width: 100%; -} - -button, input[type="submit"], input[type="button"]{ - background-color: transparent; - border: none; - cursor: pointer; - outline: none; - padding: 0; - appearance: none; -} - -/* Twitter Emoji Prefix */ -img.emoji { - height: 1em; - width: 1em; - margin: 0 .05em 0 .1em; - vertical-align: -0.1em; -} - -.emoji_poss .auth_emoji { - display: inline-block; - height: 100%; - margin: auto; - margin-left: 4px; -} - -/*-------------------------------------- - Base ---------------------------------------*/ - -html { - font-family : "Helvetica Neue",Helvetica,"ヒラギノ角ゴ Pro W3", - "Hiragino Kaku Gothic Pro",Meiryo,"メイリオ","MS Pゴシック",Arial,sans-serif; - font-size : 100%; - line-height : 1; - color: #333; - min-width: 100%; - min-height: 100%; -} - -body { - margin: 0; - padding: 0; - min-width: 100%; - min-height: 100%; - word-wrap:break-word; - background-color: #189EFC; -} - -article { - margin: auto; - padding: 24px; -} - -h1 { - font-size: 248px; - text-align: center; - color: #fff; - font-weight: 600; -} - -h2 { - font-size: 56px; - text-align: center; - color: #fff; - font-weight: 200; -} \ No newline at end of file diff --git a/public_html/assets/css/style.css b/public_html/assets/css/style.css deleted file mode 100644 index 5a03d03..0000000 --- a/public_html/assets/css/style.css +++ /dev/null @@ -1,2894 +0,0 @@ -@charset "utf-8"; - -/*-------------------------------------- - Reset ---------------------------------------*/ - -* { - margin: 0; - padding: 0; - font-size: 100%; -} - -a { - text-decoration: none; - word-break: break-all; - color: inherit; -} - -a:hover { - text-decoration: underline; -} - -ul, ol { - list-style: none; - padding: 0; - margin: 0; -} - -img { - vertical-align: top; - border: 0; - max-width: 100%; - max-height: 100%; -} - -button { - font-size: 100%; -} - -.clear { - clear: both; -} - -.red { - color: red!important; -} - -.invisible { - display: none!important; -} - -.no-events { - pointer-events: none; -} - -.disallow_select { - user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - -moz-user-select: none; -} - -.text_ellipsis { - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -h1, h2, h3, h4, h5, h6 { - font-weight: normal; - line-height: 1; - margin: 0; - padding: 0; -} - -blockquote, q { - quotes: none; - margin: 0; -} - -blockquote * { - margin: 0; - word-break: break-all; -} - -blockquote:before, blockquote:after, -q:before, q:after { - content:''; - content:none; -} - -article,aside,details,figcaption,figure, -footer,header,hgroup,menu,nav,section { - display:block; -} - -textarea { - width: 100%; -} - -input { - max-width: 100%; -} - -button, input[type="submit"], input[type="button"]{ - background-color: transparent; - border: none; - cursor: pointer; - outline: none; - padding: 0; - appearance: none; -} - -/* Twitter Emoji Prefix */ -img.emoji { - height: 1em; - width: 1em; - margin: 0 .05em 0 .1em; - vertical-align: -0.1em; -} - -.emoji_poss .auth_emoji { - display: inline-block; - height: 100%; - margin: auto; - margin-left: 4px; -} - -/*-------------------------------------- - Base ---------------------------------------*/ - -html { - font-family : "Helvetica Neue",Helvetica,"ヒラギノ角ゴ Pro W3", - "Hiragino Kaku Gothic Pro",Meiryo,"メイリオ","MS Pゴシック",Arial,sans-serif; - font-size : 100%; - line-height : 1; - color: #333; - min-width: 100%; - min-height: 100%; -} - -body { - margin: 0; - padding: 0; - min-width: 100%; - min-height: 100%; - word-wrap:break-word; - background-color: #F5F8FA; -} - -/*-------------------------------------- - Form ---------------------------------------*/ - -.status_form { - width: 100%; - padding: 12px; - box-sizing: border-box; - background-color: #E8F4FB; -} - -/* ready to post */ -.status_form.ready { - background-color: #F2FAFF!important; -} -.status_form.ready .status_bottom .status_media_attachment, -.status_form.ready .status_bottom .status_privacy { - color: #7ECEFF!important; -} -.status_form.ready .status_bottom .status_CW > span, -.status_form.ready .status_bottom .status_NSFW > span { - background-color: #7ECEFF!important; -} -.status_form.ready .status_bottom .submit_status_label { - background-color: #A3D8FF!important; - pointer-events: none; - cursor: default; -} - -.status_form .status_top { - display: flex; - align-items: center; - width: calc( 100% - 54px ); - padding-bottom: 0; - margin-left: 54px; - box-sizing: border-box; -} - -.status_form .status_top .status_spoiler { - color: #189EFC; - width: 100%; - height: 35px; - border-radius: 4px; - border: 1px solid #C7E7FB; - font-size: 14px; - padding: 8px; - box-sizing: border-box; -} - -.status_form .status_main { - display: flex; - flex-wrap: nowrap; -} - -.status_form .status_main .icon_box { - flex-shrink: 0; - margin-right: 8px; - width: 32px; - height: 32px; - border-radius: 5px; - overflow: hidden; - margin-left: 14px; -} - -.status_form .status_main .status_textarea { - flex: 1; - padding: 8px; - border-radius: 3px; - box-sizing: border-box; - border: 1px solid #C7E7FB; - background-color: #fff; - overflow: hidden; -} - -.status_form .status_main .status_textarea textarea { - color: #189EFC; - resize: none; - height: 18px; - border: none; - max-width: 100%; - font-size: 14px; - font-family : "Helvetica Neue",Helvetica,"ヒラギノ角ゴ Pro W3", - "Hiragino Kaku Gothic Pro",Meiryo,"メイリオ","MS Pゴシック",Arial,sans-serif; - line-height: normal; -} - -.status_form .status_textarea textarea.focus { - outline: 0; - color: #000; - height: 68px; -} - -.status_form .status_textarea .media_attachments_preview_area { - display: flex; - flex-wrap: nowrap; - margin: 8px -8px -8px -8px; - padding: 8px 12px; - background-color: #F1F1F1; - border-top: 1px solid #C7E7FB; -} - -.status_form .status_textarea .media_attachments_preview { - position: relative; - flex-shrink: 0; - max-width: 113px; - height: 113px; - margin-right: 8px; - border-radius: 5px; - border: 1px solid #C7E7FB; - overflow: hidden; - flex: 1; - background-color: #fff; -} - -.status_form .status_textarea .media_attachments_preview:last-child { - margin-right: 0; -} - -.status_form .status_textarea .media_attachments_preview_area.nsfw .media_attachments_preview::after { - display: block; - content: ""; - cursor: pointer; - top: 0; - font-weight: 300; - width: 100%; - height: 100%; - position: absolute; - background-color: rgba(0, 0, 0, 1); - transition: 0.13s; -} - -.status_form .status_textarea .media_attachments_preview_area.nsfw .media_attachments_preview:hover::after { - background-color: rgba(0, 0, 0, 0); - transition: 0.13s; -} - -.status_form .status_textarea .media_attachments_preview img { - width: 100%; - height: 100%; - object-fit: cover; -} - -.status_form .status_textarea .media_attachments_preview .remove_button { - position: absolute; - z-index: 1; - right: 0; - top: 0; - color: #fff; - background-color: rgba(0, 0, 0, .8); - border-radius: 50%; - width: 19px; - height: 19px; - display: flex; - align-content: center; - justify-content: center; - font-size: 14px; - margin: 4px 4px 0 0; -} - -.status_form .status_bottom { - display: flex; - align-items: center; - width: calc( 100% - 52px ); - padding: 8px 0; - padding-bottom: 0; - box-sizing: border-box; - padding-right: 0; - margin-left: 52px; -} - -.status_form .status_bottom .status_option_button { - cursor: pointer; - color: #43A7E5; - font-size: 21px; - border-radius: 3px; - padding: 8px 12px; - box-sizing: border-box; - border: 1px solid transparent;; - height: 39px; - display: flex; - justify-content: center; - align-items: center; -} - -.status_form .status_bottom .status_option_button:hover { - border: 1px solid #C7E7FB -} - -.status_form .status_bottom .status_option_button.active { - animation-name: status_action_active; - animation-duration: 0.5s; -} - -.status_form .status_bottom .status_CW > span, -.status_form .status_bottom .status_NSFW > span { - display: flex; - align-items: center; - height: 22px; - padding: 4px; - color: #E8F4FB; - border-radius: 3px; - box-sizing: border-box; - background-color: #43A7E5; - text-align: center; -} - -.status_form .status_bottom .status_CW > span { - font-size: 10px; -} - -.status_form .status_bottom .status_NSFW > span { - font-size: 8px; -} - - -.status_form .status_bottom .status_privacy { - position: relative; -} - -.status_form .status_bottom .status_privacy .expand_privacy_menu { - display: block; - position: absolute; - cursor: pointer; - top: 32px; - right: -122px; - width: 160px; - padding: 18px; - font-size: 12px; - border-radius: 3px; - box-sizing: border-box; - background-color: #fff; - box-shadow: 0.5px 0.5px 3px rgba(0,0,0,0.26); - z-index: 2; -} - -.status_form .status_bottom .status_privacy .expand_privacy_menu::before { - display: block; - content: ""; - z-index: -1; - width: 20px; - height: 20px; - position: absolute; - transform: rotate(45deg); - top: -5px; - left: 8px; - background-color: #fff; -} - -.status_form .status_bottom .status_privacy .expand_privacy_menu .status_privacy { - display: block; - cursor: pointer; - font-size: 14px; - margin-bottom: 12px; - color: rgb(101, 119, 134); - text-align: left; -} - -.status_form .status_bottom .status_privacy .expand_privacy_menu .status_privacy:last-child { - margin-bottom: 0; -} - -.status_form .status_bottom .status_privacy .expand_privacy_menu .status_privacy:hover { - color: #189EFC; -} - -.status_form .status_bottom .status_privacy .expand_privacy_menu .status_privacy i { - margin-right: 4px; -} - -.status_form .status_bottom .submit_status_label_wrap { - flex-grow: 1; - display: flex; - align-items: center; - justify-content: flex-end; - height: 39px; -} - -.status_form .status_bottom .character_count { - color: #66757F; - font-size: 14px; - padding: 0 12px; - box-sizing: border-box; -} - -.status_form .status_bottom .submit_status_label { - height: 100%; - padding: 6px 24px; - cursor: pointer; - float: right; - border-radius: 4px; - color: #fff; - background-color: #2588D0; - transition: 0.15s ease-out; - box-sizing: border-box; - display: flex; - justify-content: center; - align-items: center; -} - -.status_form .status_bottom .submit_status_label:hover { - background-color: #2571D0; - transition: 0.15s ease-out; -} - -.status_form .status_bottom .submit_status_label:active { - background-color: #255ED0; - transition: 0.15s ease-out; -} - -.status_form .status_bottom .submit_status_label .toot_button_label { - display: flex; - justify-content: center; - align-items: center; -} - -.status_form .status_bottom .submit_status_label .toot_button_label i { - display: inline-block; - font-size: 21px; - margin-right: 2px; -} - -.status_form .status_bottom .submit_status_label .toot_button_label span { - font-size: 13px; - font-weight: 500; -} - -/*-------------------------------------- - Status : overlay ---------------------------------------*/ - -.overlay_status{ - /*! width: 628px; */ - /*! margin: auto; */ - /*! z-index: 1000; */ - /*! top: 20%; */ - /*! left: 0; */ - /*! position: absolute; */ - /*! right: 0; */ - /*! bottom: 0; */ - margin-top: 20%; -} - -.overlay_status_header { - width: 600px; - padding: 16px; - box-sizing: border-box; - background-color: #fff; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - margin: auto; - text-align: center; - color: #66757F; - font-size: 18px; - font-weight: 300; -} - -#overlay_status_form.status_form { - width: 600px; - padding: 16px; - box-sizing: border-box; - background-color: #E8F4FB; - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - margin: auto; -} - -#overlay_status_form.status_form .status_top { - width: 100%; - margin-left: 0; -} - -#overlay_status_form.status_form .status_main { - display: flex; - flex-wrap: nowrap; -} - -#overlay_status_form.status_form .status_main .status_textarea { - flex: 1; -} - -#overlay_status_form.status_form .status_main .status_textarea textarea { - color: #000; - resize: none; - max-width: 100%; - height: auto; - min-height: 72px; - border-radius: 5px; - font-family : "Helvetica Neue",Helvetica,"ヒラギノ角ゴ Pro W3", - "Hiragino Kaku Gothic Pro",Meiryo,"メイリオ","MS Pゴシック",Arial,sans-serif; - font-size: 14px; - padding: 4px; - outline: 0; - box-sizing: border-box; -} - -#overlay_status_form.status_form .status_bottom { - display: flex; - align-items: center; - width: auto; - padding: 8px 0; - padding-bottom: 0; - margin-left: 0; - box-sizing: border-box; - padding-right: 0; -} - -/*-------------------------------------- - Status : reply ---------------------------------------*/ - -#reply_status_form.status_form:last-child { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; -} - -/*-------------------------------------- - Status : single reply ---------------------------------------*/ - -.single_reply_status { - width: 600px; - margin: auto; - /*! z-index: 1000; */ - /*! top: 25%; */ - /*! left: 0; */ - /*! height: 100%; */ - /*! position: absolute; */ - /*! right: 0; */ - /*! bottom: 0; */ - margin-top: 20%; -} - -.single_reply_status_header { - width: 600px; - padding: 16px; - box-sizing: border-box; - background-color: #fff; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - margin: auto; - text-align: center; - color: #66757F; - font-size: 18px; - font-weight: 300; -} - -.single_reply_status .status_preview { - border-top: 1px solid #E1E8ED; -} - -.single_reply_status .status_preview .toot_entry .toot_footer { - display: none!important; -} - -.single_reply_status .status_form .status_bottom { - width: 100%; - margin-left: 0; -} - -#single_reply_status_form.status_form { - width: 600px; - padding: 16px; - box-sizing: border-box; - background-color: #E8F4FB; - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - margin: auto; -} -#single_reply_status_form.status_form .status_bottom .submit_status_label .toot_button_label i { - font-size: 18px; - margin-right: 8px; -} - -/*-------------------------------------- - Status : single reply ---------------------------------------*/ - -.overlay_copy_link { - width: 600px; - margin: auto; - margin-top: 20%; -} - -.overlay_copy_link_header { - width: 600px; - padding: 16px; - box-sizing: border-box; - background-color: #fff; - border-top-left-radius: 5px; - border-top-right-radius: 5px; - margin: auto; - text-align: center; - color: #66757F; - font-size: 18px; - font-weight: 300; - border-bottom: 1px solid #E6ECF0; -} - -.overlay_copy_link .overlay_copy_link_form { - width: 600px; - padding: 16px; - box-sizing: border-box; - background-color: #fff; - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; - margin: auto; -} - -.overlay_copy_link .overlay_copy_link_form input { - width: 100%; - height: 36px; - padding: 4px 16px; - border: 1px solid #E6ECF0; - background-color: #F5F8FA; - box-sizing: border-box; - font-size: 14px; - border-radius: 3px; -} - -/*-------------------------------------- - Buttons ---------------------------------------*/ - -/* Base */ -.relationship_button { - display: flex; - flex-wrap: nowrap; - align-items: center; - font-size: 13px; - padding: 6px 13px; - margin-top: 4px; - border-radius: 4px; - border: 1px solid #189EFC; -} - -/* Base */ -.relationship_button i { - margin-right: 4px; -} - -/* Base */ -.relationship_button span { - font-weight: 600; -} - -/* Follow */ -.follow_button {border: 1px solid #189EFC; color: #189EFC;} -.follow_button i {color: #189EFC} -.follow_button:hover, -.follow_button:hover i {background-color: #189EFC;color: #fff;} - -/* Following */ -.following_button, -.following_button i {background-color: #189EFC;color: #fff;} -.following_button:hover, -.following_button:hover i {background-color: #E20055;color: #fff;} - -/* Muting */ -.muting_button {background-color: #E20055;color: #fff;} -.muting_button i {color: #fff;} -.muting_button:hover, -.muting_button:hover i {background-color: #B82424;color: #fff;} - -/* Blocking */ -.blocking_button{background-color: #fff;color: #E20055} -.blocking_button i {color: #E20055;} -.blocking_button:hover, -.blocking_button:hover i {background-color: #B82424;} - -/* IF Myself: Edit profile */ -.profile_edit_button{background-color: #FFF;color: #66757F;border: 1px solid #66757F;} -.profile_edit_button:hover, -.profile_edit_button:hover i {background-color: #F5F8FA;} - -/*-------------------------------------- - Timeline ---------------------------------------*/ - -.timeline_header { - background-color: #fff; - box-sizing: border-box; - border: 1px solid #ECF1F4; - border-bottom: none; - border-top-right-radius: 5px; - border-top-left-radius: 5px; -} - -.timeline_header .header_items { - display: flex; - flex-wrap: nowrap; - align-items: center; -} - -.timeline_header .header_items .item { - display: inline-block; - font-size: 18px; - font-weight: 300; - padding: 15px; - color: #189EFC; - box-sizing: border-box; -} - -.timeline_header .header_items .item.view { - font-weight: 600; - color: #000; -} - -/* timeline */ -.timeline { - background-color: #fff; - box-sizing: border-box; - border: 1px solid #ECF1F4; -} - -/*-------------------------------------- - Timeline Entry ---------------------------------------*/ - -/* Boost only */ -.timeline .boost_author_box { - margin-left: 46px; - margin-bottom: -12px; - padding: 8px 0; - font-size: 12px; - color: rgb(101, 119, 134); - height: 14px; -} - -/* Boost only */ -.timeline .boost_author_box i { - display: inline-block; - width: 10px; - height: 10px; - padding: 2px; - margin-right: 11px; - color: #fff; - background-color: #17BF63; - border-radius: 2px; - font-size: 10px; - /*! height: 14px; */ -} - -.toot_entry { - cursor: pointer; - background-color: #fff; - list-style: none; -} - -.toot_entry:hover { - background-color: #F5F8FA; -} - -.toot_entry .toot_entry_body { - display: flex; - flex-wrap: nowrap; - padding: 12px; - box-sizing: border-box; - border-bottom: 1px solid #ECF1F4; -} - -.toot_entry .toot_entry_body > a { - height: 48px; -} - -.toot_entry .toot_entry_body .icon_box { - flex-shrink: 0; - width: 48px; - height: 48px; - margin-right: 12px; - border-radius: 5px; - overflow: hidden; - z-index: 1; -} - -.toot_entry .toot_entry_body .icon_box img { - width: 48px; - height: 48px; -} - -.toot_entry .toot_entry_body .toot_content { - flex-grow: 1; - height: 100%; - max-width: 504px; - /*! z-index: 1; */ -} - -.toot_entry .toot_entry_body .toot_content .toot_header { - color: rgb(101, 119, 134); - position: relative; - font-size: 14px; - padding-right: 16px; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .text_ellipsis a { - line-height: 1; - height: 16.5px; - margin-bottom: -4.5px; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .displayname { - color: rgb(20, 23, 26); - font-weight: bold; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .displayname:hover { - color: #189EFC; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .right-top_button { - flex: 1; - height: 100%; -} - -/* expand button */ -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap { - position: absolute; - top: 0; - right: 0; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_button { - position: absolute; - right: 0; - top: 0; - color: #AAB8C2; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_button:hover { - color: #189EFC; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu { - display: block; - position: absolute; - cursor: pointer; - top: 36px; - right: -152px; - width: 180px; - padding: 8px 21px; - font-size: 12px; - border-radius: 3px; - box-sizing: border-box; - background-color: #fff; - box-shadow: 0.5px 0.5px 3px rgba(0,0,0,0.26); - z-index: 1; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu::before { - display: block; - content: ""; - z-index: -1; - width: 20px; - height: 20px; - position: absolute; - transform: rotate(45deg); - top: -5px; - left: 8px; - background-color: #fff; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul { - margin: 0 -21px; - margin-bottom: 8px; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul::after { - content: ""; - display: block; - margin-top: 8px; - border-bottom: 1px solid #E6ECF0; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul:last-child::after { - border-bottom: 0px solid #E6ECF0; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul li { - box-sizing: border-box; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu ul:last-child li { - margin-bottom: 0; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu a { - display: block; - padding: 8px 21px; - box-sizing: border-box; -} - -.toot_entry .toot_entry_body .toot_content .toot_header .expand_button_wrap .expand_menu a:hover { - background-color: #189EFC; - text-decoration: none; - color: #fff; -} - -.toot_entry .toot_entry_body .toot_content .cw_button { - background-color: #6D768C; - border-radius: 3px; - padding: 4px; - margin: auto 4px; - font-size: 8px; - box-sizing: border-box; - color: #fff; -} - -.toot_entry .toot_entry_body .toot_content .toot_article { - font-size: 14px; - line-height: 20px; - margin-top: 4px; -} - -.toot_entry .toot_entry_body .toot_content .toot_article a { - color: #2588D0; -} - -.toot_entry .toot_entry_body .toot_content .toot_article.content_warning .status_content { - display: none; -} - -.toot_entry .toot_entry_body .toot_content .toot_footer { - display: flex; - flex-wrap: nowrap; - align-items: center; - width: 240px; - height: 21px; - margin-top: 8px; -} - -.toot_entry .toot_entry_body .toot_content .toot_reaction { - height: 21px; - flex-grow: 1; -} - -.toot_entry .toot_entry_body .toot_content .toot_reaction button { - margin: auto; - color: #AAB8C2; - font-size: 18px; - height: 21px; -} - -.toot_entry .toot_entry_body .toot_content .toot_reaction button.active { - animation-name: status_action_active; - animation-duration: 0.5s; -} - -.toot_entry .toot_entry_body .toot_content .toot_reaction button .reaction_count { - color: #AAB8C2; - font-size: 12px; - font-weight: 600; -} - -@keyframes status_action_active { - 0% { transform: scale(1); } - 50% { transform: scale(2); } - 100% { transform: scale(1); } -} - -.toot_entry .toot_entry_body .toot_content .toot_reaction .reply_button:hover { - color: #1DA1F2; -} - -.toot_entry .toot_entry_body .toot_content .toot_reaction .boost_button[reblogged="null"]:hover, -.toot_entry .toot_entry_body .toot_content .toot_reaction .boost_button[reblogged="true"], -.toot_entry .toot_entry_body .toot_content .toot_reaction .boost_button[reblogged="null"]:hover .reaction_count, -.toot_entry .toot_entry_body .toot_content .toot_reaction .boost_button[reblogged="true"] .reaction_count { - color: #17BF63; -} - -.toot_entry .toot_entry_body .toot_content .toot_reaction .fav_button[favourited="null"]:hover, -.toot_entry .toot_entry_body .toot_content .toot_reaction .fav_button[favourited="true"], -.toot_entry .toot_entry_body .toot_content .toot_reaction .fav_button[favourited="null"]:hover .reaction_count, -.toot_entry .toot_entry_body .toot_content .toot_reaction .fav_button[favourited="true"] .reaction_count { - color: #FFAD1A; -} - -/*-------------------------------------- - Timeline Media Views ---------------------------------------*/ - -.media_views { - margin: 8px 0; - height: 336px; - width: 100%; - border-radius: 5px; - overflow: hidden; - position: relative; - box-sizing: border-box; - border: 1px solid #DCDFE1; -} - -.media_views .media_attachment { - overflow: hidden; - width: 100%; - height: 100%; -} - -.media_views .media_attachment > * { - width: 100%; - height: 100%; - object-fit: cover; -} - -.media_views .media_attachment > iframe { - object-fit: fill; -} - -.media_views.sensitive .sensitive_alart { - display: flex; - z-index: 1; - flex-direction: column; - justify-content: center; - align-items: center; - position: absolute; - width: 100%; - height: 100%; - background-color: #000; -} - -.media_views.sensitive .sensitive_alart .text1 { - font-size: 26px; - font-weight: 200; - padding: 8px 16px; - color: #fff; -} - -.media_views.sensitive .sensitive_alart .text2 { - font-weight: 200; - padding: 2px 4px; - margin-top: 3px; - color: #fff; -} - -/*---------------- - 2 -----------------*/ - -.media_views[media_length="2"] { - display: flex; -} - -.media_views[media_length="2"] .media_attachment { - flex-grow: 1; - overflow: hidden; - width: 50%; - height: 100%; -} - -.media_views[media_length="2"] .media_attachment[mediacount="0"] { - padding-right: 5px; - box-sizing: border-box; -} - -/*---------------- - 3 -----------------*/ - -.media_views[media_length="3"], -.media_views[media_length="4"] { - display: flex; -} - -.media_views[media_length="3"] .media_attachment[mediacount="0"], -.media_views[media_length="4"] .media_attachment[mediacount="0"] { - flex-grow: 2; - padding-right: 5px; - box-sizing: border-box; -} - -.media_views[media_length="3"] .media_attachments_right, -.media_views[media_length="4"] .media_attachments_right { - flex-grow: 1; - flex-shrink: 2;/* bug? */ - display: flex; - flex-direction: column; - height: 100%; -} - -.media_views[media_length="3"] .media_attachments_right .media_attachment { - padding-bottom: 5px; - box-sizing: border-box; - height: 50%; -} - -.media_views[media_length="3"] .media_attachments_right .media_attachment[mediacount="2"] { - padding-bottom: 0; -} - -/*---------------- - 4 -----------------*/ -.media_views[media_length="4"] .media_attachments_right .media_attachment { - padding-bottom: 5px; - box-sizing: border-box; - height: calc( 100% / 3 ); -} - -.media_views[media_length="4"] .media_attachments_right .media_attachment[mediacount="3"] { - padding-bottom: 0; -} - -/*-------------------------------------- - Notification ---------------------------------------*/ -.timeline .notice_entry { - padding: 10px 12px 10px 70px; - font-size: 14px; - line-height: 18px; - border-bottom: 1px solid #E6ECF0; -} - -/* boost quote */ -.timeline .notice_entry .notice_entry_body { - width: 480px; - border: 1px solid #E6ECF0; - border-radius: 5px; - padding: 8px 12px; -} - -.timeline .notice_entry .notice_entry_body .toot_header { - height: 17px; -} - -/* boost quote */ -.timeline .notice_entry .notice_entry_body .toot_article p { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.timeline .notice_entry .icon_box { - width: 24px; - height: 24px; - border-radius: 3px; - overflow: hidden; -} - -.timeline .notice_entry .icon_box img { - width: 24px; -} - -.timeline .notice_entry .font-icon { - position: relative; - padding: 3px; - left: -23px; - top: -26px; - width: 10px; - font-size: 10px; - border-radius: 3px; - color: #fff; -} - -.timeline .notice_entry .font-icon.follow { - background: #1DA1F2;; -} - -.timeline .notice_entry .font-icon.boost { - background: #17BF63; -} - -.timeline .notice_entry .font-icon.favourite { - background: #FFAD1A; -} - -.timeline .notice_entry .notice_author_box { - padding: 3px 0; -} - -.timeline .notice_entry .notice_author_box > a.notice_author { - margin-left: -18px; -} - -.timeline .notice_entry .notice_author_box > a.notice_author span { - font-weight: 600; -} - -.timeline .notice_entry .toot_content .toot_header a .displayname { - font-weight: 600; -} - -.timeline .notice_entry .toot_content .toot_header a .username { - color: #66757F; -} - -.timeline_footer { - padding: 24px; - background-color: #fff; - box-sizing: border-box; - border: 1px solid #ECF1F4; - border-top: none; - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; - color: #AAB8C2; - font-size: 36px; - text-align: center; -} - -/*-------------------------------------- - Follows profile ---------------------------------------*/ - -#js-follows_profile{ - display: flex; - width: 900px; - box-sizing: border-box; - height: auto; - flex-wrap: wrap; -} - -#js-follows_profile .follows_profile_box { - width: 290px; - margin: 0 5px; - margin-bottom: 10px; - box-sizing: border-box; - border-radius: 5px; - background-color: #fff; - overflow: hidden; - border: 1px solid #E6ECF0; -} - -#js-follows_profile .follows_profile_box .follows_profile_header { - height: 96px; - overflow: hidden; - background-color: #189EFC; -} - -#js-follows_profile .follows_profile_box .follows_profile_header img { - width: 100%; - height: 100%; - object-fit: cover; -} - -#js-follows_profile .follows_profile_box .follows_profile { - position: relative; -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_icon { - position: absolute; - width: 74px; - height: 74px; - padding: 3px; - margin-left: 16px; - border-radius: 8px; - top: -76px; - background-color: #fff; -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_icon img { - border-radius: 5px; -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_name_box { - width: auto; - /*! margin-left: 15px; */ - padding-bottom: 2px; - padding-top: 4px; - margin: 0 16px; - margin-top: 36px; -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_name_box h2 { - font-weight: 700; - font-size: 18px; - line-height: 25px; -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_name_box span { - display: block; - width: 180px; - color: #657786; - font-size: 14px; - /*! overflow: hidden; */ - white-space: nowrap; - text-overflow: ellipsis; - margin: 4px 0; -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_name_box span::before { -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_bio { - height: 58px; - font-size: 14px; - font-weight: 400; - color: #66757f; - margin: 0 16px; - margin-bottom: 0px; - margin-bottom: 16px; - line-height: 1.3; - overflow: hidden; - /*! width: 100%; */ -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_bio p { - /*! white-space: nowrap; */ - overflow: hidden; - word-break: break-all; - height: auto; - /*! max-width: 100%; */ -} - -#js-follows_profile .follows_profile_box .follows_profile .follows_profile_bio p a { - color: #189EFC -} - -#js-follows_profile .follow_button { - display: flex; - flex-wrap: nowrap; - align-items: center; - font-size: 13px; - padding: 6px 18px; - margin-top: 4px; - border-radius: 4px; - border: 1px solid #189EFC; - position: absolute; - right: 16px; - top: -32px; -} - -#js-follows_profile .follow_button i { - color: #189EFC; - margin-right: 4px; -} - -#js-follows_profile .follow_button span { - font-weight: 600; -} - -#js-follows_profile .follow_button:hover, -#js-follows_profile .follow_button:hover i { - background-color: #189EFC; - color: #fff!important; -} - -#js-follows_profile .following_button { - display: flex; - flex-wrap: nowrap; - align-items: center; - font-size: 13px; - padding: 6px 18px; - margin-top: 4px; - border-radius: 4px; - border: 1px solid #2B94DA; - background-color: #189EFC; - position: absolute; - right: 16px; - top: -32px; -} - -#js-follows_profile .following_button i { - color: #fff; - margin-right: 4px; -} - -#js-follows_profile .following_button span { - font-weight: 600; - color: #fff; -} - -#js-follows_profile .following_button:hover, -#js-follows_profile .following_button:hover i { - background-color: #E20055; - color: #fff!important; -} - -#js-follows_footer { - color: #66757F; - font-size: 36px; - text-align: center; - padding: 16px; -} - -/*-------------------------------------- - Stream ---------------------------------------*/ -#js-stream_update { - height: 0; - padding: 0px; - box-sizing: border-box; - text-align: center; - font-size: 13px; - background-color: #F5F8FA; - overflow: hidden; - transition: 0.3s; - cursor: pointer; -} - -#js-stream_update:hover { - background-color: #E6ECF0; -} - -#js-stream_update button { - color: #189EFC; -} - -/*-------------------------------------- - Current profile ---------------------------------------*/ -.current_profile_box { - margin-bottom: 10px; - border-radius: 5px; - background-color: #fff; - overflow: hidden; - border: 1px solid #E6ECF0; -} - -.current_profile_box .current_profile_header { - height: 96px; - overflow: hidden; - background-color: #189EFC; -} - -.current_profile_box .current_profile_header img { - width: 100%; - height: 100%; - object-fit: cover; -} - -.current_profile_box .current_profile { - position: relative; -} - -.current_profile_box .current_profile .current_profile_icon { - position: absolute; - width: 70px; - height: 70px; - padding: 3px; - margin-left: 8px; - border-radius: 8px; - top: -30px; - background-color: #fff; -} - -.current_profile_box .current_profile .current_profile_icon img { - border-radius: 5px; -} - -.current_profile_box .current_profile .current_profile_name_box { - width: 180px; - margin-left: 90px; - padding-bottom: 10px; - padding-top: 8px; -} - -.current_profile_box .current_profile .current_profile_name_box h2 { - font-weight: 700; - font-size: 18px; - line-height: 25px; -} - -.current_profile_box .current_profile .current_profile_name_box span { - display: block; - width: 180px; - color: #657786; - font-size: 14px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.current_profile_box .current_profile .current_profile_name_box span::before { - content: "@"; -} - -.current_profile_box .current_profile .current_profile_counts { - display: flex; -} - -.current_profile_box .current_profile .current_profile_counts .current_profile_count { - flex-grow: 1; - padding-left: 16px; - padding-bottom: 8px; -} - -.current_profile_box .current_profile .current_profile_counts .current_profile_count a { - display: flex; - flex-direction: column; - justify-content: space-around; - text-decoration: none; -} - -.current_profile_box .current_profile .current_profile_counts .current_profile_count a .title { - color: #657786; - font-size: 10px; -} - -.current_profile_box .current_profile .current_profile_counts .current_profile_count a:hover .title { - color: #189EFC; -} - -.current_profile_box .current_profile .current_profile_counts .current_profile_count a .count { - font-size: 18px; - font-weight: 400; - padding-top: 3px; - color: #189EFC; -} - -/*-------------------------------------- - Widgets ---------------------------------------*/ - -.side_widget { - padding: 15px; - margin-bottom: 8px; - border-radius: 5px; - background-color: #fff; - border: 1px solid #E6ECF0; -} - -.side_widgets_footer { - color: rgb(101, 119, 134); - font-size: 12px; - padding: 16px 8px; -} - -.side_widgets_footer ul li { - display: inline-block; - margin: 0 12px 8px 0; -} - -.side_widget h2 { - color: #66757F; - font-size: 18px; - font-weight: 300; - margin-bottom: 15px; -} - -.side_widget h3 { - color: #66757F; - font-size: 16px; - font-weight: 300; -} - -.side_widget.stream_options .form_title{ - display: flex; - align-items: baseline; -} - -.side_widget.stream_options .form_title h2 { - margin-bottom: 0; - flex-grow: 1; -} - -.side_widget.stream_options .form_title button { - cursor: pointer; - flex-grow: 1; - font-size: 12px; - color: #189EFC; - text-align: right; -} - -.side_widget form.pulldown_form { - overflow: hidden; - height: 0; - opacity: 0; - margin-top: 0px; - transition: 0.13s ease-out; -} - -.side_widget form.pulldown_form.view { - height: 240px; - opacity: 1; - margin-top: 16px; - transition: 0.13s ease-out; -} - -.side_widget select, .side_widget input { - margin: 8px 0 16px; - width: 100%; - font-size: 14px; - color: #66757F; - box-sizing: border-box; -} - -.side_widget .account_box { - display: flex; - flex-wrap: nowrap; - align-items: center; - height: 100%; - margin-bottom: 12px; -} - -.side_widget .account_box .icon_box { - width: 48px; - height: 48px; - overflow: hidden; - margin-right: 8px; - border-radius: 5px; -} - -.side_widget .account_box .label_box { - width: 200px; -} - -.side_widget .account_box .label_box h3 { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - color: #333; -} - -.side_widget .account_box .label_box h3 .dn { - font-size: 14px; - font-weight: 700; -} - -.side_widget .account_box .label_box h3 .un { - font-size: 14px; - color: #66757F; -} - -.side_widget .account_box .label_box .follow_button { - display: flex; - flex-wrap: nowrap; - align-items: center; - font-size: 12px; - padding: 5px 16px; - margin-top: 4px; - border-radius: 4px; -} - -.side_widget .account_box .label_box .follow_button i { - color: #189EFC; - margin-right: 4px; -} - -.side_widget .account_box .label_box .follow_button span { - font-weight: 600; -} - -.side_widget .account_box .label_box .follow_button:hover, -.side_widget .account_box .label_box .follow_button:hover i { - background-color: #189EFC; - color: #fff!important; -} - -.side_widget .account_box .label_box .following_button { - display: flex; - color: #fff; - flex-wrap: nowrap; - align-items: center; - font-size: 12px; - padding: 5px 18px; - margin-top: 4px; - border-radius: 4px; - background-color: #189EFC; - border: 1px solid #189EFC; -} - -.side_widget .account_box .label_box .following_button:hover { - background-color: #E20055; -} - -.side_widget .account_box .label_box .following_button i { - color: #FFF; - margin-right: 4px; -} - -.side_widget .account_box .label_box .following_button span { - font-weight: 600; -} - -/*-------------------------------------- - Header ---------------------------------------*/ - -/* header */ -#header { - display: flex; - position: fixed; - z-index: 999; - width: 100%; - height: 47px; - color: #66757F; - background-color: #fff; - box-shadow: 0 1px 1px rgba(0,0,0,0.26); -} - -/* header child nav */ -#header .header_nav_wrap { - box-sizing: border-box; - display: flex; - width: 1190px; - height: 100%; - margin: auto; - padding: 0 5px; -} - -/*-------------------------------------- - Header Left ---------------------------------------*/ - -/* header nav left */ -#header .header_nav_wrap .header_left_box { - display: flex; - justify-content: flex-start; - flex: 2; - height: 100%; -} - -/* Left navigation box */ -#header .header_nav_wrap .header_left_box ul.header_nav_list { - display: flex; - width: 100%; - height: 100%; -} - -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item { - display: flex; - align-items: center; - height: 100%; - position: relative; -} - -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item .nav_badge { - width: 6px; - height: 6px; - background-color: #1B95E0; - border-radius: 50%; - position: absolute; - left: 6px; - top: 8px; -} - -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item .nav_badge.notification_badge { - position: absolute; - background-color: #189EFC; - border-radius: 40%; - font-size: 10px; - top: 8px; - left: 20px; - border: 2px solid #fff; - color: #fff; - padding: 2px; - box-sizing: border-box; - height: 20px; - width: 20px; - display: flex; - align-items: center; - justify-content: center; -} - -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a { - display: flex; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; - color: #66757F; - box-sizing: border-box; - padding-right: 18px; - padding-left: 9px; - /* HACK: */ - border-top: 0px solid transparent; - border-bottom: 0px solid #189EFC; - transition: 0.15s ease-out; -} - -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a:hover { - color: #189EFC; - text-decoration: none; - border-top: 5px solid transparent; - border-bottom: 5px solid #189EFC; - transition: 0.15s ease-out; -} - -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a.view { - text-decoration: none; - border-top: 5px solid transparent; - border-bottom: 5px solid #189EFC; - transition: 0.15s ease-out; - position: relative; -} - -/* left nav icon and text */ -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a > i, -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a > span { - display: inline-block; - text-align: center; -} - -/* left nav icon */ -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a > i { - margin-right: 4px; - font-size: 21px; -} - -/* left nav text */ -#header .header_nav_wrap .header_left_box ul.header_nav_list li.header_nav_item a > span { - font-size: 13px; - font-weight: 400; -} - -/*-------------------------------------- - Header Center ---------------------------------------*/ - -/* header nav center */ -#header .header_nav_wrap .header_center_box { - display: flex; - flex: 1.2; - height: 100%; - box-sizing: border-box; - padding: 8px 0; - align-items: center; - justify-content: center; -} - -/* mastodon logo */ -#header .logo_box { - height: 96%; - padding: 4px; - box-sizing: border-box; -} - -/* mastodon logo */ -#header .logo_box img { - width: auto; - display: block; -} - -/*-------------------------------------- - Header Right ---------------------------------------*/ - -/* header nav right*/ -#header .header_nav_wrap .header_right_box { - flex: 2; - box-sizing: border-box; - padding: 8px 0; - height: 100%; -} - -/* header nav right list */ -#header .header_nav_wrap .header_right_box ul.header_nav_list { - display: flex; - justify-content: flex-end; - align-items: center; - width: 100%; - height: 100%; -} - -#header .header_nav_wrap .header_right_box ul.header_nav_list li.header_nav_item { - display: flex; - height: 100%; - justify-content: center; - align-items: center; - padding-right: 16px; -} - -/* Search box */ -#header .header_nav_wrap .header_right_box .search_form { - width: 221px; - height: 95%; - outline: 0; - position: relative; -} - -#header .header_nav_wrap .header_right_box .search_form .search_form_input { - box-sizing: border-box; - padding: 5px 12px; - font-size: 12px; - width: 100%; - border-radius: 16px; - border: 1px solid #E8EEF1; - background-color: #F5F8FA; - height: 100%; - transition: 0.15s ease-out;; -} - -#header .header_nav_wrap .header_right_box .search_form .search_form_input:focus { - background-color: transparent; - transition: 0.15s ease-out;; -} - -#header .header_nav_wrap .header_right_box .search_form .search_form_submit { - display: block; - position: absolute; - height: 14px; - font-size: 14px; - top: 5px; - right: 12px; - margin: 2px -4px; -} - -#header .header_nav_wrap .header_right_box .search_form .search_form_submit button, -#header .header_nav_wrap .header_right_box .search_form .search_form_submit i { - display: block; - color: #66757F; -} - -/* Account display */ -#header .header_nav_wrap .header_right_box .my_account_wrap { - position: relative; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .my_account { - height: 35px; - width: 35px; - margin: auto; - display: flex; - justify-content: center; - align-items: center; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .my_account img { - width: 32px; - height: 32px; - overflow: hidden; - border-radius: 50%; - transition: 0.15s ease-out; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav { - display: block; - position: absolute; - cursor: pointer; - top: 42px; - right: 14px; - width: 180px; - padding: 8px 21px; - font-size: 12px; - border-radius: 3px; - box-sizing: border-box; - background-color: #fff; - box-shadow: 0.5px 0.5px 3px rgba(0,0,0,0.26); -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav::before { - display: block; - content: ""; - z-index: -1; - width: 20px; - height: 20px; - position: absolute; - transform: rotate(45deg); - top: -5px; - right: 8px; - background-color: #fff; - border: 0.5px solid rgba(0,0,0,.26); -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul { - margin: 0 -21px; - margin-bottom: 8px; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul::after { - content: ""; - display: block; - margin-top: 8px; - border-bottom: 1px solid #E6ECF0; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul:last-child::after { - border-bottom: 0px solid #E6ECF0; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul li { - box-sizing: border-box; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul li a .display_name { - display: block; - color: #000; - font-size: 14px; - font-weight: 600; - margin-bottom: 4px; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav a { - display: block; - padding: 8px 21px; -} - -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav a:hover, -#header .header_nav_wrap .header_right_box .my_account_wrap .header_my_account_nav ul li a:hover .display_name { - background-color: #189EFC; - text-decoration: none; - color: #fff; -} - -/* toot button */ -#header .header_nav_wrap .header_right_box .toot_button { - width: 90px; - height: 100%; - border-radius: 4px; - color: #fff; - background-color: #2588D0; - transition: 0.15s ease-out;; -} - -#header .header_nav_wrap .header_right_box .toot_button:hover { - background-color: #2571D0; - transition: 0.15s ease-out;; -} - -#header .header_nav_wrap .header_right_box .toot_button:active { - background-color: #255ED0; - transition: 0.15s ease-out;; -} - -#header .header_nav_wrap .header_right_box .toot_button .toot_button_label { - display: flex; - justify-content: center; - align-items: center; -} - -#header .header_nav_wrap .header_right_box .toot_button i { - display: inline-block; - font-size: 21px; - margin-right: 2px; -} - -#header .header_nav_wrap .header_right_box .toot_button span { - font-size: 13px; - font-weight: 500; -} - -/*-------------------------------------- - Main ---------------------------------------*/ - -#main { - padding-top: 47px; -} - -/*-------------------------------------- - Profile ---------------------------------------*/ - -#main > .header_image_box { - width: 100%; - height: 460px; - overflow: hidden; -} - -#main > .header_image_box img { - min-width: 100%; - object-fit: cover; -} - -#main .profile_nav_wrap { - height: 60px; - width: 100%; - background-color: #fff; - box-shadow: 0 1px 3px 0 rgba(0,0,0,0.25); -} - -#main .profile_nav_wrap .profile_nav { - display: flex; - flex-wrap: nowrap; - width: 1200px; - height: 100%; - margin: auto; - padding: 0 5px; - box-sizing: border-box; -} - -/*-------------------------------------- - Profile nav Left ---------------------------------------*/ - -#main .profile_nav_wrap .profile_nav .profile_nav_left { - width: 300px; - height: 100%; -} - -/*-------------------------------------- - Profile nav Right ---------------------------------------*/ - -#main .profile_nav_wrap .profile_nav .profile_nav_right { - width: 900px; - height: 100%; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list { - display: flex; - flex-wrap: nowrap; - align-items: center; - height: 100%; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item { - height: 100%; - color: #66757F; - border-color: transparent; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item a { - display: flex; - flex-direction: column; - flex-wrap: nowrap; - align-items: center; - justify-content: center; - height: 100%; - padding: 0 15px; - box-sizing: border-box; - border-top: 0px solid transparent; - border-bottom: 0px solid #189EFC; - transition: 0.15s; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item:hover { - color: #189EFC; - box-sizing: border-box; - text-decoration: none; - border-top: 4px solid transparent; - border-bottom: 4px solid #189EFC; - transition: 0.15s; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item.view { - color: #189EFC; - box-sizing: border-box; - border-top: 4px solid transparent; - border-bottom: 4px solid #189EFC; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item a:hover { - text-decoration: none; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item a h2 { - display: inline-block; - font-size: 11px; - font-weight: normal; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_nav_item a span { - display: inline-block; - font-size: 18px; - font-weight: 600; - margin-top: 3px; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_button_box { - display: flex; - align-items: center; - justify-content: flex-end; - flex: 1; - height: 100%; -} - -#main .profile_nav_wrap .profile_nav .profile_nav_right .profile_nav_list .profile_button_box button { - float: right; - padding: 9px 16px; - border-radius: 4px; - font-size: 14px; - font-weight: 700; -} - -/*-------------------------------------- - Search ---------------------------------------*/ - -#js-search_title_box { - width: 100%; - height: 64px; - padding: 16px 0; - overflow: hidden; - box-sizing: border-box; - background-color: #189EFC; -} - -#js-search_title_box h1 { - display: block; - width: 1200px; - margin: 0 auto; - padding: 0 16px; - font-size: 27px; - font-weight: 400; - line-height: 32px; - color: #fff; - box-sizing: border-box; -} - -#main .search_nav_wrap { - height: 50px; - width: 100%; - background-color: #fff; - box-shadow: 0 1px 3px 0 rgba(0,0,0,0.25); - margin-bottom: 4px; -} - -#main .search_nav_wrap .search_nav { - display: flex; - flex-wrap: nowrap; - width: 1200px; - height: 100%; - margin: auto; - padding: 0 5px; - box-sizing: border-box; -} - -#main .search_nav_wrap .search_nav .search_nav_left { - width: 900px; - height: 100%; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list { - display: flex; - flex-wrap: nowrap; - align-items: center; - height: 100%; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item { - height: 100%; - color: #66757F; - /*! font-size: 13px; */ -} - -#main .search_nav_wrap #js-search_nav_peoples.view a , -#main .search_nav_wrap #js-search_nav_toots.view a { - border-top: 4px solid transparent; - border-bottom: 4px solid #189EFC; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a { - display: flex; - flex-direction: column; - flex-wrap: nowrap; - align-items: center; - justify-content: center; - height: 100%; - padding: 0 15px; - box-sizing: border-box; - border-top: 0px solid transparent; - border-bottom: 0px solid #189EFC; - transition: 0.15s; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a:hover { - color: #189EFC; - text-decoration: none; - border-top: 4px solid transparent; - border-bottom: 4px solid #189EFC; - transition: 0.15s; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a.view { - color: #189EFC; - border-top: 4px solid transparent; - border-bottom: 4px solid #189EFC; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a h2 { - display: inline-block; - font-size: 14px; - font-weight: normal; - color: #189EFC; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_nav_item a span { - display: inline-block; - font-size: 18px; - font-weight: 600; - margin-top: 3px; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_button_box { - display: flex; - align-items: center; - justify-content: flex-end; - flex: 1; - height: 100%; -} - -#main .search_nav_wrap .search_nav .search_nav_left .search_nav_list .search_button_box button { - float: right; - padding: 9px 16px; - border-radius: 4px; - font-size: 14px; - font-weight: 700; -} - -/*-------------------------------------- - Article ---------------------------------------*/ - -#main .article_wrap { - display: flex; - flex-wrap: nowrap; - width: 1200px; - margin: auto; -} - -/*-------------------------------------- - Article section column ---------------------------------------*/ - -#main .article_wrap .left_column { - position: relative; - width: 300px; - padding: 10px 5px; - box-sizing: border-box; -} - -#main .article_wrap .left_column > .profile_icon_box { - position: absolute; - top: -185px; - width: 200px; - height: 200px; - margin-left: 10px; - padding: 5px; - background-color: #fff; - border-radius: 14px; - border: 1px solid #FBFBFC; - box-shadow: 0 0.1px 0.3px rgba(0,0,0,0.26); - cursor: pointer; -} - -#main .article_wrap .left_column .profile_icon_box img { - width: 100%; - height: 100%; - border-radius: 8px; -} - -#main .article_wrap .left_column .profile_section_wrap { - padding: 36px 16px 0 15px; - word-break: break-all; -} - -#main .article_wrap .left_column .profile_section_wrap > .profile_displayname { - font-size: 22px; - font-weight: 700; - line-height: 1; - color: rgb(20, 23, 26); - margin-bottom: 8px; -} - -#main .article_wrap .left_column .profile_section_wrap > .profile_username { - color: rgb(101, 119, 134); - font-size: 14px; - font-weight: 300; - margin-bottom: 8px; -} - -#main .article_wrap .left_column .profile_section_wrap > .profile_username .profile_followed_by { - font-size: 10px; - display: inline-block; - margin-left: 8px; -} - -#main .article_wrap .left_column .profile_section_wrap > .profile_bio { - font-size: 14px; - font-weight: 400; - line-height: 20px; - margin-bottom: 10px; - word-wrap: break-word; -} - -#main .article_wrap .left_column .profile_section_wrap > .profile_bio a { - color: #2588D0; -} - -#js_profile_recent_images a { - color: #2588D0; - font-size: 13px; - font-weight: 300; -} - -#js_profile_recent_images a i { - color: #657786; - margin-right: 8px; - font-size: 16px; -} - -#js_profile_recent_images_box { - width: 100%; - font-size: 14px; - display: flex; - margin-top: 8px; - flex-wrap: wrap; -} - -#js_profile_recent_images_box .profile_recent_images_item { - width: 80px; - height: 80px; - margin: 0 5px 5px 0; - border-radius: 5px; - overflow: hidden; - flex-shrink: 0; - cursor: pointer; -} - -#js_profile_recent_images_box .profile_recent_images_item img { - width: 100%; - height: 100%; - max-width: none; - max-height: none; - object-fit: cover; -} - -/*-------------------------------------- - Article post column ---------------------------------------*/ - -#main .article_wrap .center_column { - width: auto; - flex: 1; - /* If disappearing .right_column(300px), - Then this box will fill the rest spaces */ - padding: 10px 5px; - box-sizing: border-box; -} - -/*-------------------------------------- - Article side column ---------------------------------------*/ - -#main .article_wrap .right_column { - width: 300px; - padding: 10px 5px; - box-sizing: border-box; -} - -/*------------------------------------- - Overlay content --------------------------------------*/ - -#js-overlay_content_wrap { - display: none; - position: fixed; - z-index: 1000; - top: 0; - left: 0; - width: 100%; - height: 100%; - overflow: scroll; -} - -#js-overlay_content_wrap.view { - display: block; - background-color: rgba(0, 0, 0, 0); - transition: 0.5s; -} - -@keyframes fadein_05 { - 0% { background-color: rgba(0, 0, 0, 0); } - 100% {background-color: rgba(0, 0, 0, 0.5);} -} - -@keyframes fadein_08 { - 0% { background-color: rgba(0, 0, 0, 0); } - 100% {background-color: rgba(0, 0, 0, 0.8);} -} - -#js-overlay_content_wrap.view.black_05 { - animation-name: fadein_05; - animation-duration: 0.35s; - animation-fill-mode: forwards; -} - -#js-overlay_content_wrap.view.black_08 { - background-color: rgba(0, 0, 0, 0.8); -} - -#js-overlay_content_wrap #js-overlay_content { - width: 628px; - height: auto; - margin: 56px auto; - position: relative; -} - -#js-overlay_content_wrap #js-overlay_content .close_button { - color: #fff; - position: absolute; - right: -32px; - top: 0; - font-size: 28px; -} - -#js-overlay_content_wrap .temporary_object .thumb_box { - display: flex; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; -} - -/*----------------------------------- - Message ------------------------------------*/ - -#overlay_message { - position: fixed; - top: -47px; - left: 0; - right: 0; - bottom: 0; - margin: 0 auto; - width: 658px; - height: 58px; - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; - background-color: #fff; - box-shadow: 1px 1px 3px rgba(0,0,0,0.35); - z-index: 998; -} - -@keyframes overlay_message_active { - 0% { top: -47px } - 10% { top: 47px; } - 85% { top: 47px; } - 100% { top: -47px } -} - -#overlay_message.view { - animation-name: overlay_message_active; - animation-duration: 3s; -} - -#overlay_message section { - color: #999; - font-size: 14px; - padding: 16px; - margin: auto; - display: block; - box-sizing: border-box; - height: 100%; - width: 100%; - display: flex; - justify-content: center; - align-items: center; -} - -/*----------------------------------- - Overflow status ------------------------------------*/ - -.toot_detail_wrap { - border-radius: 5px; -} - -.toot_detail_wrap .toot_detail:first-child, -.toot_detail_wrap .toot_entry:first-child { - border-top-left-radius: 5px; - border-top-right-radius: 5px; -} - -.toot_detail_wrap .toot_detail:last-child, -.toot_detail_wrap .toot_entry:last-child { - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; -} - -.toot_detail { - width: 628px; - box-sizing: border-box; - background-color: #fff; -} - -.toot_entry.ancestors_status .toot_entry_body, -.toot_entry.descendants_status .toot_entry_body { - padding: 18px 40px; - border-bottom: none; - position: relative; - /*! padding-bottom: 8px; */ -} - -.toot_entry.ancestors_status.default_padding .toot_entry_body, -.toot_entry.descendants_status.default_padding .toot_entry_body { - padding: 12px; -} - -.toot_entry.ancestors_status .toot_entry_body::after, -.toot_entry.descendants_status .toot_entry_body::after { - content: ""; - display: block; - border: 2px solid #76BFEC; - position: absolute; - border-radius: 2px; - position: absolute; - left: 62px; - height: calc(100% - 57px); - top: 68px; -} - -.toot_entry.ancestors_status.default_padding .toot_entry_body::after, -.toot_entry.descendants_status.default_padding .toot_entry_body::after { - left: 35px; - height: calc(100% - 60px); - top: 64px; -} - -.toot_entry.descendants_status:last-child .toot_entry_body::after { - border: 0px solid #76BFEC; -} - -.toot_detail .toot_header { - display: flex; -} - -.toot_detail .toot_header .icon_box { - flex-shrink: 0; - width: 48px; - height: 48px; - border-radius: 3px; - overflow: hidden; - margin-right: 8px; -} - -.toot_detail .toot_header a { - flex-grow: 1; - display: flex; - flex-direction: column; - justify-content: center; -} - -.toot_detail .toot_header a .displayname { - color: #000; - font-size: 17px; - font-weight: 600; - line-height: 1.35; -} - -.toot_detail .toot_header a .username { - color: #66757F; - font-size: 14px; -} - -.toot_detail .toot_header a:hover { - text-decoration: none; -} - -.toot_detail .toot_header a:hover .displayname { - color: #189EFC; -} - -/* expand button */ -.toot_detail .toot_header .expand_button_wrap { - float: right; - position: relative; - width: 48px; - height: 48px; -} - -.toot_detail .toot_header .expand_button_wrap .expand_button { - position: absolute; - right: 0; - top: 0; - color: #AAB8C2; -} - -.toot_detail .toot_header .expand_button_wrap .expand_button:hover { - color: #189EFC; -} - -.toot_detail .toot_header .expand_button_wrap .expand_menu { - display: block; - position: absolute; - cursor: pointer; - top: 36px; - right: -152px; - width: 180px; - padding: 8px 21px; - font-size: 12px; - border-radius: 3px; - box-sizing: border-box; - background-color: #fff; - box-shadow: 0.5px 0.5px 3px rgba(0,0,0,0.26); - z-index: 1; -} - -.toot_detail .toot_header .expand_button_wrap .expand_menu::before { - display: block; - content: ""; - z-index: -1; - width: 20px; - height: 20px; - position: absolute; - transform: rotate(45deg); - top: -5px; - left: 8px; - background-color: #fff; -} - -.toot_detail .toot_header .expand_button_wrap .expand_menu ul { - margin: 0 -21px; - margin-bottom: 8px; -} - -.toot_detail .toot_header .expand_button_wrap .expand_menu ul::after { - content: ""; - display: block; - margin-top: 8px; - border-bottom: 1px solid #E6ECF0; -} - -.toot_detail .toot_header .expand_button_wrap .expand_menu ul:last-child::after { - border-bottom: 0px solid #E6ECF0; -} - -.toot_detail .toot_header .expand_button_wrap .expand_menu ul li { - box-sizing: border-box; -} - -.toot_detail .toot_header .expand_button_wrap .expand_menu a { - display: block; - padding: 8px 21px; -} - -.toot_detail .toot_header .expand_button_wrap .expand_menu a:hover { - background-color: #189EFC; - text-decoration: none; - color: #fff; -} - -/* main */ - -.toot_detail .toot_detail_body { - padding: 30px 40px; - /*! border-radius: 4px; */ -} - -.toot_detail .toot_content .toot_article { - font-size: 14px; - line-height: 20px; - margin: 16px auto; -} - -.toot_detail.main_status .toot_content .toot_article { - font-size: 24px; - line-height: 1.35; -} - -.toot_detail.main_status .toot_content .toot_article .cw_button { - background-color: #6D768C; - border-radius: 3px; - padding: 4px; - margin: auto 4px; - font-size: 12px; - box-sizing: border-box; - color: #fff; -} - -.toot_detail.main_status .toot_content .toot_article.content_warning .status_content { - display: none; -} - -.toot_detail.main_status .toot_content a { - color: #189EFC; -} - -.toot_detail.main_status .toot_content time { - color: #66757F; - font-size: 13px; - font-weight: 300; -} - -/* reactions */ -.toot_detail .toot_footer { - display: flex; - flex-wrap: nowrap; - align-items: center; - width: 230px; - height: 21px; - margin-top: 12px; -} - -.toot_detail .toot_footer .toot_reaction { - height: 21px; - flex-grow: 1; -} - -.toot_detail .toot_footer .toot_reaction button { - margin: auto; - color: #AAB8C2; - font-size: 18px; - height: 21px; -} - -.toot_detail .toot_footer .toot_reaction button.active { - animation-name: status_action_active; - animation-duration: 0.5s; -} - -.toot_detail .toot_footer .toot_reaction button .reaction_count { - color: #AAB8C2; - font-size: 12px; - font-weight: 600; -} - -@keyframes status_action_active { - 0% { transform: scale(1); } - 50% { transform: scale(2); } - 100% { transform: scale(1); } -} - -.toot_detail .toot_footer .toot_reaction .reply_button:hover { - color: #1DA1F2; -} - -.toot_detail .toot_footer .toot_reaction .boost_button[reblogged="false"]:hover, -.toot_detail .toot_footer .toot_reaction .boost_button[reblogged="true"], -.toot_detail .toot_footer .toot_reaction .boost_button[reblogged="false"]:hover .reaction_count, -.toot_detail .toot_footer .toot_reaction .boost_button[reblogged="true"] .reaction_count { - color: #17BF63; -} - -.toot_detail .toot_footer .toot_reaction .fav_button[favourited="false"]:hover, -.toot_detail .toot_footer .toot_reaction .fav_button[favourited="true"], -.toot_detail .toot_footer .toot_reaction .fav_button[favourited="false"]:hover .reaction_count, -.toot_detail .toot_footer .toot_reaction .fav_button[favourited="true"] .reaction_count { - color: #FFAD1A; -} - -.toot_detail .status_form { - border-top: 1px solid #E6ECF0; - border-bottom: 1px solid #E6ECF0; -} - -/*---------------------------------- - media detail -----------------------------------*/ - -.media_detail { - max-height: 100%; -} - -.media_detail .media_box { - background-color: #000; - border-top-right-radius: 5px; - border-top-left-radius: 5px; - overflow: hidden; - text-align: center; -} - -.media_detail .toot_entry { - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; -} - -.media_detail .toot_entry .toot_entry_body { - border-bottom: none; -} - -.media_detail .toot_entry .media_views { - display: none; -} diff --git a/public_html/assets/images/elf.jpg b/public_html/assets/images/elf.jpg deleted file mode 100644 index e816962c7b4b8bf2cea2dea2e87e7964a7238eb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98947 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
    _iB&m1D=xxf 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 diff --git a/public_html/assets/images/mastodon.png b/public_html/assets/images/mastodon.png deleted file mode 100644 index f0c1c46c3908d368cee69aeeb5b2f1c88d8086ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7752 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 F{{hqrmSz9| diff --git a/public_html/assets/images/self_auth_min.png b/public_html/assets/images/self_auth_min.png deleted file mode 100644 index 6d340bfc828a71e938d68749afe94139adcd66f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037 zcmV+o1oHcdP)V$x=*h+U&Bq2q9jeQ)C=x;48kBR&*x*tFZ4yCH! zKA;KYVHQsEzyQ5{g)KuW-jR>$AtFTH`e8@L98eH0Qcz098!0?{>35kOg{C|zzLSpE zr0YKMjKL2j5pQBZ<8YJUOHxpt76>z86{DoPnnEhavcv;oFhG!2VMf5{Nr5 zs-=VI@?496;U@#iGqlKOlj-6ExtK%Nw3J|WiTly*Z8v~_#lM}}=Na2#K z+%W7L!JOd2WN5;ab%(eQz22LU1YKR9(vQpXc`NnWa}`Bmq`68W^4#|Vo5UitIScTc zI*GtcUmSOpRF7NU4%({vW__Xzp-pbJ2Zp%>_+pQaIN`>elPDIobJj&3>h!dsCa1x` z$6&fW?FKM|lrxv)X8T~~IXPs_$wD?B`iOj?02{>(#HLZDRE}@z6uyK$fx~py*BO^H ztum)(ilk!Ni4#~uV%w96zL|Z6JYf||#LW@5GI3`ZXp8&Q;&Ud}sDOJZZTpMvt2pLr zAWtRk>v%U^Sd3>hVDsCarvq-tZBU1N1p#H4`l|S0f^#MfFl;@*lZyVTLA&msGZd5A0HGMs5ajEGwdn;2oX268tYKB-!xEFwDu6N{w0}4csH>wO=nf?2)$tb zKl&V#EVDEC!OF5hONdLrVY**TtB2e_9pTZgd&18&o|Nei`s@B)I{)KZ00000NkvXX Hu0mjf+^6W2 diff --git a/public_html/assets/js/halcyon/halcyonFunctions.js b/public_html/assets/js/halcyon/halcyonFunctions.js deleted file mode 100644 index 773b054..0000000 --- a/public_html/assets/js/halcyon/halcyonFunctions.js +++ /dev/null @@ -1,258 +0,0 @@ -/*----------------------------------- - get Link from XHR Header ------------------------------------*/ - -function getLinkFromXHRHeader(xhrheaderstring) { - const re = xhrheaderstring.match(/link: <.+api\/v1\/(.+?)>; rel="(.+?)", <.+api\/v1\/(.+?)>; rel="(.+?)"/); - let di = new Object(); - if(re){ - di[re[2]] = re[1]; - di[re[4]] = re[3]; - } - return di; -} - -/*---------------------------------- - Make relative URL -----------------------------------*/ - -function getRelativeURL(url, id, options) { - - const array = url.split('/'); - - if ( array.length >= 4 ) { - if ( !options ) { - var options = "" - }; - - if (id) { - // IF WITHIN ID - if (array[array.length-1].substr(0,1) === '@') { - const link = '/'+array[array.length-1]+'@'+array[2]+options+'?mid='+id+'&'; - return link; - } else { - const link = '/@'+array[array.length-1]+'@'+array[2]+options+'?mid='+id+'&'; - return link; - } - - } else { - // IF WITHOUT ID (URL ONLY) - if (array[array.length-1].substr(0,1) === '@') { - const link = '/'+array[array.length-1]+'@'+array[2]+options; - return link; - } else { - const link = '/@'+array[array.length-1]+'@'+array[2]+options; - return link; - } - } - - } - -} - -/*----------------------------------- - Replace Mastodon link for Halcyon ------------------------------------*/ - -function replaceInternalLink(){ - // REPLIES - $(".h-card > a").each(function(i) { - $(this).attr('href',getRelativeURL($(this).attr('href'))); - }); - // HASHTAGS - $(".toot_article a").each(function(i) { - const tags = $(this).attr('href').match(/https:\/\/.+..+\/tags\/(.+)\/?/); - if (tags) { - $(this).attr('href','/search?q='+tags[1]); - } - }); -} - -/*----------------------------------- - Datetime exchange ------------------------------------*/ - -function getConversionedDate(key, value) { - if (value === null || - value.constructor !== String || - value.search(/^\d{4}-\d{2}-\d{2}/g) === -1) - return value; - return new Date(value); -} - -/*---------------------------------- - Relative Datetime -----------------------------------*/ - -function getRelativeDatetime(current_time, posted_time) { - const calendar = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - - var posted_time_original = posted_time, - posted_time = getConversionedDate(null, posted_time_original).getTime(), - elapsedTime = Math.ceil((current_time-posted_time)/1000); - - if (elapsedTime < 60) { - const datetime = "・" + elapsedTime + "s"; - return datetime; - - } else if (elapsedTime < 120) { - const datetime = "・1m"; - return datetime; - - } else if (elapsedTime < (60*60)) { - const datetime = "・" + (Math.floor(elapsedTime / 60) < 10 ? " " : "") + Math.floor(elapsedTime / 60) + "m"; - return datetime; - - } else if (elapsedTime < (120*60)) { - const datetime = "・1h"; - return datetime; - - } else if (elapsedTime < (24*60*60)) { - const datetime = "・" + (Math.floor(elapsedTime / 3600) < 10 ? " " : "") + Math.floor(elapsedTime / 3600) + "h"; - return datetime; - - } else { - const datetime = "・" + calendar[posted_time_original.getMonth()] + " " + posted_time_original.getDate(); - return datetime; - } -} - -/*----------------------------------- - ResetApp ------------------------------------*/ - -function resetApp() { - - /* IMPORTANT */ - current_id = Number(localStorage.getItem("current_id")); - current_instance = localStorage.getItem("current_instance"); - authtoken = localStorage.getItem("current_authtoken"); - - // Start api - api = new MastodonAPI({ - instance: 'https://'+current_instance, - api_user_token: authtoken - }); - - // Set local storage items - api.get("accounts/verify_credentials", function(AccountObj) { - - // SAVE PROFILE FOR LOCALSTORAGE (ENABLE BETWEEN ONE SESSION) - localStorage.setItem("current_display_name", AccountObj["display_name"]); - localStorage.setItem("current_acct", AccountObj["acct"]); - localStorage.setItem("current_url", getRelativeURL(AccountObj["url"],AccountObj["id"])); - localStorage.setItem("current_header", AccountObj["header"]); - localStorage.setItem("current_avatar", AccountObj["avatar"]); - localStorage.setItem("current_statuses_count", AccountObj["statuses_count"]); - localStorage.setItem("current_following_count", AccountObj["following_count"]); - localStorage.setItem("current_followers_count", AccountObj["followers_count"]); - localStorage.setItem("current_statuses_count_link", getRelativeURL(AccountObj["url"],AccountObj["id"])); - localStorage.setItem("current_following_count_link", getRelativeURL(AccountObj["url"],AccountObj["id"],'/following')); - localStorage.setItem("current_followers_count_link", getRelativeURL(AccountObj["url"],AccountObj["id"],'/followers')); - localStorage.setItem("current_favourites_link", getRelativeURL(AccountObj["url"],AccountObj["id"],'/favourites')); - - // PROFILE - current_display_name = localStorage.getItem("current_display_name"); - current_acct = localStorage.getItem("current_acct"); - current_url = localStorage.getItem("current_url"); - current_header = localStorage.getItem("current_header"); - current_avatar = localStorage.getItem("current_avatar"); - current_statuses_count = localStorage.getItem("current_statuses_count"); - current_following_count = localStorage.getItem("current_following_count"); - current_followers_count = localStorage.getItem("current_followers_count"); - current_statuses_count_link = localStorage.getItem("current_statuses_count_link"); - current_following_count_link = localStorage.getItem("current_following_count_link"); - current_followers_count_link = localStorage.getItem("current_followers_count_link"); - current_favourites_link = localStorage.getItem("current_favourites_link"); - - // REPLACE USER'S INFORMATIONS - $(".js_current_profile_displayname").text(current_display_name); - $(".js_current_profile_username").text(current_acct); - $(".js_current_profile_link").attr('href', current_url); - $(".js_current_header_image").attr('src', current_header); - $(".js_current_profile_image").attr('src', current_avatar); - $(".js_current_toots_count").text(current_statuses_count); - $(".js_current_following_count").text(current_following_count); - $(".js_current_followers_count").text(current_followers_count); - $(".current_toots_count_link").attr('href', current_statuses_count_link); - $(".current_following_count_link").attr('href', current_following_count_link); - $(".current_followers_count_link").attr('href', current_followers_count_link); - - replace_emoji(); - - }); - - $.cookie("session", "true", { path: '/' }); - -} - -/*----------------------------------- - RefreshApp ------------------------------------*/ - -function refreshApp() { - - // IMPORTANT - current_id = Number(localStorage.getItem("current_id")); - current_instance = localStorage.getItem("current_instance"); - authtoken = localStorage.getItem("current_authtoken"); - - // Start api - api = new MastodonAPI({ - instance: "https://"+current_instance, - api_user_token: authtoken - }); - - // PROFILE - current_display_name = localStorage.getItem("current_display_name"); - current_acct = localStorage.getItem("current_acct"); - current_url = localStorage.getItem("current_url"); - current_header = localStorage.getItem("current_header"); - current_avatar = localStorage.getItem("current_avatar"); - current_statuses_count = localStorage.getItem("current_statuses_count"); - current_following_count = localStorage.getItem("current_following_count"); - current_followers_count = localStorage.getItem("current_followers_count"); - current_statuses_count_link = localStorage.getItem("current_statuses_count_link"); - current_following_count_link = localStorage.getItem("current_following_count_link"); - current_followers_count_link = localStorage.getItem("current_followers_count_link"); - current_favourites_link = localStorage.getItem("current_favourites_link"); - -} - -/*----------------------------------- - Profile ------------------------------------*/ - -function setCurrentProfile() { - - // REPLACE USER'S INFORMATIONS - $(".js_current_profile_displayname").text(current_display_name); - $(".js_current_profile_username").text(current_acct); - $(".js_current_profile_link").attr("href", current_url); - $(".js_current_header_image").attr("src", current_header); - $(".js_current_profile_image").attr("src", current_avatar); - $(".js_current_toots_count").text(current_statuses_count); - $(".js_current_following_count").text(current_following_count); - $(".js_current_followers_count").text(current_followers_count); - $(".current_toots_count_link").attr("href", current_statuses_count_link); - $(".current_following_count_link").attr("href", current_following_count_link); - $(".current_followers_count_link").attr("href", current_followers_count_link); - - replace_emoji(); - -} - -/*---------------------------------- - Set User recent images -----------------------------------*/ - -function putMessage(Message) { - - $('#overlay_message').addClass('view'); - $('#overlay_message section span').text(Message); - - setTimeout(function(){ - $("#overlay_message").removeClass("view"); - },3000); - -}; \ No newline at end of file diff --git a/public_html/assets/js/halcyon/halcyonUI.js b/public_html/assets/js/halcyon/halcyonUI.js deleted file mode 100644 index bfd3d30..0000000 --- a/public_html/assets/js/halcyon/halcyonUI.js +++ /dev/null @@ -1,3353 +0,0 @@ -/*----------------------------------- - Reset ------------------------------------*/ - -$(function() { - - $('input[type="file"]').val(''); - -}) - -/*----------------------------------- - Buttons ------------------------------------*/ - -$(function() { - - // PREFIX A - $(document).on('click','a', function(e) { - e.stopPropagation(); - }); - - // PREFIX INPUT - $(document).on('keypress',"input.disallow_enter[type='text']", function(e) { - if((e.which == 13) || (e.keyCode == 13)){ return false; } - }); - - // FOLLOW - $(document).on('click','.follow_button', function(e) { - - e.stopPropagation(); - - if ($(this).attr('mid') !== null) { - api.post('accounts/'+$(this).attr('mid')+'/follow', function (data) { - }); - } else if ($(this).attr('data')!== null) { - api.post("follows", {uri:$(this).attr('data')}, function (data) { - }); - } - - $(this).toggleClass('follow_button'); - $(this).toggleClass('following_button'); - $(this).html('Following'); - - return false; - }); - - // FOLLOWING - $(document).on('click','.following_button', function(e) { - - e.stopPropagation(); - - if ($(this).attr('mid') !== null) { - api.post('accounts/'+$(this).attr('mid')+'/unfollow', function (data) { - }); - } - $(this).toggleClass('following_button'); - $(this).toggleClass('follow_button'); - $(this).html('Follow'); - - return false; - }); - - // MUTE - $(document).on('click','.mute_button', function(e) { - - if ($(this).attr('mid') !== null) { - api.post('accounts/'+$(this).attr('mid')+'/mute', function (data) { - }); - } - - putMessage("You'll no longer receive notifications from this user"); - return false; - }); - - // UNMUTE - $(document).on('click','.muting_button', function(e) { - - if($(this).attr('mid')!=null) { - api.post('accounts/'+$(this).attr('mid')+'/unmute', function (data) { - }); - } - $(this).toggleClass('muting_button'); - $(this).toggleClass('follow_button'); - $(this).html('Follow'); - - putMessage("Unmuted this user"); - return false; - }); - - // BLOCK - $(document).on('click','.block_button', function(e) { - - if ($(this).attr('mid') !== null) { - api.post('accounts/'+$(this).attr('mid')+'/block', function (data) { - }); - } - - putMessage("This user has been blocked"); - return false; - - }); - - // UNBLOCK - $(document).on('click','.blocking_button', function(e) { - - e.stopPropagation(); - - if ($(this).attr('mid') !== null) { - api.post('accounts/'+$(this).attr('mid')+'/unblock', function (data) { - }); - } - $(this).toggleClass('blocking_button'); - $(this).toggleClass('follow_button'); - $(this).html('Follow'); - - putMessage("Unblocked this user"); - return false; - }); - - // BOOST - $(document).on('click','.boost_button', function(e) { - - e.stopPropagation(); - - if($(this).attr('reblogged') !== 'true'){ - api.post("statuses/"+$(this).attr('tid')+"/reblog", function (data) { - }); - $(this).attr('reblogged', "true"); - $(this).toggleClass('active'); - } else { - api.post("statuses/"+$(this).attr('tid')+"/unreblog", function (data) { - }); - $(this).attr('reblogged', "hold"); - $(this).toggleClass('active'); - $(this).mouseout(function(e) { - $(this).attr('reblogged', "null"); - }); - } - - return false; - }); - - // FAVOURITE - $(document).on('click','.fav_button', function(e) { - - e.stopPropagation(); - - if($(this).attr('favourited') !== 'true'){ - api.post("statuses/"+$(this).attr('tid')+"/favourite", function (data) { - }); - $(this).attr('favourited', "true"); - $(this).toggleClass('active'); - } else { - api.post("statuses/"+$(this).attr('tid')+"/unfavourite", function (data) { - }); - $(this).attr('favourited', "hold"); - $(this).toggleClass('active'); - $(this).mouseout(function(e) { - $(this).attr('favourited', "null"); - }); - } - - return false; - }); - - // DELETE - $(document).on('click','.delete_button', function(e) { - - const sid = $(this).attr('tid'); - - api.delete("statuses/"+sid, function (data) { - $('.toot_entry[sid="'+sid+'"]').remove(); - putMessage("Your Toot has been deleted"); - }); - - }); - - // CONTENTS WARNING - $(document).on('click','.cw_button', function(e) { - - e.stopPropagation(); - const article = $(this).parent(); - - if ( article.hasClass('content_warning') ) { - $(this).text('SHOW LESS'); - article.removeClass('content_warning'); - } else { - $(this).text('SHOW MORE'); - article.addClass('content_warning'); - } - - return false; - }); - - // NOT SAFE FOR WORK - $(document).on('click','.sensitive_alart', function(e) { - - e.stopPropagation(); - - $(this).toggleClass('invisible'); - - return false; - }); - - // HEADER AVATAR BUTTON - $(document).on('click','.header_account_avatar', function(e) { - e.stopPropagation(); - $(this).next('.header_my_account_nav').toggleClass('invisible'); - }); - - // EXPAND TOOT MENU - $(document).on('click','.expand_button', function(e) { - e.stopPropagation(); - $(this).next('.expand_menu').toggleClass('invisible'); - return false; - }); - - // 連投防止 - $(document).on('click','.status_form.ready .active_submit_button', function(e) { - e.stopImmediatePropagation() - return false; - }); - -}); - -/*----------------------------------- - Reset Buttons ------------------------------------*/ - -$(function() { - - $(document).on('click', function(e) { - $('.header_my_account_nav').addClass('invisible'); - $('.expand_menu').addClass('invisible'); - }); - -}) - -/*---------------------------------- - Get Media attachment UI -----------------------------------*/ - -function mediaattachments_template(status) { - - let media_views = ""; - - if ( status.media_attachments[0].url === "/files/original/missing.png" ) { - return ""; - } else if ( !status.sensitive ) { - // NORMAL CONTENT - media_views = `
    `; - } else { - // SENSITIVE CONTENT - media_views = ` -
    -
    - Sensitive content - Click to view -
    - `; - } - - if ( status.media_attachments[0].type === "video" | status.media_attachments[0].type === "gifv" ) { - // VIDEO CONTENT - media_views += (` -
    - -
    - `); - } else { - // IMAGE CONTENT LENGTH 1 OR 2 - if ( status.media_attachments.length <= 2 ) { - for ( let i in status.media_attachments ) { - media_views += (` -
    - -
    - `); - } - // IMAGE CONTENT LENGTH 3 OR MORE THAN - } else { - for ( let i in status.media_attachments ) { - if (Number(i) === 1) { - media_views += (` -
    - -
    - -
    - `); - } else { - media_views += (` -
    - -
    - `); - } - } - media_views += "
    "; - } - media_views += "
    "; - } - - return media_views; -} - -/*---------------------------------- - Get Timeline UI -----------------------------------*/ - -function timeline_template(status) { - - if (status.reblog === null) { - - // What to follow - if ( - status.account.id !== JSON.parse(localStorage.getItem("what_to_follow_0")).id & - status.account.id !== JSON.parse(localStorage.getItem("what_to_follow_1")).id & - status.account.id !== JSON.parse(localStorage.getItem("what_to_follow_2")).id & - status.account.id !== current_id - ) { - localStorage.setItem("what_to_follow_"+String(Math.floor(Math.random()*3)), JSON.stringify(status.account) ); - } - - const status_account_link = getRelativeURL(status.account.url, status.account.id), - status_datetime = getRelativeDatetime(Date.now(), getConversionedDate(null, status.created_at)), - status_attr_datetime = getConversionedDate(null, status.created_at); - - let alart_text = "", - article_option = "", - toot_reblogs_count = "", - toot_favourites_count = "", - media_views = ""; - - // CONTENT WARNING - if ( status.spoiler_text ) { - alart_text = ""+status.spoiler_text+"", - article_option = "content_warning"; - } - - // REBLOGS COUNT - if (status.reblogs_count) { - toot_reblogs_count = status.reblogs_count; - } - - // FAVOURITES COUNT - if (status.favourites_count) { - toot_favourites_count = status.favourites_count; - } - - // MEDIA ATTACHMENTS - if ( status.media_attachments.length ) { - media_views = mediaattachments_template(status); - } - - // TEMPLATE - const html=(` -
  • -
    - - -
    - -
    -
    - -
    - -
    - - -
    - -
    - ${alart_text} - - ${status.content} - - ${media_views} -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
  • - `); - - return $(html) - - } else { - - // What to follow - if ( - status.reblog.account.id !== JSON.parse(localStorage.getItem("what_to_follow_0")).id & - status.reblog.account.id !== JSON.parse(localStorage.getItem("what_to_follow_1")).id & - status.reblog.account.id !== JSON.parse(localStorage.getItem("what_to_follow_2")).id & - status.account.id !== current_id - ) { - localStorage.setItem("what_to_follow_" + String(Math.floor(Math.random()*3)), JSON.stringify(status.reblog.account)); - } - - const status_datetime = getRelativeDatetime(Date.now(), getConversionedDate(null, status.reblog.created_at)), - status_attr_datetime = getConversionedDate(null, status.reblog.created_at), - status_reblog_account_link = getRelativeURL(status.reblog.account.url, status.reblog.account.id), - status_account_link = getRelativeURL(status.account.url, status.account.id); - - let alart_text = "", - article_option = "", - toot_reblogs_count = "", - toot_favourites_count = "", - media_views = ""; - - // CONTENT WARNING - if ( status.reblog.spoiler_text ) { - alart_text = ""+status.reblog.spoiler_text+"", - article_option = "content_warning"; - } - - // REBLOGS COUNT - if (status.reblog.reblogs_count) { - toot_reblogs_count = status.reblog.reblogs_count; - } - - // FAVOURTITES COUNT - if (status.reblog.favourites_count) { - toot_favourites_count = status.reblog.favourites_count; - } - - // MEDIA ATTACHMENTS - if ( status.reblog.media_attachments.length ) { - media_views = mediaattachments_template(status.reblog); - } - - // TEMPLATE - const html = (` -
  • - -
    - - -
    - -
    -
    - -
    - -
    - - -
    - -
    - ${alart_text} - - ${status.reblog.content} - - ${media_views} -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
  • - `); - - return $(html) - - } -} - -/*---------------------------------- - Get Notifications UI -----------------------------------*/ - -function notifications_template(NotificationObj) { - - // Defined for Fav/Bos/Fol/Men - const notice_author_link = getRelativeURL(NotificationObj.account.url, NotificationObj.account.id); - - // Defined for Fav/Bos - if ( NotificationObj.type === 'favourite' | NotificationObj.type === 'reblog' ) { - - const toot_author_link = getRelativeURL(NotificationObj.status.account.url, NotificationObj.status.account.id), - toot_datetime = getRelativeDatetime(Date.now(), getConversionedDate(null, NotificationObj.status.created_at)), - toot_attr_datetime = getConversionedDate(null, NotificationObj.status.created_at); - - if( NotificationObj.type=='favourite' ){ - const html = (` -
  • - -
    -
    -
    - -
    -
    -

    ${NotificationObj.status.content}

    -
    -
    -
    -
    -
  • - `); - return $(html); - - } else if ( NotificationObj.type === 'reblog' ) { - - const sid = NotificationObj.status.id, - html = (` -
  • - -
    -
    -
    - -
    -
    -

    ${NotificationObj.status.content}

    -
    -
    -
    -
    -
  • - `); - return $(html); - } - - } else if ( NotificationObj.type === 'mention' ) { - - const toot_author_link = getRelativeURL(NotificationObj.status.account.url, NotificationObj.status.account.id), - toot_datetime = getRelativeDatetime(Date.now(), getConversionedDate(null, NotificationObj.status.created_at)), - toot_attr_datetime = getConversionedDate(null, NotificationObj.status.created_at); - - let alart_text = "", - article_option = "", - toot_reblogs_count = "", - toot_favourites_count = "", - media_views = ""; - - // CONTENT WARNING - if (NotificationObj.status.spoiler_text) { - alart_text = ''+NotificationObj.status.spoiler_text+'', - article_option = 'content_warning'; - } - - // REBLOGS COUNT - if (NotificationObj.status.reblogs_count) { - toot_reblogs_count = NotificationObj.status.reblogs_count; - } - - // FAVOURTITES COUNT - if (NotificationObj.status.favourites_count) { - toot_favourites_count = NotificationObj.status.favourites_count; - } - - // MEDIA ATTACHMENTS - if (NotificationObj.status.media_attachments.length) { - media_views = mediaattachments_template(NotificationObj.status); - } - - const html=(` -
  • -
    - -
    - -
    -
    -
    - -
    - - -
    - -
    - ${alart_text} - - ${NotificationObj.status.content} - - ${media_views} -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
  • - `); - return $(html); - - } else { - const html=(` -
  • - -
  • - `); - return $(html); - } -} - -/*---------------------------------- - Get Follows UI -----------------------------------*/ - -function follows_template(AccountObj) { - - const array = AccountObj.url.split('/'), - profile_link = '/'+array[array.length-1]+'@'+array[array.length-2]+'?mid='+AccountObj.id+'&'; - - const html = (` -
    - -
    - -
    - -
    - -
    - -
    - - - - - -
    -

    ${AccountObj.note}

    -
    - -
    -
    - `); - - return $(html) - -} - -/*---------------------------------- - Get Status UI -----------------------------------*/ - -function status_template(status, class_options) { - - if ( status.reblog === null ) { - - const status_account_link = getRelativeURL(status.account.url, status.account.id), - status_datetime = getConversionedDate(null, status.created_at), - status_attr_datetime = getConversionedDate(null, status.created_at); - - let alart_text = "", - article_option = "", - toot_reblogs_count = "", - toot_favourites_count = "", - media_views = ""; - - // CONTENT WARNING - if (status.spoiler_text) { - alart_text = ''+status.spoiler_text+'', - article_option = 'content_warning'; - } - - // REBLOGS COUNT - if (status.reblogs_count) { - toot_reblogs_count = status.reblogs_count; - } - - // FAVOURITES COUNT - if (status.favourites_count) { - toot_favourites_count = status.favourites_count; - } - - // MEDIA ATTACHMENTS - if (status.media_attachments.length) { - media_views = mediaattachments_template(status); - } - - // TEMPLATE - const html=(` -
    -
    -
    -
    - -
    - - - ${status.account.display_name} - - - @${status.account.acct} - - - -
    -
    -
    - ${alart_text} - - ${status.content} - - ${media_views} -
    - -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    - -
    - - -
    - -
    - - -
    - - - - - -
    - -
    - - - -
    - `); - - // change URL - history.pushState(null, null, getRelativeURL(status.account.url, status.account.id, '/status/'+status.id)); - - return $(html) - - } else { - - const status_datetime = getConversionedDate(null, status.reblog.created_at), - status_attr_datetime = getConversionedDate(null, status.reblog.created_at), - status_reblog_account_link = getRelativeURL(status.reblog.account.url, status.reblog.account.id), - status_account_link = getRelativeURL(status.reblog.account.url, status.reblog.account.id); - - let alart_text = "", - article_option = "", - toot_reblogs_count = "", - toot_favourites_count = "", - media_views = ""; - - // CONTENT WARNING - if (status.spoiler_text) { - alart_text = ''+status.reblog.spoiler_text+'', - article_option = 'content_warning'; - } - - // REBLOGS COUNT - if (status.reblog.reblogs_count) { - toot_reblogs_count = status.reblog.reblogs_count; - } - - // FAVOURTITES COUNT - if (status.reblog.favourites_count) { - toot_favourites_count = status.reblog.favourites_count; - } - - // MEDIA ATTACHMENTS - if(status.reblog.media_attachments.length){ - media_views = mediaattachments_template(status.reblog); - } - - // TEMPLATE - const html=(` -
    -
    - -
    -
    - -
    - - - - ${status.reblog.account.display_name} - - - @${status.reblog.account.acct} - - - - - -
    - -
    - -
    - ${alart_text} - - ${status.reblog.content} - - ${media_views} -
    - - - -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    - -
    - -
    - -
    - - -
    - -
    - - -
    - - - - - -
    - -
    - - - -
    - `); - - // change URL - history.pushState(null, null, getRelativeURL(status.reblog.account.url, status.reblog.id, '/status/'+status.reblog.id)); - return $(html) - - } -} - -/*---------------------------------- - Get Media UI -----------------------------------*/ - -function media_template(status, mediaURL) { - - if ( !status ) { - const html = (` -
    - -
    - -
    - -
    - `); - return $(html) - } else { - - const status_template = timeline_template(status).html(), - html = (` -
    - -
    - -
    - -
    - ${status_template} -
    - -
    - `); - return $(html) - } - -} - -/*---------------------------------- - Get Context UI -----------------------------------*/ - -function context_template(status, class_options) { - - if ( status.reblog === null ) { - - const status_account_link = getRelativeURL(status.account.url, status.account.id), - status_datetime = getRelativeDatetime(Date.now(), getConversionedDate(null, status.created_at)), - status_attr_datetime = getConversionedDate(null, status.created_at); - - let alart_text = "", - article_option = "", - toot_reblogs_count = "", - toot_favourites_count = "", - media_views = ""; - - // CONTENT WARNING - if ( status.spoiler_text ) { - alart_text = ''+status.spoiler_text+'', - article_option = 'content_warning'; - } - - // REBLOGS COUNT - if (status.reblogs_count) { - toot_reblogs_count = status.reblogs_count; - } - - // FAVOURITES COUNT - if (status.favourites_count) { - toot_favourites_count = status.favourites_count; - } - - // MEDIA ATTACHMENTS - if( status.media_attachments.length) { - media_views = mediaattachments_template(status); - } - - // TEMPLATE - const html=(` -
    -
    - -
    - -
    -
    - -
    - - - ${status.account.display_name} - - - @${status.account.acct} - - - - -
    - -
    - ${alart_text} - - ${status.content} - - ${media_views} -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    - `); - - return $(html) - - } else { - - const status_datetime = getRelativeDatetime(Date.now(), getConversionedDate(null, status.reblog.created_at)), - status_attr_datetime = getConversionedDate(null, status.reblog.created_at), - status_reblog_account_link = getRelativeURL(status.reblog.account.url, status.reblog.account.id), - status_account_link = getRelativeURL(status.account.url, status.account.id); - - let alart_text = "", - article_option = "", - toot_reblogs_count = "", - toot_favourites_count = "", - media_views = ""; - - // CONTENT WARNING - if ( status.spoiler_text ) { - alart_text = ''+status.reblog.spoiler_text+'', - article_option = 'content_warning'; - } - - // REBLOGS COUNT - if (status.reblog.reblogs_count) { - toot_reblogs_count = status.reblog.reblogs_count; - } - - // FAVOURTITES COUNT - if (status.reblog.favourites_count) { - toot_favourites_count = status.reblog.favourites_count; - } - - // MEDIA ATTACHMENTS - if (status.reblog.media_attachments.length) { - media_views = mediaattachments_template(status.reblog); - } - - // TEMPLATE - const html=(` -
    - -
    -
    - -
    -
    - -
    - - - ${status.reblog.account.display_name} - - - @${status.reblog.account.acct} - - - - -
    - -
    - ${alart_text} - - ${status.reblog.content} - - ${media_views} -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    - `); - - return $(html) - - } -} - -/*---------------------------------- - Set Timeline -----------------------------------*/ - -function setTimeline(level,load_options) { - - let isSyncing = true; - - if ( load_options === undefined ) { - var load_options = []; - } - - // Get timeline - api.get(level, load_options, function(statuses) { - - let reply_sources = {}; - for ( let i in statuses ) { - - timeline_template(statuses[i]).appendTo("#js-timeline"); - - if (statuses[i].in_reply_to_id && level === "timelines/home" | level === "timelines/public" ) { - - // 同じ返信先が無い場合 - if (!reply_sources[statuses[i].in_reply_to_id] & !$(".toot_entry[sid='"+statuses[i].in_reply_to_id+"']").length ) { - reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; - api.get('statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { - $("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); - replace_emoji(); - }); - } - - } - - }; - - links = getLinkFromXHRHeader(responce_headers); - replaceInternalLink(); - replace_emoji(); - - if (!statuses.length) { - $('#js-timeline_footer > i').css({"display":"none"}); - } - - isSyncing = false; - - }); - - // Infinite scroll - $(window).scroll(function () { - - // Load before 700px from last - if ( $(window).scrollTop()+window.innerHeight >= $(document).height()-700 ) { - - if (!isSyncing) { - - isSyncing = true; - load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); - - api.get(level, load_options, function(statuses) { - - if (statuses.length) { - - let reply_sources = {}; - for ( let i in statuses ) { - - timeline_template(statuses[i]).appendTo("#js-timeline"); - - if (statuses[i].in_reply_to_id && level === "timelines/home" | level === "timelines/public" ) { - if (!reply_sources[statuses[i].in_reply_to_id] & !$(".toot_entry[sid='"+statuses[i].in_reply_to_id+"']").length) { - reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; - api.get('statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { - $("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); - replace_emoji(); - }); - } - - } - - }; - - links = getLinkFromXHRHeader(responce_headers); - replaceInternalLink(); - replace_emoji(); - isSyncing = false; - - } else { - - $('.timeline_footer > i').css({"display":"none"}); - $('.timeline_footer').append(''); - isSyncing = true; - - } - }); - - load_options.shift(); - - }; - - }; - - }); - - // Streaming - $(function() { - - if ( level === "timelines/home" ) { - var streamscope = "user", - scope = "home"; - } else if ( level === "timelines/public" & load_options.length) { - var streamscope = "public:local", - scope = "local"; - } else if ( level === "timelines/public" & !load_options.length) { - var streamscope = "public", - scope = "federated"; - } - - let statuses = []; - const original_title = $('title').text(); - - api.stream(streamscope, function(userstream) { - - if (userstream.event === "update") { - - const streaming_option = localStorage.getItem("setting_post_stream"); - - if ( streaming_option === "manual" ) { - // Is alredy exist? - if ( !$('.toot_entry[sid="'+userstream.payload.id+'"]').length ) { - - $('#js-stream_update').css({'display':'block','height':'auto','padding':'10px'}); - statuses.unshift(userstream.payload); - $('#js-stream_update > button > span').text(statuses.length); - $('title').text("("+statuses.length+") "+original_title); - - $('#header .header_nav_list .'+scope+'_badge').removeClass('invisible'); - - } - } else if ( streaming_option === "auto" ) { - // Is not alredy exist - if ( !$('.toot_entry[sid="'+userstream.payload.id+'"]').length ) { - - timeline_template(userstream.payload).prependTo("#js-timeline"); - replaceInternalLink(); - replace_emoji(); - - //context - if ( level === "timelines/home" | level === "timelines/public" ) { - if (userstream.payload.in_reply_to_id & !$(".toot_entry[sid='"+userstream.in_reply_to_id+"']").length) { - let reply_source = userstream.payload.id; - api.get('statuses/'+userstream.payload.in_reply_to_id, function(in_reply_statuses) { - $("#js-timeline .toot_entry[sid='"+reply_source+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); - replaceInternalLink(); - replace_emoji(); - }); - } - } - - } - } - } - }); - - $(document).on('click','#js-stream_update', function(e) { - - $('#header .header_nav_list .'+scope+'_badge').addClass('invisible'); - $('#js-stream_update').css({'display':'none','height':'0','padding':'0px'}); - - statuses.reverse(); - - for ( let i in statuses ) { - timeline_template(statuses[i]).prependTo("#js-timeline"); - replace_emoji(); - - // context - if ( level === "timelines/home" | level === "timelines/public" ) { - if (statuses[i].in_reply_to_id) { - const reply_source = statuses[i].id; - api.get('statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { - $("#js-timeline .toot_entry[sid='"+reply_source+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); - replace_emoji(); - }); - } - } - - $('title').text(original_title); - }; - - statuses = []; - - }); - - }); - -}; - -/*---------------------------------- - Set Other Timeline -----------------------------------*/ - -function setOtherTimeline(instance, load_options) { - - let isSyncing = true; - - if ( load_options === undefined ) { - var load_options = []; - } - - // Get timeline - const loadstatus = instance + "timelines/public" - api.getOther(loadstatus, load_options, function(statuses) { - - let reply_sources = {}; - for ( let i in statuses ) { - - timeline_template(statuses[i]).appendTo("#js-timeline"); - - if (statuses[i].in_reply_to_id ) { - // Is Alredy exist - if (!reply_sources[statuses[i].in_reply_to_id]) { - reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; - api.getOther(instance + 'statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { - $("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); - replace_emoji(); - }); - } - } - - }; - - $('.toot_entry .toot_footer').addClass('invisible'); - links = getLinkFromXHRHeader(responce_headers); - replaceInternalLink(); - replace_emoji(); - - if (!statuses.length) { - $('#js-timeline_footer > i').css({"display":"none"}); - } - - isSyncing = false; - - }); - - // Infinite scroll - $(window).scroll(function () { - - // Load before 700px from last - if ( $(window).scrollTop()+window.innerHeight >= $(document).height()-700 ) { - - if (!isSyncing) { - - isSyncing = true; - load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); - - api.getOther(loadstatus, load_options, function(statuses) { - - if (statuses.length) { - - let reply_sources = {}; - for ( let i in statuses ) { - - timeline_template(statuses[i]).appendTo("#js-timeline"); - - if (statuses[i].in_reply_to_id ) { - // alredy exist - if (!reply_sources[statuses[i].in_reply_to_id]) { - reply_sources[statuses[i].in_reply_to_id] = statuses[i].id; - api.getOther(instance+'statuses/'+statuses[i].in_reply_to_id, function(in_reply_statuses) { - $("#js-timeline .toot_entry[sid='"+reply_sources[in_reply_statuses.id]+"']").before(context_template(in_reply_statuses, 'ancestors_status default_padding')); - replace_emoji(); - }); - } - } - - }; - - $('.toot_entry .toot_footer').addClass('invisible'); - links = getLinkFromXHRHeader(responce_headers); - replaceInternalLink(); - replace_emoji(); - isSyncing = false; - - } else { - - $('.timeline_footer > i').css({"display":"none"}); - $('.timeline_footer').append(''); - isSyncing = true; - - } - }); - - load_options.shift(); - - }; - - }; - - }); - -}; - -/*---------------------------------- - Set notifications -----------------------------------*/ - -function setNotifications(load_options) { - - let isSyncing = true; - - if (load_options === undefined) { - var load_options = []; - } - - // Get notice - api.get('notifications', load_options, function(NotificationObj) { - - for (let i in NotificationObj) { - notifications_template(NotificationObj[i]).appendTo("#js-timeline"); - }; - - links = getLinkFromXHRHeader(responce_headers); - replaceInternalLink(); - replace_emoji(); - - if (!NotificationObj.length) { - $('#js-timeline_footer > i').css({"display":"none"}); - } - - isSyncing = false; - - }); - - // Infinite scroll - $(window).scroll(function () { - - // Load before 700px - if($(window).scrollTop() + window.innerHeight >= $(document).height()-700) { - - if( !isSyncing ){ - - isSyncing = true; - // get latest status id - load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); - - api.get('notifications', load_options, function(NotificationObj) { - - if (NotificationObj.length) { - - for (let i in NotificationObj) { - notifications_template(NotificationObj[i]).appendTo("#js-timeline"); - }; - - links = getLinkFromXHRHeader(responce_headers); - replaceInternalLink(); - replace_emoji(); - isSyncing = false; - - } else { - - $('.timeline_footer > i').css({"display":"none"}); - $('.timeline_footer').append(''); - isSyncing = true; - - } - - }); - - load_options.shift(); - - }; - - }; - - }); - - api.stream("user", function(userstream) { - const original_title = $('title').text(); - - if (userstream.event === "notification") { - - const streaming_option = localStorage.getItem("setting_post_stream"); - - if ( streaming_option === "manual" ) { - // todo - } else if ( streaming_option === "auto" ) { - notifications_template(userstream.payload).prependTo("#js-timeline"); - replaceInternalLink(); - replace_emoji(); - } - - } - }); - -} - -/*---------------------------------- - Set Following/Followers -----------------------------------*/ - -function setFollows(mid, param, load_options) { - - let isSyncing = true, - followsList = []; - - api.get('accounts/'+mid+'/'+param, load_options, function(follows) { - - - for (let i in follows) { - follows_template(follows[i]).appendTo("#js-follows_profile"); - followsList.unshift(follows[i].id); - }; - - api.getArray('accounts/relationships', [{name:'id', data:followsList}], function(RelationshipsObj) { - for ( let i in RelationshipsObj ) { - if ( RelationshipsObj[i].following ) { - const button = $('#js-follows_profile .follow_button[mid="'+RelationshipsObj[i].id+'"]'); - button.removeClass("follow_button"); - button.addClass("following_button"); - button.text('Following'); - } - } - }); - - links = getLinkFromXHRHeader(responce_headers); - replace_emoji(); - - $("#js-follows_footer > i").css({"display":"none"}); - isSyncing = false; - - }); - - // Infinite scroll - $(window).scroll(function () { - - if ($(window).scrollTop() + window.innerHeight >= $(document).height()-700) { - - if( !isSyncing ){ - isSyncing = true; - - // get latest id - load_options.unshift( {name:"max_id",data:links['next'].match(/max_id=(.+)&?/)[1]} ); - - api.get('accounts/'+mid+'/'+param, load_options, function(follows) { - - let followsList = []; - - if (follows.length) { - - for(let i in follows) { - follows_template(follows[i]).appendTo("#js-follows_profile"); - followsList.unshift(follows[i].id); - }; - - api.getArray('accounts/relationships', [{name:'id', data:followsList}], function(RelationshipsObj) { - for ( let i in RelationshipsObj ) { - if ( RelationshipsObj[i].following ) { - const button = $('#js-follows_profile .follow_button[mid="'+RelationshipsObj[i].id+'"]'); - button.removeClass("follow_button"); - button.addClass("following_button"); - button.text('Following'); - } - } - }); - - links = getLinkFromXHRHeader(responce_headers); - replace_emoji(); - isSyncing = false; - - } else { - isSyncing = true; - } - - }); - - load_options.shift(); - - }; - - }; - - }); - -}; - -/*---------------------------------- - Set user search -----------------------------------*/ - -function setUserSearch(query) { - - api.get('search', [{name:'q',data:query},{name:'resolve',data:'true'}], function(search) { - - for(let i in search.accounts) { - follows_template(search.accounts[i]).appendTo("#js-follows_profile");; - } - - $("#js-follows_footer > i").css({"display":"none"}); - replace_emoji(); - - }); - -}; - -/*---------------------------------- - Set Relationship -----------------------------------*/ - -function setAccount(AccountObj) { - - $("#js_header_image").attr('src', AccountObj.header); - $("#js_profile_image").attr('src', AccountObj.avatar); - $("#js_toots_count").text(AccountObj.statuses_count); - $("#js_following_count").text(AccountObj.following_count); - $("#js_followers_count").text(AccountObj.followers_count); - $("#js_profile_displayname").text(AccountObj.display_name); - $("#js_profile_username").text(AccountObj.acct); - $("#js_profile_bio").html(AccountObj.note); - - if( AccountObj.id === current_id ) { - - $(` - - - `).appendTo('.profile_button_box'); - - $(` - -

    FAVOURITES

    - Show -
    - `).appendTo("#js-profile_nav_favourites"); - - } else { - - api.get('accounts/relationships', [{name:'id', data:String(AccountObj.id)}], function(RelationshipObj) { - - if (RelationshipObj[0].followed_by) { - $('#main .profile_username .profile_followed_by').removeClass('invisible'); - } - - if (RelationshipObj[0].blocking) { - $(` - - `).appendTo('.profile_button_box'); - - } else if (RelationshipObj[0].muting) { - $(` - - `).appendTo('.profile_button_box'); - - } else if (RelationshipObj[0].requested) { - $(` - - - `).appendTo('.profile_button_box'); - - } else if(RelationshipObj[0].following){ - $(` - - `).appendTo('.profile_button_box'); - - } else { - $(` - - `).appendTo('.profile_button_box'); - } - }); - }; - - replace_emoji(); - -} - -/*---------------------------------- - Set User recent images -----------------------------------*/ - -function setRecentImages(mid) { - - api.get("accounts/"+mid+"/statuses", [{name:'only_media',data:'true'},{name:'limit',data:'6'}], function(statuses) { - - if ( statuses.length ) { - - $('#js_profile_recent_images span').text(`${statuses[0].account.statuses_count} Photos and toots`); - $('#js_profile_recent_images a').attr('href', $("#media_link").attr('href')); - - for ( i in statuses ) { - $(` -
    - -
    - `).appendTo('#js_profile_recent_images_box'); - }; - - } - - }); - -}; - -/*---------------------------------- - Header tabs badge -----------------------------------*/ - -function badges_update(){ - - let current_count = Number(localStorage.getItem("notification_count")); - if ( current_count ) { - $('#header .header_nav_list .notification_badge').removeClass('invisible'); - $('#header .header_nav_list .notification_badge').text( current_count ); - } - - api.stream("user", function(userstream) { - - if (userstream.event === "update" & location.pathname !== "/" ) { - $('#header .header_nav_list .home_badge').removeClass('invisible'); - } else if (userstream.event === "notification" & location.pathname !== "/notifications") { - current_count += 1; - localStorage.setItem("notification_count", current_count ); - $('#header .header_nav_list .notification_badge').text( current_count ); - if ( $('#header .header_nav_list .notification_badge').hasClass('invisible') ) { - $('#header .header_nav_list .notification_badge').removeClass('invisible') - } - } - - }); -} - -/*---------------------------------- - [T]Set Overlay status -----------------------------------*/ - -function setOverlayStatus(sid) { - - // Check seletcting text or not - if ( !window.getSelection().toString() ) { - - // RESET - $("#js-overlay_content .temporary_object").empty() - - // If not seletcting text, show status details - $('#js-overlay_content_wrap').addClass('view'); - $('#js-overlay_content_wrap').addClass('black_05'); - - api.get('statuses/'+sid+'/', function(status) { - - $('
    ').appendTo("#js-overlay_content .temporary_object"); - status_template(status, 'main_status').appendTo('#js-overlay_content .toot_detail_wrap'); - - replaceInternalLink(); - replace_emoji(); - - api.get('statuses/'+sid+'/context', function(status) { - - if (status.ancestors.length) { - status.ancestors.reverse(); - for ( let i in status.ancestors ) { - context_template(status.ancestors[i], 'ancestors_status').prependTo("#js-overlay_content .temporary_object .toot_detail_wrap"); - } - } - - if (status.descendants.length) { - for ( let i in status.descendants) { - context_template(status.descendants[i], 'descendants_status').appendTo("#js-overlay_content .temporary_object .toot_detail_wrap"); - } - } - - replaceInternalLink(); - replace_emoji(); - - }); - - }); - } - -} - -// triger -$(function() { - - // PREFIX - $(document).on('click','.toot_entry.ancestors_status, .toot_entry.descendants_status', function(e) { - $("#js-overlay_content .temporary_object").empty(); - }); - - // toot status - $(document).on('click','.toot_entry', function(e) { - setOverlayStatus($(this).attr('sid')); - }); - -}) - -/*---------------------------------- - [T]Set Overlay media -----------------------------------*/ - -function setOverlayMedia(sid,url) { - - // RESET - $("#js-overlay_content .temporary_object").empty() - - // If not seletcting text, show status details - $('#js-overlay_content_wrap').addClass('view'); - $('#js-overlay_content_wrap').addClass('black_08'); - $('#js-overlay_content .temporary_object').addClass('visible'); - - api.get("statuses/"+sid, function(status) { - - if ( !status.reblog ) { - media_template(status, url).appendTo("#js-overlay_content .temporary_object"); - replaceInternalLink(); - replace_emoji(); - } else { - media_template(status.reblog, url).appendTo("#js-overlay_content .temporary_object"); - replaceInternalLink(); - replace_emoji(); - } - - }); - -} - -// triger -$(function() { - - // overlay media - $(document).on('click','.media_attachment[otype="image"]', function(e) { - // Stop setOverlayStatus() - e.stopPropagation(); - setOverlayMedia($(this).attr('sid'),$(this).attr('url')); - $('.media_detail .toot_entry .media_views').addClass('invisible'); - }); - -}) - -/*---------------------------------- - [T]Set Overlay media without status -----------------------------------*/ - -function setOverlayMediaWithoutStatus(url) { - - // RESET - $("#js-overlay_content .temporary_object").empty() - - // If not seletcting text, show status details - $('#js-overlay_content_wrap').addClass('view'); - $('#js-overlay_content_wrap').addClass('black_05'); - - media_template(null, url).appendTo("#js-overlay_content .temporary_object"); - -} - -// triger -$(function() { - - // overlay media - $(document).on('click','img[mediaaccess="true"]', function(e) { - // Stop setOverlayStatus() - e.stopPropagation(); - setOverlayMediaWithoutStatus($(this).attr('src')); - }); - -}) - -/*----------------------------------- - [P]Create status: Overlay ------------------------------------*/ - -$(function() { - - // EXPAND - $(document).on('click', '#creat_status', function(e) { - - $('.overlay_status').removeClass('invisible'); - $("#js-overlay_content_wrap .temporary_object").empty(); - - $('#js-overlay_content_wrap').addClass('view'); - $('#js-overlay_content_wrap').addClass('black_08'); - $('#overlay_status_form .status_textarea textarea').addClass('focus'); - $('.overlay_status .submit_status_label').addClass('active_submit_button'); - $('#overlay_status_form .status_textarea textarea').focus() - $('#overlay_status_form input[name="privacy_option"]').val([localStorage.getItem("setting_post_privacy")]); - $('#overlay_status_form .expand_privacy_menu_button > i').attr('class', "fa " + localStorage.getItem("setting_post_privacy")); - - }); - - // TEXTAREA - $(document).on('change keyup','#overlay_status_form textarea, #overlay_status_form .status_spoiler', function(e) { - - if ( - e.keyCode !== 224 & - e.keyCode !== 17 & - e.keyCode !== undefined - //!$('#overlay_status_form').hasClass('ready') - ) { - - const textCount = $('#overlay_status_form textarea').val().length + $('#overlay_status_form .status_spoiler').val().length; - let textLen = ( 512 - textCount ); - - if ( textLen <= -1 ) { - $('#overlay_status_form .character_count').addClass('red'); - $('#overlay_status_form').addClass('ready'); - } else if ( textLen === 512 ) { - $('#overlay_status_form').addClass('ready'); - } else { - $('#overlay_status_form .character_count').removeClass('red'); - $('#overlay_status_form').removeClass('ready'); - } - - $(this).val(replaced_emoji_return($(this).val())); - $('#overlay_status_form .character_count').text(textLen); - - } - - }); - - // CONTENT WARNING BUTTON - $(document).on('click','#overlay_status_form .status_CW', function(e) { - $('#overlay_status_form .status_spoiler').toggleClass('invisible'); - }); - - // EXPAND PRIVACY - $(document).on('click','#overlay_status_form .expand_privacy_menu_button', function(e) { - $('#overlay_status_form .expand_privacy_menu').removeClass('invisible'); - }); - - // SET PRIVACY - $(document).on('click','#overlay_status_form .status_privacy.select_privacy', function(e) { - e.stopPropagation(); - $('#overlay_status_form .expand_privacy_menu_button > i').attr('class', $(this).attr('privacyicon')); - $('#overlay_status_form .expand_privacy_menu').addClass('invisible'); - }); - - // MEDIA ATTACHMENT - $(document).on('change','#overlay_status_media_atta', function(e) { - - $('#overlay_status_form .media_attachments_preview_area').empty(); - $('#overlay_status_form .status_textarea .media_attachments_preview_area').removeClass('invisible'); - - for ( let i = 0, f; f = e.target.files[i]; i++ ) { - - let reader = new FileReader(); - reader.readAsDataURL(f); - reader.onloadend = (function() { - return function (e) { - const html = (` -
    - -
    - `); - $(html).appendTo('#overlay_status_form .media_attachments_preview_area'); - } - })(f); - - } - }); - - // NOT SAFE FOR WORK - $(document).on('click','#overlay_status_form .status_NSFW', function(e) { - $('#overlay_status_form .media_attachments_preview_area').toggleClass('nsfw'); - }); - - // TOOT SUBMIT BUTTON - $(document).on('click','#overlay_status_form .submit_status_label', function(e) { - - $('#overlay_status_form').addClass('ready'); - $('#overlay_status_form .status_textarea').addClass('disallow_select'); - $('#overlay_status_form .character_count').html(''); - - const form = document.forms.overlay_status_form; - if ( !$('#overlay_status_media_atta')[0].files.length ) { - - const params = { - status : form.status_textarea.value, - sensitive : form.status_nsfw.checked, - spoiler_text : form.status_spoiler.value, - visibility : form.privacy_option.value - } - - api.post("statuses", params, function (data) { - $('#overlay_status_form .media_attachments_preview_area').empty(); - $('#overlay_status_form .status_spoiler').addClass('invisible'); - $('#overlay_status_form .status_textarea .media_attachments_preview_area').addClass('invisible'); - form.reset(); - $('#overlay_status_form').removeClass('ready'); - $('#overlay_status_form .status_textarea').removeClass('disallow_select'); - $('#overlay_status_form .character_count').html('512'); - $('.overlay_status .submit_status_label').removeClass('active_submit_button'); - $('.overlay_status').addClass('invisible'); - $('#js-overlay_content_wrap').removeClass('view'); - $('#js-overlay_content_wrap').removeClass('black_05'); - putMessage('Your Toot was posted!'); - }); - - } else { - - const dummy_form = $('
    ').append($('#overlay_status_media_atta')), - files = dummy_form[0][0].files, - filesLen = files.length -1; - - let media_array = []; - - $("#overlay_status_form .status_bottom").append($('')); - - for (let i=0; i i').attr('class', $(this).attr('privacyicon')); - $('#header_status_form .expand_privacy_menu').addClass('invisible'); - }); - - // EXPAND TEXT AREA - $(document).on('click','#header_status_form', function(e) { - if(!$('#header_status_form .status_textarea textarea').hasClass('focus')) { - $('#header_status_form input[name="privacy_option"]').val([localStorage.getItem("setting_post_privacy")]); - $('#header_status_form .expand_privacy_menu_button > i').attr('class', "fa " + localStorage.getItem("setting_post_privacy")); - $('#header_status_form .status_textarea textarea').addClass('focus'); - $('#header_status_form .status_bottom').removeClass('invisible'); - $('#header_status_form .submit_status_label').addClass('active_submit_button'); - } - }); - - // MEDIA ATTACHMENT - $(document).on('change','#header_status_media_atta', function(e) { - - $('#header_status_form .media_attachments_preview_area').empty(); - $('#header_status_form .status_textarea .media_attachments_preview_area').removeClass('invisible'); - - for ( let i = 0, f; f = e.target.files[i]; i++ ) { - - let reader = new FileReader(); - reader.readAsDataURL(f); - reader.onloadend = (function() { - return function (e) { - const html = (` -
    - -
    - `); - $(html).appendTo('#header_status_form .media_attachments_preview_area'); - } - })(f); - - } - }); - - // NOT SAFE FOR WORK - $(document).on('click','#header_status_form .status_NSFW', function(e) { - $('#header_status_form .media_attachments_preview_area').toggleClass('nsfw'); - }); - - // TOOT SUBMIT BUTTON - $(document).on('click','#header_status_form .submit_status_label', function(e) { - - $('#header_status_form').addClass('ready'); - $('#header_status_form .status_textarea').addClass('disallow_select'); - $('#header_status_form .character_count').html(''); - - const form = document.forms.header_status_form; - if ( !$('#header_status_media_atta')[0].files.length ) { - - const params = { - status : form.status_textarea.value, - sensitive : form.status_nsfw.checked, - spoiler_text : form.status_spoiler.value, - visibility : form.privacy_option.value - } - - api.post("statuses", params, function (data) { - $('#header_status_form .media_attachments_preview_area').empty(); - $('#header_status_form .status_spoiler').addClass('invisible'); - $('#header_status_form .status_textarea .media_attachments_preview_area').addClass('invisible'); - form.reset(); - $('#header_status_form').removeClass('ready'); - $('#header_status_form .status_textarea').removeClass('disallow_select'); - $('#header_status_form .character_count').html('512'); - }); - - } else { - - // 擬似formに追加。そのあとクローンを元の位置に戻す。 - const dummy_form = $('
    ').append($('#header_status_media_atta')), - files = dummy_form[0][0].files, - filesLen = files.length -1; - - let media_array = []; - - $("#header_status_form .status_bottom").append($('')); - - for (let i=0; i i').attr('class', "fa " + localStorage.getItem("setting_post_privacy")); - } - }); - - // TEXTAREA - $(document).on('change keyup','#reply_status_form textarea, #reply_status_form .status_spoiler', function(e) { - - if ( - e.keyCode !== 224 & - e.keyCode !== 17 & - e.keyCode !== undefined - //!$('#overlay_status_form').hasClass('ready') - ) { - - const textCount = $('#reply_status_form textarea').val().length + $('#reply_status_form .status_spoiler').val().length; - let textLen = ( 512 - textCount ); - - if ( textLen <= -1 ) { - $('#reply_status_form .character_count').addClass('red'); - $('#reply_status_form').addClass('ready'); - } else if ( textLen === 512 ) { - $('#reply_status_form').addClass('ready'); - } else { - $('#reply_status_form .character_count').removeClass('red'); - $('#reply_status_form').removeClass('ready'); - } - - $(this).val(replaced_emoji_return($(this).val())); - $('#reply_status_form .character_count').text(textLen); - - } - - }); - - // CONTENT WARNING BUTTON - $(document).on('click','#reply_status_form .status_CW', function(e) { - $('#reply_status_form .status_spoiler').toggleClass('invisible'); - }); - - // EXPAND PRIVACY - $(document).on('click','#reply_status_form .expand_privacy_menu_button', function(e) { - $('#reply_status_form .expand_privacy_menu').removeClass('invisible'); - }); - - // SET PRIVACY - $(document).on('click','#reply_status_form .status_privacy.select_privacy', function(e) { - e.stopPropagation(); - $('#reply_status_form .expand_privacy_menu_button > i').attr('class', $(this).attr('privacyicon')); - $('#reply_status_form .expand_privacy_menu').addClass('invisible'); - }); - - // MEDIA ATTACHMENT - $(document).on('change','#reply_status_media_atta', function(e) { - - $('#reply_status_form .media_attachments_preview_area').empty(); - $('#reply_status_form .status_textarea .media_attachments_preview_area').removeClass('invisible'); - - for ( let i = 0, f; f = e.target.files[i]; i++ ) { - - let reader = new FileReader(); - reader.readAsDataURL(f); - reader.onloadend = (function() { - return function (e) { - const html = (` -
    - -
    - `); - $(html).appendTo('#reply_status_form .media_attachments_preview_area'); - } - })(f); - - } - }); - - // NOT SAFE FOR WORK - $(document).on('click','#reply_status_form .status_NSFW', function(e) { - $('#reply_status_form .media_attachments_preview_area').toggleClass('nsfw'); - }); - - // TOOT SUBMIT BUTTON - $(document).on('click','#reply_status_form .submit_status_label', function(e) { - - $('#reply_status_form').addClass('ready'); - $('#reply_status_form .status_textarea').addClass('disallow_select'); - $('#reply_status_form .character_count').html(''); - - let form = document.forms.reply_status_form; - if ( !$('#reply_status_media_atta')[0].files.length ) { - - const params = { - status : form.status_textarea.value, - sensitive : form.status_nsfw.checked, - spoiler_text : form.status_spoiler.value, - visibility : form.privacy_option.value, - in_reply_to_id : $('#reply_status_form').attr('sid') - } - - api.post("statuses", params, function (data) { - $('#reply_status_form .media_attachments_preview_area').empty(); - $('#reply_status_form .status_spoiler').addClass('invisible'); - $('#reply_status_form .status_textarea .media_attachments_preview_area').addClass('invisible'); - form.reset(); - $('#reply_status_form').removeClass('ready'); - $('#reply_status_form .status_textarea').removeClass('disallow_select'); - $('#reply_status_form .character_count').html('512'); - $('.reply_status .submit_status_label').removeClass('active_submit_button'); - context_template(data, 'descendants_status').appendTo("#js-overlay_content .temporary_object .toot_detail_wrap"); - replace_emoji(); - putMessage('Your Toot was posted!'); - }); - - } else { - - const dummy_form = $('
    ').append($('#reply_status_media_atta')), - files = dummy_form[0][0].files, - filesLen = files.length -1; - - let media_array = []; - - $('#reply_status_form .status_bottom').append($('')); - - for (let i=0; i i').attr('class', "fa " + localStorage.getItem("setting_post_privacy")); - - $('#single_reply_status_form').attr('tid',sid); - $('.single_reply_status .single_reply_status_header span').text("Reply to "+display_name); - $('#single_reply_status_form textarea').val(acct+" "); - - api.get('statuses/'+sid+'/', function(status) { - timeline_template(status).appendTo(".single_reply_status .status_preview"); - replace_emoji(); - }); - - return false; - - }); - - // TEXTAREA - $(document).on('change keyup','#single_reply_status_form textarea, #single_reply_status_form .status_spoiler', function(e) { - - if ( - e.keyCode !== 224 & - e.keyCode !== 17 & - e.keyCode !== undefined - //!$('#single_reply_status_form').hasClass('ready') - ) { - - const textCount = $('#single_reply_status_form textarea').val().length + $('#single_reply_status_form .status_spoiler').val().length; - let textLen = ( 512 - textCount ); - - if ( textLen <= -1 ) { - $('#single_reply_status_form .character_count').addClass('red'); - $('#single_reply_status_form').addClass('ready'); - } else if ( textLen === 512 ) { - $('#single_reply_status_form').addClass('ready'); - } else { - $('#single_reply_status_form .character_count').removeClass('red'); - $('#single_reply_status_form').removeClass('ready'); - } - - $(this).val(replaced_emoji_return($(this).val())); - $('#single_reply_status_form .character_count').text(textLen); - - } - - }); - - // CONTENT WARNING BUTTON - $(document).on('click','#single_reply_status_form .status_CW', function(e) { - $('#single_reply_status_form .status_spoiler').toggleClass('invisible'); - }); - - // EXPAND PRIVACY - $(document).on('click','#single_reply_status_form .expand_privacy_menu_button', function(e) { - $('#single_reply_status_form .expand_privacy_menu').removeClass('invisible'); - }); - - // SET PRIVACY - $(document).on('click','#single_reply_status_form .status_privacy.select_privacy', function(e) { - e.stopPropagation(); - $('#single_reply_status_form .expand_privacy_menu_button > i').attr('class', $(this).attr('privacyicon')); - $('#single_reply_status_form .expand_privacy_menu').addClass('invisible'); - }); - - // MEDIA ATTACHMENT - $(document).on('change','#single_reply_status_media_atta', function(e) { - - $('#single_reply_status_form .media_attachments_preview_area').empty(); - $('#single_reply_status_form .status_textarea .media_attachments_preview_area').removeClass('invisible'); - - for ( let i = 0, f; f = e.target.files[i]; i++ ) { - - let reader = new FileReader(); - reader.readAsDataURL(f); - reader.onloadend = (function() { - return function (e) { - const html = (` -
    - -
    - `); - $(html).appendTo('#single_reply_status_form .media_attachments_preview_area'); - } - })(f); - - } - }); - - // NOT SAFE FOR WORK - $(document).on('click','#single_reply_status_form .status_NSFW', function(e) { - $('#single_reply_status_form .media_attachments_preview_area').toggleClass('nsfw'); - }); - - // TOOT SUBMIT BUTTON - $(document).on('click','#single_reply_status_form .submit_status_label', function(e) { - - $('#single_reply_status_form').addClass('ready'); - $('#single_reply_status_form .status_textarea').addClass('disallow_select'); - $('#single_reply_status_form .character_count').html(''); - - let form = document.forms.single_reply_status_form; - if ( !$('#single_reply_status_media_atta')[0].files.length ) { - - const params = { - status : form.status_textarea.value, - sensitive : form.status_nsfw.checked, - spoiler_text : form.status_spoiler.value, - visibility : form.privacy_option.value, - in_reply_to_id : $('#single_reply_status_form').attr('tid') - } - - api.post("statuses", params, function (data) { - $('#single_reply_status_form .media_attachments_preview_area').empty(); - $('#single_reply_status_form .status_spoiler').addClass('invisible'); - $('#single_reply_status_form .status_textarea .media_attachments_preview_area').addClass('invisible'); - form.reset(); - $('#single_reply_status_form').removeClass('ready'); - $('#single_reply_status_form .status_textarea').removeClass('disallow_select'); - $('#single_reply_status_form .character_count').html('512'); - $('.single_reply_status .submit_status_label').removeClass('active_submit_button'); - $('.single_reply_status').addClass('invisible'); - $('#js-overlay_content_wrap').removeClass('view'); - $('#js-overlay_content_wrap').removeClass('black_05'); - $("#js-overlay_content_wrap .single_reply_status .status_preview").empty(); - putMessage('Your Reply was posted!'); - }); - - } else { - - const dummy_form = $('
    ').append($('#single_reply_status_media_atta')), - files = dummy_form[0][0].files, - filesLen = files.length -1; - - let media_array = []; - - $("#single_reply_status_form .status_bottom").append($('')); - - for (let i=0; i *, .parmanent_object > *', function(e) { - // オーバーレイ最上位子要素で止める感じ - e.stopPropagation(); - }); - - // HIDE ALL - $(document).on('click','#js-overlay_content_wrap', function(e) { - - // hide myself - $(this).removeClass('view'); - - // empty here - $("#js-overlay_content_wrap .temporary_object").empty(); - $("#js-overlay_content_wrap .single_reply_status .status_preview").empty(); - - // add here - $('#js-overlay_content_wrap .overlay_status').addClass('invisible'); - $('#js-overlay_content_wrap .single_reply_status').addClass('invisible'); - $('#js-overlay_content_wrap .overlay_copy_link').addClass('invisible'); - - // remove here - $('#js-overlay_content .temporary_object, #js-overlay_content .parmanent_object').removeClass('visible'); - $('#js-overlay_content_wrap .overlay_status .submit_status_label').removeClass('active_submit_button'); - $('#js-overlay_content_wrap .single_reply_status .submit_status_label').removeClass('active_submit_button'); - $('#js-overlay_content_wrap #reply_status_form .submit_status_label').removeClass('active_submit_button'); - $('#js-overlay_content_wrap #header_status_form .submit_status_label').removeClass('active_submit_button'); - - $('#js-overlay_content_wrap').removeClass('black_05'); - $('#js-overlay_content_wrap').removeClass('black_08'); - - // fix to original link ( using for overlay_status ) - if ( current_file === "/user" ) { - history.pushState(null, null, "/"+location.pathname.split("/")[1]+location.search); - } else { - history.pushState(null, null, current_file); - } - - }); - -}) - -/*---------------------------------- - Stream options menu -----------------------------------*/ - -$(function () { - - // EXPAND SIDE STREAM options - $(document).on('click','.side_widget.stream_options .form_title button', function(e) { - - $(this).parent().next('.pulldown_form').toggleClass('view'); - - if ( $(this).text() === "SHOW" ) { - $(this).text("HIDE"); - } else { - $(this).text("SHOW"); - } - - const html_post_steraming = $(` - - `) - - const html_post_privacy = $(` - - `) - - const html_local_instance = $(` - - `) - - const html_search_filter = $(` - - `) - - html_post_steraming.val(localStorage.getItem("setting_post_stream")); - html_post_privacy.val(localStorage.getItem("setting_post_privacy")); - html_local_instance.val(localStorage.getItem("setting_local_instance")); - html_search_filter.val(localStorage.getItem("setting_search_filter")); - - $('.post_steraming_wrap').html(html_post_steraming) - $('.post_privacy_wrap').html(html_post_privacy); - $('.local_instance_wrap').html(html_local_instance); - $('.search_filter_wrap').html(html_search_filter); - - return false; - }); - - $(document).on('change',".post_steraming_wrap select[name='post_steraming']", function(e) { - localStorage.setItem("setting_post_stream", $(this).val() ); - putMessage("Changed setting to "+$(this).val() ); - }); - - $(document).on('change', ".post_privacy_wrap select[name='post_privacy']", function(e) { - localStorage.setItem("setting_post_privacy", $(this).val() ); - putMessage("Changed setting to "+$(this).val() ); - }); - - $(document).on('change',".search_filter_wrap select[name='search_filter']", function(e) { - localStorage.setItem("setting_search_filter", $(this).val() ); - putMessage("Changed setting to "+$(this).val() ); - }); - - $(document).on('focus',".local_instance_wrap input[name='local_instance']", function(e) { - $(this).attr("placeholder","https://"+current_instance); - }); - - $(document).on('change',".local_instance_wrap input[name='local_instance']", function(e) { - if ( $(this).val() ) { - localStorage.setItem("setting_local_instance", $(this).val() ); - } else { - localStorage.setItem("setting_local_instance", "default" ); - } - putMessage("Changed setting to "+$(this).val() ); - }); - -}) - -/*---------------------------------- - Keyboard shortcut ------------------------------------*/ - -$(function() { - - shortcut.add("n",function() { - $("#creat_status").click(); - },{ - "disable_in_input":true, - }); - - shortcut.add("/",function() { - $("#search_form").focus(); - },{ - "disable_in_input":true, - 'keycode':191 - }); - - shortcut.add("Meta+Enter",function() { - $(".active_submit_button").click(); - }); - - shortcut.add("Ctrl+Enter",function() { - $(".active_submit_button").click(); - }); - - shortcut.add(".",function() { - $("#js-stream_update").click(); - },{ - "disable_in_input":true, - }); - - shortcut.add("Shift+h",function() { - location.href="/home"; - },{ - "disable_in_input":true, - }); - - shortcut.add("Shift+l",function() { - location.href="/local"; - },{ - "disable_in_input":true, - }); - - shortcut.add("Shift+f",function() { - location.href="/federated"; - },{ - "disable_in_input":true, - }); - - shortcut.add("Shift+n",function() { - location.href="/notifications"; - },{ - "disable_in_input":true, - }); - - shortcut.add("Shift+p",function() { - location.href=current_url; - },{ - "disable_in_input":true, - }); - - shortcut.add("Shift+v",function() { - location.href=current_favourites_link; - },{ - "disable_in_input":true, - }); - - shortcut.add("esc",function() { - $("#js-overlay_content_wrap").click(); - }); - -}); - -/*---------------------------------- - Yamada elf -----------------------------------*/ - -function setYaruki() { - $('.toot_entry_body .icon_box img').attr('src','/assets/images/elf.jpg') - $('.toot_content .displayname').text('山田エルフ'); - $('.toot_content .username').text('©KADOKAWA©ASCIIMediaWorks'); - putMessage('やる気MAXファイアー!'); - /* this is a joke function */ -} diff --git a/public_html/assets/js/jquery-cookie/.DS_Store b/public_html/assets/js/jquery-cookie/.DS_Store deleted file mode 100644 index d6558088368fc58b6e4d0f8f3fa89acb9d79b8a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKJx{|h5PhZ{3RJXWV$8rwB^KsT8bKwX5|kbK0Rjqv0s^-D4n_uk3O@^YXB&~Y z?TQe(lkDf%e!laId`^8e=qYfjgwQo|vs2 zs(>o+*A$SmyMP`~>?4NAo!|B-?e|7$kK>XYHdx+1t+54Ev4tIMVjtT`u!|0{fh!CG z-b=t+LZ7~_aAR}Cka^<%CuaoQkAPdF&kj9yaey|OIAW`9BbegZNaXp5m#ya%mpJE6 zB~RVr!S4BaRs`lfSfk2aj>(d!Pr1&>uXGngPPNQxPOTdD7-<)4RI1HgB#ioyb%X0X z;XYtfvjV$HwN4oQCF`?qkD_0|qh1BxJatO=j#~6Cz9!y|XjEX7n7ha57uOXP3bV?L zddQh!+_LM}+^#8}+88F}CG% zK``Z$Jl diff --git a/public_html/assets/js/jquery-cookie/CHANGELOG.md b/public_html/assets/js/jquery-cookie/CHANGELOG.md deleted file mode 100644 index 59d868f..0000000 --- a/public_html/assets/js/jquery-cookie/CHANGELOG.md +++ /dev/null @@ -1,73 +0,0 @@ -HEAD ------ - -1.4.1 ------ -- Added support for CommonJS. - -- Added support for package managers: Jam (http://jamjs.org), volo (http://volojs.org), Component (http://component.io), jspm (http://jspm.io). - -- The expires option now interpretes fractions of numbers (e.g. days) correctly. - -1.4.0 ------ -- Support for AMD. - -- Removed deprecated method `$.cookie('name', null)` for deleting a cookie, - use `$.removeCookie('name')`. - -- `$.cookie('name')` now returns `undefined` in case such cookie does not exist - (was `null`). Because the return value is still falsy, testing for existence - of a cookie like `if ( $.cookie('foo') )` keeps working without change. - -- Renamed bower package definition (component.json -> bower.json) for usage - with up-to-date bower. - -- Badly encoded cookies no longer throw exception upon reading but do return - undefined (similar to how we handle JSON parse errors with json = true). - -- Added conversion function as optional last argument for reading, - so that values can be changed to a different representation easily on the fly. - Useful for parsing numbers for instance: - - ```javascript - $.cookie('foo', '42'); - $.cookie('foo', Number); // => 42 - ``` - -1.3.1 ------ -- Fixed issue where it was no longer possible to check for an arbitrary cookie, - while json is set to true, there was a SyntaxError thrown from JSON.parse. - -- Fixed issue where RFC 2068 decoded cookies were not properly read. - -1.3.0 ------ -- Configuration options: `raw`, `json`. Replaces raw option, becomes config: - - ```javascript - $.cookie.raw = true; // bypass encoding/decoding the cookie value - $.cookie.json = true; // automatically JSON stringify/parse value - ``` - - Thus the default options now cleanly contain cookie attributes only. - -- Removing licensing under GPL Version 2, the plugin is now released under MIT License only -(keeping it simple and following the jQuery library itself here). - -- Bugfix: Properly handle RFC 2068 quoted cookie values. - -- Added component.json for bower. - -- Added jQuery plugin package manifest. - -- `$.cookie()` returns all available cookies. - -1.2.0 ------ -- Adding `$.removeCookie('foo')` for deleting a cookie, using `$.cookie('foo', null)` is now deprecated. - -1.1 ---- -- Adding default options. diff --git a/public_html/assets/js/jquery-cookie/CONTRIBUTING.md b/public_html/assets/js/jquery-cookie/CONTRIBUTING.md deleted file mode 100644 index 608c33e..0000000 --- a/public_html/assets/js/jquery-cookie/CONTRIBUTING.md +++ /dev/null @@ -1,51 +0,0 @@ -##Issues - -- Report issues or feature requests on [GitHub Issues](https://github.com/carhartl/jquery-cookie/issues). -- If reporting a bug, please add a [simplified example](http://sscce.org/). - -##Pull requests -- Create a new topic branch for every separate change you make. -- Create a test case if you are fixing a bug or implementing an important feature. -- Make sure the build runs successfully. - -## Development - -###Tools -We use the following tools for development: - -- [Qunit](http://qunitjs.com/) for tests. -- [NodeJS](http://nodejs.org/download/) required to run grunt. -- [Grunt](http://gruntjs.com/getting-started) for task management. - -###Getting started -Install [NodeJS](http://nodejs.org/). -Install globally grunt-cli using the following command: - - $ npm install -g grunt-cli - -Browse to the project root directory and install the dev dependencies: - - $ npm install -d - -To execute the build and tests run the following command in the root of the project: - - $ grunt - -You should see a green message in the console: - - Done, without errors. - -###Tests -You can also run the tests in the browser. -Start a test server from the project root: - - $ grunt connect:tests - -This will automatically open the test suite at http://127.0.0.1:9998 in the default browser, with livereload enabled. - -_Note: we recommend cleaning all the browser cookies before running the tests, that can avoid false positive failures._ - -###Automatic build -You can build automatically after a file change using the following command: - - $ grunt watch diff --git a/public_html/assets/js/jquery-cookie/Gruntfile.js b/public_html/assets/js/jquery-cookie/Gruntfile.js deleted file mode 100644 index 5ac9db5..0000000 --- a/public_html/assets/js/jquery-cookie/Gruntfile.js +++ /dev/null @@ -1,168 +0,0 @@ -/*jshint node:true, quotmark:single */ -'use strict'; - -module.exports = function (grunt) { - - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - qunit: { - all: 'test/index.html' - }, - jshint: { - options: { - jshintrc: true - }, - grunt: 'Gruntfile.js', - source: 'src/**/*.js', - tests: 'test/**/*.js' - }, - uglify: { - options: { - banner: '/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.license %> */\n' - }, - build: { - files: { - 'build/jquery.cookie-<%= pkg.version %>.min.js': 'src/jquery.cookie.js' - } - } - }, - watch: { - options: { - livereload: true - }, - files: '{src,test}/**/*.js', - tasks: 'default' - }, - compare_size: { - files: [ - 'build/jquery.cookie-<%= pkg.version %>.min.js', - 'src/jquery.cookie.js' - ], - options: { - compress: { - gz: function (fileContents) { - return require('gzip-js').zip(fileContents, {}).length; - } - } - } - }, - connect: { - saucelabs: { - options: { - port: 9999, - base: ['.', 'test'] - } - }, - tests: { - options: { - port: 9998, - base: ['.', 'test'], - open: 'http://127.0.0.1:9998', - keepalive: true, - livereload: true - } - } - }, - 'saucelabs-qunit': { - all: { - options: { - urls: ['http://127.0.0.1:9999'], - build: process.env.TRAVIS_JOB_ID, - browsers: [ - // iOS - { - browserName: 'iphone', - platform: 'OS X 10.9', - version: '7.1' - }, - { - browserName: 'ipad', - platform: 'OS X 10.9', - version: '7.1' - }, - // Android - { - browserName: 'android', - platform: 'Linux', - version: '4.3' - }, - // OS X - { - browserName: 'safari', - platform: 'OS X 10.9', - version: '7' - }, - { - browserName: 'safari', - platform: 'OS X 10.8', - version: '6' - }, - { - browserName: 'firefox', - platform: 'OS X 10.9', - version: '28' - }, - // Windows - { - browserName: 'internet explorer', - platform: 'Windows 8.1', - version: '11' - }, - { - browserName: 'internet explorer', - platform: 'Windows 8', - version: '10' - }, - { - browserName: 'internet explorer', - platform: 'Windows 7', - version: '11' - }, - { - browserName: 'internet explorer', - platform: 'Windows 7', - version: '10' - }, - { - browserName: 'internet explorer', - platform: 'Windows 7', - version: '9' - }, - { - browserName: 'internet explorer', - platform: 'Windows 7', - version: '8' - }, - { - browserName: 'firefox', - platform: 'Windows 7', - version: '29' - }, - { - browserName: 'chrome', - platform: 'Windows 7', - version: '34' - }, - // Linux - { - browserName: 'firefox', - platform: 'Linux', - version: '29' - } - ] - } - } - } - }); - - // Loading dependencies - for (var key in grunt.file.readJSON('package.json').devDependencies) { - if (key !== 'grunt' && key.indexOf('grunt') === 0) { - grunt.loadNpmTasks(key); - } - } - - grunt.registerTask('default', ['jshint', 'qunit', 'uglify', 'compare_size']); - grunt.registerTask('saucelabs', ['connect:saucelabs', 'saucelabs-qunit']); - grunt.registerTask('ci', ['jshint', 'qunit', 'saucelabs']); -}; diff --git a/public_html/assets/js/jquery-cookie/README.md b/public_html/assets/js/jquery-cookie/README.md deleted file mode 100644 index 3100800..0000000 --- a/public_html/assets/js/jquery-cookie/README.md +++ /dev/null @@ -1,162 +0,0 @@ -# IMPORTANT! - -This project was moved to https://github.com/js-cookie/js-cookie, check [the discussion](https://github.com/carhartl/jquery-cookie/issues/349). - -New issues should be opened at https://github.com/js-cookie/js-cookie/issues - -# jquery.cookie [![Build Status](https://travis-ci.org/carhartl/jquery-cookie.png?branch=master)](https://travis-ci.org/carhartl/jquery-cookie) [![Code Climate](https://codeclimate.com/github/carhartl/jquery-cookie.png)](https://codeclimate.com/github/carhartl/jquery-cookie) - -A simple, lightweight jQuery plugin for reading, writing and deleting cookies. - -**If you're viewing this, you're reading the documentation for the old repository. -[View documentation for the latest backwards compatible release (1.5.1).](https://github.com/js-cookie/js-cookie/tree/v1.5.1)** - -## Build Status Matrix - -[![Selenium Test Status](https://saucelabs.com/browser-matrix/jquery-cookie.svg)](https://saucelabs.com/u/jquery-cookie) - -## Installation - -Include script *after* the jQuery library (unless you are packaging scripts somehow else): - -```html - -``` - -**Do not include the script directly from GitHub (http://raw.github.com/...).** The file is being served as text/plain and as such being blocked -in Internet Explorer on Windows 7 for instance (because of the wrong MIME type). Bottom line: GitHub is not a CDN. - -The plugin can also be loaded as AMD or CommonJS module. - -## Usage - -Create session cookie: - -```javascript -$.cookie('name', 'value'); -``` - -Create expiring cookie, 7 days from then: - -```javascript -$.cookie('name', 'value', { expires: 7 }); -``` - -Create expiring cookie, valid across entire site: - -```javascript -$.cookie('name', 'value', { expires: 7, path: '/' }); -``` - -Read cookie: - -```javascript -$.cookie('name'); // => "value" -$.cookie('nothing'); // => undefined -``` - -Read all available cookies: - -```javascript -$.cookie(); // => { "name": "value" } -``` - -Delete cookie: - -```javascript -// Returns true when cookie was successfully deleted, otherwise false -$.removeCookie('name'); // => true -$.removeCookie('nothing'); // => false - -// Need to use the same attributes (path, domain) as what the cookie was written with -$.cookie('name', 'value', { path: '/' }); -// This won't work! -$.removeCookie('name'); // => false -// This will work! -$.removeCookie('name', { path: '/' }); // => true -``` - -*Note: when deleting a cookie, you must pass the exact same path, domain and secure options that were used to set the cookie, unless you're relying on the default options that is.* - -## Configuration - -### raw - -By default the cookie value is encoded/decoded when writing/reading, using `encodeURIComponent`/`decodeURIComponent`. Bypass this by setting raw to true: - -```javascript -$.cookie.raw = true; -``` - -### json - -Turn on automatic storage of JSON objects passed as the cookie value. Assumes `JSON.stringify` and `JSON.parse`: - -```javascript -$.cookie.json = true; -``` - -## Cookie Options - -Cookie attributes can be set globally by setting properties of the `$.cookie.defaults` object or individually for each call to `$.cookie()` by passing a plain object to the options argument. Per-call options override the default options. - -### expires - - expires: 365 - -Define lifetime of the cookie. Value can be a `Number` which will be interpreted as days from time of creation or a `Date` object. If omitted, the cookie becomes a session cookie. - -### path - - path: '/' - -Define the path where the cookie is valid. *By default the path of the cookie is the path of the page where the cookie was created (standard browser behavior).* If you want to make it available for instance across the entire domain use `path: '/'`. Default: path of page where the cookie was created. - -**Note regarding Internet Explorer:** - -> Due to an obscure bug in the underlying WinINET InternetGetCookie implementation, IE’s document.cookie will not return a cookie if it was set with a path attribute containing a filename. - -(From [Internet Explorer Cookie Internals (FAQ)](http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx)) - -This means one cannot set a path using `path: window.location.pathname` in case such pathname contains a filename like so: `/check.html` (or at least, such cookie cannot be read correctly). - -### domain - - domain: 'example.com' - -Define the domain where the cookie is valid. Default: domain of page where the cookie was created. - -### secure - - secure: true - -If true, the cookie transmission requires a secure protocol (https). Default: `false`. - -## Converters - -Provide a conversion function as optional last argument for reading, in order to change the cookie's value -to a different representation on the fly. - -Example for parsing a value into a number: - -```javascript -$.cookie('foo', '42'); -$.cookie('foo', Number); // => 42 -``` - -Dealing with cookies that have been encoded using `escape` (3rd party cookies): - -```javascript -$.cookie.raw = true; -$.cookie('foo', unescape); -``` - -You can pass an arbitrary conversion function. - -## Contributing - -Check out the [Contributing Guidelines](CONTRIBUTING.md) - -## Authors - -[Klaus Hartl](https://github.com/carhartl) diff --git a/public_html/assets/js/jquery-cookie/bower.json b/public_html/assets/js/jquery-cookie/bower.json deleted file mode 100644 index 3862b74..0000000 --- a/public_html/assets/js/jquery-cookie/bower.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "jquery.cookie", - "version": "1.4.1", - "main": [ - "src/jquery.cookie.js" - ], - "dependencies": { - "jquery": ">=1.2" - }, - "ignore": [ - "test", - ".*", - "*.json", - "*.md", - "*.txt", - "Gruntfile.js" - ] -} diff --git a/public_html/assets/js/jquery-cookie/component.json b/public_html/assets/js/jquery-cookie/component.json deleted file mode 100644 index 0fad480..0000000 --- a/public_html/assets/js/jquery-cookie/component.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "jquery.cookie", - "repo": "carhartl/jquery-cookie", - "description": "A simple, lightweight jQuery plugin for reading, writing and deleting cookies", - "version": "1.4.1", - "keywords": [], - "dependencies": {}, - "development": {}, - "license": "MIT", - "main": "src/jquery.cookie.js", - "scripts": [ - "src/jquery.cookie.js" - ] -} diff --git a/public_html/assets/js/jquery-cookie/cookie.jquery.json b/public_html/assets/js/jquery-cookie/cookie.jquery.json deleted file mode 100644 index 69d5748..0000000 --- a/public_html/assets/js/jquery-cookie/cookie.jquery.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "cookie", - "version": "1.4.1", - "title": "jQuery Cookie", - "description": "A simple, lightweight jQuery plugin for reading, writing and deleting cookies.", - "author": { - "name": "Klaus Hartl", - "url": "https://github.com/carhartl" - }, - "maintainers": [ - { - "name": "Klaus Hartl", - "url": "https://github.com/carhartl" - }, - { - "name": "Fagner Martins", - "url": "https://github.com/FagnerMartinsBrack" - } - ], - "licenses": [ - { - "type": "MIT", - "url": "https://raw.github.com/carhartl/jquery-cookie/master/MIT-LICENSE.txt" - } - ], - "dependencies": { - "jquery": ">=1.2" - }, - "bugs": "https://github.com/carhartl/jquery-cookie/issues", - "homepage": "https://github.com/carhartl/jquery-cookie", - "docs": "https://github.com/carhartl/jquery-cookie#readme" -} diff --git a/public_html/assets/js/jquery-cookie/package.json b/public_html/assets/js/jquery-cookie/package.json deleted file mode 100644 index 38abffe..0000000 --- a/public_html/assets/js/jquery-cookie/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "jquery.cookie", - "version": "1.4.1", - "description": "A simple, lightweight jQuery plugin for reading, writing and deleting cookies.", - "main": "src/jquery.cookie.js", - "directories": { - "test": "test" - }, - "scripts": { - "test": "grunt" - }, - "repository": { - "type": "git", - "url": "git://github.com/carhartl/jquery-cookie.git" - }, - "author": "Klaus Hartl", - "license": "MIT", - "gitHead": "bd3c9713222bace68d25fe2128c0f8633cad1269", - "readmeFilename": "README.md", - "devDependencies": { - "grunt": "~0.4.1", - "grunt-contrib-jshint": "~0.10.0", - "grunt-contrib-uglify": "~0.2.0", - "grunt-contrib-qunit": "~0.2.0", - "grunt-contrib-watch": "~0.6.1", - "grunt-compare-size": "~0.4.0", - "grunt-saucelabs": "~7.0.0", - "grunt-contrib-connect": "~0.7.1", - "gzip-js": "~0.3.0" - }, - "volo": { - "url": "https://raw.github.com/carhartl/jquery-cookie/v{version}/src/jquery.cookie.js" - }, - "jspm": { - "main": "jquery.cookie", - "files": ["src/jquery.cookie.js"], - "buildConfig": { - "uglify": true - } - }, - "jam": { - "dependencies": { - "jquery": ">=1.2" - }, - "main": "src/jquery.cookie.js", - "include": [ - "src/jquery.cookie.js" - ] - } -} diff --git a/public_html/assets/js/jquery-cookie/src/.jshintrc b/public_html/assets/js/jquery-cookie/src/.jshintrc deleted file mode 100644 index 241dd9f..0000000 --- a/public_html/assets/js/jquery-cookie/src/.jshintrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "browser": true, - "camelcase": true, - "jquery": true, - "quotmark": "single", - "globals": { - "define": true, - "module": true, - "require": true - }, - - "extends": "../.jshintrc" -} diff --git a/public_html/assets/js/jquery-cookie/src/jquery.cookie.js b/public_html/assets/js/jquery-cookie/src/jquery.cookie.js deleted file mode 100644 index 8218817..0000000 --- a/public_html/assets/js/jquery-cookie/src/jquery.cookie.js +++ /dev/null @@ -1,114 +0,0 @@ -/*! - * jQuery Cookie Plugin v1.4.1 - * https://github.com/carhartl/jquery-cookie - * - * Copyright 2006, 2014 Klaus Hartl - * Released under the MIT license - */ -(function (factory) { - if (typeof define === 'function' && define.amd) { - // AMD (Register as an anonymous module) - define(['jquery'], factory); - } else if (typeof exports === 'object') { - // Node/CommonJS - module.exports = factory(require('jquery')); - } else { - // Browser globals - factory(jQuery); - } -}(function ($) { - - var pluses = /\+/g; - - function encode(s) { - return config.raw ? s : encodeURIComponent(s); - } - - function decode(s) { - return config.raw ? s : decodeURIComponent(s); - } - - function stringifyCookieValue(value) { - return encode(config.json ? JSON.stringify(value) : String(value)); - } - - function parseCookieValue(s) { - if (s.indexOf('"') === 0) { - // This is a quoted cookie as according to RFC2068, unescape... - s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); - } - - try { - // Replace server-side written pluses with spaces. - // If we can't decode the cookie, ignore it, it's unusable. - // If we can't parse the cookie, ignore it, it's unusable. - s = decodeURIComponent(s.replace(pluses, ' ')); - return config.json ? JSON.parse(s) : s; - } catch(e) {} - } - - function read(s, converter) { - var value = config.raw ? s : parseCookieValue(s); - return $.isFunction(converter) ? converter(value) : value; - } - - var config = $.cookie = function (key, value, options) { - - // Write - - if (arguments.length > 1 && !$.isFunction(value)) { - options = $.extend({}, config.defaults, options); - - if (typeof options.expires === 'number') { - var days = options.expires, t = options.expires = new Date(); - t.setMilliseconds(t.getMilliseconds() + days * 864e+5); - } - - return (document.cookie = [ - encode(key), '=', stringifyCookieValue(value), - options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE - options.path ? '; path=' + options.path : '', - options.domain ? '; domain=' + options.domain : '', - options.secure ? '; secure' : '' - ].join('')); - } - - // Read - - var result = key ? undefined : {}, - // To prevent the for loop in the first place assign an empty array - // in case there are no cookies at all. Also prevents odd result when - // calling $.cookie(). - cookies = document.cookie ? document.cookie.split('; ') : [], - i = 0, - l = cookies.length; - - for (; i < l; i++) { - var parts = cookies[i].split('='), - name = decode(parts.shift()), - cookie = parts.join('='); - - if (key === name) { - // If second argument (value) is a function it's a converter... - result = read(cookie, value); - break; - } - - // Prevent storing a cookie that we couldn't decode. - if (!key && (cookie = read(cookie)) !== undefined) { - result[name] = cookie; - } - } - - return result; - }; - - config.defaults = {}; - - $.removeCookie = function (key, options) { - // Must not alter options, thus extending a fresh object... - $.cookie(key, '', $.extend({}, options, { expires: -1 })); - return !$.cookie(key); - }; - -})); diff --git a/public_html/assets/js/jquery-cookie/test/.jshintrc b/public_html/assets/js/jquery-cookie/test/.jshintrc deleted file mode 100644 index bc52b0a..0000000 --- a/public_html/assets/js/jquery-cookie/test/.jshintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "browser": true, - "jquery": true, - "qunit": true, - - "-W053": true, - - "extends": "../.jshintrc" -} diff --git a/public_html/assets/js/jquery-cookie/test/index.html b/public_html/assets/js/jquery-cookie/test/index.html deleted file mode 100644 index ade6830..0000000 --- a/public_html/assets/js/jquery-cookie/test/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - jquery.cookie Test Suite - - - - - - - -
    -
    - - diff --git a/public_html/assets/js/jquery-cookie/test/malformed_cookie.html b/public_html/assets/js/jquery-cookie/test/malformed_cookie.html deleted file mode 100644 index 74178d4..0000000 --- a/public_html/assets/js/jquery-cookie/test/malformed_cookie.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - diff --git a/public_html/assets/js/jquery-cookie/test/tests.js b/public_html/assets/js/jquery-cookie/test/tests.js deleted file mode 100644 index 68b47cc..0000000 --- a/public_html/assets/js/jquery-cookie/test/tests.js +++ /dev/null @@ -1,345 +0,0 @@ -// Required for exposing test results to the Sauce Labs API. -// Can be removed when the following issue is fixed: -// https://github.com/axemclion/grunt-saucelabs/issues/84 -QUnit.done(function (details) { - window.global_test_results = details; -}); - - -var lifecycle = { - teardown: function () { - $.cookie.defaults = {}; - delete $.cookie.raw; - delete $.cookie.json; - $.each($.cookie(), $.removeCookie); - } -}; - - -module('read', lifecycle); - -test('simple value', function () { - expect(1); - document.cookie = 'c=v'; - strictEqual($.cookie('c'), 'v', 'should return value'); -}); - -test('empty value', function () { - expect(1); - // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, which - // resulted in a bug while reading such a cookie. - $.cookie('c', ''); - strictEqual($.cookie('c'), '', 'should return value'); -}); - -test('not existing', function () { - expect(1); - strictEqual($.cookie('whatever'), undefined, 'return undefined'); -}); - -test('RFC 2068 quoted string', function () { - expect(1); - document.cookie = 'c="v@address.com\\"\\\\\\""'; - strictEqual($.cookie('c'), 'v@address.com"\\"', 'should decode RFC 2068 quoted string'); -}); - -test('decode', function () { - expect(1); - document.cookie = encodeURIComponent(' c') + '=' + encodeURIComponent(' v'); - strictEqual($.cookie(' c'), ' v', 'should decode key and value'); -}); - -test('decode pluses to space for server side written cookie', function () { - expect(1); - document.cookie = 'c=foo+bar'; - strictEqual($.cookie('c'), 'foo bar', 'should convert pluses back to space'); -}); - -test('raw = true', function () { - expect(2); - $.cookie.raw = true; - - document.cookie = 'c=%20v'; - strictEqual($.cookie('c'), '%20v', 'should not decode value'); - - // see https://github.com/carhartl/jquery-cookie/issues/50 - $.cookie('c', 'foo=bar'); - strictEqual($.cookie('c'), 'foo=bar', 'should include the entire value'); -}); - -test('json = true', function () { - expect(1); - - if ('JSON' in window) { - $.cookie.json = true; - $.cookie('c', { foo: 'bar' }); - deepEqual($.cookie('c'), { foo: 'bar' }, 'should parse JSON'); - } else { - ok(true); - } -}); - -test('not existing with json = true', function () { - expect(1); - - if ('JSON' in window) { - $.cookie.json = true; - strictEqual($.cookie('whatever'), undefined, "won't throw exception"); - } else { - ok(true); - } -}); - -test('string with json = true', function () { - expect(1); - - if ('JSON' in window) { - $.cookie.json = true; - $.cookie('c', 'v'); - strictEqual($.cookie('c'), 'v', 'should return value'); - } else { - ok(true); - } -}); - -test('invalid JSON string with json = true', function () { - expect(1); - - if ('JSON' in window) { - $.cookie('c', 'v'); - $.cookie.json = true; - strictEqual($.cookie('c'), undefined, "won't throw exception, returns undefined"); - } else { - ok(true); - } -}); - -test('invalid URL encoding', function () { - expect(1); - document.cookie = 'bad=foo%'; - strictEqual($.cookie('bad'), undefined, "won't throw exception, returns undefined"); - // Delete manually here because it requires raw === true... - $.cookie.raw = true; - $.removeCookie('bad'); -}); - -asyncTest('malformed cookie value in IE (#88, #117)', function () { - expect(1); - // Sandbox in an iframe so that we can poke around with document.cookie. - var iframe = $('')[0]; - $(iframe).on('load', function () { - start(); - if (iframe.contentWindow.ok) { - strictEqual(iframe.contentWindow.testValue, 'two', 'reads all cookie values, skipping duplicate occurences of "; "'); - } else { - // Skip the test where we can't stub document.cookie using - // Object.defineProperty. Seems to work fine in - // Chrome, Firefox and IE 8+. - ok(true, 'N/A'); - } - }); - document.body.appendChild(iframe); -}); - -test('Call to read all when there are cookies', function () { - $.cookie('c', 'v'); - $.cookie('foo', 'bar'); - deepEqual($.cookie(), { c: 'v', foo: 'bar' }, 'returns object containing all cookies'); -}); - -test('Call to read all when there are no cookies at all', function () { - deepEqual($.cookie(), {}, 'returns empty object'); -}); - -test('Call to read all with json: true', function () { - $.cookie.json = true; - $.cookie('c', { foo: 'bar' }); - deepEqual($.cookie(), { c: { foo: 'bar' } }, 'returns JSON parsed cookies'); -}); - -test('Call to read all with a badly encoded cookie', function () { - expect(1); - document.cookie = 'bad=foo%'; - document.cookie = 'good=foo'; - deepEqual($.cookie(), { good: 'foo' }, 'returns object containing all decodable cookies'); - // Delete manually here because it requires raw === true... - $.cookie.raw = true; - $.removeCookie('bad'); -}); - - -module('write', lifecycle); - -test('String primitive', function () { - expect(1); - $.cookie('c', 'v'); - strictEqual($.cookie('c'), 'v', 'should write value'); -}); - -test('String object', function () { - expect(1); - $.cookie('c', new String('v')); - strictEqual($.cookie('c'), 'v', 'should write value'); -}); - -test('value "[object Object]"', function () { - expect(1); - $.cookie('c', '[object Object]'); - strictEqual($.cookie('c'), '[object Object]', 'should write value'); -}); - -test('number', function () { - expect(1); - $.cookie('c', 1234); - strictEqual($.cookie('c'), '1234', 'should write value'); -}); - -test('null', function () { - expect(1); - $.cookie('c', null); - strictEqual($.cookie('c'), 'null', 'should write value'); -}); - -test('undefined', function () { - expect(1); - $.cookie('c', undefined); - strictEqual($.cookie('c'), 'undefined', 'should write value'); -}); - -test('expires option as days from now', function () { - expect(1); - var sevenDaysFromNow = new Date(); - sevenDaysFromNow.setDate(sevenDaysFromNow.getDate() + 21); - strictEqual($.cookie('c', 'v', { expires: 21 }), 'c=v; expires=' + sevenDaysFromNow.toUTCString(), - 'should write the cookie string with expires'); -}); - -test('expires option as fraction of a day', function () { - expect(1); - - var now = new Date().getTime(); - var expires = Date.parse($.cookie('c', 'v', { expires: 0.5 }).replace(/.+expires=/, '')); - - // When we were using Date.setDate() fractions have been ignored - // and expires resulted in the current date. Allow 1000 milliseconds - // difference for execution time. - ok(expires > now + 1000, 'should write expires attribute with the correct date'); -}); - -test('expires option as Date instance', function () { - expect(1); - var sevenDaysFromNow = new Date(); - sevenDaysFromNow.setDate(sevenDaysFromNow.getDate() + 7); - strictEqual($.cookie('c', 'v', { expires: sevenDaysFromNow }), 'c=v; expires=' + sevenDaysFromNow.toUTCString(), - 'should write the cookie string with expires'); -}); - -test('return value', function () { - expect(1); - strictEqual($.cookie('c', 'v'), 'c=v', 'should return written cookie string'); -}); - -test('defaults', function () { - expect(2); - $.cookie.defaults.path = '/foo'; - ok($.cookie('c', 'v').match(/path=\/foo/), 'should use options from defaults'); - ok($.cookie('c', 'v', { path: '/bar' }).match(/path=\/bar/), 'options argument has precedence'); -}); - -test('raw = true', function () { - expect(1); - $.cookie.raw = true; - strictEqual($.cookie('c[1]', 'v[1]'), 'c[1]=v[1]', 'should not encode'); - // Delete manually here because it requires raw === true... - $.removeCookie('c[1]'); -}); - -test('json = true', function () { - expect(1); - $.cookie.json = true; - - if ('JSON' in window) { - $.cookie('c', { foo: 'bar' }); - strictEqual(document.cookie, 'c=' + encodeURIComponent(JSON.stringify({ foo: 'bar' })), 'should stringify JSON'); - } else { - ok(true); - } -}); - - -module('removeCookie', lifecycle); - -test('deletion', function () { - expect(1); - $.cookie('c', 'v'); - $.removeCookie('c'); - strictEqual(document.cookie, '', 'should delete the cookie'); -}); - -test('when sucessfully deleted', function () { - expect(1); - $.cookie('c', 'v'); - strictEqual($.removeCookie('c'), true, 'returns true'); -}); - -test('when cookie does not exist', function () { - expect(1); - strictEqual($.removeCookie('c'), true, 'returns true'); -}); - -test('when deletion failed', function () { - expect(1); - $.cookie('c', 'v'); - - var originalCookie = $.cookie; - $.cookie = function () { - // Stub deletion... - if (arguments.length === 1) { - return originalCookie.apply(null, arguments); - } - }; - - strictEqual($.removeCookie('c'), false, 'returns false'); - - $.cookie = originalCookie; -}); - -test('with options', function () { - expect(1); - var options = { path: '/' }; - $.cookie('c', 'v', options); - $.removeCookie('c', options); - strictEqual(document.cookie, '', 'should delete the cookie'); -}); - -test('passing options reference', function () { - expect(1); - var options = { path: '/' }; - $.cookie('c', 'v', options); - $.removeCookie('c', options); - deepEqual(options, { path: '/' }, "won't alter options object"); -}); - -test('[] used in name', function () { - expect(1); - $.cookie.raw = true; - document.cookie = 'c[1]=foo'; - $.removeCookie('c[1]'); - strictEqual(document.cookie, '', 'delete the cookie'); -}); - - -module('conversion', lifecycle); - -test('read converter', function() { - expect(1); - $.cookie('c', '1'); - strictEqual($.cookie('c', Number), 1, 'converts read value'); -}); - -test('read converter with raw = true', function() { - expect(1); - $.cookie.raw = true; - $.cookie('c', '1'); - strictEqual($.cookie('c', Number), 1, 'does not decode, but converts read value'); -}); diff --git a/public_html/assets/js/mastodon.js/.DS_Store b/public_html/assets/js/mastodon.js/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 - - - - - - - - - \ No newline at end of file diff --git a/public_html/assets/js/mastodon.js/mastodon.js b/public_html/assets/js/mastodon.js/mastodon.js deleted file mode 100644 index 0745836..0000000 --- a/public_html/assets/js/mastodon.js/mastodon.js +++ /dev/null @@ -1,277 +0,0 @@ -// mastodon javascript lib -// by @kirschn@pleasehug.me 2017 -// no fucking copyright -// do whatever you want with it -// but please don't hurt it (and keep this header) - -var MastodonAPI = function(config) { - var apiBase = config.instance + "/api/v1/"; - return { - setConfig: function (key, value) { - // modify initial config afterwards - config[key] = value; - }, - getConfig: function(key) { - //get config key - return config[key]; - }, - get: function (endpoint) { - // for GET API calls - // can be called with two or three parameters - // endpoint, callback - // or - // endpoint, queryData, callback - // where querydata is an object {["paramname1", "paramvalue1], ["paramname2","paramvalue2"]} - - // variables - var queryData, callback, - queryStringAppend = "?"; - - // check with which arguments we're supplied - if (typeof arguments[1] === "function") { - queryData = {}; - callback = arguments[1]; - } else { - queryData = arguments[1]; - callback = arguments[2]; - } - // build queryData Object into a URL Query String - for (var i in queryData) { - if (queryData.hasOwnProperty(i)) { - if (typeof queryData[i] === "string") { - queryStringAppend += queryData[i] + "&"; - } else if (typeof queryData[i] === "object") { - queryStringAppend += queryData[i].name + "="+ queryData[i].data + "&"; - } - } - } - // ajax function - $.ajax({ - url: apiBase + endpoint + queryStringAppend, - type: "GET", - headers: {"Authorization": "Bearer " + config.api_user_token}, - success: function(data, textStatus, xhr) { - - //weeey it was successful - console.log("Successful GET API request to " +apiBase+endpoint); - responce_headers = xhr.getAllResponseHeaders(); - - //aaand start the callback - //might have to check what "textStatus" actually is, jquery docs are a bit dodgy - callback(data,textStatus); - }, - error: function(xhr, textStatus, errorThrown) { - putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); - if ( xhr.status === 401 ) { - location.href = "/logout" - } - } - }); - }, - getArray: function (endpoint) { - // for GET API calls - // can be called with two or three parameters - // endpoint, callback - // or - // endpoint, queryData, callback - // where querydata is an object {["paramname1", "paramvalue1], ["paramname2","paramvalue2"]} - - // variables - var queryData, callback, - queryStringAppend = "?"; - - // check with which arguments we're supplied - if (typeof arguments[1] === "function") { - queryData = {}; - callback = arguments[1]; - } else { - queryData = arguments[1]; - callback = arguments[2]; - } - // build queryData Object into a URL Query String - for (var i in queryData) { - if (queryData.hasOwnProperty(i)) { - if (typeof queryData[i] === "string") { - queryStringAppend += queryData[i] + "&"; - } else if (typeof queryData[i] === "object") { - for ( var j in queryData[i].data ){ - queryStringAppend += queryData[i].name + "[]="+ queryData[i].data[j] + "&"; - } - } - } - } - // ajax function - $.ajax({ - url: apiBase + endpoint + queryStringAppend, - type: "GET", - headers: {"Authorization": "Bearer " + config.api_user_token}, - success: function(data, textStatus, xhr) { - - //weeey it was successful - console.log("Successful GET API request to " +apiBase+endpoint); - responce_headers = xhr.getAllResponseHeaders(); - - //aaand start the callback - //might have to check what "textStatus" actually is, jquery docs are a bit dodgy - callback(data,textStatus); - }, - error: function(xhr, textStatus, errorThrown) { - putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); - if ( xhr.status === 401 ) { - location.href = "/logout" - } - } - }); - }, - getOther: function (domainAndEndpoint) { - - var queryData, callback, - queryStringAppend = "?"; - - // check with which arguments we're supplied - if (typeof arguments[1] === "function") { - queryData = {}; - callback = arguments[1]; - } else { - queryData = arguments[1]; - callback = arguments[2]; - } - // build queryData Object into a URL Query String - for (var i in queryData) { - if (queryData.hasOwnProperty(i)) { - if (typeof queryData[i] === "string") { - queryStringAppend += queryData[i] + "&"; - } else if (typeof queryData[i] === "object") { - queryStringAppend += queryData[i].name + "="+ queryData[i].data + "&"; - } - } - } - // ajax function - $.ajax({ - url: domainAndEndpoint + queryStringAppend, - type: "GET", - success: function(data, textStatus, xhr) { - - //weeey it was successful - console.log("Successful GET API request to " +domainAndEndpoint); - responce_headers = xhr.getAllResponseHeaders(); - - //aaand start the callback - //might have to check what "textStatus" actually is, jquery docs are a bit dodgy - callback(data,textStatus); - }, - error: function(xhr, textStatus, errorThrown) { - putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); - if ( xhr.status === 401 ) { - location.href = "/logout" - } - } - }); - }, - post: function (endpoint) { - // for POST API calls - var postData, callback; - // check with which arguments we're supplied - if (typeof arguments[1] === "function") { - postData = {}; - callback = arguments[1]; - } else { - postData = arguments[1]; - callback = arguments[2]; - } - $.ajax({ - url: apiBase + endpoint, - type: "POST", - data: postData, - headers: {"Authorization": "Bearer " + config.api_user_token}, - success: function(data, textStatus) { - console.log("Successful POST API request to " +apiBase+endpoint); - callback(data,textStatus) - }, - error: function(xhr, textStatus, errorThrown) { - putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); - if ( xhr.status === 401 ) { - location.href = "/logout" - } - } - }); - }, - postMedia: function (endpoint) { - - // for POST API calls - var postData, callback; - // check with which arguments we're supplied - if (typeof arguments[1] === "function") { - postData = {}; - callback = arguments[1]; - } else { - postData = arguments[1]; - callback = arguments[2]; - } - - $.ajax({ - url: apiBase + endpoint, - type: "POST", - data: postData, - contentType: false, - processData: false, - headers: {"Authorization": "Bearer " + config.api_user_token}, - success: function(data, textStatus) { - console.log("Successful POST API request to " +apiBase+endpoint); - callback(data,textStatus) - }, - error: function(xhr, textStatus, errorThrown) { - putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); - if ( xhr.status === 401 ) { - location.href = "/logout" - } - } - }); - - }, - delete: function (endpoint, callback) { - // for DELETE API calls. - $.ajax({ - url: apiBase + endpoint, - type: "DELETE", - headers: {"Authorization": "Bearer " + config.api_user_token}, - success: function(data, textStatus) { - console.log("Successful DELETE API request to " +apiBase+endpoint); - callback(data,textStatus) - }, - error: function(xhr, textStatus, errorThrown) { - putMessage(`[${xhr.status}] ${xhr.responseJSON['error']}`); - if ( xhr.status === 401 ) { - location.href = "/logout" - } - } - }); - }, - stream: function (streamType, onData) { - // Event Stream Support - // websocket streaming is undocumented. i had to reverse engineer the fucking web client. - // streamType is either - // user for your local home TL and notifications - // public for your federated TL - // public:local for your home TL - // hashtag&tag=fuckdonaldtrump for the stream of #fuckdonaldtrump - // callback gets called whenever new data ist recieved - // callback { event: (eventtype), payload: {mastodon object as described in the api docs} } - // eventtype could be notification (=notification) or update (= new toot in TL) - var es = new WebSocket("wss://" + apiBase.substr(8) - +"streaming?access_token=" + config.api_user_token + "&stream=" + streamType); - var listener = function (event) { - console.log("Got Data from Stream " + streamType); - event = JSON.parse(event.data); - event.payload = JSON.parse(event.payload); - onData(event); - }; - es.onmessage = listener; - - - } - }; -}; - -// node.js -if (typeof module !== 'undefined') { module.exports = MastodonAPI; }; diff --git a/public_html/assets/js/replace_emoji.js b/public_html/assets/js/replace_emoji.js deleted file mode 100644 index a7980ca..0000000 --- a/public_html/assets/js/replace_emoji.js +++ /dev/null @@ -1,3475 +0,0 @@ -const emoji_dict = { ":hash:": "#⃣", - ":zero:": "0⃣", - ":one:": "1⃣", - ":two:": "2⃣", - ":three:": "3⃣", - ":four:": "4⃣", - ":five:": "5⃣", - ":six:": "6⃣", - ":seven:": "7⃣", - ":eight:": "8⃣", - ":nine:": "9⃣", - ":copyright:": "©", - ":registered:": "®", - ":bangbang:": "‼", - ":interrobang:": "⁉", - ":tm:": "™", - ":information_source:": "ℹ", - ":left_right_arrow:": "↔", - ":arrow_up_down:": "↕", - ":arrow_upper_left:": "↖", - ":third_place:": "🥉", - ":third_place_medal:": "🥉", - ":arrow_upper_right:": "↗", - ":arrow_lower_right:": "↘", - ":arrow_lower_left:": "↙", - ":second_place:": "🥈", - ":second_place_medal:": "🥈", - ":leftwards_arrow_with_hook:": "↩", - ":arrow_right_hook:": "↪", - ":watch:": "⌚", - ":hourglass:": "⌛", - ":fast_forward:": "⏩", - ":rewind:": "⏪", - ":arrow_double_up:": "⏫", - ":arrow_double_down:": "⏬", - ":alarm_clock:": "⏰", - ":hourglass_flowing_sand:": "⏳", - ":m:": "Ⓜ", - ":black_small_square:": "▪", - ":white_small_square:": "▫", - ":arrow_forward:": "▶", - ":arrow_backward:": "◀", - ":white_medium_square:": "◻", - ":black_medium_square:": "◼", - ":white_medium_small_square:": "◽", - ":black_medium_small_square:": "◾", - ":sunny:": "☀", - ":cloud:": "☁", - ":telephone:": "☎", - ":ballot_box_with_check:": "☑", - ":umbrella:": "☔", - ":coffee:": "☕", - ":point_up:": "☝", - ":relaxed:": "☺", - ":aries:": "♈", - ":first_place:": "🥇", - ":first_place_medal:": "🥇", - ":taurus:": "♉", - ":fencer:": "🤺", - ":fencing:": "🤺", - ":gemini:": "♊", - ":cancer:": "♋", - ":goal:": "🥅", - ":goal_net:": "🥅", - ":leo:": "♌", - ":asterisk_symbol:": "*", - ":virgo:": "♍", - ":handball:": "🤾", - ":libra:": "♎", - ":regional_indicator_z:": "🇿", - ":water_polo:": "🤽", - ":scorpius:": "♏", - ":sagittarius:": "♐", - ":martial_arts_uniform:": "🥋", - ":karate_uniform:": "🥋", - ":capricorn:": "♑", - ":boxing_glove:": "🥊", - ":boxing_gloves:": "🥊", - ":aquarius:": "♒", - ":wrestlers:": "🤼", - ":wrestling:": "🤼", - ":pisces:": "♓", - ":spades:": "♠", - ":clubs:": "♣", - ":hearts:": "♥", - ":diamonds:": "♦", - ":hotsprings:": "♨", - ":recycle:": "♻", - ":juggling:": "🤹", - ":juggler:": "🤹", - ":wheelchair:": "♿", - ":anchor:": "⚓", - ":warning:": "⚠", - ":zap:": "⚡", - ":white_circle:": "⚪", - ":black_circle:": "⚫", - ":soccer:": "⚽", - ":baseball:": "⚾", - ":snowman:": "⛄", - ":partly_sunny:": "⛅", - ":ophiuchus:": "⛎", - ":cartwheel:": "🤸", - ":person_doing_cartwheel:": "🤸", - ":no_entry:": "⛔", - ":church:": "⛪", - ":fountain:": "⛲", - ":canoe:": "🛶", - ":kayak:": "🛶", - ":golf:": "⛳", - ":sailboat:": "⛵", - ":tent:": "⛺", - ":fuelpump:": "⛽", - ":scissors:": "✂", - ":white_check_mark:": "✅", - ":airplane:": "✈", - ":envelope:": "✉", - ":fist:": "✊", - ":raised_hand:": "✋", - ":v:": "✌", - ":pencil2:": "✏", - ":black_nib:": "✒", - ":heavy_check_mark:": "✔", - ":heavy_multiplication_x:": "✖", - ":sparkles:": "✨", - ":eight_spoked_asterisk:": "✳", - ":eight_pointed_black_star:": "✴", - ":snowflake:": "❄", - ":sparkle:": "❇", - ":x:": "❌", - ":negative_squared_cross_mark:": "❎", - ":question:": "❓", - ":grey_question:": "❔", - ":motor_scooter:": "🛵", - ":motorbike:": "🛵", - ":grey_exclamation:": "❕", - ":exclamation:": "❗", - ":heart:": "❤", - ":heavy_plus_sign:": "➕", - ":heavy_minus_sign:": "➖", - ":heavy_division_sign:": "➗", - ":arrow_right:": "➡", - ":curly_loop:": "➰", - ":arrow_heading_up:": "⤴", - ":arrow_heading_down:": "⤵", - ":arrow_left:": "⬅", - ":arrow_up:": "⬆", - ":scooter:": "🛴", - ":arrow_down:": "⬇", - ":black_large_square:": "⬛", - ":white_large_square:": "⬜", - ":star:": "⭐", - ":o:": "⭕", - ":wavy_dash:": "〰", - ":part_alternation_mark:": "〽", - ":congratulations:": "㊗", - ":shopping_cart:": "🛒", - ":shopping_trolley:": "🛒", - ":secret:": "㊙", - ":mahjong:": "🀄", - ":black_joker:": "🃏", - ":a:": "🅰", - ":b:": "🅱", - ":o2:": "🅾", - ":parking:": "🅿", - ":octagonal_sign:": "🛑", - ":stop_sign:": "🛑", - ":ab:": "🆎", - ":cl:": "🆑", - ":regional_indicator_y:": "🇾", - ":cool:": "🆒", - ":free:": "🆓", - ":id:": "🆔", - ":new:": "🆕", - ":ng:": "🆖", - ":ok:": "🆗", - ":sos:": "🆘", - ":spoon:": "🥄", - ":up:": "🆙", - ":vs:": "🆚", - ":flag_cn:": "🇨🇳", - ":cn:": "🇨🇳", - ":flag_de:": "🇩🇪", - ":de:": "🇩🇪", - ":flag_es:": "🇪🇸", - ":es:": "🇪🇸", - ":flag_fr:": "🇫🇷", - ":fr:": "🇫🇷", - ":flag_gb:": "🇬🇧", - ":gb:": "🇬🇧", - ":champagne_glass:": "🥂", - ":clinking_glass:": "🥂", - ":tumbler_glass:": "🥃", - ":whisky:": "🥃", - ":flag_it:": "🇮🇹", - ":it:": "🇮🇹", - ":flag_jp:": "🇯🇵", - ":jp:": "🇯🇵", - ":flag_kr:": "🇰🇷", - ":kr:": "🇰🇷", - ":flag_us:": "🇺🇸", - ":us:": "🇺🇸", - ":flag_ru:": "🇷🇺", - ":ru:": "🇷🇺", - ":koko:": "🈁", - ":sa:": "🈂", - ":u7121:": "🈚", - ":u6307:": "🈯", - ":stuffed_flatbread:": "🥙", - ":stuffed_pita:": "🥙", - ":u7981:": "🈲", - ":u7a7a:": "🈳", - ":u5408:": "🈴", - ":u6e80:": "🈵", - ":u6709:": "🈶", - ":shallow_pan_of_food:": "🥘", - ":paella:": "🥘", - ":u6708:": "🈷", - ":u7533:": "🈸", - ":u5272:": "🈹", - ":salad:": "🥗", - ":green_salad:": "🥗", - ":u55b6:": "🈺", - ":ideograph_advantage:": "🉐", - ":accept:": "🉑", - ":cyclone:": "🌀", - ":french_bread:": "🥖", - ":baguette_bread:": "🥖", - ":foggy:": "🌁", - ":closed_umbrella:": "🌂", - ":night_with_stars:": "🌃", - ":sunrise_over_mountains:": "🌄", - ":sunrise:": "🌅", - ":city_dusk:": "🌆", - ":carrot:": "🥕", - ":city_sunset:": "🌇", - ":city_sunrise:": "🌇", - ":rainbow:": "🌈", - ":potato:": "🥔", - ":bridge_at_night:": "🌉", - ":ocean:": "🌊", - ":volcano:": "🌋", - ":milky_way:": "🌌", - ":earth_asia:": "🌏", - ":new_moon:": "🌑", - ":bacon:": "🥓", - ":first_quarter_moon:": "🌓", - ":waxing_gibbous_moon:": "🌔", - ":full_moon:": "🌕", - ":crescent_moon:": "🌙", - ":first_quarter_moon_with_face:": "🌛", - ":star2:": "🌟", - ":cucumber:": "🥒", - ":stars:": "🌠", - ":chestnut:": "🌰", - ":avocado:": "🥑", - ":seedling:": "🌱", - ":palm_tree:": "🌴", - ":cactus:": "🌵", - ":tulip:": "🌷", - ":cherry_blossom:": "🌸", - ":rose:": "🌹", - ":hibiscus:": "🌺", - ":sunflower:": "🌻", - ":blossom:": "🌼", - ":corn:": "🌽", - ":croissant:": "🥐", - ":ear_of_rice:": "🌾", - ":herb:": "🌿", - ":four_leaf_clover:": "🍀", - ":maple_leaf:": "🍁", - ":fallen_leaf:": "🍂", - ":leaves:": "🍃", - ":mushroom:": "🍄", - ":tomato:": "🍅", - ":eggplant:": "🍆", - ":grapes:": "🍇", - ":melon:": "🍈", - ":watermelon:": "🍉", - ":tangerine:": "🍊", - ":wilted_rose:": "🥀", - ":wilted_flower:": "🥀", - ":banana:": "🍌", - ":pineapple:": "🍍", - ":apple:": "🍎", - ":green_apple:": "🍏", - ":peach:": "🍑", - ":cherries:": "🍒", - ":strawberry:": "🍓", - ":rhino:": "🦏", - ":rhinoceros:": "🦏", - ":hamburger:": "🍔", - ":pizza:": "🍕", - ":meat_on_bone:": "🍖", - ":lizard:": "🦎", - ":poultry_leg:": "🍗", - ":rice_cracker:": "🍘", - ":rice_ball:": "🍙", - ":gorilla:": "🦍", - ":rice:": "🍚", - ":curry:": "🍛", - ":deer:": "🦌", - ":ramen:": "🍜", - ":spaghetti:": "🍝", - ":bread:": "🍞", - ":fries:": "🍟", - ":butterfly:": "🦋", - ":sweet_potato:": "🍠", - ":dango:": "🍡", - ":fox:": "🦊", - ":fox_face:": "🦊", - ":oden:": "🍢", - ":sushi:": "🍣", - ":owl:": "🦉", - ":fried_shrimp:": "🍤", - ":fish_cake:": "🍥", - ":shark:": "🦈", - ":icecream:": "🍦", - ":bat:": "🦇", - ":shaved_ice:": "🍧", - ":regional_indicator_x:": "🇽", - ":ice_cream:": "🍨", - ":duck:": "🦆", - ":doughnut:": "🍩", - ":eagle:": "🦅", - ":cookie:": "🍪", - ":black_heart:": "🖤", - ":chocolate_bar:": "🍫", - ":candy:": "🍬", - ":lollipop:": "🍭", - ":custard:": "🍮", - ":pudding:": "🍮", - ":flan:": "🍮", - ":honey_pot:": "🍯", - ":fingers_crossed:": "🤞", - ":hand_with_index_and_middle_finger_crossed:": "🤞", - ":cake:": "🍰", - ":bento:": "🍱", - ":stew:": "🍲", - ":handshake:": "🤝", - ":shaking_hands:": "🤝", - ":cooking:": "🍳", - ":fork_and_knife:": "🍴", - ":tea:": "🍵", - ":sake:": "🍶", - ":wine_glass:": "🍷", - ":cocktail:": "🍸", - ":tropical_drink:": "🍹", - ":beer:": "🍺", - ":beers:": "🍻", - ":ribbon:": "🎀", - ":gift:": "🎁", - ":birthday:": "🎂", - ":jack_o_lantern:": "🎃", - ":left_facing_fist:": "🤛", - ":left_fist:": "🤛", - ":right_facing_fist:": "🤜", - ":right_fist:": "🤜", - ":christmas_tree:": "🎄", - ":santa:": "🎅", - ":fireworks:": "🎆", - ":raised_back_of_hand:": "🤚", - ":back_of_hand:": "🤚", - ":sparkler:": "🎇", - ":balloon:": "🎈", - ":tada:": "🎉", - ":confetti_ball:": "🎊", - ":tanabata_tree:": "🎋", - ":crossed_flags:": "🎌", - ":call_me:": "🤙", - ":call_me_hand:": "🤙", - ":bamboo:": "🎍", - ":man_dancing:": "🕺", - ":male_dancer:": "🕺", - ":dolls:": "🎎", - ":selfie:": "🤳", - ":flags:": "🎏", - ":pregnant_woman:": "🤰", - ":expecting_woman:": "🤰", - ":wind_chime:": "🎐", - ":face_palm:": "🤦", - ":facepalm:": "🤦", - ":shrug:": "🤷", - ":rice_scene:": "🎑", - ":school_satchel:": "🎒", - ":mortar_board:": "🎓", - ":carousel_horse:": "🎠", - ":ferris_wheel:": "🎡", - ":roller_coaster:": "🎢", - ":fishing_pole_and_fish:": "🎣", - ":microphone:": "🎤", - ":pound_symbol:": "#", - ":movie_camera:": "🎥", - ":cinema:": "🎦", - ":headphones:": "🎧", - ":mrs_claus:": "🤶", - ":mother_christmas:": "🤶", - ":art:": "🎨", - ":man_in_tuxedo:": "🤵", - ":tophat:": "🎩", - ":circus_tent:": "🎪", - ":prince:": "🤴", - ":ticket:": "🎫", - ":clapper:": "🎬", - ":performing_arts:": "🎭", - ":sneezing_face:": "🤧", - ":sneeze:": "🤧", - ":video_game:": "🎮", - ":dart:": "🎯", - ":slot_machine:": "🎰", - ":8ball:": "🎱", - ":game_die:": "🎲", - ":bowling:": "🎳", - ":flower_playing_cards:": "🎴", - ":lying_face:": "🤥", - ":liar:": "🤥", - ":musical_note:": "🎵", - ":notes:": "🎶", - ":saxophone:": "🎷", - ":drooling_face:": "🤤", - ":drool:": "🤤", - ":guitar:": "🎸", - ":musical_keyboard:": "🎹", - ":trumpet:": "🎺", - ":rofl:": "🤣", - ":rolling_on_the_floor_laughing:": "🤣", - ":violin:": "🎻", - ":musical_score:": "🎼", - ":running_shirt_with_sash:": "🎽", - ":nauseated_face:": "🤢", - ":sick:": "🤢", - ":tennis:": "🎾", - ":ski:": "🎿", - ":basketball:": "🏀", - ":checkered_flag:": "🏁", - ":clown:": "🤡", - ":clown_face:": "🤡", - ":snowboarder:": "🏂", - ":runner:": "🏃", - ":surfer:": "🏄", - ":trophy:": "🏆", - ":football:": "🏈", - ":swimmer:": "🏊", - ":house:": "🏠", - ":house_with_garden:": "🏡", - ":office:": "🏢", - ":post_office:": "🏣", - ":hospital:": "🏥", - ":bank:": "🏦", - ":atm:": "🏧", - ":hotel:": "🏨", - ":love_hotel:": "🏩", - ":convenience_store:": "🏪", - ":school:": "🏫", - ":department_store:": "🏬", - ":cowboy:": "🤠", - ":face_with_cowboy_hat:": "🤠", - ":factory:": "🏭", - ":izakaya_lantern:": "🏮", - ":japanese_castle:": "🏯", - ":european_castle:": "🏰", - ":snail:": "🐌", - ":snake:": "🐍", - ":racehorse:": "🐎", - ":sheep:": "🐑", - ":monkey:": "🐒", - ":chicken:": "🐔", - ":boar:": "🐗", - ":elephant:": "🐘", - ":octopus:": "🐙", - ":shell:": "🐚", - ":prince_tone1:": "🤴🏻", - ":bug:": "🐛", - ":ant:": "🐜", - ":bee:": "🐝", - ":beetle:": "🐞", - ":fish:": "🐟", - ":tropical_fish:": "🐠", - ":blowfish:": "🐡", - ":turtle:": "🐢", - ":hatching_chick:": "🐣", - ":baby_chick:": "🐤", - ":hatched_chick:": "🐥", - ":bird:": "🐦", - ":penguin:": "🐧", - ":koala:": "🐨", - ":poodle:": "🐩", - ":camel:": "🐫", - ":dolphin:": "🐬", - ":mouse:": "🐭", - ":cow:": "🐮", - ":tiger:": "🐯", - ":rabbit:": "🐰", - ":cat:": "🐱", - ":dragon_face:": "🐲", - ":whale:": "🐳", - ":horse:": "🐴", - ":monkey_face:": "🐵", - ":dog:": "🐶", - ":pig:": "🐷", - ":frog:": "🐸", - ":hamster:": "🐹", - ":wolf:": "🐺", - ":bear:": "🐻", - ":panda_face:": "🐼", - ":pig_nose:": "🐽", - ":feet:": "🐾", - ":paw_prints:": "🐾", - ":prince_tone2:": "🤴🏼", - ":eyes:": "👀", - ":ear:": "👂", - ":nose:": "👃", - ":lips:": "👄", - ":tongue:": "👅", - ":prince_tone3:": "🤴🏽", - ":point_up_2:": "👆", - ":point_down:": "👇", - ":point_left:": "👈", - ":point_right:": "👉", - ":punch:": "👊", - ":wave:": "👋", - ":ok_hand:": "👌", - ":thumbsup:": "👍", - ":+1:": "👍", - ":thumbup:": "👍", - ":thumbsdown:": "👎", - ":1:": "👎", - ":thumbdown:": "👎", - ":clap:": "👏", - ":open_hands:": "👐", - ":crown:": "👑", - ":womans_hat:": "👒", - ":eyeglasses:": "👓", - ":necktie:": "👔", - ":shirt:": "👕", - ":prince_tone4:": "🤴🏾", - ":jeans:": "👖", - ":dress:": "👗", - ":kimono:": "👘", - ":prince_tone5:": "🤴🏿", - ":bikini:": "👙", - ":womans_clothes:": "👚", - ":purse:": "👛", - ":handbag:": "👜", - ":pouch:": "👝", - ":mans_shoe:": "👞", - ":athletic_shoe:": "👟", - ":high_heel:": "👠", - ":sandal:": "👡", - ":boot:": "👢", - ":footprints:": "👣", - ":bust_in_silhouette:": "👤", - ":mrs_claus_tone1:": "🤶🏻", - ":mother_christmas_tone1:": "🤶🏻", - ":boy:": "👦", - ":girl:": "👧", - ":man:": "👨", - ":woman:": "👩", - ":family:": "👪", - ":couple:": "👫", - ":cop:": "👮", - ":dancers:": "👯", - ":bride_with_veil:": "👰", - ":person_with_blond_hair:": "👱", - ":man_with_gua_pi_mao:": "👲", - ":man_with_turban:": "👳", - ":older_man:": "👴", - ":older_woman:": "👵", - ":grandma:": "👵", - ":baby:": "👶", - ":construction_worker:": "👷", - ":princess:": "👸", - ":japanese_ogre:": "👹", - ":mrs_claus_tone2:": "🤶🏼", - ":mother_christmas_tone2:": "🤶🏼", - ":japanese_goblin:": "👺", - ":ghost:": "👻", - ":angel:": "👼", - ":alien:": "👽", - ":space_invader:": "👾", - ":mrs_claus_tone3:": "🤶🏽", - ":mother_christmas_tone3:": "🤶🏽", - ":imp:": "👿", - ":skull:": "💀", - ":skeleton:": "💀", - ":card_index:": "📇", - ":information_desk_person:": "💁", - ":guardsman:": "💂", - ":dancer:": "💃", - ":lipstick:": "💄", - ":nail_care:": "💅", - ":ledger:": "📒", - ":massage:": "💆", - ":notebook:": "📓", - ":haircut:": "💇", - ":notebook_with_decorative_cover:": "📔", - ":barber:": "💈", - ":closed_book:": "📕", - ":syringe:": "💉", - ":book:": "📖", - ":pill:": "💊", - ":green_book:": "📗", - ":kiss:": "💋", - ":blue_book:": "📘", - ":love_letter:": "💌", - ":orange_book:": "📙", - ":ring:": "💍", - ":books:": "📚", - ":gem:": "💎", - ":mrs_claus_tone4:": "🤶🏾", - ":mother_christmas_tone4:": "🤶🏾", - ":name_badge:": "📛", - ":couplekiss:": "💏", - ":scroll:": "📜", - ":bouquet:": "💐", - ":pencil:": "📝", - ":mrs_claus_tone5:": "🤶🏿", - ":mother_christmas_tone5:": "🤶🏿", - ":couple_with_heart:": "💑", - ":telephone_receiver:": "📞", - ":wedding:": "💒", - ":pager:": "📟", - ":fax:": "📠", - ":heartbeat:": "💓", - ":satellite:": "📡", - ":loudspeaker:": "📢", - ":man_in_tuxedo_tone1:": "🤵🏻", - ":tuxedo_tone1:": "🤵🏻", - ":broken_heart:": "💔", - ":mega:": "📣", - ":outbox_tray:": "📤", - ":two_hearts:": "💕", - ":inbox_tray:": "📥", - ":package:": "📦", - ":man_in_tuxedo_tone2:": "🤵🏼", - ":tuxedo_tone2:": "🤵🏼", - ":sparkling_heart:": "💖", - ":email:": "📧", - ":incoming_envelope:": "📨", - ":heartpulse:": "💗", - ":man_in_tuxedo_tone3:": "🤵🏽", - ":tuxedo_tone3:": "🤵🏽", - ":envelope_with_arrow:": "📩", - ":mailbox_closed:": "📪", - ":cupid:": "💘", - ":mailbox:": "📫", - ":man_in_tuxedo_tone4:": "🤵🏾", - ":tuxedo_tone4:": "🤵🏾", - ":postbox:": "📮", - ":blue_heart:": "💙", - ":newspaper:": "📰", - ":man_in_tuxedo_tone5:": "🤵🏿", - ":tuxedo_tone5:": "🤵🏿", - ":iphone:": "📱", - ":green_heart:": "💚", - ":shrug_tone1:": "🤷🏻", - ":calling:": "📲", - ":vibration_mode:": "📳", - ":yellow_heart:": "💛", - ":shrug_tone2:": "🤷🏼", - ":mobile_phone_off:": "📴", - ":signal_strength:": "📶", - ":shrug_tone3:": "🤷🏽", - ":purple_heart:": "💜", - ":shrug_tone4:": "🤷🏾", - ":camera:": "📷", - ":video_camera:": "📹", - ":gift_heart:": "💝", - ":tv:": "📺", - ":shrug_tone5:": "🤷🏿", - ":radio:": "📻", - ":revolving_hearts:": "💞", - ":vhs:": "📼", - ":face_palm_tone1:": "🤦🏻", - ":facepalm_tone1:": "🤦🏻", - ":arrows_clockwise:": "🔃", - ":heart_decoration:": "💟", - ":loud_sound:": "🔊", - ":battery:": "🔋", - ":diamond_shape_with_a_dot_inside:": "💠", - ":electric_plug:": "🔌", - ":mag:": "🔍", - ":face_palm_tone2:": "🤦🏼", - ":facepalm_tone2:": "🤦🏼", - ":bulb:": "💡", - ":mag_right:": "🔎", - ":lock_with_ink_pen:": "🔏", - ":anger:": "💢", - ":closed_lock_with_key:": "🔐", - ":key:": "🔑", - ":bomb:": "💣", - ":lock:": "🔒", - ":unlock:": "🔓", - ":zzz:": "💤", - ":bell:": "🔔", - ":bookmark:": "🔖", - ":boom:": "💥", - ":face_palm_tone3:": "🤦🏽", - ":facepalm_tone3:": "🤦🏽", - ":link:": "🔗", - ":radio_button:": "🔘", - ":sweat_drops:": "💦", - ":back:": "🔙", - ":end:": "🔚", - ":droplet:": "💧", - ":face_palm_tone4:": "🤦🏾", - ":facepalm_tone4:": "🤦🏾", - ":on:": "🔛", - ":soon:": "🔜", - ":dash:": "💨", - ":top:": "🔝", - ":underage:": "🔞", - ":poop:": "💩", - ":shit:": "💩", - ":hankey:": "💩", - ":poo:": "💩", - ":keycap_ten:": "🔟", - ":muscle:": "💪", - ":capital_abcd:": "🔠", - ":abcd:": "🔡", - ":dizzy:": "💫", - ":face_palm_tone5:": "🤦🏿", - ":facepalm_tone5:": "🤦🏿", - ":1234:": "🔢", - ":symbols:": "🔣", - ":speech_balloon:": "💬", - ":abc:": "🔤", - ":fire:": "🔥", - ":flame:": "🔥", - ":white_flower:": "💮", - ":flashlight:": "🔦", - ":wrench:": "🔧", - ":100:": "💯", - ":hammer:": "🔨", - ":nut_and_bolt:": "🔩", - ":moneybag:": "💰", - ":knife:": "🔪", - ":gun:": "🔫", - ":currency_exchange:": "💱", - ":pregnant_woman_tone1:": "🤰🏻", - ":expecting_woman_tone1:": "🤰🏻", - ":crystal_ball:": "🔮", - ":heavy_dollar_sign:": "💲", - ":six_pointed_star:": "🔯", - ":credit_card:": "💳", - ":beginner:": "🔰", - ":trident:": "🔱", - ":yen:": "💴", - ":pregnant_woman_tone2:": "🤰🏼", - ":expecting_woman_tone2:": "🤰🏼", - ":black_square_button:": "🔲", - ":white_square_button:": "🔳", - ":dollar:": "💵", - ":red_circle:": "🔴", - ":blue_circle:": "🔵", - ":money_with_wings:": "💸", - ":large_orange_diamond:": "🔶", - ":large_blue_diamond:": "🔷", - ":chart:": "💹", - ":pregnant_woman_tone3:": "🤰🏽", - ":expecting_woman_tone3:": "🤰🏽", - ":small_orange_diamond:": "🔸", - ":small_blue_diamond:": "🔹", - ":seat:": "💺", - ":small_red_triangle:": "🔺", - ":small_red_triangle_down:": "🔻", - ":computer:": "💻", - ":arrow_up_small:": "🔼", - ":briefcase:": "💼", - ":arrow_down_small:": "🔽", - ":clock1:": "🕐", - ":minidisc:": "💽", - ":clock2:": "🕑", - ":floppy_disk:": "💾", - ":pregnant_woman_tone4:": "🤰🏾", - ":expecting_woman_tone4:": "🤰🏾", - ":clock3:": "🕒", - ":cd:": "💿", - ":clock4:": "🕓", - ":dvd:": "📀", - ":clock5:": "🕔", - ":clock6:": "🕕", - ":file_folder:": "📁", - ":clock7:": "🕖", - ":clock8:": "🕗", - ":open_file_folder:": "📂", - ":clock9:": "🕘", - ":clock10:": "🕙", - ":page_with_curl:": "📃", - ":clock11:": "🕚", - ":clock12:": "🕛", - ":page_facing_up:": "📄", - ":mount_fuji:": "🗻", - ":tokyo_tower:": "🗼", - ":date:": "📅", - ":statue_of_liberty:": "🗽", - ":japan:": "🗾", - ":calendar:": "📆", - ":moyai:": "🗿", - ":grin:": "😁", - ":joy:": "😂", - ":smiley:": "😃", - ":chart_with_upwards_trend:": "📈", - ":smile:": "😄", - ":sweat_smile:": "😅", - ":chart_with_downwards_trend:": "📉", - ":laughing:": "😆", - ":satisfied:": "😆", - ":wink:": "😉", - ":bar_chart:": "📊", - ":blush:": "😊", - ":yum:": "😋", - ":clipboard:": "📋", - ":relieved:": "😌", - ":heart_eyes:": "😍", - ":pushpin:": "📌", - ":smirk:": "😏", - ":unamused:": "😒", - ":round_pushpin:": "📍", - ":sweat:": "😓", - ":pensive:": "😔", - ":paperclip:": "📎", - ":confounded:": "😖", - ":kissing_heart:": "😘", - ":pregnant_woman_tone5:": "🤰🏿", - ":expecting_woman_tone5:": "🤰🏿", - ":straight_ruler:": "📏", - ":kissing_closed_eyes:": "😚", - ":stuck_out_tongue_winking_eye:": "😜", - ":triangular_ruler:": "📐", - ":stuck_out_tongue_closed_eyes:": "😝", - ":disappointed:": "😞", - ":bookmark_tabs:": "📑", - ":angry:": "😠", - ":rage:": "😡", - ":cry:": "😢", - ":persevere:": "😣", - ":triumph:": "😤", - ":disappointed_relieved:": "😥", - ":fearful:": "😨", - ":weary:": "😩", - ":sleepy:": "😪", - ":tired_face:": "😫", - ":sob:": "😭", - ":cold_sweat:": "😰", - ":scream:": "😱", - ":astonished:": "😲", - ":flushed:": "😳", - ":dizzy_face:": "😵", - ":mask:": "😷", - ":smile_cat:": "😸", - ":joy_cat:": "😹", - ":smiley_cat:": "😺", - ":heart_eyes_cat:": "😻", - ":smirk_cat:": "😼", - ":kissing_cat:": "😽", - ":pouting_cat:": "😾", - ":crying_cat_face:": "😿", - ":scream_cat:": "🙀", - ":no_good:": "🙅", - ":ok_woman:": "🙆", - ":bow:": "🙇", - ":see_no_evil:": "🙈", - ":man_dancing_tone1:": "🕺🏻", - ":male_dancer_tone1:": "🕺🏻", - ":hear_no_evil:": "🙉", - ":speak_no_evil:": "🙊", - ":man_dancing_tone2:": "🕺🏼", - ":male_dancer_tone2:": "🕺🏼", - ":raising_hand:": "🙋", - ":raised_hands:": "🙌", - ":person_frowning:": "🙍", - ":person_with_pouting_face:": "🙎", - ":pray:": "🙏", - ":rocket:": "🚀", - ":railway_car:": "🚃", - ":bullettrain_side:": "🚄", - ":bullettrain_front:": "🚅", - ":metro:": "🚇", - ":station:": "🚉", - ":bus:": "🚌", - ":busstop:": "🚏", - ":ambulance:": "🚑", - ":fire_engine:": "🚒", - ":police_car:": "🚓", - ":taxi:": "🚕", - ":red_car:": "🚗", - ":blue_car:": "🚙", - ":truck:": "🚚", - ":ship:": "🚢", - ":speedboat:": "🚤", - ":traffic_light:": "🚥", - ":construction:": "🚧", - ":rotating_light:": "🚨", - ":triangular_flag_on_post:": "🚩", - ":door:": "🚪", - ":man_dancing_tone3:": "🕺🏽", - ":male_dancer_tone3:": "🕺🏽", - ":no_entry_sign:": "🚫", - ":smoking:": "🚬", - ":no_smoking:": "🚭", - ":bike:": "🚲", - ":walking:": "🚶", - ":mens:": "🚹", - ":womens:": "🚺", - ":man_dancing_tone4:": "🕺🏾", - ":male_dancer_tone4:": "🕺🏾", - ":restroom:": "🚻", - ":baby_symbol:": "🚼", - ":man_dancing_tone5:": "🕺🏿", - ":male_dancer_tone5:": "🕺🏿", - ":toilet:": "🚽", - ":wc:": "🚾", - ":selfie_tone1:": "🤳🏻", - ":bath:": "🛀", - ":metal:": "🤘", - ":sign_of_the_horns:": "🤘", - ":grinning:": "😀", - ":innocent:": "😇", - ":smiling_imp:": "😈", - ":sunglasses:": "😎", - ":neutral_face:": "😐", - ":expressionless:": "😑", - ":confused:": "😕", - ":kissing:": "😗", - ":selfie_tone2:": "🤳🏼", - ":kissing_smiling_eyes:": "😙", - ":stuck_out_tongue:": "😛", - ":worried:": "😟", - ":frowning:": "😦", - ":anguished:": "😧", - ":grimacing:": "😬", - ":open_mouth:": "😮", - ":hushed:": "😯", - ":sleeping:": "😴", - ":no_mouth:": "😶", - ":helicopter:": "🚁", - ":steam_locomotive:": "🚂", - ":train2:": "🚆", - ":light_rail:": "🚈", - ":tram:": "🚊", - ":oncoming_bus:": "🚍", - ":trolleybus:": "🚎", - ":minibus:": "🚐", - ":oncoming_police_car:": "🚔", - ":oncoming_taxi:": "🚖", - ":oncoming_automobile:": "🚘", - ":articulated_lorry:": "🚛", - ":selfie_tone3:": "🤳🏽", - ":tractor:": "🚜", - ":monorail:": "🚝", - ":mountain_railway:": "🚞", - ":suspension_railway:": "🚟", - ":mountain_cableway:": "🚠", - ":aerial_tramway:": "🚡", - ":rowboat:": "🚣", - ":vertical_traffic_light:": "🚦", - ":selfie_tone4:": "🤳🏾", - ":put_litter_in_its_place:": "🚮", - ":do_not_litter:": "🚯", - ":selfie_tone5:": "🤳🏿", - ":potable_water:": "🚰", - ":nonpotable_water:": "🚱", - ":no_bicycles:": "🚳", - ":fingers_crossed_tone1:": "🤞🏻", - ":hand_with_index_and_middle_fingers_crossed_tone1:": "🤞🏻", - ":bicyclist:": "🚴", - ":mountain_bicyclist:": "🚵", - ":no_pedestrians:": "🚷", - ":children_crossing:": "🚸", - ":shower:": "🚿", - ":bathtub:": "🛁", - ":passport_control:": "🛂", - ":fingers_crossed_tone2:": "🤞🏼", - ":hand_with_index_and_middle_fingers_crossed_tone2:": "🤞🏼", - ":customs:": "🛃", - ":baggage_claim:": "🛄", - ":fingers_crossed_tone3:": "🤞🏽", - ":hand_with_index_and_middle_fingers_crossed_tone3:": "🤞🏽", - ":left_luggage:": "🛅", - ":earth_africa:": "🌍", - ":earth_americas:": "🌎", - ":globe_with_meridians:": "🌐", - ":waxing_crescent_moon:": "🌒", - ":waning_gibbous_moon:": "🌖", - ":last_quarter_moon:": "🌗", - ":waning_crescent_moon:": "🌘", - ":new_moon_with_face:": "🌚", - ":last_quarter_moon_with_face:": "🌜", - ":full_moon_with_face:": "🌝", - ":sun_with_face:": "🌞", - ":evergreen_tree:": "🌲", - ":deciduous_tree:": "🌳", - ":lemon:": "🍋", - ":fingers_crossed_tone4:": "🤞🏾", - ":hand_with_index_and_middle_fingers_crossed_tone4:": "🤞🏾", - ":pear:": "🍐", - ":baby_bottle:": "🍼", - ":horse_racing:": "🏇", - ":rugby_football:": "🏉", - ":european_post_office:": "🏤", - ":rat:": "🐀", - ":mouse2:": "🐁", - ":ox:": "🐂", - ":water_buffalo:": "🐃", - ":cow2:": "🐄", - ":tiger2:": "🐅", - ":leopard:": "🐆", - ":rabbit2:": "🐇", - ":cat2:": "🐈", - ":dragon:": "🐉", - ":crocodile:": "🐊", - ":whale2:": "🐋", - ":ram:": "🐏", - ":goat:": "🐐", - ":rooster:": "🐓", - ":dog2:": "🐕", - ":pig2:": "🐖", - ":fingers_crossed_tone5:": "🤞🏿", - ":hand_with_index_and_middle_fingers_crossed_tone5:": "🤞🏿", - ":dromedary_camel:": "🐪", - ":busts_in_silhouette:": "👥", - ":two_men_holding_hands:": "👬", - ":two_women_holding_hands:": "👭", - ":thought_balloon:": "💭", - ":euro:": "💶", - ":call_me_tone1:": "🤙🏻", - ":call_me_hand_tone1:": "🤙🏻", - ":pound:": "💷", - ":mailbox_with_mail:": "📬", - ":mailbox_with_no_mail:": "📭", - ":call_me_tone2:": "🤙🏼", - ":call_me_hand_tone2:": "🤙🏼", - ":postal_horn:": "📯", - ":no_mobile_phones:": "📵", - ":twisted_rightwards_arrows:": "🔀", - ":repeat:": "🔁", - ":repeat_one:": "🔂", - ":arrows_counterclockwise:": "🔄", - ":call_me_tone3:": "🤙🏽", - ":call_me_hand_tone3:": "🤙🏽", - ":low_brightness:": "🔅", - ":high_brightness:": "🔆", - ":mute:": "🔇", - ":sound:": "🔉", - ":no_bell:": "🔕", - ":microscope:": "🔬", - ":telescope:": "🔭", - ":clock130:": "🕜", - ":clock230:": "🕝", - ":clock330:": "🕞", - ":clock430:": "🕟", - ":clock530:": "🕠", - ":clock630:": "🕡", - ":clock730:": "🕢", - ":clock830:": "🕣", - ":clock930:": "🕤", - ":clock1030:": "🕥", - ":clock1130:": "🕦", - ":clock1230:": "🕧", - ":speaker:": "🔈", - ":train:": "🚋", - ":loop:": "➿", - ":flag_af:": "🇦🇫", - ":af:": "🇦🇫", - ":flag_al:": "🇦🇱", - ":al:": "🇦🇱", - ":flag_dz:": "🇩🇿", - ":dz:": "🇩🇿", - ":flag_ad:": "🇦🇩", - ":ad:": "🇦🇩", - ":flag_ao:": "🇦🇴", - ":ao:": "🇦🇴", - ":flag_ag:": "🇦🇬", - ":ag:": "🇦🇬", - ":flag_ar:": "🇦🇷", - ":ar:": "🇦🇷", - ":flag_am:": "🇦🇲", - ":am:": "🇦🇲", - ":flag_au:": "🇦🇺", - ":au:": "🇦🇺", - ":flag_at:": "🇦🇹", - ":at:": "🇦🇹", - ":flag_az:": "🇦🇿", - ":az:": "🇦🇿", - ":flag_bs:": "🇧🇸", - ":bs:": "🇧🇸", - ":flag_bh:": "🇧🇭", - ":bh:": "🇧🇭", - ":flag_bd:": "🇧🇩", - ":bd:": "🇧🇩", - ":flag_bb:": "🇧🇧", - ":bb:": "🇧🇧", - ":flag_by:": "🇧🇾", - ":by:": "🇧🇾", - ":flag_be:": "🇧🇪", - ":be:": "🇧🇪", - ":flag_bz:": "🇧🇿", - ":bz:": "🇧🇿", - ":flag_bj:": "🇧🇯", - ":bj:": "🇧🇯", - ":flag_bt:": "🇧🇹", - ":bt:": "🇧🇹", - ":flag_bo:": "🇧🇴", - ":bo:": "🇧🇴", - ":flag_ba:": "🇧🇦", - ":ba:": "🇧🇦", - ":flag_bw:": "🇧🇼", - ":bw:": "🇧🇼", - ":flag_br:": "🇧🇷", - ":br:": "🇧🇷", - ":flag_bn:": "🇧🇳", - ":bn:": "🇧🇳", - ":flag_bg:": "🇧🇬", - ":bg:": "🇧🇬", - ":flag_bf:": "🇧🇫", - ":bf:": "🇧🇫", - ":flag_bi:": "🇧🇮", - ":bi:": "🇧🇮", - ":flag_kh:": "🇰🇭", - ":kh:": "🇰🇭", - ":flag_cm:": "🇨🇲", - ":cm:": "🇨🇲", - ":flag_ca:": "🇨🇦", - ":ca:": "🇨🇦", - ":flag_cv:": "🇨🇻", - ":cv:": "🇨🇻", - ":call_me_tone4:": "🤙🏾", - ":call_me_hand_tone4:": "🤙🏾", - ":flag_cf:": "🇨🇫", - ":cf:": "🇨🇫", - ":flag_td:": "🇹🇩", - ":td:": "🇹🇩", - ":flag_cl:": "🇨🇱", - ":chile:": "🇨🇱", - ":flag_co:": "🇨🇴", - ":co:": "🇨🇴", - ":flag_km:": "🇰🇲", - ":km:": "🇰🇲", - ":flag_cr:": "🇨🇷", - ":cr:": "🇨🇷", - ":flag_ci:": "🇨🇮", - ":ci:": "🇨🇮", - ":flag_hr:": "🇭🇷", - ":hr:": "🇭🇷", - ":flag_cu:": "🇨🇺", - ":cu:": "🇨🇺", - ":flag_cy:": "🇨🇾", - ":cy:": "🇨🇾", - ":flag_cz:": "🇨🇿", - ":cz:": "🇨🇿", - ":call_me_tone5:": "🤙🏿", - ":call_me_hand_tone5:": "🤙🏿", - ":flag_cd:": "🇨🇩", - ":congo:": "🇨🇩", - ":left_facing_fist_tone1:": "🤛🏻", - ":left_fist_tone1:": "🤛🏻", - ":flag_dk:": "🇩🇰", - ":dk:": "🇩🇰", - ":flag_dj:": "🇩🇯", - ":dj:": "🇩🇯", - ":flag_dm:": "🇩🇲", - ":dm:": "🇩🇲", - ":flag_do:": "🇩🇴", - ":do:": "🇩🇴", - ":flag_tl:": "🇹🇱", - ":tl:": "🇹🇱", - ":flag_ec:": "🇪🇨", - ":ec:": "🇪🇨", - ":flag_eg:": "🇪🇬", - ":eg:": "🇪🇬", - ":flag_sv:": "🇸🇻", - ":sv:": "🇸🇻", - ":flag_gq:": "🇬🇶", - ":gq:": "🇬🇶", - ":flag_er:": "🇪🇷", - ":er:": "🇪🇷", - ":flag_ee:": "🇪🇪", - ":ee:": "🇪🇪", - ":flag_et:": "🇪🇹", - ":et:": "🇪🇹", - ":left_facing_fist_tone2:": "🤛🏼", - ":left_fist_tone2:": "🤛🏼", - ":flag_fj:": "🇫🇯", - ":fj:": "🇫🇯", - ":flag_fi:": "🇫🇮", - ":fi:": "🇫🇮", - ":flag_ga:": "🇬🇦", - ":ga:": "🇬🇦", - ":flag_gm:": "🇬🇲", - ":gm:": "🇬🇲", - ":flag_ge:": "🇬🇪", - ":ge:": "🇬🇪", - ":flag_gh:": "🇬🇭", - ":gh:": "🇬🇭", - ":flag_gr:": "🇬🇷", - ":gr:": "🇬🇷", - ":flag_gd:": "🇬🇩", - ":gd:": "🇬🇩", - ":flag_gt:": "🇬🇹", - ":gt:": "🇬🇹", - ":flag_gn:": "🇬🇳", - ":gn:": "🇬🇳", - ":flag_gw:": "🇬🇼", - ":gw:": "🇬🇼", - ":flag_gy:": "🇬🇾", - ":gy:": "🇬🇾", - ":flag_ht:": "🇭🇹", - ":ht:": "🇭🇹", - ":flag_hn:": "🇭🇳", - ":hn:": "🇭🇳", - ":flag_hu:": "🇭🇺", - ":hu:": "🇭🇺", - ":flag_is:": "🇮🇸", - ":is:": "🇮🇸", - ":flag_in:": "🇮🇳", - ":in:": "🇮🇳", - ":flag_id:": "🇮🇩", - ":indonesia:": "🇮🇩", - ":flag_ir:": "🇮🇷", - ":ir:": "🇮🇷", - ":flag_iq:": "🇮🇶", - ":iq:": "🇮🇶", - ":flag_ie:": "🇮🇪", - ":ie:": "🇮🇪", - ":flag_il:": "🇮🇱", - ":il:": "🇮🇱", - ":flag_jm:": "🇯🇲", - ":jm:": "🇯🇲", - ":flag_jo:": "🇯🇴", - ":jo:": "🇯🇴", - ":flag_kz:": "🇰🇿", - ":kz:": "🇰🇿", - ":flag_ke:": "🇰🇪", - ":ke:": "🇰🇪", - ":flag_ki:": "🇰🇮", - ":ki:": "🇰🇮", - ":flag_xk:": "🇽🇰", - ":xk:": "🇽🇰", - ":flag_kw:": "🇰🇼", - ":kw:": "🇰🇼", - ":flag_kg:": "🇰🇬", - ":kg:": "🇰🇬", - ":left_facing_fist_tone3:": "🤛🏽", - ":left_fist_tone3:": "🤛🏽", - ":flag_la:": "🇱🇦", - ":la:": "🇱🇦", - ":flag_lv:": "🇱🇻", - ":lv:": "🇱🇻", - ":flag_lb:": "🇱🇧", - ":lb:": "🇱🇧", - ":flag_ls:": "🇱🇸", - ":ls:": "🇱🇸", - ":flag_lr:": "🇱🇷", - ":lr:": "🇱🇷", - ":flag_ly:": "🇱🇾", - ":ly:": "🇱🇾", - ":flag_li:": "🇱🇮", - ":li:": "🇱🇮", - ":flag_lt:": "🇱🇹", - ":lt:": "🇱🇹", - ":flag_lu:": "🇱🇺", - ":lu:": "🇱🇺", - ":flag_mk:": "🇲🇰", - ":mk:": "🇲🇰", - ":flag_mg:": "🇲🇬", - ":mg:": "🇲🇬", - ":flag_mw:": "🇲🇼", - ":mw:": "🇲🇼", - ":flag_my:": "🇲🇾", - ":my:": "🇲🇾", - ":flag_mv:": "🇲🇻", - ":mv:": "🇲🇻", - ":flag_ml:": "🇲🇱", - ":ml:": "🇲🇱", - ":flag_mt:": "🇲🇹", - ":mt:": "🇲🇹", - ":flag_mh:": "🇲🇭", - ":mh:": "🇲🇭", - ":flag_mr:": "🇲🇷", - ":mr:": "🇲🇷", - ":flag_mu:": "🇲🇺", - ":mu:": "🇲🇺", - ":flag_mx:": "🇲🇽", - ":mx:": "🇲🇽", - ":flag_fm:": "🇫🇲", - ":fm:": "🇫🇲", - ":flag_md:": "🇲🇩", - ":md:": "🇲🇩", - ":flag_mc:": "🇲🇨", - ":mc:": "🇲🇨", - ":flag_mn:": "🇲🇳", - ":mn:": "🇲🇳", - ":flag_me:": "🇲🇪", - ":me:": "🇲🇪", - ":flag_ma:": "🇲🇦", - ":ma:": "🇲🇦", - ":flag_mz:": "🇲🇿", - ":mz:": "🇲🇿", - ":flag_mm:": "🇲🇲", - ":mm:": "🇲🇲", - ":flag_na:": "🇳🇦", - ":na:": "🇳🇦", - ":flag_nr:": "🇳🇷", - ":nr:": "🇳🇷", - ":flag_np:": "🇳🇵", - ":np:": "🇳🇵", - ":flag_nl:": "🇳🇱", - ":nl:": "🇳🇱", - ":flag_nz:": "🇳🇿", - ":nz:": "🇳🇿", - ":flag_ni:": "🇳🇮", - ":ni:": "🇳🇮", - ":flag_ne:": "🇳🇪", - ":ne:": "🇳🇪", - ":flag_ng:": "🇳🇬", - ":nigeria:": "🇳🇬", - ":flag_kp:": "🇰🇵", - ":kp:": "🇰🇵", - ":flag_no:": "🇳🇴", - ":no:": "🇳🇴", - ":flag_om:": "🇴🇲", - ":om:": "🇴🇲", - ":flag_pk:": "🇵🇰", - ":pk:": "🇵🇰", - ":flag_pw:": "🇵🇼", - ":pw:": "🇵🇼", - ":flag_pa:": "🇵🇦", - ":pa:": "🇵🇦", - ":flag_pg:": "🇵🇬", - ":pg:": "🇵🇬", - ":left_facing_fist_tone4:": "🤛🏾", - ":left_fist_tone4:": "🤛🏾", - ":flag_py:": "🇵🇾", - ":py:": "🇵🇾", - ":flag_pe:": "🇵🇪", - ":pe:": "🇵🇪", - ":flag_ph:": "🇵🇭", - ":ph:": "🇵🇭", - ":flag_pl:": "🇵🇱", - ":pl:": "🇵🇱", - ":flag_pt:": "🇵🇹", - ":pt:": "🇵🇹", - ":flag_qa:": "🇶🇦", - ":qa:": "🇶🇦", - ":flag_tw:": "🇹🇼", - ":tw:": "🇹🇼", - ":flag_cg:": "🇨🇬", - ":cg:": "🇨🇬", - ":flag_ro:": "🇷🇴", - ":ro:": "🇷🇴", - ":flag_rw:": "🇷🇼", - ":rw:": "🇷🇼", - ":flag_kn:": "🇰🇳", - ":kn:": "🇰🇳", - ":flag_lc:": "🇱🇨", - ":lc:": "🇱🇨", - ":flag_vc:": "🇻🇨", - ":vc:": "🇻🇨", - ":flag_ws:": "🇼🇸", - ":ws:": "🇼🇸", - ":flag_sm:": "🇸🇲", - ":sm:": "🇸🇲", - ":flag_st:": "🇸🇹", - ":st:": "🇸🇹", - ":flag_sa:": "🇸🇦", - ":saudiarabia:": "🇸🇦", - ":saudi:": "🇸🇦", - ":left_facing_fist_tone5:": "🤛🏿", - ":left_fist_tone5:": "🤛🏿", - ":flag_sn:": "🇸🇳", - ":sn:": "🇸🇳", - ":flag_rs:": "🇷🇸", - ":rs:": "🇷🇸", - ":flag_sc:": "🇸🇨", - ":sc:": "🇸🇨", - ":flag_sl:": "🇸🇱", - ":sl:": "🇸🇱", - ":flag_sg:": "🇸🇬", - ":sg:": "🇸🇬", - ":flag_sk:": "🇸🇰", - ":sk:": "🇸🇰", - ":flag_si:": "🇸🇮", - ":si:": "🇸🇮", - ":flag_sb:": "🇸🇧", - ":sb:": "🇸🇧", - ":flag_so:": "🇸🇴", - ":so:": "🇸🇴", - ":flag_za:": "🇿🇦", - ":za:": "🇿🇦", - ":flag_lk:": "🇱🇰", - ":lk:": "🇱🇰", - ":flag_sd:": "🇸🇩", - ":sd:": "🇸🇩", - ":flag_sr:": "🇸🇷", - ":sr:": "🇸🇷", - ":flag_sz:": "🇸🇿", - ":sz:": "🇸🇿", - ":flag_se:": "🇸🇪", - ":se:": "🇸🇪", - ":flag_ch:": "🇨🇭", - ":ch:": "🇨🇭", - ":flag_sy:": "🇸🇾", - ":sy:": "🇸🇾", - ":flag_tj:": "🇹🇯", - ":tj:": "🇹🇯", - ":flag_tz:": "🇹🇿", - ":tz:": "🇹🇿", - ":flag_th:": "🇹🇭", - ":th:": "🇹🇭", - ":flag_tg:": "🇹🇬", - ":tg:": "🇹🇬", - ":flag_to:": "🇹🇴", - ":to:": "🇹🇴", - ":flag_tt:": "🇹🇹", - ":tt:": "🇹🇹", - ":flag_tn:": "🇹🇳", - ":tn:": "🇹🇳", - ":flag_tr:": "🇹🇷", - ":tr:": "🇹🇷", - ":flag_tm:": "🇹🇲", - ":turkmenistan:": "🇹🇲", - ":flag_tv:": "🇹🇻", - ":tuvalu:": "🇹🇻", - ":flag_ug:": "🇺🇬", - ":ug:": "🇺🇬", - ":flag_ua:": "🇺🇦", - ":ua:": "🇺🇦", - ":flag_ae:": "🇦🇪", - ":ae:": "🇦🇪", - ":flag_uy:": "🇺🇾", - ":uy:": "🇺🇾", - ":flag_uz:": "🇺🇿", - ":uz:": "🇺🇿", - ":flag_vu:": "🇻🇺", - ":vu:": "🇻🇺", - ":flag_va:": "🇻🇦", - ":va:": "🇻🇦", - ":flag_ve:": "🇻🇪", - ":ve:": "🇻🇪", - ":flag_vn:": "🇻🇳", - ":vn:": "🇻🇳", - ":flag_eh:": "🇪🇭", - ":eh:": "🇪🇭", - ":right_facing_fist_tone1:": "🤜🏻", - ":right_fist_tone1:": "🤜🏻", - ":flag_ye:": "🇾🇪", - ":ye:": "🇾🇪", - ":flag_zm:": "🇿🇲", - ":zm:": "🇿🇲", - ":flag_zw:": "🇿🇼", - ":zw:": "🇿🇼", - ":flag_pr:": "🇵🇷", - ":pr:": "🇵🇷", - ":flag_ky:": "🇰🇾", - ":ky:": "🇰🇾", - ":flag_bm:": "🇧🇲", - ":bm:": "🇧🇲", - ":flag_pf:": "🇵🇫", - ":pf:": "🇵🇫", - ":flag_ps:": "🇵🇸", - ":ps:": "🇵🇸", - ":flag_nc:": "🇳🇨", - ":nc:": "🇳🇨", - ":right_facing_fist_tone2:": "🤜🏼", - ":right_fist_tone2:": "🤜🏼", - ":flag_sh:": "🇸🇭", - ":sh:": "🇸🇭", - ":flag_aw:": "🇦🇼", - ":aw:": "🇦🇼", - ":flag_vi:": "🇻🇮", - ":vi:": "🇻🇮", - ":flag_hk:": "🇭🇰", - ":hk:": "🇭🇰", - ":flag_ac:": "🇦🇨", - ":ac:": "🇦🇨", - ":flag_ms:": "🇲🇸", - ":ms:": "🇲🇸", - ":flag_gu:": "🇬🇺", - ":gu:": "🇬🇺", - ":flag_gl:": "🇬🇱", - ":gl:": "🇬🇱", - ":flag_nu:": "🇳🇺", - ":nu:": "🇳🇺", - ":flag_wf:": "🇼🇫", - ":wf:": "🇼🇫", - ":flag_mo:": "🇲🇴", - ":mo:": "🇲🇴", - ":right_facing_fist_tone3:": "🤜🏽", - ":right_fist_tone3:": "🤜🏽", - ":flag_fo:": "🇫🇴", - ":fo:": "🇫🇴", - ":flag_fk:": "🇫🇰", - ":fk:": "🇫🇰", - ":flag_je:": "🇯🇪", - ":je:": "🇯🇪", - ":flag_ai:": "🇦🇮", - ":ai:": "🇦🇮", - ":flag_gi:": "🇬🇮", - ":gi:": "🇬🇮", - ":film_frames:": "🎞", - ":tickets:": "🎟", - ":admission_tickets:": "🎟", - ":medal:": "🏅", - ":sports_medal:": "🏅", - ":lifter:": "🏋", - ":weight_lifter:": "🏋", - ":golfer:": "🏌", - ":motorcycle:": "🏍", - ":racing_motorcycle:": "🏍", - ":race_car:": "🏎", - ":racing_car:": "🏎", - ":military_medal:": "🎖", - ":reminder_ribbon:": "🎗", - ":hot_pepper:": "🌶", - ":right_facing_fist_tone4:": "🤜🏾", - ":right_fist_tone4:": "🤜🏾", - ":cloud_rain:": "🌧", - ":cloud_with_rain:": "🌧", - ":cloud_snow:": "🌨", - ":cloud_with_snow:": "🌨", - ":cloud_lightning:": "🌩", - ":cloud_with_lightning:": "🌩", - ":cloud_tornado:": "🌪", - ":cloud_with_tornado:": "🌪", - ":fog:": "🌫", - ":wind_blowing_face:": "🌬", - ":chipmunk:": "🐿", - ":spider:": "🕷", - ":spider_web:": "🕸", - ":thermometer:": "🌡", - ":microphone2:": "🎙", - ":studio_microphone:": "🎙", - ":level_slider:": "🎚", - ":control_knobs:": "🎛", - ":flag_white:": "🏳", - ":waving_white_flag:": "🏳", - ":flag_black:": "🏴", - ":waving_black_flag:": "🏴", - ":rosette:": "🏵", - ":label:": "🏷", - ":camera_with_flash:": "📸", - ":projector:": "📽", - ":film_projector:": "📽", - ":cross:": "✝", - ":latin_cross:": "✝", - ":om_symbol:": "🕉", - ":dove:": "🕊", - ":dove_of_peace:": "🕊", - ":candle:": "🕯", - ":clock:": "🕰", - ":mantlepiece_clock:": "🕰", - ":hole:": "🕳", - ":dark_sunglasses:": "🕶", - ":joystick:": "🕹", - ":paperclips:": "🖇", - ":linked_paperclips:": "🖇", - ":pen_ballpoint:": "🖊", - ":lower_left_ballpoint_pen:": "🖊", - ":pen_fountain:": "🖋", - ":lower_left_fountain_pen:": "🖋", - ":paintbrush:": "🖌", - ":lower_left_paintbrush:": "🖌", - ":crayon:": "🖍", - ":lower_left_crayon:": "🖍", - ":desktop:": "🖥", - ":desktop_computer:": "🖥", - ":printer:": "🖨", - ":right_facing_fist_tone5:": "🤜🏿", - ":right_fist_tone5:": "🤜🏿", - ":keyboard:": "⌨", - ":trackball:": "🖲", - ":raised_back_of_hand_tone1:": "🤚🏻", - ":back_of_hand_tone1:": "🤚🏻", - ":frame_photo:": "🖼", - ":frame_with_picture:": "🖼", - ":dividers:": "🗂", - ":card_index_dividers:": "🗂", - ":card_box:": "🗃", - ":card_file_box:": "🗃", - ":file_cabinet:": "🗄", - ":wastebasket:": "🗑", - ":notepad_spiral:": "🗒", - ":spiral_note_pad:": "🗒", - ":calendar_spiral:": "🗓", - ":spiral_calendar_pad:": "🗓", - ":compression:": "🗜", - ":key2:": "🗝", - ":old_key:": "🗝", - ":newspaper2:": "🗞", - ":rolled_up_newspaper:": "🗞", - ":dagger:": "🗡", - ":dagger_knife:": "🗡", - ":speaking_head:": "🗣", - ":speaking_head_in_silhouette:": "🗣", - ":speech_left:": "🗨", - ":left_speech_bubble:": "🗨", - ":raised_back_of_hand_tone2:": "🤚🏼", - ":back_of_hand_tone2:": "🤚🏼", - ":anger_right:": "🗯", - ":right_anger_bubble:": "🗯", - ":raised_back_of_hand_tone3:": "🤚🏽", - ":back_of_hand_tone3:": "🤚🏽", - ":ballot_box:": "🗳", - ":ballot_box_with_ballot:": "🗳", - ":map:": "🗺", - ":world_map:": "🗺", - ":sleeping_accommodation:": "🛌", - ":tools:": "🛠", - ":hammer_and_wrench:": "🛠", - ":shield:": "🛡", - ":oil:": "🛢", - ":oil_drum:": "🛢", - ":satellite_orbital:": "🛰", - ":fork_knife_plate:": "🍽", - ":fork_and_knife_with_plate:": "🍽", - ":eye:": "👁", - ":levitate:": "🕴", - ":man_in_business_suit_levitating:": "🕴", - ":spy:": "🕵", - ":sleuth_or_spy:": "🕵", - ":writing_hand:": "✍", - ":hand_splayed:": "🖐", - ":raised_hand_with_fingers_splayed:": "🖐", - ":middle_finger:": "🖕", - ":reversed_hand_with_middle_finger_extended:": "🖕", - ":vulcan:": "🖖", - ":raised_hand_with_part_between_middle_and_ring_fingers:": "🖖", - ":slight_frown:": "🙁", - ":slightly_frowning_face:": "🙁", - ":slight_smile:": "🙂", - ":slightly_smiling_face:": "🙂", - ":mountain_snow:": "🏔", - ":snow_capped_mountain:": "🏔", - ":camping:": "🏕", - ":beach:": "🏖", - ":beach_with_umbrella:": "🏖", - ":construction_site:": "🏗", - ":building_construction:": "🏗", - ":homes:": "🏘", - ":house_buildings:": "🏘", - ":cityscape:": "🏙", - ":house_abandoned:": "🏚", - ":derelict_house_building:": "🏚", - ":classical_building:": "🏛", - ":desert:": "🏜", - ":island:": "🏝", - ":desert_island:": "🏝", - ":park:": "🏞", - ":national_park:": "🏞", - ":stadium:": "🏟", - ":couch:": "🛋", - ":couch_and_lamp:": "🛋", - ":raised_back_of_hand_tone4:": "🤚🏾", - ":back_of_hand_tone4:": "🤚🏾", - ":shopping_bags:": "🛍", - ":bellhop:": "🛎", - ":bellhop_bell:": "🛎", - ":bed:": "🛏", - ":motorway:": "🛣", - ":railway_track:": "🛤", - ":railroad_track:": "🛤", - ":motorboat:": "🛥", - ":airplane_small:": "🛩", - ":small_airplane:": "🛩", - ":airplane_departure:": "🛫", - ":airplane_arriving:": "🛬", - ":cruise_ship:": "🛳", - ":passenger_ship:": "🛳", - ":baby_tone1:": "👶🏻", - ":baby_tone2:": "👶🏼", - ":baby_tone3:": "👶🏽", - ":baby_tone4:": "👶🏾", - ":baby_tone5:": "👶🏿", - ":boy_tone1:": "👦🏻", - ":boy_tone2:": "👦🏼", - ":boy_tone3:": "👦🏽", - ":boy_tone4:": "👦🏾", - ":boy_tone5:": "👦🏿", - ":girl_tone1:": "👧🏻", - ":girl_tone2:": "👧🏼", - ":girl_tone3:": "👧🏽", - ":girl_tone4:": "👧🏾", - ":girl_tone5:": "👧🏿", - ":man_tone1:": "👨🏻", - ":man_tone2:": "👨🏼", - ":man_tone3:": "👨🏽", - ":man_tone4:": "👨🏾", - ":man_tone5:": "👨🏿", - ":woman_tone1:": "👩🏻", - ":woman_tone2:": "👩🏼", - ":woman_tone3:": "👩🏽", - ":woman_tone4:": "👩🏾", - ":woman_tone5:": "👩🏿", - ":bride_with_veil_tone1:": "👰🏻", - ":bride_with_veil_tone2:": "👰🏼", - ":raised_back_of_hand_tone5:": "🤚🏿", - ":back_of_hand_tone5:": "🤚🏿", - ":bride_with_veil_tone3:": "👰🏽", - ":bride_with_veil_tone4:": "👰🏾", - ":bride_with_veil_tone5:": "👰🏿", - ":person_with_blond_hair_tone1:": "👱🏻", - ":person_with_blond_hair_tone2:": "👱🏼", - ":person_with_blond_hair_tone3:": "👱🏽", - ":person_with_blond_hair_tone4:": "👱🏾", - ":person_with_blond_hair_tone5:": "👱🏿", - ":man_with_gua_pi_mao_tone1:": "👲🏻", - ":man_with_gua_pi_mao_tone2:": "👲🏼", - ":man_with_gua_pi_mao_tone3:": "👲🏽", - ":man_with_gua_pi_mao_tone4:": "👲🏾", - ":man_with_gua_pi_mao_tone5:": "👲🏿", - ":man_with_turban_tone1:": "👳🏻", - ":man_with_turban_tone2:": "👳🏼", - ":man_with_turban_tone3:": "👳🏽", - ":man_with_turban_tone4:": "👳🏾", - ":man_with_turban_tone5:": "👳🏿", - ":older_man_tone1:": "👴🏻", - ":older_man_tone2:": "👴🏼", - ":older_man_tone3:": "👴🏽", - ":older_man_tone4:": "👴🏾", - ":older_man_tone5:": "👴🏿", - ":older_woman_tone1:": "👵🏻", - ":grandma_tone1:": "👵🏻", - ":older_woman_tone2:": "👵🏼", - ":grandma_tone2:": "👵🏼", - ":older_woman_tone3:": "👵🏽", - ":grandma_tone3:": "👵🏽", - ":older_woman_tone4:": "👵🏾", - ":grandma_tone4:": "👵🏾", - ":older_woman_tone5:": "👵🏿", - ":grandma_tone5:": "👵🏿", - ":cop_tone1:": "👮🏻", - ":cop_tone2:": "👮🏼", - ":cop_tone3:": "👮🏽", - ":cop_tone4:": "👮🏾", - ":cop_tone5:": "👮🏿", - ":construction_worker_tone1:": "👷🏻", - ":construction_worker_tone2:": "👷🏼", - ":construction_worker_tone3:": "👷🏽", - ":construction_worker_tone4:": "👷🏾", - ":construction_worker_tone5:": "👷🏿", - ":princess_tone1:": "👸🏻", - ":princess_tone2:": "👸🏼", - ":princess_tone3:": "👸🏽", - ":princess_tone4:": "👸🏾", - ":cartwheel_tone1:": "🤸🏻", - ":person_doing_cartwheel_tone1:": "🤸🏻", - ":princess_tone5:": "👸🏿", - ":guardsman_tone1:": "💂🏻", - ":guardsman_tone2:": "💂🏼", - ":cartwheel_tone2:": "🤸🏼", - ":person_doing_cartwheel_tone2:": "🤸🏼", - ":guardsman_tone3:": "💂🏽", - ":guardsman_tone4:": "💂🏾", - ":guardsman_tone5:": "💂🏿", - ":cartwheel_tone3:": "🤸🏽", - ":person_doing_cartwheel_tone3:": "🤸🏽", - ":angel_tone1:": "👼🏻", - ":angel_tone2:": "👼🏼", - ":angel_tone3:": "👼🏽", - ":angel_tone4:": "👼🏾", - ":angel_tone5:": "👼🏿", - ":bow_tone1:": "🙇🏻", - ":bow_tone2:": "🙇🏼", - ":bow_tone3:": "🙇🏽", - ":bow_tone4:": "🙇🏾", - ":bow_tone5:": "🙇🏿", - ":information_desk_person_tone1:": "💁🏻", - ":information_desk_person_tone2:": "💁🏼", - ":information_desk_person_tone3:": "💁🏽", - ":cartwheel_tone4:": "🤸🏾", - ":person_doing_cartwheel_tone4:": "🤸🏾", - ":information_desk_person_tone4:": "💁🏾", - ":information_desk_person_tone5:": "💁🏿", - ":no_good_tone1:": "🙅🏻", - ":cartwheel_tone5:": "🤸🏿", - ":person_doing_cartwheel_tone5:": "🤸🏿", - ":no_good_tone2:": "🙅🏼", - ":no_good_tone3:": "🙅🏽", - ":no_good_tone4:": "🙅🏾", - ":no_good_tone5:": "🙅🏿", - ":ok_woman_tone1:": "🙆🏻", - ":ok_woman_tone2:": "🙆🏼", - ":ok_woman_tone3:": "🙆🏽", - ":ok_woman_tone4:": "🙆🏾", - ":ok_woman_tone5:": "🙆🏿", - ":raising_hand_tone1:": "🙋🏻", - ":raising_hand_tone2:": "🙋🏼", - ":raising_hand_tone3:": "🙋🏽", - ":raising_hand_tone4:": "🙋🏾", - ":raising_hand_tone5:": "🙋🏿", - ":person_with_pouting_face_tone1:": "🙎🏻", - ":person_with_pouting_face_tone2:": "🙎🏼", - ":person_with_pouting_face_tone3:": "🙎🏽", - ":person_with_pouting_face_tone4:": "🙎🏾", - ":person_with_pouting_face_tone5:": "🙎🏿", - ":person_frowning_tone1:": "🙍🏻", - ":person_frowning_tone2:": "🙍🏼", - ":person_frowning_tone3:": "🙍🏽", - ":person_frowning_tone4:": "🙍🏾", - ":person_frowning_tone5:": "🙍🏿", - ":massage_tone1:": "💆🏻", - ":massage_tone2:": "💆🏼", - ":massage_tone3:": "💆🏽", - ":massage_tone4:": "💆🏾", - ":massage_tone5:": "💆🏿", - ":haircut_tone1:": "💇🏻", - ":haircut_tone2:": "💇🏼", - ":haircut_tone3:": "💇🏽", - ":haircut_tone4:": "💇🏾", - ":haircut_tone5:": "💇🏿", - ":raised_hands_tone1:": "🙌🏻", - ":raised_hands_tone2:": "🙌🏼", - ":raised_hands_tone3:": "🙌🏽", - ":raised_hands_tone4:": "🙌🏾", - ":raised_hands_tone5:": "🙌🏿", - ":clap_tone1:": "👏🏻", - ":clap_tone2:": "👏🏼", - ":clap_tone3:": "👏🏽", - ":water_polo_tone1:": "🤽🏻", - ":clap_tone4:": "👏🏾", - ":clap_tone5:": "👏🏿", - ":water_polo_tone2:": "🤽🏼", - ":ear_tone1:": "👂🏻", - ":ear_tone2:": "👂🏼", - ":ear_tone3:": "👂🏽", - ":ear_tone4:": "👂🏾", - ":ear_tone5:": "👂🏿", - ":nose_tone1:": "👃🏻", - ":nose_tone2:": "👃🏼", - ":nose_tone3:": "👃🏽", - ":nose_tone4:": "👃🏾", - ":nose_tone5:": "👃🏿", - ":nail_care_tone1:": "💅🏻", - ":nail_care_tone2:": "💅🏼", - ":nail_care_tone3:": "💅🏽", - ":nail_care_tone4:": "💅🏾", - ":nail_care_tone5:": "💅🏿", - ":wave_tone1:": "👋🏻", - ":wave_tone2:": "👋🏼", - ":wave_tone3:": "👋🏽", - ":wave_tone4:": "👋🏾", - ":wave_tone5:": "👋🏿", - ":thumbsup_tone1:": "👍🏻", - ":+1_tone1:": "👍🏻", - ":thumbup_tone1:": "👍🏻", - ":thumbsup_tone2:": "👍🏼", - ":+1_tone2:": "👍🏼", - ":thumbup_tone2:": "👍🏼", - ":thumbsup_tone3:": "👍🏽", - ":+1_tone3:": "👍🏽", - ":thumbup_tone3:": "👍🏽", - ":thumbsup_tone4:": "👍🏾", - ":+1_tone4:": "👍🏾", - ":thumbup_tone4:": "👍🏾", - ":thumbsup_tone5:": "👍🏿", - ":+1_tone5:": "👍🏿", - ":thumbup_tone5:": "👍🏿", - ":thumbsdown_tone1:": "👎🏻", - ":1_tone1:": "👎🏻", - ":thumbdown_tone1:": "👎🏻", - ":thumbsdown_tone2:": "👎🏼", - ":1_tone2:": "👎🏼", - ":thumbdown_tone2:": "👎🏼", - ":thumbsdown_tone3:": "👎🏽", - ":1_tone3:": "👎🏽", - ":thumbdown_tone3:": "👎🏽", - ":thumbsdown_tone4:": "👎🏾", - ":1_tone4:": "👎🏾", - ":thumbdown_tone4:": "👎🏾", - ":thumbsdown_tone5:": "👎🏿", - ":1_tone5:": "👎🏿", - ":thumbdown_tone5:": "👎🏿", - ":point_up_tone1:": "☝🏻", - ":point_up_tone2:": "☝🏼", - ":point_up_tone3:": "☝🏽", - ":point_up_tone4:": "☝🏾", - ":point_up_tone5:": "☝🏿", - ":point_up_2_tone1:": "👆🏻", - ":point_up_2_tone2:": "👆🏼", - ":point_up_2_tone3:": "👆🏽", - ":point_up_2_tone4:": "👆🏾", - ":point_up_2_tone5:": "👆🏿", - ":point_down_tone1:": "👇🏻", - ":point_down_tone2:": "👇🏼", - ":point_down_tone3:": "👇🏽", - ":point_down_tone4:": "👇🏾", - ":point_down_tone5:": "👇🏿", - ":point_left_tone1:": "👈🏻", - ":point_left_tone2:": "👈🏼", - ":point_left_tone3:": "👈🏽", - ":point_left_tone4:": "👈🏾", - ":point_left_tone5:": "👈🏿", - ":point_right_tone1:": "👉🏻", - ":point_right_tone2:": "👉🏼", - ":point_right_tone3:": "👉🏽", - ":point_right_tone4:": "👉🏾", - ":point_right_tone5:": "👉🏿", - ":ok_hand_tone1:": "👌🏻", - ":ok_hand_tone2:": "👌🏼", - ":water_polo_tone3:": "🤽🏽", - ":ok_hand_tone3:": "👌🏽", - ":ok_hand_tone4:": "👌🏾", - ":water_polo_tone4:": "🤽🏾", - ":ok_hand_tone5:": "👌🏿", - ":v_tone1:": "✌🏻", - ":v_tone2:": "✌🏼", - ":v_tone3:": "✌🏽", - ":v_tone4:": "✌🏾", - ":v_tone5:": "✌🏿", - ":punch_tone1:": "👊🏻", - ":punch_tone2:": "👊🏼", - ":punch_tone3:": "👊🏽", - ":punch_tone4:": "👊🏾", - ":punch_tone5:": "👊🏿", - ":fist_tone1:": "✊🏻", - ":fist_tone2:": "✊🏼", - ":fist_tone3:": "✊🏽", - ":fist_tone4:": "✊🏾", - ":fist_tone5:": "✊🏿", - ":raised_hand_tone1:": "✋🏻", - ":raised_hand_tone2:": "✋🏼", - ":raised_hand_tone3:": "✋🏽", - ":raised_hand_tone4:": "✋🏾", - ":raised_hand_tone5:": "✋🏿", - ":muscle_tone1:": "💪🏻", - ":muscle_tone2:": "💪🏼", - ":muscle_tone3:": "💪🏽", - ":muscle_tone4:": "💪🏾", - ":muscle_tone5:": "💪🏿", - ":open_hands_tone1:": "👐🏻", - ":open_hands_tone2:": "👐🏼", - ":open_hands_tone3:": "👐🏽", - ":open_hands_tone4:": "👐🏾", - ":open_hands_tone5:": "👐🏿", - ":pray_tone1:": "🙏🏻", - ":water_polo_tone5:": "🤽🏿", - ":pray_tone2:": "🙏🏼", - ":pray_tone3:": "🙏🏽", - ":handball_tone1:": "🤾🏻", - ":pray_tone4:": "🙏🏾", - ":pray_tone5:": "🙏🏿", - ":handball_tone2:": "🤾🏼", - ":runner_tone1:": "🏃🏻", - ":runner_tone2:": "🏃🏼", - ":runner_tone3:": "🏃🏽", - ":runner_tone4:": "🏃🏾", - ":handball_tone3:": "🤾🏽", - ":runner_tone5:": "🏃🏿", - ":walking_tone1:": "🚶🏻", - ":walking_tone2:": "🚶🏼", - ":walking_tone3:": "🚶🏽", - ":walking_tone4:": "🚶🏾", - ":walking_tone5:": "🚶🏿", - ":dancer_tone1:": "💃🏻", - ":handball_tone4:": "🤾🏾", - ":dancer_tone2:": "💃🏼", - ":dancer_tone3:": "💃🏽", - ":handball_tone5:": "🤾🏿", - ":dancer_tone4:": "💃🏾", - ":dancer_tone5:": "💃🏿", - ":juggling_tone1:": "🤹🏻", - ":juggler_tone1:": "🤹🏻", - ":rowboat_tone1:": "🚣🏻", - ":rowboat_tone2:": "🚣🏼", - ":rowboat_tone3:": "🚣🏽", - ":rowboat_tone4:": "🚣🏾", - ":rowboat_tone5:": "🚣🏿", - ":swimmer_tone1:": "🏊🏻", - ":swimmer_tone2:": "🏊🏼", - ":juggling_tone2:": "🤹🏼", - ":juggler_tone2:": "🤹🏼", - ":swimmer_tone3:": "🏊🏽", - ":swimmer_tone4:": "🏊🏾", - ":swimmer_tone5:": "🏊🏿", - ":juggling_tone3:": "🤹🏽", - ":juggler_tone3:": "🤹🏽", - ":surfer_tone1:": "🏄🏻", - ":surfer_tone2:": "🏄🏼", - ":surfer_tone3:": "🏄🏽", - ":surfer_tone4:": "🏄🏾", - ":surfer_tone5:": "🏄🏿", - ":bath_tone1:": "🛀🏻", - ":bath_tone2:": "🛀🏼", - ":juggling_tone4:": "🤹🏾", - ":juggler_tone4:": "🤹🏾", - ":bath_tone3:": "🛀🏽", - ":bath_tone4:": "🛀🏾", - ":bath_tone5:": "🛀🏿", - ":juggling_tone5:": "🤹🏿", - ":juggler_tone5:": "🤹🏿", - ":bicyclist_tone1:": "🚴🏻", - ":bicyclist_tone2:": "🚴🏼", - ":bicyclist_tone3:": "🚴🏽", - ":rainbow_flag:": "🏳🌈", - ":gay_pride_flag:": "🏳🌈", - ":bicyclist_tone4:": "🚴🏾", - ":bicyclist_tone5:": "🚴🏿", - ":mountain_bicyclist_tone1:": "🚵🏻", - ":mountain_bicyclist_tone2:": "🚵🏼", - ":mountain_bicyclist_tone3:": "🚵🏽", - ":mountain_bicyclist_tone4:": "🚵🏾", - ":mountain_bicyclist_tone5:": "🚵🏿", - ":horse_racing_tone1:": "🏇🏻", - ":horse_racing_tone2:": "🏇🏼", - ":horse_racing_tone3:": "🏇🏽", - ":horse_racing_tone4:": "🏇🏾", - ":horse_racing_tone5:": "🏇🏿", - ":writing_hand_tone1:": "✍🏻", - ":writing_hand_tone2:": "✍🏼", - ":writing_hand_tone3:": "✍🏽", - ":writing_hand_tone4:": "✍🏾", - ":writing_hand_tone5:": "✍🏿", - ":hand_splayed_tone1:": "🖐🏻", - ":raised_hand_with_fingers_splayed_tone1:": "🖐🏻", - ":hand_splayed_tone2:": "🖐🏼", - ":raised_hand_with_fingers_splayed_tone2:": "🖐🏼", - ":hand_splayed_tone3:": "🖐🏽", - ":raised_hand_with_fingers_splayed_tone3:": "🖐🏽", - ":hand_splayed_tone4:": "🖐🏾", - ":raised_hand_with_fingers_splayed_tone4:": "🖐🏾", - ":hand_splayed_tone5:": "🖐🏿", - ":raised_hand_with_fingers_splayed_tone5:": "🖐🏿", - ":middle_finger_tone1:": "🖕🏻", - ":reversed_hand_with_middle_finger_extended_tone1:": "🖕🏻", - ":middle_finger_tone2:": "🖕🏼", - ":reversed_hand_with_middle_finger_extended_tone2:": "🖕🏼", - ":middle_finger_tone3:": "🖕🏽", - ":reversed_hand_with_middle_finger_extended_tone3:": "🖕🏽", - ":middle_finger_tone4:": "🖕🏾", - ":reversed_hand_with_middle_finger_extended_tone4:": "🖕🏾", - ":middle_finger_tone5:": "🖕🏿", - ":reversed_hand_with_middle_finger_extended_tone5:": "🖕🏿", - ":vulcan_tone1:": "🖖🏻", - ":raised_hand_with_part_between_middle_and_ring_fingers_tone1:": "🖖🏻", - ":vulcan_tone2:": "🖖🏼", - ":raised_hand_with_part_between_middle_and_ring_fingers_tone2:": "🖖🏼", - ":vulcan_tone3:": "🖖🏽", - ":raised_hand_with_part_between_middle_and_ring_fingers_tone3:": "🖖🏽", - ":vulcan_tone4:": "🖖🏾", - ":raised_hand_with_part_between_middle_and_ring_fingers_tone4:": "🖖🏾", - ":vulcan_tone5:": "🖖🏿", - ":raised_hand_with_part_between_middle_and_ring_fingers_tone5:": "🖖🏿", - ":family_mmb:": "👨‍👨‍👦", - ":family_mmbb:": "👨‍👨‍👦‍👦", - ":family_mmg:": "👨‍👨‍👧", - ":family_mmgb:": "👨‍👨‍👧‍👦", - ":family_mmgg:": "👨‍👨‍👧‍👧", - ":family_mwbb:": "👨‍👩‍👧‍👦", - ":family_mwg:": "👨‍👩‍👧", - ":family_mwgb:": "👨‍👩‍👧‍👦", - ":family_mwgg:": "👨‍👩‍👧‍👧", - ":family_wwb:": "👩‍👩‍👦", - ":family_wwbb:": "👩‍👩‍👦‍👦", - ":family_wwg:": "👩‍👩‍👧", - ":family_wwgb:": "👩‍👩‍👧‍👦", - ":family_wwgg:": "👩‍👩‍👧‍👧", - ":couple_ww:": "👭", - ":couple_with_heart_ww:": "👩‍❤️‍👩", - ":couple_mm:": "👬", - ":couple_with_heart_mm:": "👨‍❤️‍👨", - ":kiss_ww:": "👩‍❤️‍💋‍👩", - ":couplekiss_ww:": "👩‍❤️‍💋‍👩", - ":kiss_mm:": "👨‍❤️‍💋‍👨", - ":couplekiss_mm:": "👨‍❤️‍💋‍👨", - ":tone1:": "🏻", - ":tone2:": "🏼", - ":tone3:": "🏽", - ":tone4:": "🏾", - ":tone5:": "🏿", - ":asterisk:": "ℍ", - ":keycap_asterisk:": "ℍ", - ":eject:": "⏏", - ":eject_symbol:": "⏏", - ":track_next:": "⏭", - ":next_track:": "⏭", - ":track_previous:": "⏮", - ":previous_track:": "⏮", - ":play_pause:": "⏯", - ":eye_in_speech_bubble:": "👁🗨", - ":stopwatch:": "⏱", - ":timer:": "⏲", - ":timer_clock:": "⏲", - ":pause_button:": "⏸", - ":double_vertical_bar:": "⏸", - ":stop_button:": "⏹", - ":record_button:": "⏺", - ":umbrella2:": "☂", - ":snowman2:": "☃", - ":comet:": "☄", - ":shamrock:": "☘", - ":skull_crossbones:": "☠", - ":skull_and_crossbones:": "☠", - ":radioactive:": "☢", - ":radioactive_sign:": "☢", - ":biohazard:": "☣", - ":biohazard_sign:": "☣", - ":orthodox_cross:": "☦", - ":star_and_crescent:": "☪", - ":peace:": "☮", - ":peace_symbol:": "☮", - ":yin_yang:": "☯", - ":wheel_of_dharma:": "☸", - ":frowning2:": "☹", - ":white_frowning_face:": "☹", - ":hammer_pick:": "⚒", - ":hammer_and_pick:": "⚒", - ":crossed_swords:": "⚔", - ":scales:": "⚖", - ":alembic:": "⚗", - ":gear:": "⚙", - ":atom:": "⚛", - ":atom_symbol:": "⚛", - ":fleurdelis:": "⚜", - ":coffin:": "⚰", - ":urn:": "⚱", - ":funeral_urn:": "⚱", - ":thunder_cloud_rain:": "⛈", - ":thunder_cloud_and_rain:": "⛈", - ":pick:": "⛏", - ":helmet_with_cross:": "⛑", - ":helmet_with_white_cross:": "⛑", - ":chains:": "⛓", - ":shinto_shrine:": "⛩", - ":mountain:": "⛰", - ":beach_umbrella:": "⛱", - ":umbrella_on_ground:": "⛱", - ":ferry:": "⛴", - ":skier:": "⛷", - ":ice_skate:": "⛸", - ":basketball_player:": "⛹", - ":person_with_ball:": "⛹", - ":star_of_david:": "✡", - ":heart_exclamation:": "❣", - ":heavy_heart_exclamation_mark_ornament:": "❣", - ":white_sun_small_cloud:": "🌤", - ":white_sun_with_small_cloud:": "🌤", - ":white_sun_cloud:": "🌥", - ":white_sun_behind_cloud:": "🌥", - ":white_sun_rain_cloud:": "🌦", - ":white_sun_behind_cloud_with_rain:": "🌦", - ":mouse_three_button:": "🖱", - ":three_button_mouse:": "🖱", - ":santa_tone1:": "🎅🏻", - ":santa_tone2:": "🎅🏼", - ":santa_tone3:": "🎅🏽", - ":santa_tone4:": "🎅🏾", - ":santa_tone5:": "🎅🏿", - ":metal_tone1:": "🤘🏻", - ":sign_of_the_horns_tone1:": "🤘🏻", - ":metal_tone2:": "🤘🏼", - ":sign_of_the_horns_tone2:": "🤘🏼", - ":metal_tone3:": "🤘🏽", - ":sign_of_the_horns_tone3:": "🤘🏽", - ":metal_tone4:": "🤘🏾", - ":sign_of_the_horns_tone4:": "🤘🏾", - ":metal_tone5:": "🤘🏿", - ":sign_of_the_horns_tone5:": "🤘🏿", - ":lifter_tone1:": "🏋🏻", - ":weight_lifter_tone1:": "🏋🏻", - ":lifter_tone2:": "🏋🏼", - ":weight_lifter_tone2:": "🏋🏼", - ":lifter_tone3:": "🏋🏽", - ":weight_lifter_tone3:": "🏋🏽", - ":lifter_tone4:": "🏋🏾", - ":weight_lifter_tone4:": "🏋🏾", - ":lifter_tone5:": "🏋🏿", - ":weight_lifter_tone5:": "🏋🏿", - ":basketball_player_tone1:": "⛹🏻", - ":person_with_ball_tone1:": "⛹🏻", - ":basketball_player_tone2:": "⛹🏼", - ":person_with_ball_tone2:": "⛹🏼", - ":basketball_player_tone3:": "⛹🏽", - ":person_with_ball_tone3:": "⛹🏽", - ":basketball_player_tone4:": "⛹🏾", - ":person_with_ball_tone4:": "⛹🏾", - ":basketball_player_tone5:": "⛹🏿", - ":person_with_ball_tone5:": "⛹🏿", - ":upside_down:": "🙃", - ":upside_down_face:": "🙃", - ":money_mouth:": "🤑", - ":money_mouth_face:": "🤑", - ":nerd:": "🤓", - ":nerd_face:": "🤓", - ":hugging:": "🤗", - ":hugging_face:": "🤗", - ":rolling_eyes:": "🙄", - ":face_with_rolling_eyes:": "🙄", - ":thinking:": "🤔", - ":thinking_face:": "🤔", - ":zipper_mouth:": "🤐", - ":zipper_mouth_face:": "🤐", - ":thermometer_face:": "🤒", - ":face_with_thermometer:": "🤒", - ":head_bandage:": "🤕", - ":face_with_head_bandage:": "🤕", - ":robot:": "🤖", - ":robot_face:": "🤖", - ":lion_face:": "🦁", - ":lion:": "🦁", - ":unicorn:": "🦄", - ":unicorn_face:": "🦄", - ":scorpion:": "🦂", - ":crab:": "🦀", - ":turkey:": "🦃", - ":cheese:": "🧀", - ":cheese_wedge:": "🧀", - ":hotdog:": "🌭", - ":hot_dog:": "🌭", - ":taco:": "🌮", - ":burrito:": "🌯", - ":popcorn:": "🍿", - ":champagne:": "🍾", - ":bottle_with_popping_cork:": "🍾", - ":bow_and_arrow:": "🏹", - ":archery:": "🏹", - ":amphora:": "🏺", - ":place_of_worship:": "🛐", - ":worship_symbol:": "🛐", - ":kaaba:": "🕋", - ":mosque:": "🕌", - ":synagogue:": "🕍", - ":menorah:": "🕎", - ":prayer_beads:": "📿", - ":cricket:": "🏏", - ":cricket_bat_ball:": "🏏", - ":volleyball:": "🏐", - ":field_hockey:": "🏑", - ":hockey:": "🏒", - ":ping_pong:": "🏓", - ":table_tennis:": "🏓", - ":badminton:": "🏸", - ":flag_ax:": "🇦🇽", - ":ax:": "🇦🇽", - ":flag_ta:": "🇹🇦", - ":ta:": "🇹🇦", - ":flag_io:": "🇮🇴", - ":io:": "🇮🇴", - ":flag_bq:": "🇧🇶", - ":bq:": "🇧🇶", - ":flag_cx:": "🇨🇽", - ":cx:": "🇨🇽", - ":flag_cc:": "🇨🇨", - ":cc:": "🇨🇨", - ":flag_gg:": "🇬🇬", - ":gg:": "🇬🇬", - ":flag_im:": "🇮🇲", - ":im:": "🇮🇲", - ":flag_yt:": "🇾🇹", - ":yt:": "🇾🇹", - ":flag_nf:": "🇳🇫", - ":nf:": "🇳🇫", - ":flag_pn:": "🇵🇳", - ":pn:": "🇵🇳", - ":flag_bl:": "🇧🇱", - ":bl:": "🇧🇱", - ":flag_pm:": "🇵🇲", - ":pm:": "🇵🇲", - ":flag_gs:": "🇬🇸", - ":gs:": "🇬🇸", - ":flag_tk:": "🇹🇰", - ":tk:": "🇹🇰", - ":flag_bv:": "🇧🇻", - ":bv:": "🇧🇻", - ":flag_hm:": "🇭🇲", - ":hm:": "🇭🇲", - ":flag_sj:": "🇸🇯", - ":sj:": "🇸🇯", - ":flag_um:": "🇺🇲", - ":um:": "🇺🇲", - ":flag_ic:": "🇮🇨", - ":ic:": "🇮🇨", - ":flag_ea:": "🇪🇦", - ":ea:": "🇪🇦", - ":flag_cp:": "🇨🇵", - ":cp:": "🇨🇵", - ":flag_dg:": "🇩🇬", - ":dg:": "🇩🇬", - ":flag_as:": "🇦🇸", - ":as:": "🇦🇸", - ":flag_aq:": "🇦🇶", - ":aq:": "🇦🇶", - ":flag_vg:": "🇻🇬", - ":vg:": "🇻🇬", - ":flag_ck:": "🇨🇰", - ":ck:": "🇨🇰", - ":flag_cw:": "🇨🇼", - ":cw:": "🇨🇼", - ":flag_eu:": "🇪🇺", - ":eu:": "🇪🇺", - ":flag_gf:": "🇬🇫", - ":gf:": "🇬🇫", - ":flag_tf:": "🇹🇫", - ":tf:": "🇹🇫", - ":flag_gp:": "🇬🇵", - ":gp:": "🇬🇵", - ":flag_mq:": "🇲🇶", - ":mq:": "🇲🇶", - ":flag_mp:": "🇲🇵", - ":mp:": "🇲🇵", - ":flag_re:": "🇷🇪", - ":re:": "🇷🇪", - ":flag_sx:": "🇸🇽", - ":sx:": "🇸🇽", - ":flag_ss:": "🇸🇸", - ":ss:": "🇸🇸", - ":flag_tc:": "🇹🇨", - ":tc:": "🇹🇨", - ":flag_mf:": "🇲🇫", - ":mf:": "🇲🇫", - ":spy_tone1:": "🕵🏻", - ":sleuth_or_spy_tone1:": "🕵🏻", - ":spy_tone2:": "🕵🏼", - ":sleuth_or_spy_tone2:": "🕵🏼", - ":spy_tone3:": "🕵🏽", - ":sleuth_or_spy_tone3:": "🕵🏽", - ":spy_tone4:": "🕵🏾", - ":sleuth_or_spy_tone4:": "🕵🏾", - ":spy_tone5:": "🕵🏿", - ":sleuth_or_spy_tone5:": "🕵🏿", - ":drum:": "🥁", - ":drum_with_drumsticks:": "🥁", - ":shrimp:": "🦐", - ":squid:": "🦑", - ":egg:": "🥚", - ":milk:": "🥛", - ":glass_of_milk:": "🥛", - ":peanuts:": "🥜", - ":shelled_peanut:": "🥜", - ":kiwi:": "🥝", - ":kiwifruit:": "🥝", - ":pancakes:": "🥞", - ":regional_indicator_w:": "🇼", - ":regional_indicator_v:": "🇻", - ":regional_indicator_u:": "🇺", - ":regional_indicator_t:": "🇹", - ":regional_indicator_s:": "🇸", - ":regional_indicator_r:": "🇷", - ":regional_indicator_q:": "🇶", - ":regional_indicator_p:": "🇵", - ":regional_indicator_o:": "🇴", - ":regional_indicator_n:": "🇳", - ":regional_indicator_m:": "🇲", - ":regional_indicator_l:": "🇱", - ":regional_indicator_k:": "🇰", - ":regional_indicator_j:": "🇯", - ":regional_indicator_i:": "🇮", - ":regional_indicator_h:": "🇭", - ":regional_indicator_g:": "🇬", - ":regional_indicator_f:": "🇫", - ":regional_indicator_e:": "🇪", - ":regional_indicator_d:": "🇩", - ":regional_indicator_c:": "🇨", - ":regional_indicator_b:": "🇧", - ":regional_indicator_a:": "🇦", - ":digit_nine:": "9", - ":digit_eight:": "8", - ":digit_seven:": "7", - ":digit_six:": "6", - ":digit_five:": "5", - ":digit_four:": "4", - ":digit_three:": "3", - ":digit_two:": "2", - ":digit_one:": "1", - ":digit_zero:": "0", - ":men_with_bunny_ears_partying:": "👯", - ":women_with_bunny_ears_partying:": "👯", - ":snowboarder_tone1:": "🏂🏻", - ":snowboarder_light_skin_tone:": "🏂🏻", - ":man_golfing:": "🏌", - ":man_golfing_tone1:": "🏌🏻", - ":man_golfing_light_skin_tone:": "🏌🏻", - ":man_golfing_tone2:": "🏌🏼", - ":man_golfing_medium_light_skin_tone:": "🏌🏼", - ":man_golfing_tone3:": "🏌🏽", - ":man_golfing_medium_skin_tone:": "🏌🏽", - ":man_golfing_tone4:": "🏌🏾", - ":man_golfing_medium_dark_skin_tone:": "🏌🏾", - ":man_golfing_tone5:": "🏌🏿", - ":man_golfing_dark_skin_tone:": "🏌🏿", - ":woman_golfing:": "🏌", - ":woman_golfing_tone1:": "🏌🏻", - ":woman_golfing_light_skin_tone:": "🏌🏻", - ":woman_golfing_tone2:": "🏌🏼", - ":woman_golfing_medium_light_skin_tone:": "🏌🏼", - ":woman_golfing_tone3:": "🏌🏽", - ":woman_golfing_medium_skin_tone:": "🏌🏽", - ":woman_golfing_tone4:": "🏌🏾", - ":woman_golfing_medium_dark_skin_tone:": "🏌🏾", - ":woman_golfing_tone5:": "🏌🏿", - ":woman_golfing_dark_skin_tone:": "🏌🏿", - ":men_wrestling:": "🤼", - ":women_wrestling:": "🤼", - ":man_juggling_tone5:": "🤹🏿", - ":man_juggling_dark_skin_tone:": "🤹🏿", - ":man_juggling_tone4:": "🤹🏾", - ":man_juggling_medium_dark_skin_tone:": "🤹🏾", - ":man_juggling_tone3:": "🤹🏽", - ":man_juggling_medium_skin_tone:": "🤹🏽", - ":man_juggling_tone2:": "🤹🏼", - ":man_juggling_medium_light_skin_tone:": "🤹🏼", - ":man_juggling_tone1:": "🤹🏻", - ":man_juggling_light_skin_tone:": "🤹🏻", - ":man_juggling:": "🤹", - ":woman_juggling_tone5:": "🤹🏿", - ":woman_juggling_dark_skin_tone:": "🤹🏿", - ":woman_juggling_tone4:": "🤹🏾", - ":woman_juggling_medium_dark_skin_tone:": "🤹🏾", - ":woman_juggling_tone3:": "🤹🏽", - ":woman_juggling_medium_skin_tone:": "🤹🏽", - ":woman_juggling_tone2:": "🤹🏼", - ":woman_juggling_medium_light_skin_tone:": "🤹🏼", - ":woman_juggling_tone1:": "🤹🏻", - ":woman_juggling_light_skin_tone:": "🤹🏻", - ":woman_juggling:": "🤹", - ":man_playing_handball_tone5:": "🤾🏿", - ":man_playing_handball_dark_skin_tone:": "🤾🏿", - ":man_playing_handball_tone4:": "🤾🏾", - ":man_playing_handball_medium_dark_skin_tone:": "🤾🏾", - ":man_playing_handball_tone3:": "🤾🏽", - ":man_playing_handball_medium_skin_tone:": "🤾🏽", - ":man_playing_handball_tone2:": "🤾🏼", - ":man_playing_handball_medium_light_skin_tone:": "🤾🏼", - ":man_playing_handball_tone1:": "🤾🏻", - ":man_playing_handball_light_skin_tone:": "🤾🏻", - ":man_playing_handball:": "🤾", - ":woman_playing_handball_tone5:": "🤾🏿", - ":woman_playing_handball_dark_skin_tone:": "🤾🏿", - ":woman_playing_handball_tone4:": "🤾🏾", - ":woman_playing_handball_medium_dark_skin_tone:": "🤾🏾", - ":woman_playing_handball_tone3:": "🤾🏽", - ":woman_playing_handball_medium_skin_tone:": "🤾🏽", - ":woman_playing_handball_tone2:": "🤾🏼", - ":woman_playing_handball_medium_light_skin_tone:": "🤾🏼", - ":woman_playing_handball_tone1:": "🤾🏻", - ":woman_playing_handball_light_skin_tone:": "🤾🏻", - ":woman_playing_handball:": "🤾", - ":man_playing_water_polo_tone5:": "🤽🏿", - ":man_playing_water_polo_dark_skin_tone:": "🤽🏿", - ":man_playing_water_polo_tone4:": "🤽🏾", - ":man_playing_water_polo_medium_dark_skin_tone:": "🤽🏾", - ":man_playing_water_polo_tone3:": "🤽🏽", - ":man_playing_water_polo_medium_skin_tone:": "🤽🏽", - ":man_playing_water_polo_tone2:": "🤽🏼", - ":man_playing_water_polo_medium_light_skin_tone:": "🤽🏼", - ":man_playing_water_polo_tone1:": "🤽🏻", - ":man_playing_water_polo_light_skin_tone:": "🤽🏻", - ":man_playing_water_polo:": "🤽", - ":woman_playing_water_polo_tone5:": "🤽🏿", - ":woman_playing_water_polo_dark_skin_tone:": "🤽🏿", - ":woman_playing_water_polo_tone4:": "🤽🏾", - ":woman_playing_water_polo_medium_dark_skin_tone:": "🤽🏾", - ":woman_playing_water_polo_tone3:": "🤽🏽", - ":woman_playing_water_polo_medium_skin_tone:": "🤽🏽", - ":woman_playing_water_polo_tone2:": "🤽🏼", - ":woman_playing_water_polo_medium_light_skin_tone:": "🤽🏼", - ":woman_playing_water_polo_tone1:": "🤽🏻", - ":woman_playing_water_polo_light_skin_tone:": "🤽🏻", - ":woman_playing_water_polo:": "🤽", - ":man_cartwheeling_tone5:": "🤸🏿", - ":man_cartwheeling_dark_skin_tone:": "🤸🏿", - ":man_cartwheeling_tone4:": "🤸🏾", - ":man_cartwheeling_medium_dark_skin_tone:": "🤸🏾", - ":man_cartwheeling_tone3:": "🤸🏽", - ":man_cartwheeling_medium_skin_tone:": "🤸🏽", - ":man_cartwheeling_tone2:": "🤸🏼", - ":man_cartwheeling_medium_light_skin_tone:": "🤸🏼", - ":man_cartwheeling_tone1:": "🤸🏻", - ":man_cartwheeling_light_skin_tone:": "🤸🏻", - ":man_cartwheeling:": "🤸", - ":woman_cartwheeling_tone5:": "🤸🏿", - ":woman_cartwheeling_dark_skin_tone:": "🤸🏿", - ":woman_cartwheeling_tone4:": "🤸🏾", - ":woman_cartwheeling_medium_dark_skin_tone:": "🤸🏾", - ":woman_cartwheeling_tone3:": "🤸🏽", - ":woman_cartwheeling_medium_skin_tone:": "🤸🏽", - ":woman_cartwheeling_tone2:": "🤸🏼", - ":woman_cartwheeling_medium_light_skin_tone:": "🤸🏼", - ":woman_cartwheeling_tone1:": "🤸🏻", - ":woman_cartwheeling_light_skin_tone:": "🤸🏻", - ":woman_cartwheeling:": "🤸", - ":man_walking_tone5:": "🚶🏿", - ":man_walking_dark_skin_tone:": "🚶🏿", - ":man_walking_tone4:": "🚶🏾", - ":man_walking_medium_dark_skin_tone:": "🚶🏾", - ":man_walking_tone3:": "🚶🏽", - ":man_walking_medium_skin_tone:": "🚶🏽", - ":man_walking_tone2:": "🚶🏼", - ":man_walking_medium_light_skin_tone:": "🚶🏼", - ":man_walking_tone1:": "🚶🏻", - ":man_walking_light_skin_tone:": "🚶🏻", - ":man_walking:": "🚶", - ":woman_walking_tone5:": "🚶🏿", - ":woman_walking_dark_skin_tone:": "🚶🏿", - ":woman_walking_tone4:": "🚶🏾", - ":woman_walking_medium_dark_skin_tone:": "🚶🏾", - ":woman_walking_tone3:": "🚶🏽", - ":woman_walking_medium_skin_tone:": "🚶🏽", - ":woman_walking_tone2:": "🚶🏼", - ":woman_walking_medium_light_skin_tone:": "🚶🏼", - ":woman_walking_tone1:": "🚶🏻", - ":woman_walking_light_skin_tone:": "🚶🏻", - ":woman_walking:": "🚶", - ":man_mountain_biking_tone5:": "🚵🏿", - ":man_mountain_biking_dark_skin_tone:": "🚵🏿", - ":man_mountain_biking_tone4:": "🚵🏾", - ":man_mountain_biking_medium_dark_skin_tone:": "🚵🏾", - ":man_mountain_biking_tone3:": "🚵🏽", - ":man_mountain_biking_medium_skin_tone:": "🚵🏽", - ":man_mountain_biking_tone2:": "🚵🏼", - ":man_mountain_biking_medium_light_skin_tone:": "🚵🏼", - ":man_mountain_biking_tone1:": "🚵🏻", - ":man_mountain_biking_light_skin_tone:": "🚵🏻", - ":man_mountain_biking:": "🚵", - ":woman_mountain_biking_tone5:": "🚵🏿", - ":woman_mountain_biking_dark_skin_tone:": "🚵🏿", - ":woman_mountain_biking_tone4:": "🚵🏾", - ":woman_mountain_biking_medium_dark_skin_tone:": "🚵🏾", - ":woman_mountain_biking_tone3:": "🚵🏽", - ":woman_mountain_biking_medium_skin_tone:": "🚵🏽", - ":woman_mountain_biking_tone2:": "🚵🏼", - ":woman_mountain_biking_medium_light_skin_tone:": "🚵🏼", - ":woman_mountain_biking_tone1:": "🚵🏻", - ":woman_mountain_biking_light_skin_tone:": "🚵🏻", - ":woman_mountain_biking:": "🚵", - ":man_biking_tone5:": "🚴🏿", - ":man_biking_dark_skin_tone:": "🚴🏿", - ":man_biking_tone4:": "🚴🏾", - ":man_biking_medium_dark_skin_tone:": "🚴🏾", - ":man_biking_tone3:": "🚴🏽", - ":man_biking_medium_skin_tone:": "🚴🏽", - ":man_biking_tone2:": "🚴🏼", - ":man_biking_medium_light_skin_tone:": "🚴🏼", - ":man_biking_tone1:": "🚴🏻", - ":man_biking_light_skin_tone:": "🚴🏻", - ":man_biking:": "🚴", - ":woman_biking_tone5:": "🚴🏿", - ":woman_biking_dark_skin_tone:": "🚴🏿", - ":woman_biking_tone4:": "🚴🏾", - ":woman_biking_medium_dark_skin_tone:": "🚴🏾", - ":woman_biking_tone3:": "🚴🏽", - ":woman_biking_medium_skin_tone:": "🚴🏽", - ":woman_biking_tone2:": "🚴🏼", - ":woman_biking_medium_light_skin_tone:": "🚴🏼", - ":woman_biking_tone1:": "🚴🏻", - ":woman_biking_light_skin_tone:": "🚴🏻", - ":woman_biking:": "🚴", - ":man_rowing_boat_tone5:": "🚣🏿", - ":man_rowing_boat_dark_skin_tone:": "🚣🏿", - ":man_rowing_boat_tone4:": "🚣🏾", - ":man_rowing_boat_medium_dark_skin_tone:": "🚣🏾", - ":man_rowing_boat_tone3:": "🚣🏽", - ":man_rowing_boat_medium_skin_tone:": "🚣🏽", - ":man_rowing_boat_tone2:": "🚣🏼", - ":man_rowing_boat_medium_light_skin_tone:": "🚣🏼", - ":man_rowing_boat_tone1:": "🚣🏻", - ":man_rowing_boat_light_skin_tone:": "🚣🏻", - ":man_rowing_boat:": "🚣", - ":woman_rowing_boat_tone5:": "🚣🏿", - ":woman_rowing_boat_dark_skin_tone:": "🚣🏿", - ":woman_rowing_boat_tone4:": "🚣🏾", - ":woman_rowing_boat_medium_dark_skin_tone:": "🚣🏾", - ":woman_rowing_boat_tone3:": "🚣🏽", - ":woman_rowing_boat_medium_skin_tone:": "🚣🏽", - ":woman_rowing_boat_tone2:": "🚣🏼", - ":woman_rowing_boat_medium_light_skin_tone:": "🚣🏼", - ":woman_rowing_boat_tone1:": "🚣🏻", - ":woman_rowing_boat_light_skin_tone:": "🚣🏻", - ":woman_rowing_boat:": "🚣", - ":man_lifting_weights_tone5:": "🏋🏿", - ":man_lifting_weights_dark_skin_tone:": "🏋🏿", - ":man_lifting_weights_tone4:": "🏋🏾", - ":man_lifting_weights_medium_dark_skin_tone:": "🏋🏾", - ":man_lifting_weights_tone3:": "🏋🏽", - ":man_lifting_weights_medium_skin_tone:": "🏋🏽", - ":man_lifting_weights_tone2:": "🏋🏼", - ":man_lifting_weights_medium_light_skin_tone:": "🏋🏼", - ":man_lifting_weights_tone1:": "🏋🏻", - ":man_lifting_weights_light_skin_tone:": "🏋🏻", - ":man_lifting_weights:": "🏋", - ":woman_lifting_weights_tone5:": "🏋🏿", - ":woman_lifting_weights_dark_skin_tone:": "🏋🏿", - ":woman_lifting_weights_tone4:": "🏋🏾", - ":woman_lifting_weights_medium_dark_skin_tone:": "🏋🏾", - ":woman_lifting_weights_tone3:": "🏋🏽", - ":woman_lifting_weights_medium_skin_tone:": "🏋🏽", - ":woman_lifting_weights_tone2:": "🏋🏼", - ":woman_lifting_weights_medium_light_skin_tone:": "🏋🏼", - ":woman_lifting_weights_tone1:": "🏋🏻", - ":woman_lifting_weights_light_skin_tone:": "🏋🏻", - ":woman_lifting_weights:": "🏋", - ":man_swimming_tone5:": "🏊🏿", - ":man_swimming_dark_skin_tone:": "🏊🏿", - ":man_swimming_tone4:": "🏊🏾", - ":man_swimming_medium_dark_skin_tone:": "🏊🏾", - ":man_swimming_tone3:": "🏊🏽", - ":man_swimming_medium_skin_tone:": "🏊🏽", - ":man_swimming_tone2:": "🏊🏼", - ":man_swimming_medium_light_skin_tone:": "🏊🏼", - ":man_swimming_tone1:": "🏊🏻", - ":man_swimming_light_skin_tone:": "🏊🏻", - ":man_swimming:": "🏊", - ":woman_swimming_tone5:": "🏊🏿", - ":woman_swimming_dark_skin_tone:": "🏊🏿", - ":woman_swimming_tone4:": "🏊🏾", - ":woman_swimming_medium_dark_skin_tone:": "🏊🏾", - ":woman_swimming_tone3:": "🏊🏽", - ":woman_swimming_medium_skin_tone:": "🏊🏽", - ":woman_swimming_tone2:": "🏊🏼", - ":woman_swimming_medium_light_skin_tone:": "🏊🏼", - ":woman_swimming_tone1:": "🏊🏻", - ":woman_swimming_light_skin_tone:": "🏊🏻", - ":woman_swimming:": "🏊", - ":man_surfing_tone5:": "🏄🏿", - ":man_surfing_dark_skin_tone:": "🏄🏿", - ":man_surfing_tone4:": "🏄🏾", - ":man_surfing_medium_dark_skin_tone:": "🏄🏾", - ":man_surfing_tone3:": "🏄🏽", - ":man_surfing_medium_skin_tone:": "🏄🏽", - ":man_surfing_tone2:": "🏄🏼", - ":man_surfing_medium_light_skin_tone:": "🏄🏼", - ":man_surfing_tone1:": "🏄🏻", - ":man_surfing_light_skin_tone:": "🏄🏻", - ":man_surfing:": "🏄", - ":woman_surfing_tone5:": "🏄🏿", - ":woman_surfing_dark_skin_tone:": "🏄🏿", - ":woman_surfing_tone4:": "🏄🏾", - ":woman_surfing_medium_dark_skin_tone:": "🏄🏾", - ":woman_surfing_tone3:": "🏄🏽", - ":woman_surfing_medium_skin_tone:": "🏄🏽", - ":woman_surfing_tone2:": "🏄🏼", - ":woman_surfing_medium_light_skin_tone:": "🏄🏼", - ":woman_surfing_tone1:": "🏄🏻", - ":woman_surfing_light_skin_tone:": "🏄🏻", - ":woman_surfing:": "🏄", - ":man_running_tone5:": "🏃🏿", - ":man_running_dark_skin_tone:": "🏃🏿", - ":man_running_tone4:": "🏃🏾", - ":man_running_medium_dark_skin_tone:": "🏃🏾", - ":man_running_tone3:": "🏃🏽", - ":man_running_medium_skin_tone:": "🏃🏽", - ":man_running_tone2:": "🏃🏼", - ":man_running_medium_light_skin_tone:": "🏃🏼", - ":man_running_tone1:": "🏃🏻", - ":man_running_light_skin_tone:": "🏃🏻", - ":man_running:": "🏃", - ":woman_running_tone5:": "🏃🏿", - ":woman_running_dark_skin_tone:": "🏃🏿", - ":woman_running_tone4:": "🏃🏾", - ":woman_running_medium_dark_skin_tone:": "🏃🏾", - ":woman_running_tone3:": "🏃🏽", - ":woman_running_medium_skin_tone:": "🏃🏽", - ":woman_running_tone2:": "🏃🏼", - ":woman_running_medium_light_skin_tone:": "🏃🏼", - ":woman_running_tone1:": "🏃🏻", - ":woman_running_light_skin_tone:": "🏃🏻", - ":woman_running:": "🏃", - ":man_bouncing_ball_tone5:": "𓢞", - ":man_bouncing_ball_dark_skin_tone:": "𓢞", - ":man_bouncing_ball_tone4:": "𒢞", - ":man_bouncing_ball_medium_dark_skin_tone:": "𒢞", - ":man_bouncing_ball_tone3:": "𑢞", - ":man_bouncing_ball_medium_skin_tone:": "𑢞", - ":man_bouncing_ball_tone2:": "𐢞", - ":man_bouncing_ball_medium_light_skin_tone:": "𐢞", - ":man_bouncing_ball_tone1:": "", - ":man_bouncing_ball_light_skin_tone:": "", - ":man_bouncing_ball:": "䴻", - ":woman_bouncing_ball_tone5:": "𓢜", - ":woman_bouncing_ball_dark_skin_tone:": "𓢜", - ":woman_bouncing_ball_tone4:": "𒢜", - ":woman_bouncing_ball_medium_dark_skin_tone:": "𒢜", - ":woman_bouncing_ball_tone3:": "𑢜", - ":woman_bouncing_ball_medium_skin_tone:": "𑢜", - ":woman_bouncing_ball_tone2:": "𐢜", - ":woman_bouncing_ball_medium_light_skin_tone:": "𐢜", - ":woman_bouncing_ball_tone1:": "", - ":woman_bouncing_ball_light_skin_tone:": "", - ":woman_bouncing_ball:": "䴹", - ":man_shrugging_tone5:": "🤷🏿", - ":man_shrugging_dark_skin_tone:": "🤷🏿", - ":man_shrugging_tone4:": "🤷🏾", - ":man_shrugging_medium_dark_skin_tone:": "🤷🏾", - ":man_shrugging_tone3:": "🤷🏽", - ":man_shrugging_medium_skin_tone:": "🤷🏽", - ":man_shrugging_tone2:": "🤷🏼", - ":man_shrugging_medium_light_skin_tone:": "🤷🏼", - ":man_shrugging_tone1:": "🤷🏻", - ":man_shrugging_light_skin_tone:": "🤷🏻", - ":man_shrugging:": "🤷", - ":woman_shrugging_tone5:": "🤷🏿", - ":woman_shrugging_dark_skin_tone:": "🤷🏿", - ":woman_shrugging_tone4:": "🤷🏾", - ":woman_shrugging_medium_dark_skin_tone:": "🤷🏾", - ":woman_shrugging_tone3:": "🤷🏽", - ":woman_shrugging_medium_skin_tone:": "🤷🏽", - ":woman_shrugging_tone2:": "🤷🏼", - ":woman_shrugging_medium_light_skin_tone:": "🤷🏼", - ":woman_shrugging_tone1:": "🤷🏻", - ":woman_shrugging_light_skin_tone:": "🤷🏻", - ":woman_shrugging:": "🤷", - ":man_facepalming_tone5:": "🤦🏿", - ":man_facepalming_dark_skin_tone:": "🤦🏿", - ":man_facepalming_tone4:": "🤦🏾", - ":man_facepalming_medium_dark_skin_tone:": "🤦🏾", - ":man_facepalming_tone3:": "🤦🏽", - ":man_facepalming_medium_skin_tone:": "🤦🏽", - ":man_facepalming_tone2:": "🤦🏼", - ":man_facepalming_medium_light_skin_tone:": "🤦🏼", - ":man_facepalming_tone1:": "🤦🏻", - ":man_facepalming_light_skin_tone:": "🤦🏻", - ":man_facepalming:": "🤦", - ":woman_facepalming_tone5:": "🤦🏿", - ":woman_facepalming_dark_skin_tone:": "🤦🏿", - ":woman_facepalming_tone4:": "🤦🏾", - ":woman_facepalming_medium_dark_skin_tone:": "🤦🏾", - ":woman_facepalming_tone3:": "🤦🏽", - ":woman_facepalming_medium_skin_tone:": "🤦🏽", - ":woman_facepalming_tone2:": "🤦🏼", - ":woman_facepalming_medium_light_skin_tone:": "🤦🏼", - ":woman_facepalming_tone1:": "🤦🏻", - ":woman_facepalming_light_skin_tone:": "🤦🏻", - ":woman_facepalming:": "🤦", - ":man_pouting_tone5:": "🙎🏿", - ":man_pouting_dark_skin_tone:": "🙎🏿", - ":man_pouting_tone4:": "🙎🏾", - ":man_pouting_medium_dark_skin_tone:": "🙎🏾", - ":man_pouting_tone3:": "🙎🏽", - ":man_pouting_medium_skin_tone:": "🙎🏽", - ":man_pouting_tone2:": "🙎🏼", - ":man_pouting_medium_light_skin_tone:": "🙎🏼", - ":man_pouting_tone1:": "🙎🏻", - ":man_pouting_light_skin_tone:": "🙎🏻", - ":man_pouting:": "🙎", - ":woman_pouting_tone5:": "🙎🏿", - ":woman_pouting_dark_skin_tone:": "🙎🏿", - ":woman_pouting_tone4:": "🙎🏾", - ":woman_pouting_medium_dark_skin_tone:": "🙎🏾", - ":woman_pouting_tone3:": "🙎🏽", - ":woman_pouting_medium_skin_tone:": "🙎🏽", - ":woman_pouting_tone2:": "🙎🏼", - ":woman_pouting_medium_light_skin_tone:": "🙎🏼", - ":woman_pouting_tone1:": "🙎🏻", - ":woman_pouting_light_skin_tone:": "🙎🏻", - ":woman_pouting:": "🙎", - ":man_frowning_tone5:": "🙍🏿", - ":man_frowning_dark_skin_tone:": "🙍🏿", - ":man_frowning_tone4:": "🙍🏾", - ":man_frowning_medium_dark_skin_tone:": "🙍🏾", - ":man_frowning_tone3:": "🙍🏽", - ":man_frowning_medium_skin_tone:": "🙍🏽", - ":man_frowning_tone2:": "🙍🏼", - ":man_frowning_medium_light_skin_tone:": "🙍🏼", - ":man_frowning_tone1:": "🙍🏻", - ":man_frowning_light_skin_tone:": "🙍🏻", - ":man_frowning:": "🙍", - ":woman_frowning_tone5:": "🙍🏿", - ":woman_frowning_dark_skin_tone:": "🙍🏿", - ":woman_frowning_tone4:": "🙍🏾", - ":woman_frowning_medium_dark_skin_tone:": "🙍🏾", - ":woman_frowning_tone3:": "🙍🏽", - ":woman_frowning_medium_skin_tone:": "🙍🏽", - ":woman_frowning_tone2:": "🙍🏼", - ":woman_frowning_medium_light_skin_tone:": "🙍🏼", - ":woman_frowning_tone1:": "🙍🏻", - ":woman_frowning_light_skin_tone:": "🙍🏻", - ":woman_frowning:": "🙍", - ":man_raising_hand_tone5:": "🙋🏿", - ":man_raising_hand_dark_skin_tone:": "🙋🏿", - ":man_raising_hand_tone4:": "🙋🏾", - ":man_raising_hand_medium_dark_skin_tone:": "🙋🏾", - ":man_raising_hand_tone3:": "🙋🏽", - ":man_raising_hand_medium_skin_tone:": "🙋🏽", - ":man_raising_hand_tone2:": "🙋🏼", - ":man_raising_hand_medium_light_skin_tone:": "🙋🏼", - ":man_raising_hand_tone1:": "🙋🏻", - ":man_raising_hand_light_skin_tone:": "🙋🏻", - ":man_raising_hand:": "🙋", - ":woman_raising_hand_tone5:": "🙋🏿", - ":woman_raising_hand_dark_skin_tone:": "🙋🏿", - ":woman_raising_hand_tone4:": "🙋🏾", - ":woman_raising_hand_medium_dark_skin_tone:": "🙋🏾", - ":woman_raising_hand_tone3:": "🙋🏽", - ":woman_raising_hand_medium_skin_tone:": "🙋🏽", - ":woman_raising_hand_tone2:": "🙋🏼", - ":woman_raising_hand_medium_light_skin_tone:": "🙋🏼", - ":woman_raising_hand_tone1:": "🙋🏻", - ":woman_raising_hand_light_skin_tone:": "🙋🏻", - ":woman_raising_hand:": "🙋", - ":man_bowing_tone5:": "🙇🏿", - ":man_bowing_dark_skin_tone:": "🙇🏿", - ":man_bowing_tone4:": "🙇🏾", - ":man_bowing_medium_dark_skin_tone:": "🙇🏾", - ":man_bowing_tone3:": "🙇🏽", - ":man_bowing_medium_skin_tone:": "🙇🏽", - ":man_bowing_tone2:": "🙇🏼", - ":man_bowing_medium_light_skin_tone:": "🙇🏼", - ":man_bowing_tone1:": "🙇🏻", - ":man_bowing_light_skin_tone:": "🙇🏻", - ":man_bowing:": "🙇", - ":woman_bowing_tone5:": "🙇🏿", - ":woman_bowing_dark_skin_tone:": "🙇🏿", - ":woman_bowing_tone4:": "🙇🏾", - ":woman_bowing_medium_dark_skin_tone:": "🙇🏾", - ":woman_bowing_tone3:": "🙇🏽", - ":woman_bowing_medium_skin_tone:": "🙇🏽", - ":woman_bowing_tone2:": "🙇🏼", - ":woman_bowing_medium_light_skin_tone:": "🙇🏼", - ":woman_bowing_tone1:": "🙇🏻", - ":woman_bowing_light_skin_tone:": "🙇🏻", - ":woman_bowing:": "🙇", - ":man_gesturing_ok_tone5:": "🙆🏿", - ":man_gesturing_ok_dark_skin_tone:": "🙆🏿", - ":man_gesturing_ok_tone4:": "🙆🏾", - ":man_gesturing_ok_medium_dark_skin_tone:": "🙆🏾", - ":man_gesturing_ok_tone3:": "🙆🏽", - ":man_gesturing_ok_medium_skin_tone:": "🙆🏽", - ":man_gesturing_ok_tone2:": "🙆🏼", - ":man_gesturing_ok_medium_light_skin_tone:": "🙆🏼", - ":man_gesturing_ok_tone1:": "🙆🏻", - ":man_gesturing_ok_light_skin_tone:": "🙆🏻", - ":man_gesturing_ok:": "🙆", - ":woman_gesturing_ok_tone5:": "🙆🏿", - ":woman_gesturing_ok_dark_skin_tone:": "🙆🏿", - ":woman_gesturing_ok_tone4:": "🙆🏾", - ":woman_gesturing_ok_medium_dark_skin_tone:": "🙆🏾", - ":woman_gesturing_ok_tone3:": "🙆🏽", - ":woman_gesturing_ok_medium_skin_tone:": "🙆🏽", - ":woman_gesturing_ok_tone2:": "🙆🏼", - ":woman_gesturing_ok_medium_light_skin_tone:": "🙆🏼", - ":woman_gesturing_ok_tone1:": "🙆🏻", - ":woman_gesturing_ok_light_skin_tone:": "🙆🏻", - ":woman_gesturing_ok:": "🙆", - ":man_gesturing_no_tone5:": "🙅🏿", - ":man_gesturing_no_dark_skin_tone:": "🙅🏿", - ":man_gesturing_no_tone4:": "🙅🏾", - ":man_gesturing_no_medium_dark_skin_tone:": "🙅🏾", - ":man_gesturing_no_tone3:": "🙅🏽", - ":man_gesturing_no_medium_skin_tone:": "🙅🏽", - ":man_gesturing_no_tone2:": "🙅🏼", - ":man_gesturing_no_medium_light_skin_tone:": "🙅🏼", - ":man_gesturing_no_tone1:": "🙅🏻", - ":man_gesturing_no_light_skin_tone:": "🙅🏻", - ":man_gesturing_no:": "🙅", - ":woman_gesturing_no_tone5:": "🙅🏿", - ":woman_gesturing_no_dark_skin_tone:": "🙅🏿", - ":woman_gesturing_no_tone4:": "🙅🏾", - ":woman_gesturing_no_medium_dark_skin_tone:": "🙅🏾", - ":woman_gesturing_no_tone3:": "🙅🏽", - ":woman_gesturing_no_medium_skin_tone:": "🙅🏽", - ":woman_gesturing_no_tone2:": "🙅🏼", - ":woman_gesturing_no_medium_light_skin_tone:": "🙅🏼", - ":woman_gesturing_no_tone1:": "🙅🏻", - ":woman_gesturing_no_light_skin_tone:": "🙅🏻", - ":woman_gesturing_no:": "🙅", - ":man_getting_haircut_tone5:": "💇🏿", - ":man_getting_haircut_dark_skin_tone:": "💇🏿", - ":man_getting_haircut_tone4:": "💇🏾", - ":man_getting_haircut_medium_dark_skin_tone:": "💇🏾", - ":man_getting_haircut_tone3:": "💇🏽", - ":man_getting_haircut_medium_skin_tone:": "💇🏽", - ":man_getting_haircut_tone2:": "💇🏼", - ":man_getting_haircut_medium_light_skin_tone:": "💇🏼", - ":man_getting_haircut_tone1:": "💇🏻", - ":man_getting_haircut_light_skin_tone:": "💇🏻", - ":man_getting_haircut:": "💇", - ":woman_getting_haircut_tone5:": "💇🏿", - ":woman_getting_haircut_dark_skin_tone:": "💇🏿", - ":woman_getting_haircut_tone4:": "💇🏾", - ":woman_getting_haircut_medium_dark_skin_tone:": "💇🏾", - ":woman_getting_haircut_tone3:": "💇🏽", - ":woman_getting_haircut_medium_skin_tone:": "💇🏽", - ":woman_getting_haircut_tone2:": "💇🏼", - ":woman_getting_haircut_medium_light_skin_tone:": "💇🏼", - ":woman_getting_haircut_tone1:": "💇🏻", - ":woman_getting_haircut_light_skin_tone:": "💇🏻", - ":woman_getting_haircut:": "💇", - ":man_getting_face_massage_tone5:": "💆🏿", - ":man_getting_face_massage_dark_skin_tone:": "💆🏿", - ":man_getting_face_massage_tone4:": "💆🏾", - ":man_getting_face_massage_medium_dark_skin_tone:": "💆🏾", - ":man_getting_face_massage_tone3:": "💆🏽", - ":man_getting_face_massage_medium_skin_tone:": "💆🏽", - ":man_getting_face_massage_tone2:": "💆🏼", - ":man_getting_face_massage_medium_light_skin_tone:": "💆🏼", - ":man_getting_face_massage_tone1:": "💆🏻", - ":man_getting_face_massage_light_skin_tone:": "💆🏻", - ":man_getting_face_massage:": "💆", - ":woman_getting_face_massage_tone5:": "💆🏿", - ":woman_getting_face_massage_dark_skin_tone:": "💆🏿", - ":woman_getting_face_massage_tone4:": "💆🏾", - ":woman_getting_face_massage_medium_dark_skin_tone:": "💆🏾", - ":woman_getting_face_massage_tone3:": "💆🏽", - ":woman_getting_face_massage_medium_skin_tone:": "💆🏽", - ":woman_getting_face_massage_tone2:": "💆🏼", - ":woman_getting_face_massage_medium_light_skin_tone:": "💆🏼", - ":woman_getting_face_massage_tone1:": "💆🏻", - ":woman_getting_face_massage_light_skin_tone:": "💆🏻", - ":woman_getting_face_massage:": "💆", - ":man_tipping_hand_tone5:": "💁🏿", - ":man_tipping_hand_dark_skin_tone:": "💁🏿", - ":man_tipping_hand_tone4:": "💁🏾", - ":man_tipping_hand_medium_dark_skin_tone:": "💁🏾", - ":man_tipping_hand_tone3:": "💁🏽", - ":man_tipping_hand_medium_skin_tone:": "💁🏽", - ":man_tipping_hand_tone2:": "💁🏼", - ":man_tipping_hand_medium_light_skin_tone:": "💁🏼", - ":man_tipping_hand_tone1:": "💁🏻", - ":man_tipping_hand_light_skin_tone:": "💁🏻", - ":man_tipping_hand:": "💁", - ":woman_tipping_hand_tone5:": "💁🏿", - ":woman_tipping_hand_dark_skin_tone:": "💁🏿", - ":woman_tipping_hand_tone4:": "💁🏾", - ":woman_tipping_hand_medium_dark_skin_tone:": "💁🏾", - ":woman_tipping_hand_tone3:": "💁🏽", - ":woman_tipping_hand_medium_skin_tone:": "💁🏽", - ":woman_tipping_hand_tone2:": "💁🏼", - ":woman_tipping_hand_medium_light_skin_tone:": "💁🏼", - ":woman_tipping_hand_tone1:": "💁🏻", - ":woman_tipping_hand_light_skin_tone:": "💁🏻", - ":woman_tipping_hand:": "💁", - ":blondhaired_man_tone5:": "👱🏿", - ":blondhaired_man_dark_skin_tone:": "👱🏿", - ":blondhaired_man_tone4:": "👱🏾", - ":blondhaired_man_medium_dark_skin_tone:": "👱🏾", - ":blondhaired_man_tone3:": "👱🏽", - ":blondhaired_man_medium_skin_tone:": "👱🏽", - ":blondhaired_man_tone2:": "👱🏼", - ":blondhaired_man_medium_light_skin_tone:": "👱🏼", - ":blondhaired_man_tone1:": "👱🏻", - ":blondhaired_man_light_skin_tone:": "👱🏻", - ":blondhaired_man:": "👱", - ":blondhaired_woman_tone5:": "👱🏿", - ":blondhaired_woman_dark_skin_tone:": "👱🏿", - ":blondhaired_woman_tone4:": "👱🏾", - ":blondhaired_woman_medium_dark_skin_tone:": "👱🏾", - ":blondhaired_woman_tone3:": "👱🏽", - ":blondhaired_woman_medium_skin_tone:": "👱🏽", - ":blondhaired_woman_tone2:": "👱🏼", - ":blondhaired_woman_medium_light_skin_tone:": "👱🏼", - ":blondhaired_woman_tone1:": "👱🏻", - ":blondhaired_woman_light_skin_tone:": "👱🏻", - ":blondhaired_woman:": "👱", - ":man_wearing_turban_tone5:": "👳🏿", - ":man_wearing_turban_dark_skin_tone:": "👳🏿", - ":man_wearing_turban_tone4:": "👳🏾", - ":man_wearing_turban_medium_dark_skin_tone:": "👳🏾", - ":man_wearing_turban_tone3:": "👳🏽", - ":man_wearing_turban_medium_skin_tone:": "👳🏽", - ":man_wearing_turban_tone2:": "👳🏼", - ":man_wearing_turban_medium_light_skin_tone:": "👳🏼", - ":man_wearing_turban_tone1:": "👳🏻", - ":man_wearing_turban_light_skin_tone:": "👳🏻", - ":man_wearing_turban:": "👳", - ":woman_wearing_turban_tone5:": "👳🏿", - ":woman_wearing_turban_dark_skin_tone:": "👳🏿", - ":woman_wearing_turban_tone4:": "👳🏾", - ":woman_wearing_turban_medium_dark_skin_tone:": "👳🏾", - ":woman_wearing_turban_tone3:": "👳🏽", - ":woman_wearing_turban_medium_skin_tone:": "👳🏽", - ":woman_wearing_turban_tone2:": "👳🏼", - ":woman_wearing_turban_medium_light_skin_tone:": "👳🏼", - ":woman_wearing_turban_tone1:": "👳🏻", - ":woman_wearing_turban_light_skin_tone:": "👳🏻", - ":woman_wearing_turban:": "👳", - ":man_guard_tone5:": "💂🏿", - ":man_guard_dark_skin_tone:": "💂🏿", - ":man_guard_tone4:": "💂🏾", - ":man_guard_medium_dark_skin_tone:": "💂🏾", - ":man_guard_tone3:": "💂🏽", - ":man_guard_medium_skin_tone:": "💂🏽", - ":man_guard_tone2:": "💂🏼", - ":man_guard_medium_light_skin_tone:": "💂🏼", - ":man_guard_tone1:": "💂🏻", - ":man_guard_light_skin_tone:": "💂🏻", - ":man_guard:": "💂", - ":woman_guard_tone5:": "💂🏿", - ":woman_guard_dark_skin_tone:": "💂🏿", - ":woman_guard_tone4:": "💂🏾", - ":woman_guard_medium_dark_skin_tone:": "💂🏾", - ":woman_guard_tone3:": "💂🏽", - ":woman_guard_medium_skin_tone:": "💂🏽", - ":woman_guard_tone2:": "💂🏼", - ":woman_guard_medium_light_skin_tone:": "💂🏼", - ":woman_guard_tone1:": "💂🏻", - ":woman_guard_light_skin_tone:": "💂🏻", - ":woman_guard:": "💂", - ":man_detective_tone5:": "🕵🏿", - ":man_detective_dark_skin_tone:": "🕵🏿", - ":man_detective_tone4:": "🕵🏾", - ":man_detective_medium_dark_skin_tone:": "🕵🏾", - ":man_detective_tone3:": "🕵🏽", - ":man_detective_medium_skin_tone:": "🕵🏽", - ":man_detective_tone2:": "🕵🏼", - ":man_detective_medium_light_skin_tone:": "🕵🏼", - ":man_detective_tone1:": "🕵🏻", - ":man_detective_light_skin_tone:": "🕵🏻", - ":man_detective:": "🕵", - ":woman_detective_tone5:": "🕵🏿", - ":woman_detective_dark_skin_tone:": "🕵🏿", - ":woman_detective_tone4:": "🕵🏾", - ":woman_detective_medium_dark_skin_tone:": "🕵🏾", - ":woman_detective_tone3:": "🕵🏽", - ":woman_detective_medium_skin_tone:": "🕵🏽", - ":woman_detective_tone2:": "🕵🏼", - ":woman_detective_medium_light_skin_tone:": "🕵🏼", - ":woman_detective_tone1:": "🕵🏻", - ":woman_detective_light_skin_tone:": "🕵🏻", - ":woman_detective:": "🕵", - ":man_construction_worker_tone5:": "👷🏿", - ":man_construction_worker_dark_skin_tone:": "👷🏿", - ":man_construction_worker_tone4:": "👷🏾", - ":man_construction_worker_medium_dark_skin_tone:": "👷🏾", - ":man_construction_worker_tone3:": "👷🏽", - ":man_construction_worker_medium_skin_tone:": "👷🏽", - ":man_construction_worker_tone2:": "👷🏼", - ":man_construction_worker_medium_light_skin_tone:": "👷🏼", - ":man_construction_worker_tone1:": "👷🏻", - ":man_construction_worker_light_skin_tone:": "👷🏻", - ":man_construction_worker:": "👷", - ":woman_construction_worker_tone5:": "👷🏿", - ":woman_construction_worker_dark_skin_tone:": "👷🏿", - ":woman_construction_worker_tone4:": "👷🏾", - ":woman_construction_worker_medium_dark_skin_tone:": "👷🏾", - ":woman_construction_worker_tone3:": "👷🏽", - ":woman_construction_worker_medium_skin_tone:": "👷🏽", - ":woman_construction_worker_tone2:": "👷🏼", - ":woman_construction_worker_medium_light_skin_tone:": "👷🏼", - ":woman_construction_worker_tone1:": "👷🏻", - ":woman_construction_worker_light_skin_tone:": "👷🏻", - ":woman_construction_worker:": "👷", - ":man_police_officer_tone5:": "👮🏿", - ":man_police_officer_dark_skin_tone:": "👮🏿", - ":man_police_officer_tone4:": "👮🏾", - ":man_police_officer_medium_dark_skin_tone:": "👮🏾", - ":man_police_officer_tone3:": "👮🏽", - ":man_police_officer_medium_skin_tone:": "👮🏽", - ":man_police_officer_tone2:": "👮🏼", - ":man_police_officer_medium_light_skin_tone:": "👮🏼", - ":man_police_officer_tone1:": "👮🏻", - ":man_police_officer_light_skin_tone:": "👮🏻", - ":man_police_officer:": "👮", - ":woman_police_officer_tone5:": "👮🏿", - ":woman_police_officer_dark_skin_tone:": "👮🏿", - ":woman_police_officer_tone4:": "👮🏾", - ":woman_police_officer_medium_dark_skin_tone:": "👮🏾", - ":woman_police_officer_tone3:": "👮🏽", - ":woman_police_officer_medium_skin_tone:": "👮🏽", - ":woman_police_officer_tone2:": "👮🏼", - ":woman_police_officer_medium_light_skin_tone:": "👮🏼", - ":woman_police_officer_tone1:": "👮🏻", - ":woman_police_officer_light_skin_tone:": "👮🏻", - ":woman_police_officer:": "👮", - ":man_technologist_tone5:": "👨🏿💻", - ":man_technologist_dark_skin_tone:": "👨🏿💻", - ":man_technologist_tone4:": "👨🏾💻", - ":man_technologist_medium_dark_skin_tone:": "👨🏾💻", - ":man_technologist_tone3:": "👨🏽💻", - ":man_technologist_medium_skin_tone:": "👨🏽💻", - ":man_technologist_tone2:": "👨🏼💻", - ":man_technologist_medium_light_skin_tone:": "👨🏼💻", - ":man_technologist_tone1:": "👨🏻💻", - ":man_technologist_light_skin_tone:": "👨🏻💻", - ":man_technologist:": "👨💻", - ":woman_technologist_tone5:": "👩🏿💻", - ":woman_technologist_dark_skin_tone:": "👩🏿💻", - ":woman_technologist_tone4:": "👩🏾💻", - ":woman_technologist_medium_dark_skin_tone:": "👩🏾💻", - ":woman_technologist_tone3:": "👩🏽💻", - ":woman_technologist_medium_skin_tone:": "👩🏽💻", - ":woman_technologist_tone2:": "👩🏼💻", - ":woman_technologist_medium_light_skin_tone:": "👩🏼💻", - ":woman_technologist_tone1:": "👩🏻💻", - ":woman_technologist_light_skin_tone:": "👩🏻💻", - ":woman_technologist:": "👩💻", - ":man_teacher_tone5:": "👨🏿🏫", - ":man_teacher_dark_skin_tone:": "👨🏿🏫", - ":man_teacher_tone4:": "👨🏾🏫", - ":man_teacher_medium_dark_skin_tone:": "👨🏾🏫", - ":man_teacher_tone3:": "👨🏽🏫", - ":man_teacher_medium_skin_tone:": "👨🏽🏫", - ":man_teacher_tone2:": "👨🏼🏫", - ":man_teacher_medium_light_skin_tone:": "👨🏼🏫", - ":man_teacher_tone1:": "👨🏻🏫", - ":man_teacher_light_skin_tone:": "👨🏻🏫", - ":man_teacher:": "👨🏫", - ":woman_teacher_tone5:": "👩🏿🏫", - ":woman_teacher_dark_skin_tone:": "👩🏿🏫", - ":woman_teacher_tone4:": "👩🏾🏫", - ":woman_teacher_medium_dark_skin_tone:": "👩🏾🏫", - ":woman_teacher_tone3:": "👩🏽🏫", - ":woman_teacher_medium_skin_tone:": "👩🏽🏫", - ":woman_teacher_tone2:": "👩🏼🏫", - ":woman_teacher_medium_light_skin_tone:": "👩🏼🏫", - ":woman_teacher_tone1:": "👩🏻🏫", - ":woman_teacher_light_skin_tone:": "👩🏻🏫", - ":woman_teacher:": "👩🏫", - ":man_student_tone5:": "👨🏿🎓", - ":man_student_dark_skin_tone:": "👨🏿🎓", - ":man_student_tone4:": "👨🏾🎓", - ":man_student_medium_dark_skin_tone:": "👨🏾🎓", - ":man_student_tone3:": "👨🏽🎓", - ":man_student_medium_skin_tone:": "👨🏽🎓", - ":man_student_tone2:": "👨🏼🎓", - ":man_student_medium_light_skin_tone:": "👨🏼🎓", - ":man_student_tone1:": "👨🏻🎓", - ":man_student_light_skin_tone:": "👨🏻🎓", - ":man_student:": "👨🎓", - ":woman_student_tone5:": "👩🏿🎓", - ":woman_student_dark_skin_tone:": "👩🏿🎓", - ":woman_student_tone4:": "👩🏾🎓", - ":woman_student_medium_dark_skin_tone:": "👩🏾🎓", - ":woman_student_tone3:": "👩🏽🎓", - ":woman_student_medium_skin_tone:": "👩🏽🎓", - ":woman_student_tone2:": "👩🏼🎓", - ":woman_student_medium_light_skin_tone:": "👩🏼🎓", - ":woman_student_tone1:": "👩🏻🎓", - ":woman_student_light_skin_tone:": "👩🏻🎓", - ":woman_student:": "👩🎓", - ":man_singer_tone5:": "👨🏿🎤", - ":man_singer_dark_skin_tone:": "👨🏿🎤", - ":man_singer_tone4:": "👨🏾🎤", - ":man_singer_medium_dark_skin_tone:": "👨🏾🎤", - ":man_singer_tone3:": "👨🏽🎤", - ":man_singer_medium_skin_tone:": "👨🏽🎤", - ":man_singer_tone2:": "👨🏼🎤", - ":man_singer_medium_light_skin_tone:": "👨🏼🎤", - ":man_singer_tone1:": "👨🏻🎤", - ":man_singer_light_skin_tone:": "👨🏻🎤", - ":man_singer:": "👨🎤", - ":woman_singer_tone5:": "👩🏿🎤", - ":woman_singer_dark_skin_tone:": "👩🏿🎤", - ":woman_singer_tone4:": "👩🏾🎤", - ":woman_singer_medium_dark_skin_tone:": "👩🏾🎤", - ":woman_singer_tone3:": "👩🏽🎤", - ":woman_singer_medium_skin_tone:": "👩🏽🎤", - ":woman_singer_tone2:": "👩🏼🎤", - ":woman_singer_medium_light_skin_tone:": "👩🏼🎤", - ":woman_singer_tone1:": "👩🏻🎤", - ":woman_singer_light_skin_tone:": "👩🏻🎤", - ":woman_singer:": "👩🎤", - ":man_scientist_tone5:": "👨🏿🔬", - ":man_scientist_dark_skin_tone:": "👨🏿🔬", - ":man_scientist_tone4:": "👨🏾🔬", - ":man_scientist_medium_dark_skin_tone:": "👨🏾🔬", - ":man_scientist_tone3:": "👨🏽🔬", - ":man_scientist_medium_skin_tone:": "👨🏽🔬", - ":man_scientist_tone2:": "👨🏼🔬", - ":man_scientist_medium_light_skin_tone:": "👨🏼🔬", - ":man_scientist_tone1:": "👨🏻🔬", - ":man_scientist_light_skin_tone:": "👨🏻🔬", - ":man_scientist:": "👨🔬", - ":woman_scientist_tone5:": "👩🏿🔬", - ":woman_scientist_dark_skin_tone:": "👩🏿🔬", - ":woman_scientist_tone4:": "👩🏾🔬", - ":woman_scientist_medium_dark_skin_tone:": "👩🏾🔬", - ":woman_scientist_tone3:": "👩🏽🔬", - ":woman_scientist_medium_skin_tone:": "👩🏽🔬", - ":woman_scientist_tone2:": "👩🏼🔬", - ":woman_scientist_medium_light_skin_tone:": "👩🏼🔬", - ":woman_scientist_tone1:": "👩🏻🔬", - ":woman_scientist_light_skin_tone:": "👩🏻🔬", - ":woman_scientist:": "👩🔬", - ":man_office_worker_tone5:": "👨🏿💼", - ":man_office_worker_dark_skin_tone:": "👨🏿💼", - ":man_office_worker_tone4:": "👨🏾💼", - ":man_office_worker_medium_dark_skin_tone:": "👨🏾💼", - ":man_office_worker_tone3:": "👨🏽💼", - ":man_office_worker_medium_skin_tone:": "👨🏽💼", - ":man_office_worker_tone2:": "👨🏼💼", - ":man_office_worker_medium_light_skin_tone:": "👨🏼💼", - ":man_office_worker_tone1:": "👨🏻💼", - ":man_office_worker_light_skin_tone:": "👨🏻💼", - ":man_office_worker:": "👨💼", - ":woman_office_worker_tone5:": "👩🏿💼", - ":woman_office_worker_dark_skin_tone:": "👩🏿💼", - ":woman_office_worker_tone4:": "👩🏾💼", - ":woman_office_worker_medium_dark_skin_tone:": "👩🏾💼", - ":woman_office_worker_tone3:": "👩🏽💼", - ":woman_office_worker_medium_skin_tone:": "👩🏽💼", - ":woman_office_worker_tone2:": "👩🏼💼", - ":woman_office_worker_medium_light_skin_tone:": "👩🏼💼", - ":woman_office_worker_tone1:": "👩🏻💼", - ":woman_office_worker_light_skin_tone:": "👩🏻💼", - ":woman_office_worker:": "👩💼", - ":man_mechanic_tone5:": "👨🏿🔧", - ":man_mechanic_dark_skin_tone:": "👨🏿🔧", - ":man_mechanic_tone4:": "👨🏾🔧", - ":man_mechanic_medium_dark_skin_tone:": "👨🏾🔧", - ":man_mechanic_tone3:": "👨🏽🔧", - ":man_mechanic_medium_skin_tone:": "👨🏽🔧", - ":man_mechanic_tone2:": "👨🏼🔧", - ":man_mechanic_medium_light_skin_tone:": "👨🏼🔧", - ":man_mechanic_tone1:": "👨🏻🔧", - ":man_mechanic_light_skin_tone:": "👨🏻🔧", - ":man_mechanic:": "👨🔧", - ":woman_mechanic_tone5:": "👩🏿🔧", - ":woman_mechanic_dark_skin_tone:": "👩🏿🔧", - ":woman_mechanic_tone4:": "👩🏾🔧", - ":woman_mechanic_medium_dark_skin_tone:": "👩🏾🔧", - ":woman_mechanic_tone3:": "👩🏽🔧", - ":woman_mechanic_medium_skin_tone:": "👩🏽🔧", - ":woman_mechanic_tone2:": "👩🏼🔧", - ":woman_mechanic_medium_light_skin_tone:": "👩🏼🔧", - ":woman_mechanic_tone1:": "👩🏻🔧", - ":woman_mechanic_light_skin_tone:": "👩🏻🔧", - ":woman_mechanic:": "👩🔧", - ":man_health_worker_tone5:": "👨🏿⚕", - ":man_health_worker_dark_skin_tone:": "👨🏿⚕", - ":man_health_worker_tone4:": "👨🏾⚕", - ":man_health_worker_medium_dark_skin_tone:": "👨🏾⚕", - ":man_health_worker_tone3:": "👨🏽⚕", - ":man_health_worker_medium_skin_tone:": "👨🏽⚕", - ":man_health_worker_tone2:": "👨🏼⚕", - ":man_health_worker_medium_light_skin_tone:": "👨🏼⚕", - ":man_health_worker_tone1:": "👨🏻⚕", - ":man_health_worker_light_skin_tone:": "👨🏻⚕", - ":man_health_worker:": "👨⚕", - ":woman_health_worker_tone5:": "👩🏿⚕", - ":woman_health_worker_dark_skin_tone:": "👩🏿⚕", - ":woman_health_worker_tone4:": "👩🏾⚕", - ":woman_health_worker_medium_dark_skin_tone:": "👩🏾⚕", - ":woman_health_worker_tone3:": "👩🏽⚕", - ":woman_health_worker_medium_skin_tone:": "👩🏽⚕", - ":woman_health_worker_tone2:": "👩🏼⚕", - ":woman_health_worker_medium_light_skin_tone:": "👩🏼⚕", - ":woman_health_worker_tone1:": "👩🏻⚕", - ":woman_health_worker_light_skin_tone:": "👩🏻⚕", - ":woman_health_worker:": "👩⚕", - ":man_factory_worker_tone5:": "👨🏿🏭", - ":man_factory_worker_dark_skin_tone:": "👨🏿🏭", - ":man_factory_worker_tone4:": "👨🏾🏭", - ":man_factory_worker_medium_dark_skin_tone:": "👨🏾🏭", - ":man_factory_worker_tone3:": "👨🏽🏭", - ":man_factory_worker_medium_skin_tone:": "👨🏽🏭", - ":man_factory_worker_tone2:": "👨🏼🏭", - ":man_factory_worker_medium_light_skin_tone:": "👨🏼🏭", - ":man_factory_worker_tone1:": "👨🏻🏭", - ":man_factory_worker_light_skin_tone:": "👨🏻🏭", - ":man_factory_worker:": "👨🏭", - ":woman_factory_worker_tone5:": "👩🏿🏭", - ":woman_factory_worker_dark_skin_tone:": "👩🏿🏭", - ":woman_factory_worker_tone4:": "👩🏾🏭", - ":woman_factory_worker_medium_dark_skin_tone:": "👩🏾🏭", - ":woman_factory_worker_tone3:": "👩🏽🏭", - ":woman_factory_worker_medium_skin_tone:": "👩🏽🏭", - ":woman_factory_worker_tone2:": "👩🏼🏭", - ":woman_factory_worker_medium_light_skin_tone:": "👩🏼🏭", - ":woman_factory_worker_tone1:": "👩🏻🏭", - ":woman_factory_worker_light_skin_tone:": "👩🏻🏭", - ":woman_factory_worker:": "👩🏭", - ":man_cook_tone5:": "👨🏿🍳", - ":man_cook_dark_skin_tone:": "👨🏿🍳", - ":man_cook_tone4:": "👨🏾🍳", - ":man_cook_medium_dark_skin_tone:": "👨🏾🍳", - ":man_cook_tone3:": "👨🏽🍳", - ":man_cook_medium_skin_tone:": "👨🏽🍳", - ":man_cook_tone2:": "👨🏼🍳", - ":man_cook_medium_light_skin_tone:": "👨🏼🍳", - ":man_cook_tone1:": "👨🏻🍳", - ":man_cook_light_skin_tone:": "👨🏻🍳", - ":man_cook:": "👨🍳", - ":woman_cook_tone5:": "👩🏿🍳", - ":woman_cook_dark_skin_tone:": "👩🏿🍳", - ":woman_cook_tone4:": "👩🏾🍳", - ":woman_cook_medium_dark_skin_tone:": "👩🏾🍳", - ":woman_cook_tone3:": "👩🏽🍳", - ":woman_cook_medium_skin_tone:": "👩🏽🍳", - ":woman_cook_tone2:": "👩🏼🍳", - ":woman_cook_medium_light_skin_tone:": "👩🏼🍳", - ":woman_cook_tone1:": "👩🏻🍳", - ":woman_cook_light_skin_tone:": "👩🏻🍳", - ":woman_cook:": "👩🍳", - ":man_farmer_tone5:": "👨🏿🌾", - ":man_farmer_dark_skin_tone:": "👨🏿🌾", - ":man_farmer_tone4:": "👨🏾🌾", - ":man_farmer_medium_dark_skin_tone:": "👨🏾🌾", - ":man_farmer_tone3:": "👨🏽🌾", - ":man_farmer_medium_skin_tone:": "👨🏽🌾", - ":man_farmer_tone2:": "👨🏼🌾", - ":man_farmer_medium_light_skin_tone:": "👨🏼🌾", - ":man_farmer_tone1:": "👨🏻🌾", - ":man_farmer_light_skin_tone:": "👨🏻🌾", - ":man_farmer:": "👨🌾", - ":woman_farmer_tone5:": "👩🏿🌾", - ":woman_farmer_dark_skin_tone:": "👩🏿🌾", - ":woman_farmer_tone4:": "👩🏾🌾", - ":woman_farmer_medium_dark_skin_tone:": "👩🏾🌾", - ":woman_farmer_tone3:": "👩🏽🌾", - ":woman_farmer_medium_skin_tone:": "👩🏽🌾", - ":woman_farmer_tone2:": "👩🏼🌾", - ":woman_farmer_medium_light_skin_tone:": "👩🏼🌾", - ":woman_farmer_tone1:": "👩🏻🌾", - ":woman_farmer_light_skin_tone:": "👩🏻🌾", - ":woman_farmer:": "👩🌾", - ":man_in_business_suit_levitating_tone1:": "🕴🏻", - ":man_in_business_suit_levitating_light_skin_tone:": "🕴🏻", - ":man_in_business_suit_levitating_tone2:": "🕴🏼", - ":man_in_business_suit_levitating_medium_light_skin_tone:": "🕴🏼", - ":man_in_business_suit_levitating_tone3:": "🕴🏽", - ":man_in_business_suit_levitating_medium_skin_tone:": "🕴🏽", - ":man_in_business_suit_levitating_tone4:": "🕴🏾", - ":man_in_business_suit_levitating_medium_dark_skin_tone:": "🕴🏾", - ":man_in_business_suit_levitating_tone5:": "🕴🏿", - ":man_in_business_suit_levitating_dark_skin_tone:": "🕴🏿", - ":person_in_bed_tone1:": "🛌🏻", - ":person_in_bed_light_skin_tone:": "🛌🏻", - ":person_in_bed_tone2:": "🛌🏼", - ":person_in_bed_medium_light_skin_tone:": "🛌🏼", - ":person_in_bed_tone3:": "🛌🏽", - ":person_in_bed_medium_skin_tone:": "🛌🏽", - ":person_in_bed_tone4:": "🛌🏾", - ":person_in_bed_medium_dark_skin_tone:": "🛌🏾", - ":person_in_bed_tone5:": "🛌🏿", - ":person_in_bed_dark_skin_tone:": "🛌🏿", - ":family_man_boy:": "👨👦", - ":family_man_boy_boy:": "👨👦👦", - ":family_man_girl:": "👨👧", - ":family_man_girl_boy:": "👨👧👦", - ":family_woman_boy:": "👩👦", - ":family_woman_boy_boy:": "👩👦👦", - ":family_woman_girl:": "👩👧", - ":family_woman_girl_boy:": "👩👧👦", - ":family_woman_girl_girl:": "👩👧👧", - ":man_judge:": "👨⚖", - ":man_judge_tone1:": "👨🏻⚖", - ":man_judge_light_skin_tone:": "👨🏻⚖", - ":man_judge_tone2:": "👨🏼⚖", - ":man_judge_medium_light_skin_tone:": "👨🏼⚖", - ":man_judge_tone3:": "👨🏽⚖", - ":man_judge_medium_skin_tone:": "👨🏽⚖", - ":man_judge_tone4:": "👨🏾⚖", - ":man_judge_medium_dark_skin_tone:": "👨🏾⚖", - ":man_judge_tone5:": "👨🏿⚖", - ":man_judge_dark_skin_tone:": "👨🏿⚖", - ":woman_judge:": "👩⚖", - ":woman_judge_tone1:": "👩🏻⚖", - ":woman_judge_light_skin_tone:": "👩🏻⚖", - ":woman_judge_tone2:": "👩🏼⚖", - ":woman_judge_medium_light_skin_tone:": "👩🏼⚖", - ":woman_judge_tone3:": "👩🏽⚖", - ":woman_judge_medium_skin_tone:": "👩🏽⚖", - ":woman_judge_tone4:": "👩🏾⚖", - ":woman_judge_medium_dark_skin_tone:": "👩🏾⚖", - ":woman_judge_tone5:": "👩🏿⚖", - ":woman_judge_dark_skin_tone:": "👩🏿⚖", - ":man_pilot:": "👨✈", - ":man_pilot_tone1:": "👨🏻✈", - ":man_pilot_light_skin_tone:": "👨🏻✈", - ":man_pilot_tone2:": "👨🏼✈", - ":man_pilot_medium_light_skin_tone:": "👨🏼✈", - ":man_pilot_tone3:": "👨🏽✈", - ":man_pilot_medium_skin_tone:": "👨🏽✈", - ":man_pilot_tone4:": "👨🏾✈", - ":man_pilot_medium_dark_skin_tone:": "👨🏾✈", - ":man_pilot_tone5:": "👨🏿✈", - ":man_pilot_dark_skin_tone:": "👨🏿✈", - ":woman_pilot:": "👩✈", - ":woman_pilot_tone1:": "👩🏻✈", - ":woman_pilot_light_skin_tone:": "👩🏻✈", - ":woman_pilot_tone2:": "👩🏼✈", - ":woman_pilot_medium_light_skin_tone:": "👩🏼✈", - ":woman_pilot_tone3:": "👩🏽✈", - ":woman_pilot_medium_skin_tone:": "👩🏽✈", - ":woman_pilot_tone4:": "👩🏾✈", - ":woman_pilot_medium_dark_skin_tone:": "👩🏾✈", - ":woman_pilot_tone5:": "👩🏿✈", - ":woman_pilot_dark_skin_tone:": "👩🏿✈", - ":man_artist:": "👨🎨", - ":man_artist_tone1:": "👨🏻🎨", - ":man_artist_light_skin_tone:": "👨🏻🎨", - ":man_artist_tone2:": "👨🏼🎨", - ":man_artist_medium_light_skin_tone:": "👨🏼🎨", - ":man_artist_tone3:": "👨🏽🎨", - ":man_artist_medium_skin_tone:": "👨🏽🎨", - ":man_artist_tone4:": "👨🏾🎨", - ":man_artist_medium_dark_skin_tone:": "👨🏾🎨", - ":man_artist_tone5:": "👨🏿🎨", - ":man_artist_dark_skin_tone:": "👨🏿🎨", - ":woman_artist:": "👩🎨", - ":woman_artist_tone1:": "👩🏻🎨", - ":woman_artist_light_skin_tone:": "👩🏻🎨", - ":woman_artist_tone2:": "👩🏼🎨", - ":woman_artist_medium_light_skin_tone:": "👩🏼🎨", - ":woman_artist_tone3:": "👩🏽🎨", - ":woman_artist_medium_skin_tone:": "👩🏽🎨", - ":woman_artist_tone4:": "👩🏾🎨", - ":woman_artist_medium_dark_skin_tone:": "👩🏾🎨", - ":woman_artist_tone5:": "👩🏿🎨", - ":woman_artist_dark_skin_tone:": "👩🏿🎨", - ":man_astronaut:": "👨🚀", - ":man_astronaut_tone1:": "👨🏻🚀", - ":man_astronaut_light_skin_tone:": "👨🏻🚀", - ":man_astronaut_tone2:": "👨🏼🚀", - ":man_astronaut_medium_light_skin_tone:": "👨🏼🚀", - ":man_astronaut_tone3:": "👨🏽🚀", - ":man_astronaut_medium_skin_tone:": "👨🏽🚀", - ":man_astronaut_tone4:": "👨🏾🚀", - ":man_astronaut_medium_dark_skin_tone:": "👨🏾🚀", - ":man_astronaut_tone5:": "👨🏿🚀", - ":man_astronaut_dark_skin_tone:": "👨🏿🚀", - ":woman_astronaut:": "👩🚀", - ":woman_astronaut_tone1:": "👩🏻🚀", - ":woman_astronaut_light_skin_tone:": "👩🏻🚀", - ":woman_astronaut_tone2:": "👩🏼🚀", - ":woman_astronaut_medium_light_skin_tone:": "👩🏼🚀", - ":woman_astronaut_tone3:": "👩🏽🚀", - ":woman_astronaut_medium_skin_tone:": "👩🏽🚀", - ":woman_astronaut_tone4:": "👩🏾🚀", - ":woman_astronaut_medium_dark_skin_tone:": "👩🏾🚀", - ":woman_astronaut_tone5:": "👩🏿🚀", - ":woman_astronaut_dark_skin_tone:": "👩🏿🚀", - ":man_firefighter:": "👨🚒", - ":man_firefighter_tone1:": "👨🏻🚒", - ":man_firefighter_light_skin_tone:": "👨🏻🚒", - ":man_firefighter_tone2:": "👨🏼🚒", - ":man_firefighter_medium_light_skin_tone:": "👨🏼🚒", - ":man_firefighter_tone3:": "👨🏽🚒", - ":man_firefighter_medium_skin_tone:": "👨🏽🚒", - ":man_firefighter_tone4:": "👨🏾🚒", - ":man_firefighter_medium_dark_skin_tone:": "👨🏾🚒", - ":man_firefighter_tone5:": "👨🏿🚒", - ":man_firefighter_dark_skin_tone:": "👨🏿🚒", - ":woman_firefighter:": "👩🚒", - ":woman_firefighter_tone1:": "👩🏻🚒", - ":woman_firefighter_light_skin_tone:": "👩🏻🚒", - ":woman_firefighter_tone2:": "👩🏼🚒", - ":woman_firefighter_medium_light_skin_tone:": "👩🏼🚒", - ":woman_firefighter_tone3:": "👩🏽🚒", - ":woman_firefighter_medium_skin_tone:": "👩🏽🚒", - ":woman_firefighter_tone4:": "👩🏾🚒", - ":woman_firefighter_medium_dark_skin_tone:": "👩🏾🚒", - ":woman_firefighter_tone5:": "👩🏿🚒", - ":woman_firefighter_dark_skin_tone:": "👩🏿🚒", - ":female_sign:": "♀", - ":male_sign:": "♂", - ":medical_symbol:": "⚕", - ":united_nations:": "🇺🇳", - ":snowboarder_tone2:": "🏂🏼", - ":snowboarder_medium_light_skin_tone:": "🏂🏼", - ":snowboarder_tone3:": "🏂🏽", - ":snowboarder_medium_skin_tone:": "🏂🏽", - ":snowboarder_tone4:": "🏂🏾", - ":snowboarder_medium_dark_skin_tone:": "🏂🏾", - ":snowboarder_tone5:": "🏂🏿", - ":snowboarder_dark_skin_tone:": "🏂🏿", - ":person_golfing_tone1:": "🏌🏻", - ":person_golfing_light_skin_tone:": "🏌🏻", - ":person_golfing_tone2:": "🏌🏼", - ":person_golfing_medium_light_skin_tone:": "🏌🏼", - ":person_golfing_tone3:": "🏌🏽", -} - -function replace_emoji() { - $('.emoji_poss').each(function(){ - const emoji = $(this).html().match(/(:.+?:)|✅/g); - for(let i in emoji) { - if(emoji_dict[emoji[i]]) { - $(this).html($(this).html().replace(emoji[i], emoji_dict[emoji[i]])); - $(this).removeClass('emoji_poss'); - } - } - $(this).html($(this).html().replace("✅", "")); - }); - twemoji.parse(document.body); -}; - -function replaced_emoji_return(original) { - const emoji = original.match(/(:.+?:)/g); - for(let i in emoji) { - if(emoji_dict[emoji[i]]) { - original = original.replace(emoji[i], emoji_dict[emoji[i]]); - } - } - return original -}; diff --git a/public_html/assets/js/shortcut.js b/public_html/assets/js/shortcut.js deleted file mode 100644 index 387b00c..0000000 --- a/public_html/assets/js/shortcut.js +++ /dev/null @@ -1,223 +0,0 @@ -/** - * http://www.openjs.com/scripts/events/keyboard_shortcuts/ - * Version : 2.01.B - * By Binny V A - * License : BSD - */ -shortcut = { - 'all_shortcuts':{},//All the shortcuts are stored in this array - 'add': function(shortcut_combination,callback,opt) { - //Provide a set of default options - var default_options = { - 'type':'keydown', - 'propagate':false, - 'disable_in_input':false, - 'target':document, - 'keycode':false - } - if(!opt) opt = default_options; - else { - for(var dfo in default_options) { - if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo]; - } - } - - var ele = opt.target; - if(typeof opt.target == 'string') ele = document.getElementById(opt.target); - var ths = this; - shortcut_combination = shortcut_combination.toLowerCase(); - - //The function to be called at keypress - var func = function(e) { - e = e || window.event; - - if(opt['disable_in_input']) { //Don't enable shortcut keys in Input, Textarea fields - var element; - if(e.target) element=e.target; - else if(e.srcElement) element=e.srcElement; - if(element.nodeType==3) element=element.parentNode; - - if(element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return; - } - - //Find Which key is pressed - if (e.keyCode) code = e.keyCode; - else if (e.which) code = e.which; - var character = String.fromCharCode(code).toLowerCase(); - - if(code == 188) character=","; //If the user presses , when the type is onkeydown - if(code == 190) character="."; //If the user presses , when the type is onkeydown - - var keys = shortcut_combination.split("+"); - //Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked - var kp = 0; - - //Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken - var shift_nums = { - "`":"~", - "1":"!", - "2":"@", - "3":"#", - "4":"$", - "5":"%", - "6":"^", - "7":"&", - "8":"*", - "9":"(", - "0":")", - "-":"_", - "=":"+", - ";":":", - "'":"\"", - ",":"<", - ".":">", - "/":"?", - "\\":"|" - } - //Special Keys - and their codes - var special_keys = { - 'esc':27, - 'escape':27, - 'tab':9, - 'space':32, - 'return':13, - 'enter':13, - 'backspace':8, - - 'scrolllock':145, - 'scroll_lock':145, - 'scroll':145, - 'capslock':20, - 'caps_lock':20, - 'caps':20, - 'numlock':144, - 'num_lock':144, - 'num':144, - - 'pause':19, - 'break':19, - - 'insert':45, - 'home':36, - 'delete':46, - 'end':35, - - 'pageup':33, - 'page_up':33, - 'pu':33, - - 'pagedown':34, - 'page_down':34, - 'pd':34, - - 'left':37, - 'up':38, - 'right':39, - 'down':40, - - 'f1':112, - 'f2':113, - 'f3':114, - 'f4':115, - 'f5':116, - 'f6':117, - 'f7':118, - 'f8':119, - 'f9':120, - 'f10':121, - 'f11':122, - 'f12':123 - } - - var modifiers = { - shift: { wanted:false, pressed:false}, - ctrl : { wanted:false, pressed:false}, - alt : { wanted:false, pressed:false}, - meta : { wanted:false, pressed:false} //Meta is Mac specific - }; - - if(e.ctrlKey) modifiers.ctrl.pressed = true; - if(e.shiftKey) modifiers.shift.pressed = true; - if(e.altKey) modifiers.alt.pressed = true; - if(e.metaKey) modifiers.meta.pressed = true; - - for(var i=0; k=keys[i],i 1) { //If it is a special key - if(special_keys[k] == code) kp++; - - } else if(opt['keycode']) { - if(opt['keycode'] == code) kp++; - - } else { //The special keys did not match - if(character == k) kp++; - else { - if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase - character = shift_nums[character]; - if(character == k) kp++; - } - } - } - } - - if(kp == keys.length && - modifiers.ctrl.pressed == modifiers.ctrl.wanted && - modifiers.shift.pressed == modifiers.shift.wanted && - modifiers.alt.pressed == modifiers.alt.wanted && - modifiers.meta.pressed == modifiers.meta.wanted) { - callback(e); - - if(!opt['propagate']) { //Stop the event - //e.cancelBubble is supported by IE - this will kill the bubbling process. - e.cancelBubble = true; - e.returnValue = false; - - //e.stopPropagation works in Firefox. - if (e.stopPropagation) { - e.stopPropagation(); - e.preventDefault(); - } - return false; - } - } - } - this.all_shortcuts[shortcut_combination] = { - 'callback':func, - 'target':ele, - 'event': opt['type'] - }; - //Attach the function with the event - if(ele.addEventListener) ele.addEventListener(opt['type'], func, false); - else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func); - else ele['on'+opt['type']] = func; - }, - - //Remove the shortcut - just specify the shortcut and I will remove the binding - 'remove':function(shortcut_combination) { - shortcut_combination = shortcut_combination.toLowerCase(); - var binding = this.all_shortcuts[shortcut_combination]; - delete(this.all_shortcuts[shortcut_combination]) - if(!binding) return; - var type = binding['event']; - var ele = binding['target']; - var callback = binding['callback']; - - if(ele.detachEvent) ele.detachEvent('on'+type, callback); - else if(ele.removeEventListener) ele.removeEventListener(type, callback, false); - else ele['on'+type] = false; - } - -} \ No newline at end of file diff --git a/public_html/federated.php b/public_html/federated.php deleted file mode 100644 index ee94a37..0000000 --- a/public_html/federated.php +++ /dev/null @@ -1,66 +0,0 @@ - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    - -
    - -
      -
    - -
    - -
    - -
    - - - -
    - -
    - - - \ No newline at end of file diff --git a/public_html/header.php b/public_html/header.php deleted file mode 100644 index 36798e9..0000000 --- a/public_html/header.php +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - Halcyon - - - - - - - - - - - - - - - - - - - - - diff --git a/public_html/home.php b/public_html/home.php deleted file mode 100644 index 7448f91..0000000 --- a/public_html/home.php +++ /dev/null @@ -1,62 +0,0 @@ - - - -
    - -
    - - - -
    - -
    - -
    - -
    - -
    - -
      -
    - -
    - -
    - -
    - - - -
    - -
    - - - - \ No newline at end of file diff --git a/public_html/local.php b/public_html/local.php deleted file mode 100644 index 74f2d5c..0000000 --- a/public_html/local.php +++ /dev/null @@ -1,76 +0,0 @@ - - - -
    - -
    - - - -
    - -
    - - - -
    - -
    - -
    - -
      -
    - -
    - -
    - -
    - - - -
    - -
    - - - \ No newline at end of file diff --git a/public_html/login/assets/css/style.css b/public_html/login/assets/css/style.css deleted file mode 100644 index af0588c..0000000 --- a/public_html/login/assets/css/style.css +++ /dev/null @@ -1,571 +0,0 @@ -@charset "utf-8"; - -/*-------------------------------------- - Reset ---------------------------------------*/ - -* { - margin: 0; - padding: 0; - font-size: 100%; -} - -a { - text-decoration: none; - word-break: break-all; - color: inherit; -} - -a:hover { - text-decoration: underline; -} - -ul, ol { - list-style: none; - padding: 0; - margin: 0; -} - -img { - vertical-align: top; - border: 0; - max-width: 100%; - max-height: 100%; -} - -button { - font-size: 100%; -} - -.clear { - clear: both; -} - -.red { - color: red!important; -} - -.invisible { - display: none!important; -} - -.no-events { - pointer-events: none!important; -} - -.no-underline, -.no-underline:hover { - text-decoration: none!important; -} - -.disallow_select { - user-select: none; - -ms-user-select: none; - -webkit-user-select: none; - -moz-user-select: none; -} - -.text_ellipsis { - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} - -.pointer { - cursor: pointer; -} - -.khmer_font { - font-family: "Khmer MN", Helvetica, Arial, sans-serif!important; -} - -.gill_font { - font-family: "Gill Sans", Helvetica, Arial, sans-serif!important; -} - -.trebuchet_font { - font-family: "Trebuchet MS", Helvetica, Arial, sans-serif!important; -} - -h1, h2, h3, h4, h5, h6 { - font-weight: normal; - line-height: 1; - margin: 0; - padding: 0; -} - -blockquote, q { - quotes: none; - margin: 0; -} - -blockquote * { - margin: 0; - word-break: break-all; -} - -blockquote:before, blockquote:after, -q:before, q:after { - content:''; - content:none; -} - -article,aside,details,figcaption,figure, -footer,header,hgroup,menu,nav,section { - display:block; -} - -textarea { - width: 100%; -} - -input { - max-width: 100%; -} - -button, -input[type="submit"], -input[type="button"], -input[type="text"], -input[type="password"], -textarea, -select{ - background-color: transparent; - border: none; - cursor: pointer; - outline: none; - padding: 0; - appearance: none; -} -input:-webkit-autofill { - -webkit-box-shadow: 0 0 0px 1000px transparent inset; -} - -/* Twitter Emoji Prefix */ -img.emoji { - height: 1em; - width: 1em; - margin: 0 .05em 0 .1em; - vertical-align: -0.1em; -} - -/*-------------------------------------- - Base ---------------------------------------*/ - -html { - font-family : "Trebuchet MS",Helvetica,"ヒラギノ角ゴ Pro W3", - "Hiragino Kaku Gothic Pro",Meiryo,"メイリオ","MS Pゴシック",Arial,sans-serif; - font-size : 100%; - line-height : 1; - color: #333; - min-width: 100%; - min-height: 100%; -} - -body { - margin: 0; - padding: 0; - min-width: 100%; - min-height: 100%; - word-wrap:break-word; - background-color: #F5F8FA; -} - -/*------------------------------------- - HEADER AREA --------------------------------------*/ - -#header { - width: 100%; - height: 56px; - color: #fff; - background-color: #222; - box-shadow: 0px 3px 5px rgba(0,0,0,0.26); - position: fixed; - z-index: 999; -} - -#header #header_wrap { - display: flex; - justify-content: flex-start; - align-items: center; - width: 100%; - height: 100%; -} - -#header #header_wrap > .header_box { - height: 100%; - flex-grow: 1; - flex-shrink: 0; -} - -/*------------------------------------- - HEADER AREA: TITLE --------------------------------------*/ - -#header #header_wrap .header_box.header_right_box { - display: flex; - justify-content: flex-start; -} - -#header #header_wrap .header_box.header_right_box .title_box { - height: 100%; - margin-left: 24px; - box-sizing: border-box; -} - -/*------------------------------------- - HEADER AREA: NAV --------------------------------------*/ - -#header #header_wrap .header_box.header_left_box { - display: flex; - justify-content: flex-end; -} - -#header #header_wrap .header_box.header_left_box nav { - height: 100%; -} - -#header #header_wrap .header_box.header_left_box .nav_box ul { - display: block; - height: 100%; - width: 100%; -} - -#header #header_wrap .header_box.header_left_box .nav_box ul a { - height: 100%; -} - -#header #header_wrap .header_box.header_left_box .nav_box ul li { - display: block; - float: left; - cursor: pointer; - height: calc(100% - 5px*2 ); - margin-top: 5px; - border-bottom: 0px solid #007BD0; -} - -#header #header_wrap .header_box.header_left_box .nav_box ul li span { - display: block; - height: 100%; - margin: auto; - padding: 15px 24px; - font-size: 14px; - box-sizing: border-box; -} - -#header #header_wrap .header_box.header_left_box .nav_box ul li span i { - margin-right: 4px; -} - -#header #header_wrap .header_box.header_left_box .nav_box ul li:hover { - color: #189EFC; - border-bottom-width: 5px; - transition: 0.15s ease-out; -} - -/*------------------------------------- - MAIN --------------------------------------*/ - -#main { - padding-top: 56px; -} - -/*------------------------------------- - FORM --------------------------------------*/ - -#main #login_form_wrap { - width: 100%; - height: 560px; - padding: 56px 0; - margin-bottom: -200px; - box-sizing: border-box; - background-image: url("/login/assets/images/background.jpg"); - background-size: cover; - background-repeat: no-repeat; -} - -#main #login_form_wrap .login_form { - position: relative; - width: 640px; - height: 220px; - padding: 36px 24px; - margin: auto; - overflow: hidden; - background: inherit; - box-sizing: border-box; - border-radius: 4px; - border: 1px solid #C9EFF8; - text-align: center; - box-shadow: 0px 5px 5px rgba(0,0,0,0.26); - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form.expand { - width: 780px; - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form::before { - display: block; - position: absolute; - content: ""; - top: -3px; - left: -3px; - right: -3px; - bottom: -3px; - background: inherit; - background-position: top center; - filter: blur(3px); - border-radius: 5px; - z-index: 0; -} - -#main #login_form_wrap .login_form form { - position: relative; - margin: auto; - z-index: 1; - color: #C9EFF8; -} - -#main #login_form_wrap .login_form form a { - color: #fff; -} - -#main #login_form_wrap .login_form h2 { - font-size: 32px; - font-weight: 600; - margin-bottom: 16px; - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form.expand h2 { - font-size: 42px; - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form p { - margin-bottom: 16px; - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form.expand p { - opacity: 0; - margin-bottom: 0; - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form .login_form_main { - display: flex; - flex-wrap: nowrap; - justify-content: flex-start; - align-items: center; - margin: auto; - height: 32px; - width: 276px; - border: 1px solid #C9EFF8; - border-radius: 32px; - background-color: rgba(0,0,0,.3); - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form.expand .login_form_main { - width: 360px; - height: 42px; - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form .login_form_main.active { - box-shadow: 0px 3px 5px rgba(0,0,0,0.26); -} - -#main #login_form_wrap .login_form .login_form_main input[name="acct"] { - display: block; - -webkit-appearance : none; - flex-grow: 1; - padding: 4px 0 4px 14px; - color: #C9EFF8; - border: none; - background: none; - box-sizing: border-box; - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form.expand .login_form_main input[name="acct"] { - flex-grow: 2; - padding: 8px 0 8px 14px; - transition: 0.25s ease-out; -} - -#main #login_form_wrap .login_form .login_form_main .login_form_continue { - display: block; - flex-grow: 1; - color: #C9EFF8; -} - -#main #login_form_wrap .login_form .login_form_main .login_form_continue:hover { - color: #fff; -} - -#main #login_form_wrap .login_form .login_form_agree { - margin: 16px auto 0; -} - -#main #login_form_wrap .login_form .login_form_agree i { - color: #fff; -} - -/*------------------------------------- - ARTICLE --------------------------------------*/ - -#article { - position: relative; - width: 640px; - margin: auto; - margin-bottom: 56px; - padding: 24px 36px 36px; - border-radius: 4px; - background-color: #fff; - box-sizing: border-box; - box-shadow: 3px 3px 5px rgba(0,0,0,0.26); -} - -#article h2 { - font-size: 32px; - font-weight: 600; - margin: 16px 0; -} - -#article p { - display: inline-block; - margin-bottom: 16px; - font-size: 16px; - line-height: 1.2; -} - -#article .image_wrap { - display: block; - position: relative; - margin: 0 -36px 24px; - border-top: 0.5px solid #555; - border-bottom: 0.5px solid #555; -} - -#article .image_wrap ul { - display: block; - position: relative; - width: 100%; - height: 370px; - overflow: hidden; -} - -#article .image_wrap ul li { - position: absolute; - top: 0; - left: 0; -} - -@keyframes fadeout { - 0% {opacity: 1;} - 100% {opacity: 0;} -} - -@keyframes fadein { - 0% {opacity: 0;} - 100% {opacity: 1;} -} - -#article .image_wrap ul li.fadeout { - animation-name: fadeout; - animation-duration: 0.5s; - animation-fill-mode: forwards; -} - -#article .image_wrap ul li.fadein { - animation-name: fadein; - animation-duration: 0.5s; - animation-fill-mode: forwards; -} - -#article .image_wrap .switch_button { - display: block; - opacity: 0; - position: absolute; - top: 0; - width: 30px; - height: 100%; - color: #fff; - background-color: rgba(0, 0, 0, .3); - transition: 0.15s ease-out; -} - -#article .image_wrap:hover .switch_button { - opacity: 1; - transition: 0.15s ease-out; -} - -@keyframes switching_image_list { - 0% {background-color: rgba(0, 0, 0, .3);} - 50% {background-color: rgba(0, 0, 0, .8);} - 100% {background-color: rgba(0, 0, 0, .3);} -} - -#article .image_wrap:hover .switch_button.active { - animation-name: switching_image_list; - animation-duration: 0.35s; -} - -#article .image_wrap .switch_button.prev_button { - left: 0; -} - -#article .image_wrap .switch_button.next_button { - right: 0; -} - - -#article a { - color: #189EFC; -} - -/*------------------------------------- - FOOTER --------------------------------------*/ - -#footer { - width: 640px; - padding: 24px 36px 12px; - box-sizing: border-box; - margin: auto; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - box-shadow: 3px 3px 5px rgba(0,0,0,0.26); - background-color: #222; -} - -#footer .footer_anchor { - display: flex; - justify-content: center; - align-items: center; - color: #444; - font-size: 36px; - transition: 0.15s ease-out; -} - -#footer .footer_anchor:hover { - color: #555; - transition: 0.15s ease-out; -} - -#footer span { - font-size: 14px; - color: #ddd; - margin: auto; - display: block; - text-align: center; -} \ No newline at end of file diff --git a/public_html/login/assets/js/halcyon_login.js b/public_html/login/assets/js/halcyon_login.js deleted file mode 100644 index 9722339..0000000 --- a/public_html/login/assets/js/halcyon_login.js +++ /dev/null @@ -1,55 +0,0 @@ -$(function() { - - $(document).on('change','.login_form_agree #agree', function(e) { - const icon = $(this).parent().find('i.fa'); - if ( $(this).prop('checked') ) { - icon.addClass("fa-check-square-o"); - icon.removeClass("fa-square-o"); - } else if ( !$(this).prop('checked') ) { - icon.addClass("fa-square-o"); - icon.removeClass("fa-check-square-o"); - } - }); - - $(document).on('focus', '#main #login_form_wrap .login_form .login_form_main input[name="acct"]', function(e) { - $(this).parent().addClass('active') - $(".login_form").addClass('expand'); - }) - - $(document).on('blur', '#main #login_form_wrap .login_form .login_form_main input[name="acct"]', function(e) { - $(this).parent().removeClass('active') - $(".login_form").removeClass('expand'); - }) - - $(document).on('mousedown', '.image_wrap .switch_button', function(e) { - const self = $(this); - self.addClass('active'); - setTimeout(function() { - self.removeClass('active'); - }, 500); - }) - - $(document).on('click', '.image_wrap .prev_button', function(e) { - - const firstChild = $(this).parent(".image_wrap").find('ul li:first-child'); - firstChild.appendTo(".image_wrap ul"); - firstChild.addClass('fadein'); - setTimeout(function() { - firstChild.removeClass('fadein'); - }, 500); - - }) - - $(document).on('click', '.image_wrap .next_button', function(e) { - - const lastChild = $(this).parent(".image_wrap").find('ul li:last-child');; - lastChild.addClass('fadeout'); - setTimeout(function() { - lastChild.prependTo(".image_wrap ul"); - lastChild.removeClass('fadeout'); - }, 500); - - }) - - -}) \ No newline at end of file diff --git a/public_html/login/auth.php b/public_html/login/auth.php deleted file mode 100644 index f16acbc..0000000 --- a/public_html/login/auth.php +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - selectInstance($URL); - $response = $api->get_access_token($api->clientWebsite.'/auth?&host='.$domain, htmlspecialchars((string)filter_input(INPUT_GET, 'code'), ENT_QUOTES)); - - if ($response['html']["access_token"]) { - - $access_token = $response['html']["access_token"]; - $account_id = $api->accounts_verify_credentials()['html']['id']; - - echo " - - "; - - } - } - ?> - - - - - - - - diff --git a/public_html/login/login.php b/public_html/login/login.php deleted file mode 100644 index 5781f85..0000000 --- a/public_html/login/login.php +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - - Halcyon for Mastodon - - - - - - - - - - clientWebsite.'/login?cause=domain', true, 303); - die(); - } else { - try { - $client_id = $api->getInstance($URL)["client_id"]; - $authorizeURL = $URL.'/oauth/authorize?client_id='.$client_id.'&response_type=code&scope=read+write+follow&website='.$api->clientWebsite.'&redirect_uri='.urlencode($api->clientWebsite.'/auth?&host='.$domain); - header("Location: {$authorizeURL}", true, 303); - die(); - } catch (Exception $e) { - header('Location: '.$api->clientWebsite.'/login?cause=domain', true, 303); - die(); - } - } - } - ?> - - - - - - - - -
    - -
    - - - -
    - -
    - -

    What is Halcyon

    - -

    - Halcyon is standard Twitter like client of Mastodon, And you can use it just by login to your instance. Let's Toot like a tweet. -

    - -
    - -
      -
    • halcyon_screenshot
    • -
    • halcyon_screenshot
    • -
    • halcyon_screenshot
    • -
    - - - - -
    - -

    Contact / Feedback

    - -

    - Mastodon: @nipos@social.wiuwiu.de
    - Email: Use my contact form
    - Github: /halcyon-suite -

    - -

    Help us

    - -

    - Bitcoin: 1D6GThQqHQYnruKYrKyW9JC86ZGWxjt1hK
    -

    - -
    - -
    - - - - - - - - - - - diff --git a/public_html/login/terms.php b/public_html/login/terms.php deleted file mode 100644 index ae3f0f5..0000000 --- a/public_html/login/terms.php +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - Halcyon for Mastodon - - - - - - - - - - - - -
    -
    -

    Halcyon Terms of Use

    -

    This terms of use agreement is for the users of web service Halcyon for Mastodon (Halcyon for short) hosted at halcyon.social.

    -
    -

    1. Agreement

    -

    By logging into Halcyon you agree to this terms of use agreement. Do not use this service if you do not agree to these terms.

    -
    -

    2. Change

    -

    We reserve the right to modify these terms of use at any time if deemed necessary.

    -
    -

    3. Account

    -

    Users can connect to various Mastodon accounts from Halcyon, and Halcyon will not interfere with those connection.

    -
    -

    4. Content

    -

    Halcyon does not own the right to or hold responsibility for any text, image, animation, audio content accessible from Halcyon. The right and responsibility belong to the owners of instances that host those content.

    -
    -

    5. Guideline

    -

    Halcyon reserves the right to terminate service for

    -
      -
    • actions violating the laws of countries
    • -
    • actions contrary to public order and standards of decency
    • -
    • violation of third party’s right to intellectual property, brand, privacy, etc.
    • -
    • acts of violence, sexual nature, of discrimination
    • -
    • phishing or spamming
    • -
    • actions causing problem to the network infrastructure of Halcyon
    • -
    -
    -

    6. Disclaimer

    -

    Halcyon is not responsible for any damage caused by using this service.

    -
    -

    Last updated 2017/5/12

    -
    - -
    - - - - diff --git a/public_html/notifications.php b/public_html/notifications.php deleted file mode 100644 index 6a399a4..0000000 --- a/public_html/notifications.php +++ /dev/null @@ -1,69 +0,0 @@ - - - -
    - -
    - - - -
    - -
    - -
    - -
    - -
    - -
      -
    - -
    - -
    - -
    - - - -
    - -
    - - - \ No newline at end of file diff --git a/public_html/search_hash_tag.php b/public_html/search_hash_tag.php deleted file mode 100644 index fd9a575..0000000 --- a/public_html/search_hash_tag.php +++ /dev/null @@ -1,80 +0,0 @@ - - - -
    - - - -
    - - - -
    - -
    -
      - -
    • -
    • - -
    -
    - -
    - -
    - -
      -
    - -
    - -
    - -
    - - - -
    - -
    - - - \ No newline at end of file diff --git a/public_html/search_user.php b/public_html/search_user.php deleted file mode 100644 index 9d3c44d..0000000 --- a/public_html/search_user.php +++ /dev/null @@ -1,51 +0,0 @@ - - - -
    - - - -
    - - - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - - - - \ No newline at end of file diff --git a/public_html/user.php b/public_html/user.php deleted file mode 100644 index 11626c7..0000000 --- a/public_html/user.php +++ /dev/null @@ -1,158 +0,0 @@ - - - -
    - - - -
    - - - - - - -
    -
    - - - - \ No newline at end of file diff --git a/public_html/user_favorite.php b/public_html/user_favorite.php deleted file mode 100644 index 79b35c7..0000000 --- a/public_html/user_favorite.php +++ /dev/null @@ -1,147 +0,0 @@ - - - -
    - - - -
    - - - -
    - -
    - -
    - -
    - -
    - -
      -
    - -
    - -
    - -
    - - - -
    - -
    - - - - \ No newline at end of file diff --git a/public_html/user_followers.php b/public_html/user_followers.php deleted file mode 100644 index 034d46a..0000000 --- a/public_html/user_followers.php +++ /dev/null @@ -1,115 +0,0 @@ - - - -
    - - - -
    - - - -
    - -
    - -
    - -
    - -
    - -
    -
    - -
    - - - - \ No newline at end of file diff --git a/public_html/user_following.php b/public_html/user_following.php deleted file mode 100644 index 424da0e..0000000 --- a/public_html/user_following.php +++ /dev/null @@ -1,115 +0,0 @@ - - - -
    - - - -
    - - - -
    - -
    - -
    - -
    - -
    - -
    - -
    - -
    - - - - \ No newline at end of file diff --git a/public_html/user_include_replies.php b/public_html/user_include_replies.php deleted file mode 100644 index 47632f7..0000000 --- a/public_html/user_include_replies.php +++ /dev/null @@ -1,159 +0,0 @@ - - - -
    - - - -
    - - - - - - - -
    - -
    - - - - \ No newline at end of file diff --git a/public_html/user_only_media.php b/public_html/user_only_media.php deleted file mode 100644 index d93d427..0000000 --- a/public_html/user_only_media.php +++ /dev/null @@ -1,160 +0,0 @@ - - - -
    - - - -
    - - - - - - - -
    - -
    - - - - \ No newline at end of file diff --git a/public_html/widgets/create_status.php b/public_html/widgets/create_status.php deleted file mode 100644 index c8b9697..0000000 --- a/public_html/widgets/create_status.php +++ /dev/null @@ -1,101 +0,0 @@ -
    - -
    - -
    - -
    - - -
    - -
    - - -
    - - - - - -
    - -
    - - - -
    diff --git a/public_html/widgets/overlay_copy_link.php b/public_html/widgets/overlay_copy_link.php deleted file mode 100644 index b7df9f7..0000000 --- a/public_html/widgets/overlay_copy_link.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/public_html/widgets/overlay_create_status.php b/public_html/widgets/overlay_create_status.php deleted file mode 100644 index 167c2eb..0000000 --- a/public_html/widgets/overlay_create_status.php +++ /dev/null @@ -1,104 +0,0 @@ - \ No newline at end of file diff --git a/public_html/widgets/overlay_message.php b/public_html/widgets/overlay_message.php deleted file mode 100644 index 3038d6b..0000000 --- a/public_html/widgets/overlay_message.php +++ /dev/null @@ -1,5 +0,0 @@ -
    -
    - -
    -
    \ No newline at end of file diff --git a/public_html/widgets/overlay_single_reply.php b/public_html/widgets/overlay_single_reply.php deleted file mode 100644 index d6ba786..0000000 --- a/public_html/widgets/overlay_single_reply.php +++ /dev/null @@ -1,105 +0,0 @@ - \ No newline at end of file diff --git a/public_html/widgets/search_header.php b/public_html/widgets/search_header.php deleted file mode 100644 index 522516f..0000000 --- a/public_html/widgets/search_header.php +++ /dev/null @@ -1,31 +0,0 @@ -
    -

    -
    - - -
    -
    - - -
    - -
    - -
    -
    \ No newline at end of file diff --git a/public_html/widgets/side_change_local.php b/public_html/widgets/side_change_local.php deleted file mode 100644 index abf07f2..0000000 --- a/public_html/widgets/side_change_local.php +++ /dev/null @@ -1,15 +0,0 @@ -
    - -
    -

    Change instance

    -
    - -
    - -
    - -
    - -
    - -
    diff --git a/public_html/widgets/side_current_user.php b/public_html/widgets/side_current_user.php deleted file mode 100644 index 09eb005..0000000 --- a/public_html/widgets/side_current_user.php +++ /dev/null @@ -1,46 +0,0 @@ -
    - -
    - -
    - -
    - -
    - -
    - - - - - -
    -
    \ No newline at end of file diff --git a/public_html/widgets/side_dev_team.php b/public_html/widgets/side_dev_team.php deleted file mode 100644 index cd37c9a..0000000 --- a/public_html/widgets/side_dev_team.php +++ /dev/null @@ -1,61 +0,0 @@ -
    - -

    Dev team

    - - -
    \ No newline at end of file diff --git a/public_html/widgets/side_footer.php b/public_html/widgets/side_footer.php deleted file mode 100644 index 6a5af48..0000000 --- a/public_html/widgets/side_footer.php +++ /dev/null @@ -1,33 +0,0 @@ - - - diff --git a/public_html/widgets/side_load_options.php b/public_html/widgets/side_load_options.php deleted file mode 100644 index 78551fc..0000000 --- a/public_html/widgets/side_load_options.php +++ /dev/null @@ -1,28 +0,0 @@ -
    - -
    -

    Preferences

    - -
    - -
    - -

    New posts streaming

    -
    -
    - -

    Default post privacy

    -
    -
    - -

    Local instance

    -
    -
    - -

    Hashtag search filter

    -
    -
    - -
    - -
    diff --git a/public_html/widgets/side_who_to_follow.php b/public_html/widgets/side_who_to_follow.php deleted file mode 100644 index beeafea..0000000 --- a/public_html/widgets/side_who_to_follow.php +++ /dev/null @@ -1,60 +0,0 @@ -
    - -

    Who to follow

    - - -
    \ No newline at end of file diff --git a/public_html/widgets/user_header.php b/public_html/widgets/user_header.php deleted file mode 100644 index 85a784d..0000000 --- a/public_html/widgets/user_header.php +++ /dev/null @@ -1,54 +0,0 @@ - -
    - -
    - - -
    -
    - - -
    - -
    - - -
    - -
    -
    -
    \ No newline at end of file diff --git a/public_html/widgets/user_recent_images.php b/public_html/widgets/user_recent_images.php deleted file mode 100644 index 4fa464f..0000000 --- a/public_html/widgets/user_recent_images.php +++ /dev/null @@ -1,9 +0,0 @@ -
    - - - -
    - -
    - -
    \ No newline at end of file diff --git a/search_hash_tag.php b/search_hash_tag.php new file mode 100644 index 0000000..0f331cb --- /dev/null +++ b/search_hash_tag.php @@ -0,0 +1,51 @@ + +
    + +
    + +
    +
    +
      +
    • +
    • +
    +
    +
    + +
    +
      +
    +
    + +
    +
    + +
    +
    + + \ No newline at end of file diff --git a/search_user.php b/search_user.php new file mode 100644 index 0000000..507566e --- /dev/null +++ b/search_user.php @@ -0,0 +1,30 @@ + +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + + \ No newline at end of file diff --git a/user.php b/user.php new file mode 100644 index 0000000..57b623b --- /dev/null +++ b/user.php @@ -0,0 +1,106 @@ + +
    + +
    + + + +
    +
    + + \ No newline at end of file diff --git a/user_favorite.php b/user_favorite.php new file mode 100644 index 0000000..bc6180a --- /dev/null +++ b/user_favorite.php @@ -0,0 +1,91 @@ + +
    + +
    + + + +
    +
    + + \ No newline at end of file diff --git a/user_followers.php b/user_followers.php new file mode 100644 index 0000000..2c1c1e9 --- /dev/null +++ b/user_followers.php @@ -0,0 +1,73 @@ + +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + + \ No newline at end of file diff --git a/user_following.php b/user_following.php new file mode 100644 index 0000000..8257aed --- /dev/null +++ b/user_following.php @@ -0,0 +1,73 @@ + +
    + +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + + \ No newline at end of file diff --git a/user_include_replies.php b/user_include_replies.php new file mode 100644 index 0000000..02ce1ef --- /dev/null +++ b/user_include_replies.php @@ -0,0 +1,104 @@ + +
    + +
    + + + +
    +
    + + \ No newline at end of file diff --git a/user_only_media.php b/user_only_media.php new file mode 100644 index 0000000..cd8911a --- /dev/null +++ b/user_only_media.php @@ -0,0 +1,104 @@ + +
    + +
    + + + +
    +
    + + \ No newline at end of file diff --git a/widgets/create_status.php b/widgets/create_status.php new file mode 100644 index 0000000..de6114b --- /dev/null +++ b/widgets/create_status.php @@ -0,0 +1,61 @@ +
    +
    + +
    +
    +
    + +
    +
    + + +
    +
    + +
    \ No newline at end of file diff --git a/widgets/overlay_copy_link.php b/widgets/overlay_copy_link.php new file mode 100644 index 0000000..9953414 --- /dev/null +++ b/widgets/overlay_copy_link.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/widgets/overlay_create_status.php b/widgets/overlay_create_status.php new file mode 100644 index 0000000..569ecbd --- /dev/null +++ b/widgets/overlay_create_status.php @@ -0,0 +1,63 @@ + \ No newline at end of file diff --git a/widgets/overlay_message.php b/widgets/overlay_message.php new file mode 100644 index 0000000..46a207c --- /dev/null +++ b/widgets/overlay_message.php @@ -0,0 +1,5 @@ +
    +
    + +
    +
    \ No newline at end of file diff --git a/widgets/overlay_single_reply.php b/widgets/overlay_single_reply.php new file mode 100644 index 0000000..2b6804c --- /dev/null +++ b/widgets/overlay_single_reply.php @@ -0,0 +1,64 @@ + \ No newline at end of file diff --git a/widgets/search_header.php b/widgets/search_header.php new file mode 100644 index 0000000..2a6124e --- /dev/null +++ b/widgets/search_header.php @@ -0,0 +1,21 @@ +
    +

    +
    +
    +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/widgets/side_change_local.php b/widgets/side_change_local.php new file mode 100644 index 0000000..4dce982 --- /dev/null +++ b/widgets/side_change_local.php @@ -0,0 +1,10 @@ +
    +
    +

    Change instance

    +
    +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/widgets/side_current_user.php b/widgets/side_current_user.php new file mode 100644 index 0000000..dbc32f2 --- /dev/null +++ b/widgets/side_current_user.php @@ -0,0 +1,36 @@ +
    +
    + +
    +
    +
    + +
    +
    + +

    + +
    +
    + +
    +
    \ No newline at end of file diff --git a/widgets/side_dev_team.php b/widgets/side_dev_team.php new file mode 100644 index 0000000..6b2e8d0 --- /dev/null +++ b/widgets/side_dev_team.php @@ -0,0 +1,73 @@ +
    +

    Interesting accounts of devs

    + +
    \ No newline at end of file diff --git a/widgets/side_footer.php b/widgets/side_footer.php new file mode 100644 index 0000000..73e5c8b --- /dev/null +++ b/widgets/side_footer.php @@ -0,0 +1,23 @@ + + diff --git a/widgets/side_load_options.php b/widgets/side_load_options.php new file mode 100644 index 0000000..930ef86 --- /dev/null +++ b/widgets/side_load_options.php @@ -0,0 +1,20 @@ +
    +
    +

    Preferences

    + +
    +
    +

    New posts streaming

    +
    +
    +

    Default post privacy

    +
    +
    +

    Local instance

    +
    +
    +

    Hashtag search filter

    +
    +
    +
    +
    diff --git a/widgets/side_who_to_follow.php b/widgets/side_who_to_follow.php new file mode 100644 index 0000000..9d4abbc --- /dev/null +++ b/widgets/side_who_to_follow.php @@ -0,0 +1,56 @@ +
    +

    Who to follow

    + +
    \ No newline at end of file diff --git a/widgets/user_header.php b/widgets/user_header.php new file mode 100644 index 0000000..6f65f9a --- /dev/null +++ b/widgets/user_header.php @@ -0,0 +1,35 @@ +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    \ No newline at end of file diff --git a/widgets/user_recent_images.php b/widgets/user_recent_images.php new file mode 100644 index 0000000..41fd501 --- /dev/null +++ b/widgets/user_recent_images.php @@ -0,0 +1,5 @@ +
    + +
    +
    +
    \ No newline at end of file