diff --git a/data/logo.svg b/data/logo.svg
new file mode 100644
index 0000000..ac3f9b7
--- /dev/null
+++ b/data/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/data/logs/owncast.log b/data/logs/owncast.log
new file mode 120000
index 0000000..6e917db
--- /dev/null
+++ b/data/logs/owncast.log
@@ -0,0 +1 @@
+owncast.log.202209260000
\ No newline at end of file
diff --git a/data/logs/owncast.log.202209260000 b/data/logs/owncast.log.202209260000
new file mode 100644
index 0000000..2b40533
--- /dev/null
+++ b/data/logs/owncast.log.202209260000
@@ -0,0 +1,4 @@
+time="2022-09-30T18:42:45+02:00" level=info msg="Owncast v0.0.11-dev (20220930)"
+time="2022-09-30T18:42:45+02:00" level=info msg="Video transcoder started using x264 with 1 stream variants."
+time="2022-09-30T18:42:45+02:00" level=info msg="RTMP is accepting inbound streams on port 1935."
+time="2022-09-30T18:42:45+02:00" level=fatal msg="listen tcp :1935: bind: address already in use"
diff --git a/data/owncast.db b/data/owncast.db
new file mode 100644
index 0000000..1060506
Binary files /dev/null and b/data/owncast.db differ
diff --git a/data/owncast.db-shm b/data/owncast.db-shm
new file mode 100644
index 0000000..1a70bd0
Binary files /dev/null and b/data/owncast.db-shm differ
diff --git a/data/owncast.db-wal b/data/owncast.db-wal
new file mode 100644
index 0000000..206d80c
Binary files /dev/null and b/data/owncast.db-wal differ
diff --git a/modules/base.nix b/modules/base.nix
index 8bd2fdd..bd98178 100755
--- a/modules/base.nix
+++ b/modules/base.nix
@@ -50,12 +50,33 @@
bat
git
htop
+ fd
ripgrep
tldr
tmux
usbutils
wget
neovim
+ nmap
+ tcpdump
+ bat
+ dig
+ ethtool
+ iftop
+ipcalc
+iperf3
+ipv6calc
+lsof
+ltrace
+strace
+mtr
+traceroute
+smartmontools
+sysstat
+tree
+whois
+ exa
+ zsh
];
}
diff --git a/modules/stream.nix b/modules/stream.nix
index 115dafc..37ff6cb 100644
--- a/modules/stream.nix
+++ b/modules/stream.nix
@@ -28,11 +28,20 @@ in {
};
};
};
+ streamConfig = ''
+ server {
+ listen 1935;
+ proxy_pass [::1]:1935;
+ proxy_buffer_size 32k;
+ }
+ '';
};
owncast = {
enable = true;
port = 13142;
+ listen = "[::ffff:127.0.0.1]";
openFirewall = true;
+ rtmp-port = 1935;
};
};
}
diff --git a/static b/static
new file mode 120000
index 0000000..cf37ad5
--- /dev/null
+++ b/static
@@ -0,0 +1 @@
+/nix/store/92kcxi4k317hjpk047l2zw46hxn0vvk0-owncast-0.0.11/static
\ No newline at end of file
diff --git a/webroot/favicon.ico b/webroot/favicon.ico
new file mode 100644
index 0000000..c6e2f9f
Binary files /dev/null and b/webroot/favicon.ico differ
diff --git a/webroot/img/airplay.png b/webroot/img/airplay.png
new file mode 100644
index 0000000..6529f69
Binary files /dev/null and b/webroot/img/airplay.png differ
diff --git a/webroot/img/ban-user-grey.svg b/webroot/img/ban-user-grey.svg
new file mode 100644
index 0000000..6cdca98
--- /dev/null
+++ b/webroot/img/ban-user-grey.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/webroot/img/ban-user.svg b/webroot/img/ban-user.svg
new file mode 100644
index 0000000..dd5079d
--- /dev/null
+++ b/webroot/img/ban-user.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/webroot/img/emoji/Reaper-gg.png b/webroot/img/emoji/Reaper-gg.png
new file mode 100644
index 0000000..de6d571
Binary files /dev/null and b/webroot/img/emoji/Reaper-gg.png differ
diff --git a/webroot/img/emoji/Reaper-hi.png b/webroot/img/emoji/Reaper-hi.png
new file mode 100644
index 0000000..dc6b6ae
Binary files /dev/null and b/webroot/img/emoji/Reaper-hi.png differ
diff --git a/webroot/img/emoji/Reaper-hype.png b/webroot/img/emoji/Reaper-hype.png
new file mode 100644
index 0000000..2138dba
Binary files /dev/null and b/webroot/img/emoji/Reaper-hype.png differ
diff --git a/webroot/img/emoji/Reaper-lol.png b/webroot/img/emoji/Reaper-lol.png
new file mode 100644
index 0000000..8c4eff2
Binary files /dev/null and b/webroot/img/emoji/Reaper-lol.png differ
diff --git a/webroot/img/emoji/Reaper-love.png b/webroot/img/emoji/Reaper-love.png
new file mode 100644
index 0000000..5e0f3ba
Binary files /dev/null and b/webroot/img/emoji/Reaper-love.png differ
diff --git a/webroot/img/emoji/Reaper-rage.png b/webroot/img/emoji/Reaper-rage.png
new file mode 100644
index 0000000..3da0a5d
Binary files /dev/null and b/webroot/img/emoji/Reaper-rage.png differ
diff --git a/webroot/img/emoji/Reaper-rip.png b/webroot/img/emoji/Reaper-rip.png
new file mode 100644
index 0000000..89c13c7
Binary files /dev/null and b/webroot/img/emoji/Reaper-rip.png differ
diff --git a/webroot/img/emoji/Reaper-wtf.png b/webroot/img/emoji/Reaper-wtf.png
new file mode 100644
index 0000000..e21adb6
Binary files /dev/null and b/webroot/img/emoji/Reaper-wtf.png differ
diff --git a/webroot/img/emoji/ac-box.png b/webroot/img/emoji/ac-box.png
new file mode 100644
index 0000000..18bd9b3
Binary files /dev/null and b/webroot/img/emoji/ac-box.png differ
diff --git a/webroot/img/emoji/ac-construction.png b/webroot/img/emoji/ac-construction.png
new file mode 100644
index 0000000..ee2b6f3
Binary files /dev/null and b/webroot/img/emoji/ac-construction.png differ
diff --git a/webroot/img/emoji/ac-fossil.png b/webroot/img/emoji/ac-fossil.png
new file mode 100644
index 0000000..16d4fad
Binary files /dev/null and b/webroot/img/emoji/ac-fossil.png differ
diff --git a/webroot/img/emoji/ac-item-leaf.png b/webroot/img/emoji/ac-item-leaf.png
new file mode 100644
index 0000000..6abede7
Binary files /dev/null and b/webroot/img/emoji/ac-item-leaf.png differ
diff --git a/webroot/img/emoji/ac-kkslider.png b/webroot/img/emoji/ac-kkslider.png
new file mode 100644
index 0000000..309d768
Binary files /dev/null and b/webroot/img/emoji/ac-kkslider.png differ
diff --git a/webroot/img/emoji/ac-moneytree.png b/webroot/img/emoji/ac-moneytree.png
new file mode 100644
index 0000000..3e370ac
Binary files /dev/null and b/webroot/img/emoji/ac-moneytree.png differ
diff --git a/webroot/img/emoji/ac-mosquito.png b/webroot/img/emoji/ac-mosquito.png
new file mode 100644
index 0000000..50ddb41
Binary files /dev/null and b/webroot/img/emoji/ac-mosquito.png differ
diff --git a/webroot/img/emoji/ac-shirt.png b/webroot/img/emoji/ac-shirt.png
new file mode 100644
index 0000000..41ab1d8
Binary files /dev/null and b/webroot/img/emoji/ac-shirt.png differ
diff --git a/webroot/img/emoji/ac-song.png b/webroot/img/emoji/ac-song.png
new file mode 100644
index 0000000..dfe9d84
Binary files /dev/null and b/webroot/img/emoji/ac-song.png differ
diff --git a/webroot/img/emoji/ac-tree.png b/webroot/img/emoji/ac-tree.png
new file mode 100644
index 0000000..499ee4e
Binary files /dev/null and b/webroot/img/emoji/ac-tree.png differ
diff --git a/webroot/img/emoji/ac-turnip.png b/webroot/img/emoji/ac-turnip.png
new file mode 100644
index 0000000..893ef9c
Binary files /dev/null and b/webroot/img/emoji/ac-turnip.png differ
diff --git a/webroot/img/emoji/ac-weeds.png b/webroot/img/emoji/ac-weeds.png
new file mode 100644
index 0000000..6d3b237
Binary files /dev/null and b/webroot/img/emoji/ac-weeds.png differ
diff --git a/webroot/img/emoji/alert.gif b/webroot/img/emoji/alert.gif
new file mode 100644
index 0000000..d99ac1b
Binary files /dev/null and b/webroot/img/emoji/alert.gif differ
diff --git a/webroot/img/emoji/bananadance.gif b/webroot/img/emoji/bananadance.gif
new file mode 100644
index 0000000..da6f470
Binary files /dev/null and b/webroot/img/emoji/bananadance.gif differ
diff --git a/webroot/img/emoji/bb8.png b/webroot/img/emoji/bb8.png
new file mode 100644
index 0000000..e97e3f3
Binary files /dev/null and b/webroot/img/emoji/bb8.png differ
diff --git a/webroot/img/emoji/beerparrot.gif b/webroot/img/emoji/beerparrot.gif
new file mode 100644
index 0000000..2cd83ee
Binary files /dev/null and b/webroot/img/emoji/beerparrot.gif differ
diff --git a/webroot/img/emoji/bells.png b/webroot/img/emoji/bells.png
new file mode 100644
index 0000000..1a20ab0
Binary files /dev/null and b/webroot/img/emoji/bells.png differ
diff --git a/webroot/img/emoji/birthdaypartyparrot.gif b/webroot/img/emoji/birthdaypartyparrot.gif
new file mode 100644
index 0000000..4c166ea
Binary files /dev/null and b/webroot/img/emoji/birthdaypartyparrot.gif differ
diff --git a/webroot/img/emoji/blacklightsaber.png b/webroot/img/emoji/blacklightsaber.png
new file mode 100644
index 0000000..1a53796
Binary files /dev/null and b/webroot/img/emoji/blacklightsaber.png differ
diff --git a/webroot/img/emoji/bluelightsaber.png b/webroot/img/emoji/bluelightsaber.png
new file mode 100644
index 0000000..b509c73
Binary files /dev/null and b/webroot/img/emoji/bluelightsaber.png differ
diff --git a/webroot/img/emoji/bluntparrot.gif b/webroot/img/emoji/bluntparrot.gif
new file mode 100644
index 0000000..6d33f7d
Binary files /dev/null and b/webroot/img/emoji/bluntparrot.gif differ
diff --git a/webroot/img/emoji/bobaparrot.gif b/webroot/img/emoji/bobaparrot.gif
new file mode 100644
index 0000000..17ecdfa
Binary files /dev/null and b/webroot/img/emoji/bobaparrot.gif differ
diff --git a/webroot/img/emoji/cakeparrot.gif b/webroot/img/emoji/cakeparrot.gif
new file mode 100644
index 0000000..8ddb47f
Binary files /dev/null and b/webroot/img/emoji/cakeparrot.gif differ
diff --git a/webroot/img/emoji/chewbacca.png b/webroot/img/emoji/chewbacca.png
new file mode 100644
index 0000000..4cae67b
Binary files /dev/null and b/webroot/img/emoji/chewbacca.png differ
diff --git a/webroot/img/emoji/chillparrot.gif b/webroot/img/emoji/chillparrot.gif
new file mode 100644
index 0000000..0d7a560
Binary files /dev/null and b/webroot/img/emoji/chillparrot.gif differ
diff --git a/webroot/img/emoji/christmasparrot.gif b/webroot/img/emoji/christmasparrot.gif
new file mode 100644
index 0000000..417c3e0
Binary files /dev/null and b/webroot/img/emoji/christmasparrot.gif differ
diff --git a/webroot/img/emoji/coffeeparrot.gif b/webroot/img/emoji/coffeeparrot.gif
new file mode 100644
index 0000000..3a935d2
Binary files /dev/null and b/webroot/img/emoji/coffeeparrot.gif differ
diff --git a/webroot/img/emoji/confusedparrot.gif b/webroot/img/emoji/confusedparrot.gif
new file mode 100644
index 0000000..e641f43
Binary files /dev/null and b/webroot/img/emoji/confusedparrot.gif differ
diff --git a/webroot/img/emoji/copparrot.gif b/webroot/img/emoji/copparrot.gif
new file mode 100644
index 0000000..b41a474
Binary files /dev/null and b/webroot/img/emoji/copparrot.gif differ
diff --git a/webroot/img/emoji/coronavirus.png b/webroot/img/emoji/coronavirus.png
new file mode 100644
index 0000000..6c65664
Binary files /dev/null and b/webroot/img/emoji/coronavirus.png differ
diff --git a/webroot/img/emoji/covid19parrot.gif b/webroot/img/emoji/covid19parrot.gif
new file mode 100644
index 0000000..70beb62
Binary files /dev/null and b/webroot/img/emoji/covid19parrot.gif differ
diff --git a/webroot/img/emoji/cryptoparrot.gif b/webroot/img/emoji/cryptoparrot.gif
new file mode 100644
index 0000000..0d5a8c9
Binary files /dev/null and b/webroot/img/emoji/cryptoparrot.gif differ
diff --git a/webroot/img/emoji/dabparrot.gif b/webroot/img/emoji/dabparrot.gif
new file mode 100644
index 0000000..5f95dd4
Binary files /dev/null and b/webroot/img/emoji/dabparrot.gif differ
diff --git a/webroot/img/emoji/dadparrot.gif b/webroot/img/emoji/dadparrot.gif
new file mode 100644
index 0000000..5e025dd
Binary files /dev/null and b/webroot/img/emoji/dadparrot.gif differ
diff --git a/webroot/img/emoji/daftpunkparrot.gif b/webroot/img/emoji/daftpunkparrot.gif
new file mode 100644
index 0000000..be7a1cf
Binary files /dev/null and b/webroot/img/emoji/daftpunkparrot.gif differ
diff --git a/webroot/img/emoji/darkbeerparrot.gif b/webroot/img/emoji/darkbeerparrot.gif
new file mode 100644
index 0000000..c37edb5
Binary files /dev/null and b/webroot/img/emoji/darkbeerparrot.gif differ
diff --git a/webroot/img/emoji/darkmodeparrot.gif b/webroot/img/emoji/darkmodeparrot.gif
new file mode 100644
index 0000000..b9ed205
Binary files /dev/null and b/webroot/img/emoji/darkmodeparrot.gif differ
diff --git a/webroot/img/emoji/darth_vader.png b/webroot/img/emoji/darth_vader.png
new file mode 100644
index 0000000..44f43d0
Binary files /dev/null and b/webroot/img/emoji/darth_vader.png differ
diff --git a/webroot/img/emoji/dealwithitparrot.gif b/webroot/img/emoji/dealwithitparrot.gif
new file mode 100644
index 0000000..f501e5e
Binary files /dev/null and b/webroot/img/emoji/dealwithitparrot.gif differ
diff --git a/webroot/img/emoji/death_star.png b/webroot/img/emoji/death_star.png
new file mode 100644
index 0000000..003a28a
Binary files /dev/null and b/webroot/img/emoji/death_star.png differ
diff --git a/webroot/img/emoji/discoparrot.gif b/webroot/img/emoji/discoparrot.gif
new file mode 100644
index 0000000..47a7548
Binary files /dev/null and b/webroot/img/emoji/discoparrot.gif differ
diff --git a/webroot/img/emoji/division-gg.png b/webroot/img/emoji/division-gg.png
new file mode 100644
index 0000000..d704b46
Binary files /dev/null and b/webroot/img/emoji/division-gg.png differ
diff --git a/webroot/img/emoji/division-hi.png b/webroot/img/emoji/division-hi.png
new file mode 100644
index 0000000..437b368
Binary files /dev/null and b/webroot/img/emoji/division-hi.png differ
diff --git a/webroot/img/emoji/division-hype.png b/webroot/img/emoji/division-hype.png
new file mode 100644
index 0000000..b6260bc
Binary files /dev/null and b/webroot/img/emoji/division-hype.png differ
diff --git a/webroot/img/emoji/division-lol.png b/webroot/img/emoji/division-lol.png
new file mode 100644
index 0000000..d085493
Binary files /dev/null and b/webroot/img/emoji/division-lol.png differ
diff --git a/webroot/img/emoji/division-omg.png b/webroot/img/emoji/division-omg.png
new file mode 100644
index 0000000..b1100cf
Binary files /dev/null and b/webroot/img/emoji/division-omg.png differ
diff --git a/webroot/img/emoji/division-rage.png b/webroot/img/emoji/division-rage.png
new file mode 100644
index 0000000..55d13a3
Binary files /dev/null and b/webroot/img/emoji/division-rage.png differ
diff --git a/webroot/img/emoji/division-rip.png b/webroot/img/emoji/division-rip.png
new file mode 100644
index 0000000..f57c78b
Binary files /dev/null and b/webroot/img/emoji/division-rip.png differ
diff --git a/webroot/img/emoji/division-wtf.png b/webroot/img/emoji/division-wtf.png
new file mode 100644
index 0000000..654cde9
Binary files /dev/null and b/webroot/img/emoji/division-wtf.png differ
diff --git a/webroot/img/emoji/docparrot.gif b/webroot/img/emoji/docparrot.gif
new file mode 100644
index 0000000..2fb502d
Binary files /dev/null and b/webroot/img/emoji/docparrot.gif differ
diff --git a/webroot/img/emoji/donutparrot.gif b/webroot/img/emoji/donutparrot.gif
new file mode 100644
index 0000000..9137e90
Binary files /dev/null and b/webroot/img/emoji/donutparrot.gif differ
diff --git a/webroot/img/emoji/doom_mad.gif b/webroot/img/emoji/doom_mad.gif
new file mode 100644
index 0000000..1f124b8
Binary files /dev/null and b/webroot/img/emoji/doom_mad.gif differ
diff --git a/webroot/img/emoji/empire.png b/webroot/img/emoji/empire.png
new file mode 100644
index 0000000..da2fb8c
Binary files /dev/null and b/webroot/img/emoji/empire.png differ
diff --git a/webroot/img/emoji/everythingsfineparrot.gif b/webroot/img/emoji/everythingsfineparrot.gif
new file mode 100644
index 0000000..5680c32
Binary files /dev/null and b/webroot/img/emoji/everythingsfineparrot.gif differ
diff --git a/webroot/img/emoji/evilparrot.gif b/webroot/img/emoji/evilparrot.gif
new file mode 100644
index 0000000..edb93c0
Binary files /dev/null and b/webroot/img/emoji/evilparrot.gif differ
diff --git a/webroot/img/emoji/explodyparrot.gif b/webroot/img/emoji/explodyparrot.gif
new file mode 100644
index 0000000..387005d
Binary files /dev/null and b/webroot/img/emoji/explodyparrot.gif differ
diff --git a/webroot/img/emoji/fixparrot.gif b/webroot/img/emoji/fixparrot.gif
new file mode 100644
index 0000000..3e91ba7
Binary files /dev/null and b/webroot/img/emoji/fixparrot.gif differ
diff --git a/webroot/img/emoji/flyingmoneyparrot.gif b/webroot/img/emoji/flyingmoneyparrot.gif
new file mode 100644
index 0000000..abf389d
Binary files /dev/null and b/webroot/img/emoji/flyingmoneyparrot.gif differ
diff --git a/webroot/img/emoji/footballparrot.gif b/webroot/img/emoji/footballparrot.gif
new file mode 100644
index 0000000..49472b7
Binary files /dev/null and b/webroot/img/emoji/footballparrot.gif differ
diff --git a/webroot/img/emoji/gabe1.png b/webroot/img/emoji/gabe1.png
new file mode 100644
index 0000000..89b8c4e
Binary files /dev/null and b/webroot/img/emoji/gabe1.png differ
diff --git a/webroot/img/emoji/gabe2.png b/webroot/img/emoji/gabe2.png
new file mode 100644
index 0000000..987d91c
Binary files /dev/null and b/webroot/img/emoji/gabe2.png differ
diff --git a/webroot/img/emoji/gentlemanparrot.gif b/webroot/img/emoji/gentlemanparrot.gif
new file mode 100644
index 0000000..8e8f05b
Binary files /dev/null and b/webroot/img/emoji/gentlemanparrot.gif differ
diff --git a/webroot/img/emoji/githubparrot.gif b/webroot/img/emoji/githubparrot.gif
new file mode 100644
index 0000000..0fa6ce5
Binary files /dev/null and b/webroot/img/emoji/githubparrot.gif differ
diff --git a/webroot/img/emoji/goomba.gif b/webroot/img/emoji/goomba.gif
new file mode 100644
index 0000000..c6bb719
Binary files /dev/null and b/webroot/img/emoji/goomba.gif differ
diff --git a/webroot/img/emoji/gothparrot.gif b/webroot/img/emoji/gothparrot.gif
new file mode 100644
index 0000000..361b68e
Binary files /dev/null and b/webroot/img/emoji/gothparrot.gif differ
diff --git a/webroot/img/emoji/hamburgerparrot.gif b/webroot/img/emoji/hamburgerparrot.gif
new file mode 100644
index 0000000..192b0ff
Binary files /dev/null and b/webroot/img/emoji/hamburgerparrot.gif differ
diff --git a/webroot/img/emoji/harrypotterparrot.gif b/webroot/img/emoji/harrypotterparrot.gif
new file mode 100644
index 0000000..032a37e
Binary files /dev/null and b/webroot/img/emoji/harrypotterparrot.gif differ
diff --git a/webroot/img/emoji/headbangingparrot.gif b/webroot/img/emoji/headbangingparrot.gif
new file mode 100644
index 0000000..9aad2ec
Binary files /dev/null and b/webroot/img/emoji/headbangingparrot.gif differ
diff --git a/webroot/img/emoji/headingparrot.gif b/webroot/img/emoji/headingparrot.gif
new file mode 100644
index 0000000..b17002c
Binary files /dev/null and b/webroot/img/emoji/headingparrot.gif differ
diff --git a/webroot/img/emoji/headsetparrot.gif b/webroot/img/emoji/headsetparrot.gif
new file mode 100644
index 0000000..516a04f
Binary files /dev/null and b/webroot/img/emoji/headsetparrot.gif differ
diff --git a/webroot/img/emoji/hmmparrot.gif b/webroot/img/emoji/hmmparrot.gif
new file mode 100644
index 0000000..223a6c2
Binary files /dev/null and b/webroot/img/emoji/hmmparrot.gif differ
diff --git a/webroot/img/emoji/hypnoparrot.gif b/webroot/img/emoji/hypnoparrot.gif
new file mode 100644
index 0000000..a6a0983
Binary files /dev/null and b/webroot/img/emoji/hypnoparrot.gif differ
diff --git a/webroot/img/emoji/icecreamparrot.gif b/webroot/img/emoji/icecreamparrot.gif
new file mode 100644
index 0000000..0a5093f
Binary files /dev/null and b/webroot/img/emoji/icecreamparrot.gif differ
diff --git a/webroot/img/emoji/illuminatiparrot.gif b/webroot/img/emoji/illuminatiparrot.gif
new file mode 100644
index 0000000..a0c4e79
Binary files /dev/null and b/webroot/img/emoji/illuminatiparrot.gif differ
diff --git a/webroot/img/emoji/jediparrot.gif b/webroot/img/emoji/jediparrot.gif
new file mode 100644
index 0000000..690b41d
Binary files /dev/null and b/webroot/img/emoji/jediparrot.gif differ
diff --git a/webroot/img/emoji/keanu_thanks.gif b/webroot/img/emoji/keanu_thanks.gif
new file mode 100644
index 0000000..989b9b7
Binary files /dev/null and b/webroot/img/emoji/keanu_thanks.gif differ
diff --git a/webroot/img/emoji/laptop_parrot.gif b/webroot/img/emoji/laptop_parrot.gif
new file mode 100644
index 0000000..b14bb18
Binary files /dev/null and b/webroot/img/emoji/laptop_parrot.gif differ
diff --git a/webroot/img/emoji/loveparrot.gif b/webroot/img/emoji/loveparrot.gif
new file mode 100644
index 0000000..c0d14ed
Binary files /dev/null and b/webroot/img/emoji/loveparrot.gif differ
diff --git a/webroot/img/emoji/mandalorian.png b/webroot/img/emoji/mandalorian.png
new file mode 100644
index 0000000..7db4a3b
Binary files /dev/null and b/webroot/img/emoji/mandalorian.png differ
diff --git a/webroot/img/emoji/margaritaparrot.gif b/webroot/img/emoji/margaritaparrot.gif
new file mode 100644
index 0000000..10a8c6a
Binary files /dev/null and b/webroot/img/emoji/margaritaparrot.gif differ
diff --git a/webroot/img/emoji/mario.gif b/webroot/img/emoji/mario.gif
new file mode 100644
index 0000000..87f1133
Binary files /dev/null and b/webroot/img/emoji/mario.gif differ
diff --git a/webroot/img/emoji/matrixparrot.gif b/webroot/img/emoji/matrixparrot.gif
new file mode 100644
index 0000000..eaf4404
Binary files /dev/null and b/webroot/img/emoji/matrixparrot.gif differ
diff --git a/webroot/img/emoji/meldparrot.gif b/webroot/img/emoji/meldparrot.gif
new file mode 100644
index 0000000..ae46053
Binary files /dev/null and b/webroot/img/emoji/meldparrot.gif differ
diff --git a/webroot/img/emoji/metalparrot.gif b/webroot/img/emoji/metalparrot.gif
new file mode 100644
index 0000000..f358b2f
Binary files /dev/null and b/webroot/img/emoji/metalparrot.gif differ
diff --git a/webroot/img/emoji/michaeljacksonparrot.gif b/webroot/img/emoji/michaeljacksonparrot.gif
new file mode 100644
index 0000000..cfa8405
Binary files /dev/null and b/webroot/img/emoji/michaeljacksonparrot.gif differ
diff --git a/webroot/img/emoji/moonparrot.gif b/webroot/img/emoji/moonparrot.gif
new file mode 100644
index 0000000..098938a
Binary files /dev/null and b/webroot/img/emoji/moonparrot.gif differ
diff --git a/webroot/img/emoji/moonwalkingparrot.gif b/webroot/img/emoji/moonwalkingparrot.gif
new file mode 100644
index 0000000..873f828
Binary files /dev/null and b/webroot/img/emoji/moonwalkingparrot.gif differ
diff --git a/webroot/img/emoji/mustacheparrot.gif b/webroot/img/emoji/mustacheparrot.gif
new file mode 100644
index 0000000..e71fe28
Binary files /dev/null and b/webroot/img/emoji/mustacheparrot.gif differ
diff --git a/webroot/img/emoji/nicolas_cage_party.gif b/webroot/img/emoji/nicolas_cage_party.gif
new file mode 100644
index 0000000..5414317
Binary files /dev/null and b/webroot/img/emoji/nicolas_cage_party.gif differ
diff --git a/webroot/img/emoji/nodeparrot.gif b/webroot/img/emoji/nodeparrot.gif
new file mode 100644
index 0000000..6735b0b
Binary files /dev/null and b/webroot/img/emoji/nodeparrot.gif differ
diff --git a/webroot/img/emoji/norwegianblueparrot.gif b/webroot/img/emoji/norwegianblueparrot.gif
new file mode 100644
index 0000000..0aa9583
Binary files /dev/null and b/webroot/img/emoji/norwegianblueparrot.gif differ
diff --git a/webroot/img/emoji/opensourceparrot.gif b/webroot/img/emoji/opensourceparrot.gif
new file mode 100644
index 0000000..7067743
Binary files /dev/null and b/webroot/img/emoji/opensourceparrot.gif differ
diff --git a/webroot/img/emoji/originalparrot.gif b/webroot/img/emoji/originalparrot.gif
new file mode 100644
index 0000000..428cc22
Binary files /dev/null and b/webroot/img/emoji/originalparrot.gif differ
diff --git a/webroot/img/emoji/owncast.png b/webroot/img/emoji/owncast.png
new file mode 100644
index 0000000..6e7fdc9
Binary files /dev/null and b/webroot/img/emoji/owncast.png differ
diff --git a/webroot/img/emoji/palpatine.png b/webroot/img/emoji/palpatine.png
new file mode 100644
index 0000000..ca10fe6
Binary files /dev/null and b/webroot/img/emoji/palpatine.png differ
diff --git a/webroot/img/emoji/papalparrot.gif b/webroot/img/emoji/papalparrot.gif
new file mode 100644
index 0000000..d299237
Binary files /dev/null and b/webroot/img/emoji/papalparrot.gif differ
diff --git a/webroot/img/emoji/parrot.gif b/webroot/img/emoji/parrot.gif
new file mode 100644
index 0000000..b8c261a
Binary files /dev/null and b/webroot/img/emoji/parrot.gif differ
diff --git a/webroot/img/emoji/parrotnotfound.gif b/webroot/img/emoji/parrotnotfound.gif
new file mode 100644
index 0000000..a039df9
Binary files /dev/null and b/webroot/img/emoji/parrotnotfound.gif differ
diff --git a/webroot/img/emoji/partyparrot.gif b/webroot/img/emoji/partyparrot.gif
new file mode 100644
index 0000000..b88ecc4
Binary files /dev/null and b/webroot/img/emoji/partyparrot.gif differ
diff --git a/webroot/img/emoji/phparrot.gif b/webroot/img/emoji/phparrot.gif
new file mode 100644
index 0000000..95e33b4
Binary files /dev/null and b/webroot/img/emoji/phparrot.gif differ
diff --git a/webroot/img/emoji/pirateparrot.gif b/webroot/img/emoji/pirateparrot.gif
new file mode 100644
index 0000000..028848a
Binary files /dev/null and b/webroot/img/emoji/pirateparrot.gif differ
diff --git a/webroot/img/emoji/pizzaparrot.gif b/webroot/img/emoji/pizzaparrot.gif
new file mode 100644
index 0000000..56d9dfc
Binary files /dev/null and b/webroot/img/emoji/pizzaparrot.gif differ
diff --git a/webroot/img/emoji/pokeparrot.gif b/webroot/img/emoji/pokeparrot.gif
new file mode 100644
index 0000000..a9adc86
Binary files /dev/null and b/webroot/img/emoji/pokeparrot.gif differ
diff --git a/webroot/img/emoji/popcornparrot.gif b/webroot/img/emoji/popcornparrot.gif
new file mode 100644
index 0000000..65b8585
Binary files /dev/null and b/webroot/img/emoji/popcornparrot.gif differ
diff --git a/webroot/img/emoji/porg.png b/webroot/img/emoji/porg.png
new file mode 100644
index 0000000..68d08bf
Binary files /dev/null and b/webroot/img/emoji/porg.png differ
diff --git a/webroot/img/emoji/portalparrot.gif b/webroot/img/emoji/portalparrot.gif
new file mode 100644
index 0000000..5971fbd
Binary files /dev/null and b/webroot/img/emoji/portalparrot.gif differ
diff --git a/webroot/img/emoji/pumpkinparrot.gif b/webroot/img/emoji/pumpkinparrot.gif
new file mode 100644
index 0000000..f453ce2
Binary files /dev/null and b/webroot/img/emoji/pumpkinparrot.gif differ
diff --git a/webroot/img/emoji/quadparrot.gif b/webroot/img/emoji/quadparrot.gif
new file mode 100644
index 0000000..9f1e319
Binary files /dev/null and b/webroot/img/emoji/quadparrot.gif differ
diff --git a/webroot/img/emoji/r2d2.png b/webroot/img/emoji/r2d2.png
new file mode 100644
index 0000000..0a7fa09
Binary files /dev/null and b/webroot/img/emoji/r2d2.png differ
diff --git a/webroot/img/emoji/redenvelopeparrot.gif b/webroot/img/emoji/redenvelopeparrot.gif
new file mode 100644
index 0000000..b40c76c
Binary files /dev/null and b/webroot/img/emoji/redenvelopeparrot.gif differ
diff --git a/webroot/img/emoji/ripparrot.gif b/webroot/img/emoji/ripparrot.gif
new file mode 100644
index 0000000..164250e
Binary files /dev/null and b/webroot/img/emoji/ripparrot.gif differ
diff --git a/webroot/img/emoji/rotatingparrot.gif b/webroot/img/emoji/rotatingparrot.gif
new file mode 100644
index 0000000..1916cd0
Binary files /dev/null and b/webroot/img/emoji/rotatingparrot.gif differ
diff --git a/webroot/img/emoji/ryangoslingparrot.gif b/webroot/img/emoji/ryangoslingparrot.gif
new file mode 100644
index 0000000..e241578
Binary files /dev/null and b/webroot/img/emoji/ryangoslingparrot.gif differ
diff --git a/webroot/img/emoji/rythmicalparrot.gif b/webroot/img/emoji/rythmicalparrot.gif
new file mode 100644
index 0000000..db3e52d
Binary files /dev/null and b/webroot/img/emoji/rythmicalparrot.gif differ
diff --git a/webroot/img/emoji/sadparrot.gif b/webroot/img/emoji/sadparrot.gif
new file mode 100644
index 0000000..25b500d
Binary files /dev/null and b/webroot/img/emoji/sadparrot.gif differ
diff --git a/webroot/img/emoji/schnitzelparrot.gif b/webroot/img/emoji/schnitzelparrot.gif
new file mode 100644
index 0000000..00d22d7
Binary files /dev/null and b/webroot/img/emoji/schnitzelparrot.gif differ
diff --git a/webroot/img/emoji/scienceparrot.gif b/webroot/img/emoji/scienceparrot.gif
new file mode 100644
index 0000000..b5e4342
Binary files /dev/null and b/webroot/img/emoji/scienceparrot.gif differ
diff --git a/webroot/img/emoji/shipitparrot.gif b/webroot/img/emoji/shipitparrot.gif
new file mode 100644
index 0000000..8d1ed30
Binary files /dev/null and b/webroot/img/emoji/shipitparrot.gif differ
diff --git a/webroot/img/emoji/shufflepartyparrot.gif b/webroot/img/emoji/shufflepartyparrot.gif
new file mode 100644
index 0000000..7e754cb
Binary files /dev/null and b/webroot/img/emoji/shufflepartyparrot.gif differ
diff --git a/webroot/img/emoji/sintparrot.gif b/webroot/img/emoji/sintparrot.gif
new file mode 100644
index 0000000..26f083b
Binary files /dev/null and b/webroot/img/emoji/sintparrot.gif differ
diff --git a/webroot/img/emoji/sithparrot.gif b/webroot/img/emoji/sithparrot.gif
new file mode 100644
index 0000000..df8f66e
Binary files /dev/null and b/webroot/img/emoji/sithparrot.gif differ
diff --git a/webroot/img/emoji/skiparrot.gif b/webroot/img/emoji/skiparrot.gif
new file mode 100644
index 0000000..7cfa3c0
Binary files /dev/null and b/webroot/img/emoji/skiparrot.gif differ
diff --git a/webroot/img/emoji/sleepingparrot.gif b/webroot/img/emoji/sleepingparrot.gif
new file mode 100644
index 0000000..6f0b6dd
Binary files /dev/null and b/webroot/img/emoji/sleepingparrot.gif differ
diff --git a/webroot/img/emoji/sonic.gif b/webroot/img/emoji/sonic.gif
new file mode 100644
index 0000000..e9a9f4b
Binary files /dev/null and b/webroot/img/emoji/sonic.gif differ
diff --git a/webroot/img/emoji/spyparrot.gif b/webroot/img/emoji/spyparrot.gif
new file mode 100644
index 0000000..031b64e
Binary files /dev/null and b/webroot/img/emoji/spyparrot.gif differ
diff --git a/webroot/img/emoji/stalkerparrot.gif b/webroot/img/emoji/stalkerparrot.gif
new file mode 100644
index 0000000..349d649
Binary files /dev/null and b/webroot/img/emoji/stalkerparrot.gif differ
diff --git a/webroot/img/emoji/starwars.png b/webroot/img/emoji/starwars.png
new file mode 100644
index 0000000..cef6546
Binary files /dev/null and b/webroot/img/emoji/starwars.png differ
diff --git a/webroot/img/emoji/stayhomeparrot.gif b/webroot/img/emoji/stayhomeparrot.gif
new file mode 100644
index 0000000..800adaf
Binary files /dev/null and b/webroot/img/emoji/stayhomeparrot.gif differ
diff --git a/webroot/img/emoji/storm_trooper.gif b/webroot/img/emoji/storm_trooper.gif
new file mode 100644
index 0000000..0f66de7
Binary files /dev/null and b/webroot/img/emoji/storm_trooper.gif differ
diff --git a/webroot/img/emoji/stormtrooper.png b/webroot/img/emoji/stormtrooper.png
new file mode 100644
index 0000000..ae95358
Binary files /dev/null and b/webroot/img/emoji/stormtrooper.png differ
diff --git a/webroot/img/emoji/sushiparrot.gif b/webroot/img/emoji/sushiparrot.gif
new file mode 100644
index 0000000..2722018
Binary files /dev/null and b/webroot/img/emoji/sushiparrot.gif differ
diff --git a/webroot/img/emoji/tacoparrot.gif b/webroot/img/emoji/tacoparrot.gif
new file mode 100644
index 0000000..aed1d15
Binary files /dev/null and b/webroot/img/emoji/tacoparrot.gif differ
diff --git a/webroot/img/emoji/tennisparrot.gif b/webroot/img/emoji/tennisparrot.gif
new file mode 100644
index 0000000..dd992b6
Binary files /dev/null and b/webroot/img/emoji/tennisparrot.gif differ
diff --git a/webroot/img/emoji/thanks.png b/webroot/img/emoji/thanks.png
new file mode 100644
index 0000000..80e0d32
Binary files /dev/null and b/webroot/img/emoji/thanks.png differ
diff --git a/webroot/img/emoji/thumbsupparrot.gif b/webroot/img/emoji/thumbsupparrot.gif
new file mode 100644
index 0000000..df37921
Binary files /dev/null and b/webroot/img/emoji/thumbsupparrot.gif differ
diff --git a/webroot/img/emoji/tiedyeparrot.gif b/webroot/img/emoji/tiedyeparrot.gif
new file mode 100644
index 0000000..f5bff7b
Binary files /dev/null and b/webroot/img/emoji/tiedyeparrot.gif differ
diff --git a/webroot/img/emoji/tpparrot.gif b/webroot/img/emoji/tpparrot.gif
new file mode 100644
index 0000000..a647384
Binary files /dev/null and b/webroot/img/emoji/tpparrot.gif differ
diff --git a/webroot/img/emoji/transparront.gif b/webroot/img/emoji/transparront.gif
new file mode 100644
index 0000000..f9ecf8b
Binary files /dev/null and b/webroot/img/emoji/transparront.gif differ
diff --git a/webroot/img/emoji/twinsparrot.gif b/webroot/img/emoji/twinsparrot.gif
new file mode 100644
index 0000000..c503979
Binary files /dev/null and b/webroot/img/emoji/twinsparrot.gif differ
diff --git a/webroot/img/emoji/upvoteparrot.gif b/webroot/img/emoji/upvoteparrot.gif
new file mode 100644
index 0000000..f4c8fb4
Binary files /dev/null and b/webroot/img/emoji/upvoteparrot.gif differ
diff --git a/webroot/img/emoji/vikingparrot.gif b/webroot/img/emoji/vikingparrot.gif
new file mode 100644
index 0000000..049e112
Binary files /dev/null and b/webroot/img/emoji/vikingparrot.gif differ
diff --git a/webroot/img/emoji/wesmart.png b/webroot/img/emoji/wesmart.png
new file mode 100644
index 0000000..5676faf
Binary files /dev/null and b/webroot/img/emoji/wesmart.png differ
diff --git a/webroot/img/emoji/wfhparrot.gif b/webroot/img/emoji/wfhparrot.gif
new file mode 100644
index 0000000..02469db
Binary files /dev/null and b/webroot/img/emoji/wfhparrot.gif differ
diff --git a/webroot/img/emoji/wineparrot.gif b/webroot/img/emoji/wineparrot.gif
new file mode 100644
index 0000000..e726f3c
Binary files /dev/null and b/webroot/img/emoji/wineparrot.gif differ
diff --git a/webroot/img/emoji/yoda.gif b/webroot/img/emoji/yoda.gif
new file mode 100644
index 0000000..117958c
Binary files /dev/null and b/webroot/img/emoji/yoda.gif differ
diff --git a/webroot/img/favicon/android-icon-144x144.png b/webroot/img/favicon/android-icon-144x144.png
new file mode 100644
index 0000000..3823379
Binary files /dev/null and b/webroot/img/favicon/android-icon-144x144.png differ
diff --git a/webroot/img/favicon/android-icon-192x192.png b/webroot/img/favicon/android-icon-192x192.png
new file mode 100644
index 0000000..551bf6c
Binary files /dev/null and b/webroot/img/favicon/android-icon-192x192.png differ
diff --git a/webroot/img/favicon/android-icon-36x36.png b/webroot/img/favicon/android-icon-36x36.png
new file mode 100644
index 0000000..e8f248b
Binary files /dev/null and b/webroot/img/favicon/android-icon-36x36.png differ
diff --git a/webroot/img/favicon/android-icon-48x48.png b/webroot/img/favicon/android-icon-48x48.png
new file mode 100644
index 0000000..8b5e5e5
Binary files /dev/null and b/webroot/img/favicon/android-icon-48x48.png differ
diff --git a/webroot/img/favicon/android-icon-72x72.png b/webroot/img/favicon/android-icon-72x72.png
new file mode 100644
index 0000000..2f168d5
Binary files /dev/null and b/webroot/img/favicon/android-icon-72x72.png differ
diff --git a/webroot/img/favicon/android-icon-96x96.png b/webroot/img/favicon/android-icon-96x96.png
new file mode 100644
index 0000000..12f808d
Binary files /dev/null and b/webroot/img/favicon/android-icon-96x96.png differ
diff --git a/webroot/img/favicon/apple-icon-114x114.png b/webroot/img/favicon/apple-icon-114x114.png
new file mode 100644
index 0000000..43f4f57
Binary files /dev/null and b/webroot/img/favicon/apple-icon-114x114.png differ
diff --git a/webroot/img/favicon/apple-icon-120x120.png b/webroot/img/favicon/apple-icon-120x120.png
new file mode 100644
index 0000000..a887d08
Binary files /dev/null and b/webroot/img/favicon/apple-icon-120x120.png differ
diff --git a/webroot/img/favicon/apple-icon-144x144.png b/webroot/img/favicon/apple-icon-144x144.png
new file mode 100644
index 0000000..3823379
Binary files /dev/null and b/webroot/img/favicon/apple-icon-144x144.png differ
diff --git a/webroot/img/favicon/apple-icon-152x152.png b/webroot/img/favicon/apple-icon-152x152.png
new file mode 100644
index 0000000..caa3e0a
Binary files /dev/null and b/webroot/img/favicon/apple-icon-152x152.png differ
diff --git a/webroot/img/favicon/apple-icon-180x180.png b/webroot/img/favicon/apple-icon-180x180.png
new file mode 100644
index 0000000..f357367
Binary files /dev/null and b/webroot/img/favicon/apple-icon-180x180.png differ
diff --git a/webroot/img/favicon/apple-icon-57x57.png b/webroot/img/favicon/apple-icon-57x57.png
new file mode 100644
index 0000000..1627d84
Binary files /dev/null and b/webroot/img/favicon/apple-icon-57x57.png differ
diff --git a/webroot/img/favicon/apple-icon-60x60.png b/webroot/img/favicon/apple-icon-60x60.png
new file mode 100644
index 0000000..f269199
Binary files /dev/null and b/webroot/img/favicon/apple-icon-60x60.png differ
diff --git a/webroot/img/favicon/apple-icon-72x72.png b/webroot/img/favicon/apple-icon-72x72.png
new file mode 100644
index 0000000..2f168d5
Binary files /dev/null and b/webroot/img/favicon/apple-icon-72x72.png differ
diff --git a/webroot/img/favicon/apple-icon-76x76.png b/webroot/img/favicon/apple-icon-76x76.png
new file mode 100644
index 0000000..00ce560
Binary files /dev/null and b/webroot/img/favicon/apple-icon-76x76.png differ
diff --git a/webroot/img/favicon/apple-icon-precomposed.png b/webroot/img/favicon/apple-icon-precomposed.png
new file mode 100644
index 0000000..2602bc6
Binary files /dev/null and b/webroot/img/favicon/apple-icon-precomposed.png differ
diff --git a/webroot/img/favicon/apple-icon.png b/webroot/img/favicon/apple-icon.png
new file mode 100644
index 0000000..cc574a6
Binary files /dev/null and b/webroot/img/favicon/apple-icon.png differ
diff --git a/webroot/img/favicon/browserconfig.xml b/webroot/img/favicon/browserconfig.xml
new file mode 100644
index 0000000..c554148
--- /dev/null
+++ b/webroot/img/favicon/browserconfig.xml
@@ -0,0 +1,2 @@
+
+
+ Sent at ${sentDate.toLocaleTimeString()} +
+ +Sent by:
++ ${displayName} +
+ ++ First joined: ${createDate.toLocaleString()} +
+ + ${previousNames.length > 1 && + html` ++ Previously known as: ${' '} + ${previousNames.join(', ')} +
+ `} +Be the first to follow this live stream.
++ By following this stream you'll get updates when it goes live, receive + posts from the streamer, and be featured here as a follower. +
++ Learn more about ${' '} + The Fediverse, where you can follow this server as well as so much more. +
+${displayName}
+${displayUsername}
++ By following this stream you'll get posts and notifications such as + when it goes live. +
+ +
+ ${name}
+
+ ${account}
+
+ You'll be redirected to your Fediverse server and asked to confirm + this action. ${' '} + Join the Fediverse if you haven't. +
+ + + +Contacting your server.
+Please wait...
+` (from IE). + value = value.replace(/
/gi, '\n'); + + // Cleanup the emoji titles. + value = value.replace(/\u200C{2}/gi, ''); + + // Trim each line. + value = value + .split('\n') + .map((line = '') => { + return line.trim(); + }) + .join('\n'); + + // No more than 2x newline, per "paragraph". + value = value.replace(/\n\n+/g, '\n\n'); + + // Clean up spaces. + value = value.replace(/[ ]+/g, ' '); + value = value.trim(); + + // Expose string. + return value; +} + +/* + You would call this when a user pastes from + the clipboard into a `contenteditable` area. +*/ +export function convertOnPaste(event = { preventDefault() {} }, emojiList) { + // Prevent paste. + event.preventDefault(); + + // Set later. + let value = ''; + + // Does method exist? + const hasEventClipboard = !!( + event.clipboardData && + typeof event.clipboardData === 'object' && + typeof event.clipboardData.getData === 'function' + ); + + // Get clipboard data? + if (hasEventClipboard) { + value = event.clipboardData.getData('text/plain'); + } + + // Insert into temp `