Compare commits
	
		
			10 Commits
		
	
	
		
			v1.5.7
			...
			66f45f11f2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 66f45f11f2 | ||
|  | e30a08e019 | ||
|  | 80f45a1f5c | ||
|  | 1a1b1b8144 | ||
| 34d5fddf6c | |||
| ac41dbce0c | |||
| 208d169c76 | |||
|  | 9cfcb0d09c | ||
|  | cc55b3e1d1 | ||
|  | a9a08e656f | 
							
								
								
									
										2
									
								
								.idea/dataSources.local.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2
									
								
								.idea/dataSources.local.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="dataSourceStorageLocal" created-in="CL-223.8836.42"> | ||||
|   <component name="dataSourceStorageLocal" created-in="CL-231.9161.40"> | ||||
|     <data-source name="MySQL for 5.1 - soundfx@localhost" uuid="1067c1d0-1386-4a39-b3f5-6d48d6f279eb"> | ||||
|       <database-info product="" version="" jdbc-version="" driver-name="" driver-version="" dbms="MYSQL" exact-version="0" /> | ||||
|       <secret-storage>master_key</secret-storage> | ||||
|   | ||||
							
								
								
									
										354
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										354
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -55,13 +55,13 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" | ||||
|  | ||||
| [[package]] | ||||
| name = "async-trait" | ||||
| version = "0.1.67" | ||||
| version = "0.1.68" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "86ea188f25f0255d8f92797797c97ebf5631fa88178beb1a46fdf5622c9a00e4" | ||||
| checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 2.0.8", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -237,9 +237,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "cmake" | ||||
| version = "0.1.49" | ||||
| version = "0.1.50" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c" | ||||
| checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" | ||||
| dependencies = [ | ||||
|  "cc", | ||||
| ] | ||||
| @@ -272,15 +272,15 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "core-foundation-sys" | ||||
| version = "0.8.3" | ||||
| version = "0.8.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" | ||||
| checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" | ||||
|  | ||||
| [[package]] | ||||
| name = "cpufeatures" | ||||
| version = "0.2.5" | ||||
| version = "0.2.6" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" | ||||
| checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" | ||||
| dependencies = [ | ||||
|  "libc", | ||||
| ] | ||||
| @@ -351,9 +351,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "cxx" | ||||
| version = "1.0.93" | ||||
| version = "1.0.94" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "a9c00419335c41018365ddf7e4d5f1c12ee3659ddcf3e01974650ba1de73d038" | ||||
| checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" | ||||
| dependencies = [ | ||||
|  "cc", | ||||
|  "cxxbridge-flags", | ||||
| @@ -363,9 +363,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "cxx-build" | ||||
| version = "1.0.93" | ||||
| version = "1.0.94" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "fb8307ad413a98fff033c8545ecf133e3257747b3bae935e7602aab8aa92d4ca" | ||||
| checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" | ||||
| dependencies = [ | ||||
|  "cc", | ||||
|  "codespan-reporting", | ||||
| @@ -373,24 +373,24 @@ dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "scratch", | ||||
|  "syn 2.0.8", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "cxxbridge-flags" | ||||
| version = "1.0.93" | ||||
| version = "1.0.94" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "edc52e2eb08915cb12596d29d55f0b5384f00d697a646dbd269b6ecb0fbd9d31" | ||||
| checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" | ||||
|  | ||||
| [[package]] | ||||
| name = "cxxbridge-macro" | ||||
| version = "1.0.93" | ||||
| version = "1.0.94" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "631569015d0d8d54e6c241733f944042623ab6df7bc3be7466874b05fcdb1c5f" | ||||
| checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 2.0.8", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -537,13 +537,13 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "errno" | ||||
| version = "0.2.8" | ||||
| version = "0.3.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" | ||||
| checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" | ||||
| dependencies = [ | ||||
|  "errno-dragonfly", | ||||
|  "libc", | ||||
|  "winapi", | ||||
|  "windows-sys 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -585,7 +585,7 @@ dependencies = [ | ||||
|  "futures-sink", | ||||
|  "nanorand", | ||||
|  "pin-project", | ||||
|  "spin 0.9.6", | ||||
|  "spin 0.9.8", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -620,9 +620,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "futures" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" | ||||
| checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" | ||||
| dependencies = [ | ||||
|  "futures-channel", | ||||
|  "futures-core", | ||||
| @@ -635,9 +635,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-channel" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" | ||||
| checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" | ||||
| dependencies = [ | ||||
|  "futures-core", | ||||
|  "futures-sink", | ||||
| @@ -645,15 +645,15 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-core" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" | ||||
| checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-executor" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" | ||||
| checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" | ||||
| dependencies = [ | ||||
|  "futures-core", | ||||
|  "futures-task", | ||||
| @@ -673,38 +673,38 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-io" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" | ||||
| checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-macro" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" | ||||
| checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 1.0.109", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-sink" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" | ||||
| checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-task" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" | ||||
| checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" | ||||
|  | ||||
| [[package]] | ||||
| name = "futures-util" | ||||
| version = "0.3.27" | ||||
| version = "0.3.28" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" | ||||
| checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" | ||||
| dependencies = [ | ||||
|  "futures-channel", | ||||
|  "futures-core", | ||||
| @@ -733,9 +733,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "generic-array" | ||||
| version = "0.14.6" | ||||
| version = "0.14.7" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" | ||||
| checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" | ||||
| dependencies = [ | ||||
|  "typenum", | ||||
|  "version_check", | ||||
| @@ -743,9 +743,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "getrandom" | ||||
| version = "0.2.8" | ||||
| version = "0.2.9" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" | ||||
| checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "js-sys", | ||||
| @@ -919,16 +919,16 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "iana-time-zone" | ||||
| version = "0.1.54" | ||||
| version = "0.1.56" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" | ||||
| checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" | ||||
| dependencies = [ | ||||
|  "android_system_properties", | ||||
|  "core-foundation-sys", | ||||
|  "iana-time-zone-haiku", | ||||
|  "js-sys", | ||||
|  "wasm-bindgen", | ||||
|  "windows 0.46.0", | ||||
|  "windows 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -959,9 +959,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "indexmap" | ||||
| version = "1.9.2" | ||||
| version = "1.9.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" | ||||
| checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" | ||||
| dependencies = [ | ||||
|  "autocfg 1.1.0", | ||||
|  "hashbrown 0.12.3", | ||||
| @@ -978,31 +978,31 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "io-lifetimes" | ||||
| version = "1.0.9" | ||||
| version = "1.0.10" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" | ||||
| checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" | ||||
| dependencies = [ | ||||
|  "hermit-abi 0.3.1", | ||||
|  "libc", | ||||
|  "windows-sys 0.45.0", | ||||
|  "windows-sys 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "ipnet" | ||||
| version = "2.7.1" | ||||
| version = "2.7.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" | ||||
| checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" | ||||
|  | ||||
| [[package]] | ||||
| name = "is-terminal" | ||||
| version = "0.4.5" | ||||
| version = "0.4.7" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" | ||||
| checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" | ||||
| dependencies = [ | ||||
|  "hermit-abi 0.3.1", | ||||
|  "io-lifetimes", | ||||
|  "rustix", | ||||
|  "windows-sys 0.45.0", | ||||
|  "windows-sys 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -1040,9 +1040,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "libc" | ||||
| version = "0.2.140" | ||||
| version = "0.2.141" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" | ||||
| checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" | ||||
|  | ||||
| [[package]] | ||||
| name = "libm" | ||||
| @@ -1061,9 +1061,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "linux-raw-sys" | ||||
| version = "0.1.4" | ||||
| version = "0.3.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" | ||||
| checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" | ||||
|  | ||||
| [[package]] | ||||
| name = "lock_api" | ||||
| @@ -1297,9 +1297,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" | ||||
|  | ||||
| [[package]] | ||||
| name = "openssl" | ||||
| version = "0.10.47" | ||||
| version = "0.10.49" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d8b277f87dacc05a6b709965d1cbafac4649d6ce9f3ce9ceb88508b5666dfec9" | ||||
| checksum = "4d2f106ab837a24e03672c59b1239669a0596406ff657c3c0835b6b7f0f35a33" | ||||
| dependencies = [ | ||||
|  "bitflags", | ||||
|  "cfg-if", | ||||
| @@ -1312,13 +1312,13 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "openssl-macros" | ||||
| version = "0.1.0" | ||||
| version = "0.1.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" | ||||
| checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 1.0.109", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -1329,11 +1329,10 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" | ||||
|  | ||||
| [[package]] | ||||
| name = "openssl-sys" | ||||
| version = "0.9.82" | ||||
| version = "0.9.84" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "a95792af3c4e0153c3914df2261bedd30a98476f94dc892b67dfe1d89d433a04" | ||||
| checksum = "3a20eace9dc2d82904039cb76dcf50fb1a0bba071cfd1629720b5d6f1ddba0fa" | ||||
| dependencies = [ | ||||
|  "autocfg 1.1.0", | ||||
|  "cc", | ||||
|  "libc", | ||||
|  "pkg-config", | ||||
| @@ -1385,7 +1384,7 @@ dependencies = [ | ||||
|  "cfg-if", | ||||
|  "instant", | ||||
|  "libc", | ||||
|  "redox_syscall", | ||||
|  "redox_syscall 0.2.16", | ||||
|  "smallvec", | ||||
|  "winapi", | ||||
| ] | ||||
| @@ -1398,7 +1397,7 @@ checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "libc", | ||||
|  "redox_syscall", | ||||
|  "redox_syscall 0.2.16", | ||||
|  "smallvec", | ||||
|  "windows-sys 0.45.0", | ||||
| ] | ||||
| @@ -1563,9 +1562,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" | ||||
|  | ||||
| [[package]] | ||||
| name = "proc-macro2" | ||||
| version = "1.0.53" | ||||
| version = "1.0.56" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" | ||||
| checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" | ||||
| dependencies = [ | ||||
|  "unicode-ident", | ||||
| ] | ||||
| @@ -1619,10 +1618,19 @@ dependencies = [ | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "regex" | ||||
| version = "1.7.2" | ||||
| name = "redox_syscall" | ||||
| version = "0.3.5" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c" | ||||
| checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" | ||||
| dependencies = [ | ||||
|  "bitflags", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "regex" | ||||
| version = "1.7.3" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" | ||||
| dependencies = [ | ||||
|  "aho-corasick", | ||||
|  "memchr", | ||||
| @@ -1646,9 +1654,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" | ||||
|  | ||||
| [[package]] | ||||
| name = "reqwest" | ||||
| version = "0.11.15" | ||||
| version = "0.11.16" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "0ba30cc2c0cd02af1222ed216ba659cdb2f879dfe3181852fe7c50b1d0005949" | ||||
| checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" | ||||
| dependencies = [ | ||||
|  "base64 0.21.0", | ||||
|  "bytes", | ||||
| @@ -1726,16 +1734,16 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "rustix" | ||||
| version = "0.36.11" | ||||
| version = "0.37.11" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" | ||||
| checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77" | ||||
| dependencies = [ | ||||
|  "bitflags", | ||||
|  "errno", | ||||
|  "io-lifetimes", | ||||
|  "libc", | ||||
|  "linux-raw-sys", | ||||
|  "windows-sys 0.45.0", | ||||
|  "windows-sys 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -1866,9 +1874,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "serde" | ||||
| version = "1.0.158" | ||||
| version = "1.0.159" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" | ||||
| checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" | ||||
| dependencies = [ | ||||
|  "serde_derive", | ||||
| ] | ||||
| @@ -1885,20 +1893,20 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "serde_derive" | ||||
| version = "1.0.158" | ||||
| version = "1.0.159" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" | ||||
| checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 2.0.8", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "serde_json" | ||||
| version = "1.0.94" | ||||
| version = "1.0.95" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" | ||||
| checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" | ||||
| dependencies = [ | ||||
|  "itoa", | ||||
|  "ryu", | ||||
| @@ -1913,7 +1921,7 @@ checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 2.0.8", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2055,9 +2063,9 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "songbird" | ||||
| version = "0.3.1" | ||||
| version = "0.3.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "32637904e4c41947b951853390840471bf8a8a96161a57db5cf7141989e89a6a" | ||||
| checksum = "32f686a0fd771939de1da3e43cee45169fafe1595770b94680572cf18bdef288" | ||||
| dependencies = [ | ||||
|  "async-trait", | ||||
|  "async-tungstenite", | ||||
| @@ -2088,7 +2096,7 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "soundfx-rs" | ||||
| version = "1.5.7" | ||||
| version = "1.5.9" | ||||
| dependencies = [ | ||||
|  "dashmap", | ||||
|  "dotenv", | ||||
| @@ -2113,9 +2121,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" | ||||
|  | ||||
| [[package]] | ||||
| name = "spin" | ||||
| version = "0.9.6" | ||||
| version = "0.9.8" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b5d6e0250b93c8427a177b849d144a96d5acc57006149479403d7861ab721e34" | ||||
| checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" | ||||
| dependencies = [ | ||||
|  "lock_api", | ||||
| ] | ||||
| @@ -2287,38 +2295,26 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "syn" | ||||
| version = "2.0.8" | ||||
| version = "2.0.13" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9" | ||||
| checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "unicode-ident", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "synstructure" | ||||
| version = "0.12.6" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 1.0.109", | ||||
|  "unicode-xid", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "tempfile" | ||||
| version = "3.4.0" | ||||
| version = "3.5.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" | ||||
| checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
|  "fastrand", | ||||
|  "redox_syscall", | ||||
|  "redox_syscall 0.3.5", | ||||
|  "rustix", | ||||
|  "windows-sys 0.42.0", | ||||
|  "windows-sys 0.45.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2347,7 +2343,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 2.0.8", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2404,14 +2400,13 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" | ||||
|  | ||||
| [[package]] | ||||
| name = "tokio" | ||||
| version = "1.26.0" | ||||
| version = "1.27.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" | ||||
| checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" | ||||
| dependencies = [ | ||||
|  "autocfg 1.1.0", | ||||
|  "bytes", | ||||
|  "libc", | ||||
|  "memchr", | ||||
|  "mio", | ||||
|  "num_cpus", | ||||
|  "pin-project-lite", | ||||
| @@ -2423,13 +2418,13 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "tokio-macros" | ||||
| version = "1.8.2" | ||||
| version = "2.0.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" | ||||
| checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 1.0.109", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2649,12 +2644,6 @@ version = "0.1.10" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" | ||||
|  | ||||
| [[package]] | ||||
| name = "unicode-xid" | ||||
| version = "0.2.4" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" | ||||
|  | ||||
| [[package]] | ||||
| name = "unicode_categories" | ||||
| version = "0.1.1" | ||||
| @@ -2902,16 +2891,16 @@ version = "0.44.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" | ||||
| dependencies = [ | ||||
|  "windows-targets", | ||||
|  "windows-targets 0.42.2", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "windows" | ||||
| version = "0.46.0" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" | ||||
| checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" | ||||
| dependencies = [ | ||||
|  "windows-targets", | ||||
|  "windows-targets 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2920,13 +2909,13 @@ version = "0.42.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" | ||||
| dependencies = [ | ||||
|  "windows_aarch64_gnullvm", | ||||
|  "windows_aarch64_msvc", | ||||
|  "windows_i686_gnu", | ||||
|  "windows_i686_msvc", | ||||
|  "windows_x86_64_gnu", | ||||
|  "windows_x86_64_gnullvm", | ||||
|  "windows_x86_64_msvc", | ||||
|  "windows_aarch64_gnullvm 0.42.2", | ||||
|  "windows_aarch64_msvc 0.42.2", | ||||
|  "windows_i686_gnu 0.42.2", | ||||
|  "windows_i686_msvc 0.42.2", | ||||
|  "windows_x86_64_gnu 0.42.2", | ||||
|  "windows_x86_64_gnullvm 0.42.2", | ||||
|  "windows_x86_64_msvc 0.42.2", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2935,7 +2924,16 @@ version = "0.45.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" | ||||
| dependencies = [ | ||||
|  "windows-targets", | ||||
|  "windows-targets 0.42.2", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "windows-sys" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" | ||||
| dependencies = [ | ||||
|  "windows-targets 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2944,13 +2942,28 @@ version = "0.42.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" | ||||
| dependencies = [ | ||||
|  "windows_aarch64_gnullvm", | ||||
|  "windows_aarch64_msvc", | ||||
|  "windows_i686_gnu", | ||||
|  "windows_i686_msvc", | ||||
|  "windows_x86_64_gnu", | ||||
|  "windows_x86_64_gnullvm", | ||||
|  "windows_x86_64_msvc", | ||||
|  "windows_aarch64_gnullvm 0.42.2", | ||||
|  "windows_aarch64_msvc 0.42.2", | ||||
|  "windows_i686_gnu 0.42.2", | ||||
|  "windows_i686_msvc 0.42.2", | ||||
|  "windows_x86_64_gnu 0.42.2", | ||||
|  "windows_x86_64_gnullvm 0.42.2", | ||||
|  "windows_x86_64_msvc 0.42.2", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "windows-targets" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" | ||||
| dependencies = [ | ||||
|  "windows_aarch64_gnullvm 0.48.0", | ||||
|  "windows_aarch64_msvc 0.48.0", | ||||
|  "windows_i686_gnu 0.48.0", | ||||
|  "windows_i686_msvc 0.48.0", | ||||
|  "windows_x86_64_gnu 0.48.0", | ||||
|  "windows_x86_64_gnullvm 0.48.0", | ||||
|  "windows_x86_64_msvc 0.48.0", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| @@ -2959,42 +2972,84 @@ version = "0.42.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_aarch64_gnullvm" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_aarch64_msvc" | ||||
| version = "0.42.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_aarch64_msvc" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_i686_gnu" | ||||
| version = "0.42.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_i686_gnu" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_i686_msvc" | ||||
| version = "0.42.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_i686_msvc" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_x86_64_gnu" | ||||
| version = "0.42.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_x86_64_gnu" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_x86_64_gnullvm" | ||||
| version = "0.42.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_x86_64_gnullvm" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_x86_64_msvc" | ||||
| version = "0.42.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" | ||||
|  | ||||
| [[package]] | ||||
| name = "windows_x86_64_msvc" | ||||
| version = "0.48.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" | ||||
|  | ||||
| [[package]] | ||||
| name = "winreg" | ||||
| version = "0.10.1" | ||||
| @@ -3029,12 +3084,11 @@ dependencies = [ | ||||
|  | ||||
| [[package]] | ||||
| name = "zeroize_derive" | ||||
| version = "1.3.3" | ||||
| version = "1.4.2" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" | ||||
| checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|  "syn 1.0.109", | ||||
|  "synstructure", | ||||
|  "syn 2.0.13", | ||||
| ] | ||||
|   | ||||
| @@ -2,7 +2,7 @@ | ||||
| name = "soundfx-rs" | ||||
| description = "Discord bot for custom sound effects and soundboards" | ||||
| license = "AGPL-3.0-only" | ||||
| version = "1.5.7" | ||||
| version = "1.5.9" | ||||
| authors = ["jellywx <judesouthworth@pm.me>"] | ||||
| edition = "2018" | ||||
|  | ||||
| @@ -30,7 +30,10 @@ suggests = "mysql-server-8.0" | ||||
| maintainer-scripts = "debian" | ||||
| assets = [ | ||||
|     ["target/release/soundfx-rs", "usr/bin/soundfx-rs", "755"], | ||||
|     ["conf/default.env", "etc/soundfx-rs/default.env", "600"] | ||||
|     ["conf/default.env", "etc/soundfx-rs/config.env", "600"] | ||||
| ] | ||||
| conf-files = [ | ||||
|     "/etc/soundfx-rs/config.env", | ||||
| ] | ||||
|  | ||||
| [package.metadata.deb.systemd-units] | ||||
|   | ||||
							
								
								
									
										9
									
								
								Containerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Containerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| FROM ubuntu:20.04 | ||||
|  | ||||
| ENV RUSTUP_HOME=/usr/local/rustup \ | ||||
|     CARGO_HOME=/usr/local/cargo \ | ||||
|     PATH=/usr/local/cargo/bin:$PATH | ||||
|  | ||||
| RUN apt update && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt install -y gcc gcc-multilib cmake ffmpeg libopus-dev pkg-config libssl-dev curl mysql-client-8.0 | ||||
| RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal | ||||
| RUN cargo install cargo-deb | ||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
								
							| @@ -23,11 +23,26 @@ Options: | ||||
|  | ||||
| ## Building from source | ||||
|  | ||||
| 1. Install build dependencies: `sudo apt install gcc gcc-multilib cmake ffmpeg libopus-dev` | ||||
| When running from source, the config options above can be configured simply as environment variables. | ||||
|  | ||||
| Two options for building are offered. The first is easier. | ||||
|  | ||||
| ### Build for local platform | ||||
|  | ||||
| 1. Install build dependencies: `sudo apt install gcc gcc-multilib cmake ffmpeg libopus-dev pkg-config libssl-dev` | ||||
| 2. Install database server: `sudo apt install mysql-server-8.0`. Create a database called `soundfx` | ||||
| 3. Install Cargo and Rust from https://rustup.rs | ||||
| 4. Install SQLx CLI: `cargo install sqlx-cli` | ||||
| 5. From the source code directory, execute `sqlx migrate run` | ||||
| 6. Build with cargo: `cargo build --release` | ||||
|  | ||||
| When running from source, the config options above can be configured simply as environment variables. | ||||
| ### Build for other platform | ||||
|  | ||||
| By default, this builds targeting Ubuntu 20.04. Modify the Containerfile if you wish to target a different platform. These instructions are written using `podman`, but `docker` should work too. | ||||
|  | ||||
| 1. Install container software: `sudo apt install podman`. | ||||
| 2. Install database server: `sudo apt install mysql-server-8.0`. Create a database called `soundfx` | ||||
| 3. Install SQLx CLI: `cargo install sqlx-cli` | ||||
| 4. From the source code directory, execute `sqlx migrate run` | ||||
| 5. Build container image: `podman build -t soundfx .` | ||||
| 6. Build with podman: `podman run --rm --network=host -v "$PWD":/mnt -w /mnt -e "DATABASE_URL=mysql://user@localhost/soundfx" soundfx cargo deb`  | ||||
|   | ||||
							
								
								
									
										9
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								debian/postinst
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
|  | ||||
| id -u soundfx &>/dev/null || useradd -r -M soundfx | ||||
|  | ||||
| chown soundfx /etc/soundfx-rs/config.env | ||||
|  | ||||
| #DEBHELPER# | ||||
							
								
								
									
										7
									
								
								debian/postrm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								debian/postrm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| set -e | ||||
|  | ||||
| id -u soundfx &>/dev/null || userdel soundfx | ||||
|  | ||||
| #DEBHELPER# | ||||
							
								
								
									
										8
									
								
								dump-query.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								dump-query.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| mysql -D soundfx -N -e "SELECT name, hex(src) FROM sounds" > out | ||||
| split --additional-suffix=.row -l 1 out | ||||
| for filename in *.row; do | ||||
|     name=`grep -oP '^(.+)(?=\t)' $filename` | ||||
|     col=`awk -F '\t' '{print $2}' "$filename"` | ||||
|     echo $col > "$filename.hex" | ||||
|     xxd -r -p "$filename.hex" "$name.opus" | ||||
| done | ||||
| @@ -1,5 +1,6 @@ | ||||
| use poise::serenity_prelude::{ | ||||
|     builder::CreateActionRow, model::application::component::ButtonStyle, GuildChannel, | ||||
|     ReactionType, | ||||
| }; | ||||
|  | ||||
| use crate::{ | ||||
| @@ -316,21 +317,6 @@ pub async fn soundboard( | ||||
|     #[description = "Name or ID of sound for button 20"] | ||||
|     #[autocomplete = "autocomplete_sound"] | ||||
|     sound_20: Option<String>, | ||||
|     #[description = "Name or ID of sound for button 21"] | ||||
|     #[autocomplete = "autocomplete_sound"] | ||||
|     sound_21: Option<String>, | ||||
|     #[description = "Name or ID of sound for button 22"] | ||||
|     #[autocomplete = "autocomplete_sound"] | ||||
|     sound_22: Option<String>, | ||||
|     #[description = "Name or ID of sound for button 23"] | ||||
|     #[autocomplete = "autocomplete_sound"] | ||||
|     sound_23: Option<String>, | ||||
|     #[description = "Name or ID of sound for button 24"] | ||||
|     #[autocomplete = "autocomplete_sound"] | ||||
|     sound_24: Option<String>, | ||||
|     #[description = "Name or ID of sound for button 25"] | ||||
|     #[autocomplete = "autocomplete_sound"] | ||||
|     sound_25: Option<String>, | ||||
| ) -> Result<(), Error> { | ||||
|     ctx.defer().await?; | ||||
|  | ||||
| @@ -355,11 +341,6 @@ pub async fn soundboard( | ||||
|         sound_18, | ||||
|         sound_19, | ||||
|         sound_20, | ||||
|         sound_21, | ||||
|         sound_22, | ||||
|         sound_23, | ||||
|         sound_24, | ||||
|         sound_25, | ||||
|     ]; | ||||
|  | ||||
|     let mut sounds = vec![]; | ||||
| @@ -392,7 +373,33 @@ pub async fn soundboard( | ||||
|                 c.add_action_row(action_row); | ||||
|             } | ||||
|  | ||||
|             c | ||||
|             c.create_action_row(|r| { | ||||
|                 r.create_button(|b| { | ||||
|                     b.label("Stop") | ||||
|                         .emoji(ReactionType::Unicode("⏹".to_string())) | ||||
|                         .style(ButtonStyle::Danger) | ||||
|                         .custom_id("#stop") | ||||
|                 }) | ||||
|                 .create_button(|b| { | ||||
|                     b.label("Mode:") | ||||
|                         .style(ButtonStyle::Secondary) | ||||
|                         .disabled(true) | ||||
|                         .custom_id("#mode") | ||||
|                 }) | ||||
|                 .create_button(|b| { | ||||
|                     b.label("Instant") | ||||
|                         .emoji(ReactionType::Unicode("▶".to_string())) | ||||
|                         .style(ButtonStyle::Secondary) | ||||
|                         .disabled(true) | ||||
|                         .custom_id("#instant") | ||||
|                 }) | ||||
|                 .create_button(|b| { | ||||
|                     b.label("Loop") | ||||
|                         .emoji(ReactionType::Unicode("🔁".to_string())) | ||||
|                         .style(ButtonStyle::Secondary) | ||||
|                         .custom_id("#loop") | ||||
|                 }) | ||||
|             }) | ||||
|         }) | ||||
|     }) | ||||
|     .await?; | ||||
|   | ||||
| @@ -6,7 +6,7 @@ use poise::serenity_prelude::{ | ||||
|         channel::Channel, | ||||
|     }, | ||||
|     utils::shard_id, | ||||
|     Activity, Context, | ||||
|     ActionRowComponent, Activity, Context, CreateActionRow, CreateComponents, | ||||
| }; | ||||
|  | ||||
| use crate::{ | ||||
| @@ -137,23 +137,118 @@ SELECT name, id, public, server_id, uploader_id | ||||
|                 if let Some(guild_id) = component.guild_id { | ||||
|                     if let Ok(()) = SoundPager::handle_interaction(ctx, &data, component).await { | ||||
|                     } else { | ||||
|                         component | ||||
|                             .create_interaction_response(ctx, |r| { | ||||
|                                 r.kind(InteractionResponseType::DeferredUpdateMessage) | ||||
|                             }) | ||||
|                             .await | ||||
|                             .unwrap(); | ||||
|                         let mode = component.data.custom_id.as_str(); | ||||
|                         match mode { | ||||
|                             "#stop" => { | ||||
|                                 component | ||||
|                                     .create_interaction_response(ctx, |r| { | ||||
|                                         r.kind(InteractionResponseType::DeferredUpdateMessage) | ||||
|                                     }) | ||||
|                                     .await | ||||
|                                     .unwrap(); | ||||
|  | ||||
|                         play_from_query( | ||||
|                             &ctx, | ||||
|                             &data, | ||||
|                             guild_id.to_guild_cached(&ctx).unwrap(), | ||||
|                             component.user.id, | ||||
|                             None, | ||||
|                             &component.data.custom_id, | ||||
|                             false, | ||||
|                         ) | ||||
|                         .await; | ||||
|                                 let songbird = songbird::get(ctx).await.unwrap(); | ||||
|                                 let call_opt = songbird.get(guild_id); | ||||
|  | ||||
|                                 if let Some(call) = call_opt { | ||||
|                                     let mut lock = call.lock().await; | ||||
|  | ||||
|                                     lock.stop(); | ||||
|                                 } | ||||
|                             } | ||||
|  | ||||
|                             "#loop" | "#queue" | "#instant" => { | ||||
|                                 component | ||||
|                                     .create_interaction_response(ctx, |r| { | ||||
|                                         r.kind(InteractionResponseType::UpdateMessage) | ||||
|                                             .interaction_response_data(|d| { | ||||
|                                                 let mut c: CreateComponents = Default::default(); | ||||
|  | ||||
|                                                 for action_row in &component.message.components { | ||||
|                                                     let mut a: CreateActionRow = Default::default(); | ||||
|                                                     // These are always buttons | ||||
|                                                     for component in &action_row.components { | ||||
|                                                         match component { | ||||
|                                                             ActionRowComponent::Button(button) => { | ||||
|                                                                 a.create_button(|b| { | ||||
|                                                                     if let Some(label) = | ||||
|                                                                         &button.label | ||||
|                                                                     { | ||||
|                                                                         b.label(label); | ||||
|                                                                     } | ||||
|                                                                     if let Some(emoji) = | ||||
|                                                                         &button.emoji | ||||
|                                                                     { | ||||
|                                                                         b.emoji(emoji.clone()); | ||||
|                                                                     } | ||||
|                                                                     if let Some(custom_id) = | ||||
|                                                                         &button.custom_id | ||||
|                                                                     { | ||||
|                                                                         if custom_id | ||||
|                                                                             .starts_with('#') | ||||
|                                                                         { | ||||
|                                                                             b.custom_id(custom_id) | ||||
|                                                                                 .disabled( | ||||
|                                                                                     custom_id | ||||
|                                                                                         == "#mode" | ||||
|                                                                                         || custom_id | ||||
|                                                                                             == mode, | ||||
|                                                                                 ); | ||||
|                                                                         } else { | ||||
|                                                                             b.custom_id(format!( | ||||
|                                                                                 "{}{}", | ||||
|                                                                                 custom_id | ||||
|                                                                                     .split('#') | ||||
|                                                                                     .next() | ||||
|                                                                                     .unwrap(), | ||||
|                                                                                 mode | ||||
|                                                                             )); | ||||
|                                                                         } | ||||
|                                                                     } | ||||
|  | ||||
|                                                                     b.style(button.style); | ||||
|  | ||||
|                                                                     b | ||||
|                                                                 }); | ||||
|                                                             } | ||||
|                                                             _ => {} | ||||
|                                                         } | ||||
|                                                     } | ||||
|  | ||||
|                                                     c.add_action_row(a); | ||||
|                                                 } | ||||
|  | ||||
|                                                 d.set_components(c) | ||||
|                                             }) | ||||
|                                     }) | ||||
|                                     .await | ||||
|                                     .unwrap(); | ||||
|                             } | ||||
|  | ||||
|                             id_mode => { | ||||
|                                 component | ||||
|                                     .create_interaction_response(ctx, |r| { | ||||
|                                         r.kind(InteractionResponseType::DeferredUpdateMessage) | ||||
|                                     }) | ||||
|                                     .await | ||||
|                                     .unwrap(); | ||||
|  | ||||
|                                 let mut it = id_mode.split('#'); | ||||
|                                 let id = it.next().unwrap(); | ||||
|                                 let mode = it.next().unwrap_or("instant"); | ||||
|  | ||||
|                                 play_from_query( | ||||
|                                     &ctx, | ||||
|                                     &data, | ||||
|                                     guild_id.to_guild_cached(&ctx).unwrap(), | ||||
|                                     component.user.id, | ||||
|                                     None, | ||||
|                                     id.split('#').next().unwrap(), | ||||
|                                     mode == "loop", | ||||
|                                 ) | ||||
|                                 .await; | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|   | ||||
| @@ -68,8 +68,8 @@ pub async fn register_application_commands( | ||||
|  | ||||
| #[tokio::main] | ||||
| async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { | ||||
|     if Path::new("/etc/soundfx-rs/default.env").exists() { | ||||
|         dotenv::from_path("/etc/soundfx-rs/default.env").unwrap(); | ||||
|     if Path::new("/etc/soundfx-rs/config.env").exists() { | ||||
|         dotenv::from_path("/etc/soundfx-rs/config.env").unwrap(); | ||||
|     } | ||||
|  | ||||
|     env_logger::init(); | ||||
|   | ||||
| @@ -409,16 +409,9 @@ WHERE | ||||
|         &self, | ||||
|         db_pool: impl Executor<'_, Database = Database>, | ||||
|     ) -> Result<(), Box<dyn std::error::Error + Send + Sync>> { | ||||
|         sqlx::query!( | ||||
|             " | ||||
| DELETE | ||||
|     FROM sounds | ||||
|     WHERE id = ? | ||||
|             ", | ||||
|             self.id | ||||
|         ) | ||||
|         .execute(db_pool) | ||||
|         .await?; | ||||
|         sqlx::query!("DELETE FROM sounds WHERE id = ?", self.id) | ||||
|             .execute(db_pool) | ||||
|             .await?; | ||||
|  | ||||
|         Ok(()) | ||||
|     } | ||||
|   | ||||
| @@ -2,6 +2,7 @@ | ||||
| Description=Discord bot for custom sound effects and soundboards | ||||
|  | ||||
| [Service] | ||||
| User=soundfx | ||||
| Type=simple | ||||
| ExecStart=/usr/bin/soundfx-rs | ||||
| WorkingDirectory=/etc/soundfx-rs | ||||
|   | ||||
		Reference in New Issue
	
	Block a user