Compare commits
865 Commits
V3/feature
...
3.4.11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
910572bf43 | ||
|
|
48fad6c002 | ||
|
|
f4b65c8c7a | ||
|
|
43c30569a7 | ||
|
|
125fd6dde6 | ||
|
|
1471ead0ce | ||
|
|
d011b1f9af | ||
|
|
fc4a995540 | ||
|
|
ce4fd6cca8 | ||
|
|
305161110e | ||
|
|
f0dab50097 | ||
|
|
b630e71d08 | ||
|
|
db86de3a7a | ||
|
|
dd40f00279 | ||
|
|
177bd7f84e | ||
|
|
210c07d5a7 | ||
|
|
23997d7a71 | ||
|
|
c0f17c2155 | ||
|
|
631adc282f | ||
|
|
b8b8a38fbd | ||
|
|
2d8dbad63b | ||
|
|
137713d9ca | ||
|
|
0f4c409e84 | ||
|
|
ac0c5cc4c8 | ||
|
|
ca373052c5 | ||
|
|
f8ecc32dbc | ||
|
|
982feda858 | ||
|
|
2f7376169e | ||
|
|
7459af25ba | ||
|
|
820b21dccb | ||
|
|
c4a9d97a4b | ||
|
|
b89c43eb0f | ||
|
|
a6c438e486 | ||
|
|
994137426f | ||
|
|
f3231682b0 | ||
|
|
d5fbc0b01c | ||
|
|
1c32186d0b | ||
|
|
8a7c4aa48c | ||
|
|
3a9edd9434 | ||
|
|
439033ea28 | ||
|
|
e124ae3c11 | ||
|
|
3ff2132570 | ||
|
|
3f39a93e59 | ||
|
|
356922f4de | ||
|
|
e2f0ac582b | ||
|
|
9b66d19369 | ||
|
|
01f86091ab | ||
|
|
56099d6b50 | ||
|
|
fa4990f327 | ||
|
|
606c2f50ba | ||
|
|
53276ea12a | ||
|
|
c40efd479b | ||
|
|
a58ac7cd2e | ||
|
|
31cb4c0604 | ||
|
|
700802c303 | ||
|
|
00d2d62f1b | ||
|
|
c36665e755 | ||
|
|
75ce67837a | ||
|
|
c83eae931b | ||
|
|
ea82119605 | ||
|
|
42101275d5 | ||
|
|
38da7370ec | ||
|
|
c9431f7d90 | ||
|
|
cb45ef6c42 | ||
|
|
410b2419dd | ||
|
|
5d905a93ac | ||
|
|
99b29d0b8e | ||
|
|
4bcfa8e486 | ||
|
|
48ed6c253e | ||
|
|
9986cbe6b5 | ||
|
|
e467833cee | ||
|
|
1efcabada1 | ||
|
|
54e5307307 | ||
|
|
737e4cc399 | ||
|
|
4bdc828670 | ||
|
|
c04c2efeff | ||
|
|
2374b4af59 | ||
|
|
d666c24bd4 | ||
|
|
1697d90c53 | ||
|
|
7f05841b96 | ||
|
|
01561fbe07 | ||
|
|
f89223bc74 | ||
|
|
336abcfbba | ||
|
|
925ae870ba | ||
|
|
0447b5648a | ||
|
|
5de65a74b5 | ||
|
|
7434a7c8e2 | ||
|
|
f21addb0f5 | ||
|
|
39144ed7cd | ||
|
|
aea0db4ef6 | ||
|
|
0eaa0f494c | ||
|
|
19dcc52fb1 | ||
|
|
1c7b1e0358 | ||
|
|
82edaeeb81 | ||
|
|
2f16d33971 | ||
|
|
6a99becdb2 | ||
|
|
062211d099 | ||
|
|
84f1699b8f | ||
|
|
6cf54db308 | ||
|
|
fa25033be1 | ||
|
|
36c9d9aaee | ||
|
|
2c82a4ba2b | ||
|
|
6cae1c0204 | ||
|
|
1b6fc00039 | ||
|
|
e2c0f2aca8 | ||
|
|
83deb7c563 | ||
|
|
c574271cee | ||
|
|
a6d15dc385 | ||
|
|
07099dd1dd | ||
|
|
d1ed41c46b | ||
|
|
3c742e39d2 | ||
|
|
9a7c178db5 | ||
|
|
67fa735555 | ||
|
|
c25095ba2d | ||
|
|
adda30cbee | ||
|
|
9008410fa4 | ||
|
|
b7d8b0552e | ||
|
|
1199f160d0 | ||
|
|
5ddc6d2ea8 | ||
|
|
6e764c7e04 | ||
|
|
18a23813c8 | ||
|
|
560e1dfc3d | ||
|
|
03d72dd5fa | ||
|
|
847444eab1 | ||
|
|
6c338f175b | ||
|
|
363a2e8a17 | ||
|
|
edbd31413b | ||
|
|
4813c68185 | ||
|
|
0becf70b05 | ||
|
|
0144cbf88b | ||
|
|
76bb65912e | ||
|
|
01637a9798 | ||
|
|
7c853db9f4 | ||
|
|
a919610588 | ||
|
|
49da854eb7 | ||
|
|
c168e55be9 | ||
|
|
35dfb04066 | ||
|
|
fb701d8c72 | ||
|
|
24fadad4cf | ||
|
|
f30772a7bd | ||
|
|
b71d278ae5 | ||
|
|
be00a59ab3 | ||
|
|
d45a02166d | ||
|
|
a4db7a1028 | ||
|
|
ef803072fa | ||
|
|
e5ffe86c4e | ||
|
|
d1bc4b4302 | ||
|
|
6c903aacff | ||
|
|
1b3958515b | ||
|
|
fef56427ae | ||
|
|
18fea4e4a7 | ||
|
|
f82d613a11 | ||
|
|
0c3e772135 | ||
|
|
c78ee14617 | ||
|
|
3782e9c1b9 | ||
|
|
8d03fef566 | ||
|
|
77896494c4 | ||
|
|
aad34f2b08 | ||
|
|
85dc6f4cc9 | ||
|
|
7126482449 | ||
|
|
9bb61ba882 | ||
|
|
1ff976b3d0 | ||
|
|
53c069a636 | ||
|
|
bb90444979 | ||
|
|
19fc5a090c | ||
|
|
0d53b2ab73 | ||
|
|
d3b448d50c | ||
|
|
02667ef65d | ||
|
|
51b73fdd1a | ||
|
|
f926fab431 | ||
|
|
dbbaa88e8e | ||
|
|
df5926b51a | ||
|
|
7d42c4c6c3 | ||
|
|
dfe84f9936 | ||
|
|
649b4ebb15 | ||
|
|
f476b842d5 | ||
|
|
92ea92b617 | ||
|
|
ae2bae058c | ||
|
|
b20fc9f6af | ||
|
|
fc5eadd0cc | ||
|
|
c5fbf5fb94 | ||
|
|
54bbdd61e1 | ||
|
|
512ff7a4b5 | ||
|
|
6881b20c20 | ||
|
|
e80a00ec1b | ||
|
|
7b04c04551 | ||
|
|
62411bc2a5 | ||
|
|
bee022d1bb | ||
|
|
1be7435fb5 | ||
|
|
9b4363eff3 | ||
|
|
dc68bc5d37 | ||
|
|
5b670c074f | ||
|
|
1a9ce2040a | ||
|
|
4fa8a51ea1 | ||
|
|
acec5c6efe | ||
|
|
d64944d5c3 | ||
|
|
6cfaffb8a8 | ||
|
|
3122eb0447 | ||
|
|
bf30f2078c | ||
|
|
33850a2c35 | ||
|
|
40368cc379 | ||
|
|
a9e572d55a | ||
|
|
4ca2fe0872 | ||
|
|
dd9e60b15f | ||
|
|
ee33d46732 | ||
|
|
4c58dcedfe | ||
|
|
82595df730 | ||
|
|
1920212eda | ||
|
|
7df1570d51 | ||
|
|
663876fba3 | ||
|
|
ae87aa396a | ||
|
|
bf624da51b | ||
|
|
0f8f33fed2 | ||
|
|
f9848a69b7 | ||
|
|
082106eb21 | ||
|
|
45f22404d4 | ||
|
|
9737c1b5eb | ||
|
|
7c86071a5d | ||
|
|
86fbead609 | ||
|
|
8139587e5e | ||
|
|
d6de9c1b94 | ||
|
|
e24379973c | ||
|
|
2bffbd9001 | ||
|
|
51c17110ad | ||
|
|
577dbfddb6 | ||
|
|
c11e9afec7 | ||
|
|
991cd46ea3 | ||
|
|
ad48ef6efd | ||
|
|
69c8781cec | ||
|
|
db20cad395 | ||
|
|
e106dfaece | ||
|
|
aa0ee3385d | ||
|
|
2ce4a275fc | ||
|
|
e23d21ec08 | ||
|
|
cc885090e6 | ||
|
|
9b97244f9f | ||
|
|
7630e24822 | ||
|
|
8dbabe24e0 | ||
|
|
5b21d37571 | ||
|
|
676f34185d | ||
|
|
edbbd76b3c | ||
|
|
315b3e5c98 | ||
|
|
41e980c517 | ||
|
|
0358055cce | ||
|
|
dcf7368e54 | ||
|
|
4138410d33 | ||
|
|
537656c365 | ||
|
|
d7a3da49f0 | ||
|
|
2b5d72c7a4 | ||
|
|
e4d24578b5 | ||
|
|
2b72f9bb99 | ||
|
|
8d512e206a | ||
|
|
19711d35b2 | ||
|
|
1e1fff0d49 | ||
|
|
21f75c0711 | ||
|
|
a2d0a364fe | ||
|
|
b76b6305d1 | ||
|
|
beedc6d2c7 | ||
|
|
ecf912bc4b | ||
|
|
d0a0b3fc53 | ||
|
|
6133075fd6 | ||
|
|
e218e092b0 | ||
|
|
7208cdb804 | ||
|
|
13cd751932 | ||
|
|
1bdaa9d95e | ||
|
|
67e776a640 | ||
|
|
dc5f025e02 | ||
|
|
2add689729 | ||
|
|
3716bf25a7 | ||
|
|
2f18133a93 | ||
|
|
e8aef1e923 | ||
|
|
30dc6fe171 | ||
|
|
8ae84b7c81 | ||
|
|
d01bca2314 | ||
|
|
300346dcd4 | ||
|
|
ab80f46d2e | ||
|
|
afae84fa6b | ||
|
|
d53ff57794 | ||
|
|
d3ffb22e86 | ||
|
|
b36a702e62 | ||
|
|
59e1e31634 | ||
|
|
8280067b7e | ||
|
|
7f587ea46b | ||
|
|
92788a90c1 | ||
|
|
3a12a9b47f | ||
|
|
d22ea2dd11 | ||
|
|
e519286f5c | ||
|
|
06ba425159 | ||
|
|
6038ef5550 | ||
|
|
b04610b457 | ||
|
|
140693b171 | ||
|
|
63cc83c81b | ||
|
|
e2a6d451c3 | ||
|
|
e2adb29cf3 | ||
|
|
1ca422a636 | ||
|
|
04cb1befe6 | ||
|
|
da8705fb8f | ||
|
|
395c184eef | ||
|
|
c7fd561cd5 | ||
|
|
bc8f2311d9 | ||
|
|
f129dcd1a9 | ||
|
|
f1d2be58c1 | ||
|
|
6060da0f87 | ||
|
|
13ca9a6c2e | ||
|
|
f1c5f4a8e4 | ||
|
|
b7b21a06c8 | ||
|
|
dc82ef758f | ||
|
|
e50b32cc27 | ||
|
|
224d89c6ff | ||
|
|
866728371b | ||
|
|
1747d901d1 | ||
|
|
e87896815c | ||
|
|
0f7a3bf6f8 | ||
|
|
0a040ad8e3 | ||
|
|
a97cd64f48 | ||
|
|
a1a44bf1cc | ||
|
|
48ec2dfee0 | ||
|
|
91f7f9ebf4 | ||
|
|
a7ec40664e | ||
|
|
0089380bfd | ||
|
|
ffcf104dfc | ||
|
|
08c29d780b | ||
|
|
7c36709f76 | ||
|
|
80f0a297a9 | ||
|
|
a94f0d03dd | ||
|
|
ac9149870e | ||
|
|
f850ded822 | ||
|
|
06b87368f6 | ||
|
|
af65b73fb2 | ||
|
|
0feacee7f2 | ||
|
|
4aa84a5d22 | ||
|
|
c95d526bc6 | ||
|
|
b77afeed34 | ||
|
|
7db2ba556d | ||
|
|
bd0955ac44 | ||
|
|
0d650f6765 | ||
|
|
8b2c6226f6 | ||
|
|
252951c706 | ||
|
|
532ac6cfa9 | ||
|
|
868059f062 | ||
|
|
b496ebfba8 | ||
|
|
726bfd38ad | ||
|
|
21f9a6f0b6 | ||
|
|
951a88f39f | ||
|
|
a4a344d8eb | ||
|
|
d421c1c240 | ||
|
|
af8af1934c | ||
|
|
9a8f3480a1 | ||
|
|
085cd1bb49 | ||
|
|
b30a8b86a4 | ||
|
|
0156ce132c | ||
|
|
b13dec10c5 | ||
|
|
fd77e97712 | ||
|
|
0b0ace10dd | ||
|
|
b6e96548d0 | ||
|
|
b018c6a24d | ||
|
|
3ae5301a76 | ||
|
|
bcc24d67d1 | ||
|
|
46c0f5e373 | ||
|
|
eeaac828d9 | ||
|
|
2413c6abd3 | ||
|
|
7bb6e60c52 | ||
|
|
38169a82df | ||
|
|
18986bcc42 | ||
|
|
ce6c17debc | ||
|
|
e3359e9b3f | ||
|
|
c1ab10e202 | ||
|
|
1d23c1f2bc | ||
|
|
ef1582832d | ||
|
|
95e342f4f4 | ||
|
|
ca078e7cd9 | ||
|
|
b8a2cf3f91 | ||
|
|
e1226c6c88 | ||
|
|
34fe88da29 | ||
|
|
454ff90d09 | ||
|
|
e31196d19f | ||
|
|
335e2a7c25 | ||
|
|
694d379aef | ||
|
|
f4ef3ea8eb | ||
|
|
ec90199950 | ||
|
|
08bd0567ad | ||
|
|
963b8b0d29 | ||
|
|
009dc9ae4d | ||
|
|
33cf275862 | ||
|
|
4fdea931b9 | ||
|
|
4453b5653a | ||
|
|
152ca39719 | ||
|
|
9ae733181b | ||
|
|
f5de382946 | ||
|
|
dc817aeeac | ||
|
|
47c4edf335 | ||
|
|
e1c745fe3c | ||
|
|
c441857a4c | ||
|
|
51bc5fed7d | ||
|
|
2da9b502d8 | ||
|
|
29ebf0f060 | ||
|
|
ec94327b15 | ||
|
|
5c00810166 | ||
|
|
804219df29 | ||
|
|
6ea2a403be | ||
|
|
4f2763c26c | ||
|
|
8ff5a71a5d | ||
|
|
d6c2e8c8c3 | ||
|
|
b45e62f354 | ||
|
|
8b477db0a6 | ||
|
|
80d99af5b0 | ||
|
|
d26335b01b | ||
|
|
e79aa21b55 | ||
|
|
bf63da3655 | ||
|
|
d6791111f3 | ||
|
|
23d454cbbe | ||
|
|
f9741cdd27 | ||
|
|
3699c246df | ||
|
|
284080ec83 | ||
|
|
a2ae485286 | ||
|
|
a74547bb4e | ||
|
|
a6ff5b8e9c | ||
|
|
a09dddb2cf | ||
|
|
d7da0b4081 | ||
|
|
47d9069108 | ||
|
|
ddc5660f2c | ||
|
|
88503bbf24 | ||
|
|
8a75d75d83 | ||
|
|
980b5fa1c2 | ||
|
|
343efba4d5 | ||
|
|
4e1ce7524b | ||
|
|
fec25fcaba | ||
|
|
6162b0f2bd | ||
|
|
6f600b71d3 | ||
|
|
f6fccfc949 | ||
|
|
e1b02b2952 | ||
|
|
a80a5ec96e | ||
|
|
a9656dea38 | ||
|
|
f8fcabfe10 | ||
|
|
ea7e142494 | ||
|
|
e1a9b31e9b | ||
|
|
59f69c7727 | ||
|
|
0200c2cb3f | ||
|
|
b11359eebb | ||
|
|
4adf328fac | ||
|
|
f81cf5960f | ||
|
|
2bf9c1260c | ||
|
|
8956f63229 | ||
|
|
7d24413846 | ||
|
|
e1261b92d1 | ||
|
|
8c89993cd5 | ||
|
|
ec7c2ca4b9 | ||
|
|
85afe19455 | ||
|
|
56b54d4d34 | ||
|
|
3534e59cb8 | ||
|
|
eeb5f651b2 | ||
|
|
b0250b91cc | ||
|
|
ef839722f4 | ||
|
|
5cd3a5b5af | ||
|
|
d80d7c939c | ||
|
|
8c7848f18b | ||
|
|
7d66263948 | ||
|
|
7d6662e6b1 | ||
|
|
3e6a73ae8c | ||
|
|
94784f366f | ||
|
|
bc04937a6a | ||
|
|
29f8cc79ba | ||
|
|
089c253d1d | ||
|
|
d8e780b228 | ||
|
|
a9fce2dcf2 | ||
|
|
6067c8d55e | ||
|
|
0ab6abf462 | ||
|
|
306de3a64c | ||
|
|
929fd04613 | ||
|
|
581bdaa496 | ||
|
|
341fd254fb | ||
|
|
bf581b9f97 | ||
|
|
46eb9ce7a0 | ||
|
|
0adaebb290 | ||
|
|
d1b7e0eafb | ||
|
|
914f82f352 | ||
|
|
8e611b466e | ||
|
|
6e63ed4e60 | ||
|
|
73a34eacd6 | ||
|
|
9798538438 | ||
|
|
35b0224690 | ||
|
|
05ef5fa3a6 | ||
|
|
7707c862d1 | ||
|
|
01a6ef3a8f | ||
|
|
4385aac90c | ||
|
|
c9e4c18f17 | ||
|
|
c8526d42b4 | ||
|
|
e9017e8fe2 | ||
|
|
61df4f88b3 | ||
|
|
fcbb07a333 | ||
|
|
989269c732 | ||
|
|
b363398b28 | ||
|
|
fc2277bc88 | ||
|
|
a9bd1c60e6 | ||
|
|
297ba8f2b7 | ||
|
|
09933e22f6 | ||
|
|
5f52fb872a | ||
|
|
f65ff87b96 | ||
|
|
068ce24513 | ||
|
|
29543ed118 | ||
|
|
39ae4a3b58 | ||
|
|
4f808306ba | ||
|
|
6cef336417 | ||
|
|
0cc04706f6 | ||
|
|
c673bb0979 | ||
|
|
5221b1e4a3 | ||
|
|
8e0dbb7185 | ||
|
|
775528ce9b | ||
|
|
1a3e264b2a | ||
|
|
c5a553a600 | ||
|
|
c0b1e50a5f | ||
|
|
bb1a256295 | ||
|
|
7e7a3a6488 | ||
|
|
36f1fa15a5 | ||
|
|
3b5183de43 | ||
|
|
bbd08eda3e | ||
|
|
dce10d7282 | ||
|
|
82d8af1fb1 | ||
|
|
6c68aa9dcd | ||
|
|
7458eefa01 | ||
|
|
8ada1ee152 | ||
|
|
d73ad3115f | ||
|
|
832bdfde22 | ||
|
|
260a2d5c78 | ||
|
|
57247c5d87 | ||
|
|
e0616c37a9 | ||
|
|
3aa6f51dfb | ||
|
|
1d80fe9aec | ||
|
|
97379afe6d | ||
|
|
fb96392e73 | ||
|
|
0293a108f0 | ||
|
|
28b5be21b3 | ||
|
|
ae4be2c23c | ||
|
|
5bca214863 | ||
|
|
6ab007bc1d | ||
|
|
583f093eb0 | ||
|
|
0d8a899a65 | ||
|
|
676bf1bd60 | ||
|
|
e88c67465c | ||
|
|
8c484f86a9 | ||
|
|
5fba9bc4ed | ||
|
|
0635921d6b | ||
|
|
ec262d4c30 | ||
|
|
5507816c42 | ||
|
|
dcc77cf24f | ||
|
|
a35bcecf94 | ||
|
|
1852420b98 | ||
|
|
c9ce4a78e6 | ||
|
|
500f91f0cd | ||
|
|
1ee32b77dd | ||
|
|
c4d295b25d | ||
|
|
fdf2ed6ecc | ||
|
|
326ae76fe0 | ||
|
|
a7a18ad956 | ||
|
|
cf3636df3c | ||
|
|
a59ff57c27 | ||
|
|
0cd3bede0d | ||
|
|
637fa37fad | ||
|
|
07dcf38291 | ||
|
|
ff1f7362ee | ||
|
|
d30e83b5fc | ||
|
|
14349d0649 | ||
|
|
49b19450fd | ||
|
|
5b612b8ac7 | ||
|
|
e0b922c949 | ||
|
|
60df447550 | ||
|
|
2cf7a1f80d | ||
|
|
4dd0fb97fe | ||
|
|
12bce6a560 | ||
|
|
d869410d36 | ||
|
|
31bb43ca38 | ||
|
|
07e480ff7a | ||
|
|
c251804162 | ||
|
|
ff72e415aa | ||
|
|
7d30e3de14 | ||
|
|
8b529f488b | ||
|
|
b5930155df | ||
|
|
632840384b | ||
|
|
a96e814af4 | ||
|
|
b49b53934d | ||
|
|
df410529b0 | ||
|
|
477186d09d | ||
|
|
81f146a2ef | ||
|
|
84d0282815 | ||
|
|
d2de3c109a | ||
|
|
aad36c7430 | ||
|
|
4c62c67fd4 | ||
|
|
144b7b36d0 | ||
|
|
802641ce6b | ||
|
|
2d63e3d6aa | ||
|
|
728252ac87 | ||
|
|
79d042ad29 | ||
|
|
dd4095b15b | ||
|
|
1cf8308d03 | ||
|
|
4e890814ff | ||
|
|
175fbebd73 | ||
|
|
879d21c528 | ||
|
|
c7202b353d | ||
|
|
3a0574eae8 | ||
|
|
70c733e146 | ||
|
|
a64c28aa44 | ||
|
|
35365a7154 | ||
|
|
9594284f6c | ||
|
|
0358473af5 | ||
|
|
8d553a3fc6 | ||
|
|
373dcded2c | ||
|
|
e59d52bae4 | ||
|
|
fa00314b77 | ||
|
|
7aad3ae3b5 | ||
|
|
6c56e47083 | ||
|
|
6c048fad01 | ||
|
|
593079dbbb | ||
|
|
2761244d2e | ||
|
|
f58f6bb6d2 | ||
|
|
da83e02749 | ||
|
|
76efb16f96 | ||
|
|
d411873503 | ||
|
|
f0a4c1c252 | ||
|
|
1f845a4119 | ||
|
|
17496ff5cf | ||
|
|
e3322af384 | ||
|
|
b1d394eac5 | ||
|
|
fd8ff7d7cf | ||
|
|
bc19b0d103 | ||
|
|
aea6f68598 | ||
|
|
332bcae24f | ||
|
|
4335b3b2d4 | ||
|
|
d6435eff85 | ||
|
|
2c313594da | ||
|
|
bc21f77976 | ||
|
|
dbcb179523 | ||
|
|
35e83855a8 | ||
|
|
6b086e3eb2 | ||
|
|
049f23071c | ||
|
|
e6c46bf4da | ||
|
|
6984dca394 | ||
|
|
7a86cc4bf3 | ||
|
|
219586d55d | ||
|
|
6a00c0ee7e | ||
|
|
873c7be99e | ||
|
|
c9cfa92b04 | ||
|
|
ff46ca546d | ||
|
|
f1ba57b78b | ||
|
|
4cf83b9ef4 | ||
|
|
3702e2e998 | ||
|
|
30c1adfe5b | ||
|
|
c75035bf6e | ||
|
|
59358e7bac | ||
|
|
19fa0b968f | ||
|
|
f2d02a6f46 | ||
|
|
05ec73266c | ||
|
|
a9acb80132 | ||
|
|
ed89f70f98 | ||
|
|
45afaa8ec8 | ||
|
|
4757c2c945 | ||
|
|
65395185c3 | ||
|
|
f2f3ac7d42 | ||
|
|
cb999bda7b | ||
|
|
cd14bccdc8 | ||
|
|
cf6966058e | ||
|
|
74b209bcc8 | ||
|
|
4a97020b78 | ||
|
|
e0d8942741 | ||
|
|
4f25e6c1ad | ||
|
|
81b4a1978b | ||
|
|
87d828a1b0 | ||
|
|
e52ff98cad | ||
|
|
7cabc876f5 | ||
|
|
8fa47cb789 | ||
|
|
ef76affd77 | ||
|
|
38a034e59b | ||
|
|
fb26ecf577 | ||
|
|
de99aac3ad | ||
|
|
4d9d224917 | ||
|
|
ac46b51d41 | ||
|
|
7aff7962f0 | ||
|
|
1a96f276f8 | ||
|
|
480c3129bd | ||
|
|
981661ea68 | ||
|
|
51f7d6cea2 | ||
|
|
7d28581915 | ||
|
|
4a0f23b0ea | ||
|
|
aaee2d9294 | ||
|
|
d5c960096e | ||
|
|
0c94ce6cc3 | ||
|
|
f280eea788 | ||
|
|
af7b0e4e1f | ||
|
|
ef35fc0c5f | ||
|
|
ca1f39a260 | ||
|
|
b92d61e154 | ||
|
|
70ff884ebb | ||
|
|
6f6c536236 | ||
|
|
a1095285e4 | ||
|
|
00d20f14b9 | ||
|
|
560e0f7334 | ||
|
|
fc2dce6882 | ||
|
|
bd3d0dd64d | ||
|
|
f824d09ed3 | ||
|
|
d7c5f86ce7 | ||
|
|
c760b43e5a | ||
|
|
b1fe807b47 | ||
|
|
0d6a7eb797 | ||
|
|
bf6390d72e | ||
|
|
e595f1859a | ||
|
|
06930ebe2c | ||
|
|
08c96a6794 | ||
|
|
61db89e89d | ||
|
|
a2c0e4ca2e | ||
|
|
b08a950c37 | ||
|
|
ad979180e5 | ||
|
|
465812b673 | ||
|
|
f59e77002b | ||
|
|
e4018ec677 | ||
|
|
df7ca65108 | ||
|
|
d12fcac9af | ||
|
|
66fc28ec1b | ||
|
|
10ad2a559a | ||
|
|
b8ac70e59a | ||
|
|
7492636818 | ||
|
|
36a0eabf4a | ||
|
|
cf4fdbbab1 | ||
|
|
f1b6b5f6f9 | ||
|
|
e06b3fceb5 | ||
|
|
4628dd07e4 | ||
|
|
55a3d9b157 | ||
|
|
c70c1d97e5 | ||
|
|
da4e4d4ad0 | ||
|
|
3d9ee3f2b4 | ||
|
|
b9331ffa55 | ||
|
|
2b0935c4aa | ||
|
|
9d7047864e | ||
|
|
20d507dbef | ||
|
|
be7d1d2cd2 | ||
|
|
587968710f | ||
|
|
a0b30bb3ae | ||
|
|
60e954634d | ||
|
|
ffecf1ed15 | ||
|
|
b7a142c21e | ||
|
|
5716cebb0f | ||
|
|
ff68538085 | ||
|
|
7c251b8017 | ||
|
|
bf5917177a | ||
|
|
dacfb931bb | ||
|
|
97d77f5c51 | ||
|
|
fce8186759 | ||
|
|
d35f6abca0 | ||
|
|
cf31c22e5d | ||
|
|
3f7c2e8842 | ||
|
|
ecdcc27749 | ||
|
|
497d244f95 | ||
|
|
a738736d6b | ||
|
|
a4ce2d01ce | ||
|
|
41c2b76d8d | ||
|
|
35ebc4899e | ||
|
|
9552d210f5 | ||
|
|
9370b5110e | ||
|
|
7009be8922 | ||
|
|
c1a96c83fb | ||
|
|
5d66e4eaf8 | ||
|
|
ed267d17f2 | ||
|
|
6e91ebeb3d | ||
|
|
d70c6e1734 | ||
|
|
4de4c32c0e | ||
|
|
637ae34839 | ||
|
|
d23144bc61 | ||
|
|
e90868072e | ||
|
|
980d2a8dc3 | ||
|
|
eef5ddb416 | ||
|
|
3d7ff7a149 | ||
|
|
287edb755d | ||
|
|
8c612a96c8 | ||
|
|
efe67e2acc | ||
|
|
2cdf3c16ab | ||
|
|
a88b2af4a9 | ||
|
|
b9f07e8684 | ||
|
|
d957e44e1e | ||
|
|
15e3437001 | ||
|
|
eebea59fe3 | ||
|
|
5074f2dbab | ||
|
|
0f364a6d13 | ||
|
|
d9db03bca3 | ||
|
|
b9e2e1098f | ||
|
|
a126da5f23 | ||
|
|
23eae27a8f | ||
|
|
3e1bb88ab7 | ||
|
|
4de7ce32dd | ||
|
|
6128d54601 | ||
|
|
4d81887bcf | ||
|
|
2e5dc82692 | ||
|
|
4afe1ff569 | ||
|
|
3ff127d514 | ||
|
|
ea3ca66303 | ||
|
|
279f0e4f6c | ||
|
|
61fc00dc08 | ||
|
|
d6f9ddc3af | ||
|
|
b52c838018 | ||
|
|
e0de25ed65 | ||
|
|
03a2c11225 | ||
|
|
52480783ee | ||
|
|
f6361992e3 | ||
|
|
eedec4ff02 | ||
|
|
7b042be9db | ||
|
|
b2cba6b6d7 | ||
|
|
0ff000d660 | ||
|
|
4e4420af2e | ||
|
|
9ea7262352 | ||
|
|
227009733e | ||
|
|
136fcd7bb2 | ||
|
|
67ab59106f | ||
|
|
e8b975a095 | ||
|
|
ad4a75bdc1 | ||
|
|
582f64b2e7 | ||
|
|
d4e982faea | ||
|
|
4db77c9051 | ||
|
|
0397401216 | ||
|
|
6c062ab1e2 | ||
|
|
106804ad45 | ||
|
|
4745f9e999 | ||
|
|
901c4f7b80 | ||
|
|
5ee73cdf63 | ||
|
|
54b712fa71 | ||
|
|
e70fcef651 | ||
|
|
6779a76b68 | ||
|
|
cd48e06060 | ||
|
|
4956e67348 | ||
|
|
9a8c134c97 | ||
|
|
ef101ccb9a | ||
|
|
bb90a50ae4 | ||
|
|
6c62817de5 | ||
|
|
7c06d9a638 | ||
|
|
ae7773cfcf | ||
|
|
d7b73eb50f | ||
|
|
eff1014911 | ||
|
|
f6c85cd37a | ||
|
|
888c47cdd2 | ||
|
|
74a3eba08f | ||
|
|
78192dc1af | ||
|
|
ed6d012e6c | ||
|
|
04b5a5f9ac | ||
|
|
a763726c89 | ||
|
|
3991a2d88f | ||
|
|
48e2dad3a4 | ||
|
|
e7969992c3 | ||
|
|
6ddaff6260 | ||
|
|
9e1f358f82 | ||
|
|
066bf516d9 | ||
|
|
a44047bfe3 | ||
|
|
0913b68a1e | ||
|
|
42a23277cd | ||
|
|
cc30726ab6 | ||
|
|
c2143fdf86 | ||
|
|
da3f86d6ba | ||
|
|
26fdbf63ee | ||
|
|
7bee668888 | ||
|
|
7f6418b18f | ||
|
|
4370ec922b | ||
|
|
ec97f0c316 | ||
|
|
84870f2fa2 | ||
|
|
42a4d10ea5 | ||
|
|
8e3a76186b | ||
|
|
9a278213bd | ||
|
|
c6bc4c1bd6 | ||
|
|
17b8ef09c6 | ||
|
|
8f7ba02ab1 | ||
|
|
246f9ce17f |
4
.gitattributes
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
* text eol=lf
|
||||||
|
|
||||||
|
# binary file excludsions
|
||||||
|
*.png binary
|
||||||
76
.github/CODEOWNERS
vendored
@@ -1,65 +1,23 @@
|
|||||||
# Default
|
|
||||||
* @Twentysix26
|
|
||||||
|
|
||||||
# Core
|
|
||||||
redbot/core/bank.py @palmtree5
|
|
||||||
redbot/core/checks.py @tekulvw
|
|
||||||
redbot/core/cli.py @tekulvw
|
|
||||||
redbot/core/config.py @tekulvw
|
|
||||||
redbot/core/cog_manager.py @tekulvw
|
|
||||||
redbot/core/core_commands.py @tekulvw
|
|
||||||
redbot/core/context.py @Tobotimus
|
|
||||||
redbot/core/commands/* @mikeshardmind
|
|
||||||
redbot/core/data_manager.py @tekulvw
|
|
||||||
redbot/core/dev_commands.py @tekulvw
|
|
||||||
redbot/core/drivers/* @tekulvw
|
|
||||||
redbot/core/events.py @tekulvw
|
|
||||||
redbot/core/global_checks.py @tekulvw
|
|
||||||
redbot/core/i18n.py @tekulvw
|
|
||||||
redbot/core/modlog.py @palmtree5
|
|
||||||
redbot/core/rpc.py @tekulvw
|
|
||||||
redbot/core/utils/chat_formatting.py @tekulvw
|
|
||||||
redbot/core/utils/mod.py @palmtree5
|
|
||||||
redbot/core/utils/data_converter.py @mikeshardmind
|
|
||||||
redbot/core/utils/antispam.py @mikeshardmind
|
|
||||||
redbot/core/utils/tunnel.py @mikeshardmind
|
|
||||||
redbot/core/utils/caching.py @mikeshardmind
|
|
||||||
redbot/core/utils/common_filters.py @mikeshardmind
|
|
||||||
redbot/core/utils/dbtools.py @mikeshardmind
|
|
||||||
|
|
||||||
# Cogs
|
# Cogs
|
||||||
redbot/cogs/admin/* @tekulvw
|
/redbot/cogs/audio/** @aikaterna @Drapersniper
|
||||||
redbot/cogs/alias/* @tekulvw
|
/redbot/cogs/downloader/* @jack1142
|
||||||
redbot/cogs/audio/* @aikaterna @Drapersniper
|
/redbot/cogs/streams/* @palmtree5
|
||||||
redbot/cogs/bank/* @tekulvw
|
/redbot/cogs/mutes/* @TrustyJAID
|
||||||
redbot/cogs/cleanup/* @palmtree5
|
|
||||||
redbot/cogs/customcom/* @palmtree5
|
|
||||||
redbot/cogs/downloader/* @tekulvw @jack1142
|
|
||||||
redbot/cogs/economy/* @palmtree5
|
|
||||||
redbot/cogs/filter/* @palmtree5
|
|
||||||
redbot/cogs/general/* @palmtree5
|
|
||||||
redbot/cogs/image/* @palmtree5
|
|
||||||
redbot/cogs/mod/* @palmtree5
|
|
||||||
redbot/cogs/modlog/* @palmtree5
|
|
||||||
redbot/cogs/streams/* @Twentysix26 @palmtree5
|
|
||||||
redbot/cogs/trivia/* @Tobotimus
|
|
||||||
redbot/cogs/reports/* @mikeshardmind
|
|
||||||
redbot/cogs/permissions/* @mikeshardmind
|
|
||||||
redbot/cogs/warnings/* @palmtree5
|
|
||||||
|
|
||||||
# Docs
|
# Trivia Lists
|
||||||
docs/* @tekulvw @palmtree5
|
/redbot/cogs/trivia/data/lists/whosthatpokemon*.yaml @aikaterna
|
||||||
|
|
||||||
# Tests
|
# Tests
|
||||||
tests/cogs/downloader/* @jack1142
|
/redbot/pytest/downloader* @jack1142
|
||||||
|
/tests/cogs/downloader/* @jack1142
|
||||||
|
|
||||||
# Setup, instance setup, and running the bot
|
# Schemas
|
||||||
setup.py @tekulvw
|
/schema/* @jack1142
|
||||||
redbot/__init__.py @tekulvw
|
|
||||||
redbot/__main__.py @tekulvw @mikeshardmind
|
|
||||||
redbot/setup.py @tekulvw
|
|
||||||
|
|
||||||
# Others
|
# CI
|
||||||
.travis.yml @Kowlin
|
/.travis.yml @Kowlin
|
||||||
crowdin.yml @Kowlin
|
/crowdin.yml @Kowlin
|
||||||
.github/workflows/* @Kowlin
|
/.github/workflows/* @Kowlin
|
||||||
|
|
||||||
|
# Excludes
|
||||||
|
**/locales/* @ghost
|
||||||
|
|||||||
86
.github/ISSUE_TEMPLATE/01_command_bug.yml
vendored
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
name: Bug reports for commands
|
||||||
|
description: For bugs that involve commands found within Red.
|
||||||
|
labels: 'Type: Bug'
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for taking the time to fill out an issue. This template is meant for any issues related to commands.
|
||||||
|
If you require help with installing Red we ask that you join our [Discord server](https://discord.gg/red)
|
||||||
|
- type: input
|
||||||
|
id: red-version
|
||||||
|
attributes:
|
||||||
|
label: "What Red version are you using?"
|
||||||
|
placeholder: 3.4.5
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: cog-name
|
||||||
|
attributes:
|
||||||
|
label: "Cog name"
|
||||||
|
description: "From which cog does the command come from?"
|
||||||
|
options:
|
||||||
|
- Admin
|
||||||
|
- Alias
|
||||||
|
- Audio
|
||||||
|
- Bank
|
||||||
|
- Cleanup
|
||||||
|
- CogManagerUI
|
||||||
|
- Core
|
||||||
|
- Customcom
|
||||||
|
- Dev
|
||||||
|
- Downloader
|
||||||
|
- Economy
|
||||||
|
- Filter
|
||||||
|
- General
|
||||||
|
- Image
|
||||||
|
- Mod
|
||||||
|
- Modlog
|
||||||
|
- Mutes
|
||||||
|
- Permissions
|
||||||
|
- Reports
|
||||||
|
- Streams
|
||||||
|
- Trivia
|
||||||
|
- Warnings
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: command-name
|
||||||
|
attributes:
|
||||||
|
label: "Command name"
|
||||||
|
description: "What is the command that caused the error?"
|
||||||
|
placeholder: "play"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: weh
|
||||||
|
attributes:
|
||||||
|
label: "What did you expect to happen?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: wah
|
||||||
|
attributes:
|
||||||
|
label: "What actually happened?"
|
||||||
|
description: |
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
If the issue is visual in nature, consider posting a screenshot.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: reproduction-steps
|
||||||
|
attributes:
|
||||||
|
label: "How can we reproduce this error?"
|
||||||
|
description: "List of steps required to reproduce this error."
|
||||||
|
value: |
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: anything-else
|
||||||
|
attributes:
|
||||||
|
label: Anything else?
|
||||||
|
description: Let us know if you have anything else to share.
|
||||||
54
.github/ISSUE_TEMPLATE/02_other_bugs.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
name: Bug report
|
||||||
|
description: "For bugs that don't involve a command."
|
||||||
|
labels: 'Type: Bug'
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for taking the time to fill out an issue. This template is meant for any issues not related to any existing command.
|
||||||
|
If you require help with installing Red we ask that you join our [Discord server](https://discord.gg/red)
|
||||||
|
- type: input
|
||||||
|
id: red-version
|
||||||
|
attributes:
|
||||||
|
label: "What Red version are you using?"
|
||||||
|
placeholder: 3.4.5
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: what-happened
|
||||||
|
attributes:
|
||||||
|
label: "What were you trying to do?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: weh
|
||||||
|
attributes:
|
||||||
|
label: "What did you expect to happen?"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: wah
|
||||||
|
attributes:
|
||||||
|
label: "What actually happened?"
|
||||||
|
description: |
|
||||||
|
If the issue is visual in nature, consider posting a screenshot.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: reproduction-steps
|
||||||
|
attributes:
|
||||||
|
label: "How can we reproduce this error?"
|
||||||
|
description: |
|
||||||
|
List of steps required to reproduce the error. If the bug is code related, a minimal code example that reproduces the problem would be a big help.
|
||||||
|
value: |
|
||||||
|
1.
|
||||||
|
2.
|
||||||
|
3.
|
||||||
|
...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: anything-else
|
||||||
|
attributes:
|
||||||
|
label: Anything else?
|
||||||
|
description: Let us know if you have anything else to share.
|
||||||
29
.github/ISSUE_TEMPLATE/03_enhancements.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
name: Enhancement proposal
|
||||||
|
description: For feature requests and improvements related to already existing functionality.
|
||||||
|
labels: 'Type: Enhancement'
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for taking the time to fill out an issue. This template is meant for feature requests and improvements to already existing functionality.
|
||||||
|
If you require help with installing Red we ask that you join our [Discord server](https://discord.gg/red)
|
||||||
|
- type: input
|
||||||
|
id: component-name
|
||||||
|
attributes:
|
||||||
|
label: "What component of Red (cog, command, API) would you like to see improvements on?"
|
||||||
|
placeholder: Audio
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: proposal
|
||||||
|
attributes:
|
||||||
|
label: "Describe the enhancement you're suggesting."
|
||||||
|
description: |
|
||||||
|
Feel free to describe in as much detail as you wish.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: anything-else
|
||||||
|
attributes:
|
||||||
|
label: Anything else?
|
||||||
|
description: Let us know if you have anything else to share.
|
||||||
52
.github/ISSUE_TEMPLATE/04_feature_request.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
name: Feature request
|
||||||
|
description: For feature requests regarding Red itself.
|
||||||
|
labels: 'Type: Feature'
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for taking the time to fill out an issue, this template is meant for any feature suggestions.
|
||||||
|
If you require help with installing Red we ask that you join our [Discord server](https://discord.gg/red)
|
||||||
|
- type: dropdown
|
||||||
|
id: feature-name
|
||||||
|
attributes:
|
||||||
|
label: "Type of feature request"
|
||||||
|
description: "What type of feature would you like to request?"
|
||||||
|
multiple: true
|
||||||
|
options:
|
||||||
|
- API functionality
|
||||||
|
- Cog
|
||||||
|
- Command
|
||||||
|
- Other
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: proposal
|
||||||
|
attributes:
|
||||||
|
label: "Description of the feature you're suggesting"
|
||||||
|
description: |
|
||||||
|
Feel free to describe in as much detail as you wish.
|
||||||
|
|
||||||
|
If you are requesting API functionality:
|
||||||
|
- Describe what it should do
|
||||||
|
- Note whether it is to extend existing functionality or introduce new functionality
|
||||||
|
|
||||||
|
If you are requesting a cog to be included in core:
|
||||||
|
- Describe the functionality in as much detail as possible
|
||||||
|
- Include the command structure, if possible
|
||||||
|
- Please note that unless it's something that should be core functionality,
|
||||||
|
we reserve the right to reject your suggestion and point you to our cog
|
||||||
|
board to request it for a third-party cog
|
||||||
|
|
||||||
|
If you are requesting a command:
|
||||||
|
- Include what cog it should be in and a name for the command
|
||||||
|
- Describe the intended functionality for the command
|
||||||
|
- Note any restrictions on who can use the command or where it can be used
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: anything-else
|
||||||
|
attributes:
|
||||||
|
label: Anything else?
|
||||||
|
description: Let us know if you have anything else to share.
|
||||||
|
|
||||||
20
.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
vendored
@@ -1,20 +0,0 @@
|
|||||||
Please be sure to read through other issues as well to make sure what you are suggesting/reporting has not already
|
|
||||||
been suggested/reported
|
|
||||||
|
|
||||||
### Type:
|
|
||||||
|
|
||||||
- [ ] Suggestion
|
|
||||||
- [ ] Bug
|
|
||||||
|
|
||||||
### Brief description of the problem
|
|
||||||
|
|
||||||
### Expected behavior
|
|
||||||
|
|
||||||
### Actual behavior
|
|
||||||
|
|
||||||
### Steps to reproduce
|
|
||||||
|
|
||||||
1.
|
|
||||||
2.
|
|
||||||
3.
|
|
||||||
4.
|
|
||||||
34
.github/ISSUE_TEMPLATE/command_bug.md
vendored
@@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug reports for commands
|
|
||||||
about: For bugs that involve commands found within Red
|
|
||||||
title: ''
|
|
||||||
labels: 'Type: Bug'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Command bugs
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Did you find a bug with a command? Fill out the following:
|
|
||||||
-->
|
|
||||||
|
|
||||||
#### Command name
|
|
||||||
|
|
||||||
<!-- Replace this line with the name of the command -->
|
|
||||||
|
|
||||||
#### What cog is this command from?
|
|
||||||
|
|
||||||
<!-- Replace this line with the name of the cog -->
|
|
||||||
|
|
||||||
#### What were you expecting to happen?
|
|
||||||
|
|
||||||
<!-- Replace this line with a description of what you were expecting to happen -->
|
|
||||||
|
|
||||||
#### What actually happened?
|
|
||||||
|
|
||||||
<!-- Replace this line with a description of what actually happened. Include any error messages -->
|
|
||||||
|
|
||||||
#### How can we reproduce this issue?
|
|
||||||
|
|
||||||
<!-- Replace with numbered steps to reproduce the issue -->
|
|
||||||
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
blank_issues_enabled: true
|
||||||
|
contact_links:
|
||||||
|
- name: Support question
|
||||||
|
url: https://discord.gg/red
|
||||||
|
about: For any questions regarding on how to operate and run Red.
|
||||||
44
.github/ISSUE_TEMPLATE/feature_req.md
vendored
@@ -1,44 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: For feature requests regarding Red itself.
|
|
||||||
title: ''
|
|
||||||
labels: 'Type: Feature'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Feature request
|
|
||||||
|
|
||||||
<!-- This template is for feature requests. Please fill out the following: -->
|
|
||||||
|
|
||||||
|
|
||||||
#### Select the type of feature you are requesting:
|
|
||||||
|
|
||||||
<!-- To check a box, replace the space between the [] with a x -->
|
|
||||||
|
|
||||||
- [ ] Cog
|
|
||||||
- [ ] Command
|
|
||||||
- [ ] API functionality
|
|
||||||
|
|
||||||
#### Describe your requested feature
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Feel free to describe in as much detail as you wish.
|
|
||||||
|
|
||||||
If you are requesting a cog to be included in core:
|
|
||||||
- Describe the functionality in as much detail as possible
|
|
||||||
- Include the command structure, if possible
|
|
||||||
- Please note that unless it's something that should be core functionality,
|
|
||||||
we reserve the right to reject your suggestion and point you to our cog
|
|
||||||
board to request it for a third-party cog
|
|
||||||
|
|
||||||
If you are requesting a command:
|
|
||||||
- Include what cog it should be in and a name for the command
|
|
||||||
- Describe the intended functionality for the command
|
|
||||||
- Note any restrictions on who can use the command or where it can be used
|
|
||||||
|
|
||||||
If you are requesting API functionality:
|
|
||||||
- Describe what it should do
|
|
||||||
- Note whether it is to extend existing functionality or introduce new functionality
|
|
||||||
|
|
||||||
-->
|
|
||||||
30
.github/ISSUE_TEMPLATE/other_bug.md
vendored
@@ -1,30 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: For bugs that don't involve a command.
|
|
||||||
title: ''
|
|
||||||
labels: 'Type: Bug'
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Other bugs
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Did you find a bug with something other than a command? Fill out the following:
|
|
||||||
-->
|
|
||||||
|
|
||||||
#### What were you trying to do?
|
|
||||||
|
|
||||||
<!-- Replace this line with a description of what you were trying to do -->
|
|
||||||
|
|
||||||
#### What were you expecting to happen?
|
|
||||||
|
|
||||||
<!-- Replace this line with a description of what you were expecting to happen -->
|
|
||||||
|
|
||||||
#### What actually happened?
|
|
||||||
|
|
||||||
<!-- Replace this line with a description of what actually happened. Include any error messages -->
|
|
||||||
|
|
||||||
#### How can we reproduce this issue?
|
|
||||||
|
|
||||||
<!-- Replace with numbered steps to reproduce the issue -->
|
|
||||||
7
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,7 +0,0 @@
|
|||||||
### Type
|
|
||||||
|
|
||||||
- [ ] Bugfix
|
|
||||||
- [ ] Enhancement
|
|
||||||
- [ ] New feature
|
|
||||||
|
|
||||||
### Description of the changes
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
### Type
|
|
||||||
|
|
||||||
- [ ] Bugfix
|
|
||||||
- [ ] Enhancement
|
|
||||||
- [ ] New feature
|
|
||||||
|
|
||||||
### Description of the changes
|
|
||||||
183
.github/labeler.yml
vendored
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
"Category: Admin":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/admin/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/admin.rst
|
||||||
|
"Category: Alias":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/alias/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/alias.rst
|
||||||
|
"Category: Audio Cog":
|
||||||
|
- any:
|
||||||
|
- redbot/cogs/audio/**/*
|
||||||
|
all:
|
||||||
|
- "!redbot/cogs/audio/**/locales/*"
|
||||||
|
"Category: Bank API":
|
||||||
|
# Source
|
||||||
|
- redbot/core/bank.py
|
||||||
|
# Docs
|
||||||
|
- docs/framework_bank.rst
|
||||||
|
"Category: Bank Cog":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/bank/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/bank.rst
|
||||||
|
"Category: Bot Core":
|
||||||
|
# Source
|
||||||
|
- redbot/*
|
||||||
|
- redbot/core/__init__.py
|
||||||
|
- redbot/core/_sharedlibdeprecation.py
|
||||||
|
- redbot/core/bot.py
|
||||||
|
- redbot/core/checks.py
|
||||||
|
- redbot/core/cli.py
|
||||||
|
- redbot/core/cog_manager.py
|
||||||
|
- redbot/core/core_commands.py
|
||||||
|
- redbot/core/data_manager.py
|
||||||
|
- redbot/core/errors.py
|
||||||
|
- redbot/core/events.py
|
||||||
|
- redbot/core/global_checks.py
|
||||||
|
- redbot/core/settings_caches.py
|
||||||
|
# Docs
|
||||||
|
- docs/framework_apikeys.rst
|
||||||
|
- docs/framework_bot.rst
|
||||||
|
- docs/framework_cogmanager.rst
|
||||||
|
- docs/framework_datamanager.rst
|
||||||
|
- docs/framework_events.rst
|
||||||
|
- docs/cog_guides/cog_manager_ui.rst
|
||||||
|
- docs/cog_guides/core.rst
|
||||||
|
"Category: CI":
|
||||||
|
- .github/workflows/*
|
||||||
|
"Category: Cleanup Cog":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/cleanup/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/cleanup.rst
|
||||||
|
"Category: Command Module":
|
||||||
|
# Source
|
||||||
|
- any:
|
||||||
|
# Source
|
||||||
|
- redbot/core/commands/*
|
||||||
|
# Docs
|
||||||
|
- docs/framework_checks.rst
|
||||||
|
- docs/framework_commands.rst
|
||||||
|
all:
|
||||||
|
- "!redbot/core/commands/help.py"
|
||||||
|
"Category: Config":
|
||||||
|
# Source
|
||||||
|
- redbot/core/drivers/*
|
||||||
|
- redbot/core/config.py
|
||||||
|
# Docs
|
||||||
|
- docs/framework_config.rst
|
||||||
|
"Category: CustomCom":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/customcom/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_customcom.rst
|
||||||
|
- docs/cog_guides/customcommands.rst
|
||||||
|
"Category: Dev Cog":
|
||||||
|
- redbot/core/dev_commands.py
|
||||||
|
"Category: Docs":
|
||||||
|
- docs/**/*
|
||||||
|
"Category: Downloader":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/downloader/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/downloader.rst
|
||||||
|
"Category: Economy Cog":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/economy/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/economy.rst
|
||||||
|
"Category: Filter":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/filter/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/filter.rst
|
||||||
|
"Category: General Cog":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/general/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/general.rst
|
||||||
|
"Category: Help":
|
||||||
|
- redbot/core/commands/help.py
|
||||||
|
"Category: i18n":
|
||||||
|
# Source
|
||||||
|
- redbot/core/i18n.py
|
||||||
|
# Locale files
|
||||||
|
- redbot/**/locales/*
|
||||||
|
# Docs
|
||||||
|
- docs/framework_i18n.rst
|
||||||
|
"Category: Image":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/image/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/image.rst
|
||||||
|
"Category: Meta":
|
||||||
|
- ./*
|
||||||
|
- .github/*
|
||||||
|
- .github/ISSUE_TEMPLATE/*
|
||||||
|
- .github/PULL_REQUEST_TEMPLATE/*
|
||||||
|
- schema/*
|
||||||
|
- tools/*
|
||||||
|
"Category: Mod Cog":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/mod/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/mod.rst
|
||||||
|
"Category: Modlog API":
|
||||||
|
# Source
|
||||||
|
- redbot/core/generic_casetypes.py
|
||||||
|
- redbot/core/modlog.py
|
||||||
|
# Docs
|
||||||
|
- docs/framework_modlog.rst
|
||||||
|
- docs/cog_guides/modlog.rst
|
||||||
|
"Category: Modlog Cog":
|
||||||
|
- redbot/cogs/modlog/*
|
||||||
|
"Category: Mutes Cog":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/mutes/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/mutes.rst
|
||||||
|
"Category: Permissions":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/permissions/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/permissions.rst
|
||||||
|
- docs/cog_permissions.rst
|
||||||
|
"Category: Reports Cog":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/reports/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/reports.rst
|
||||||
|
"Category: RPC/ZMQ API":
|
||||||
|
# Source
|
||||||
|
- redbot/core/rpc.py
|
||||||
|
# Docs
|
||||||
|
- docs/framework_rpc.rst
|
||||||
|
"Category: Streams":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/streams/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/streams.rst
|
||||||
|
"Category: Tests":
|
||||||
|
- redbot/pytest/*
|
||||||
|
- tests/**/*
|
||||||
|
"Category: Trivia Cog":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/trivia/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/trivia.rst
|
||||||
|
- docs/guide_trivia_list_creation.rst
|
||||||
|
"Category: Trivia Lists":
|
||||||
|
- redbot/cogs/trivia/data/lists/*
|
||||||
|
"Category: Utility Functions":
|
||||||
|
# Source
|
||||||
|
- redbot/core/utils/*
|
||||||
|
# Docs
|
||||||
|
- docs/framework_utils.rst
|
||||||
|
"Category: Warnings":
|
||||||
|
# Source
|
||||||
|
- redbot/cogs/warnings/*
|
||||||
|
# Docs
|
||||||
|
- docs/cog_guides/warnings.rst
|
||||||
@@ -1,15 +1,18 @@
|
|||||||
name: Auto Labeler
|
name: Auto Labeler - Issues
|
||||||
on:
|
on:
|
||||||
issues:
|
issues:
|
||||||
types: [opened]
|
types: [opened]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Apply Triage Label
|
- name: Apply Triage Label
|
||||||
uses: actions/github-script@0.4.0
|
uses: actions/github-script@v3
|
||||||
with:
|
with:
|
||||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||||
script: |
|
script: |
|
||||||
16
.github/workflows/auto_labeler_pr.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
name: Auto Labeler - PRs
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Apply Type Label
|
||||||
|
uses: actions/labeler@v3
|
||||||
|
with:
|
||||||
|
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
sync-labels: "" # this is a temporary workaround, see #4844
|
||||||
58
.github/workflows/codeql-analysis.yml
vendored
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 14 * * 4'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
security-events: write
|
||||||
|
actions: read
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: "3.8"
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install -U pip setuptools wheel
|
||||||
|
python -m pip install -r ./tools/dev-requirements.txt
|
||||||
|
# Set the `CODEQL-PYTHON` environment variable to the Python executable
|
||||||
|
# that includes the dependencies
|
||||||
|
echo "CODEQL_PYTHON=$(which python)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: 'python'
|
||||||
|
# Override the default behavior so that the action doesn't attempt
|
||||||
|
# to auto-install Python dependencies
|
||||||
|
# Learn more...
|
||||||
|
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#analyzing-python-dependencies
|
||||||
|
setup-python-dependencies: false
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 https://git.io/JvXDl
|
||||||
|
|
||||||
|
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||||
|
# and modify them (or add more) to build your code if your project
|
||||||
|
# uses a compiled language
|
||||||
|
|
||||||
|
#- run: |
|
||||||
|
# make bootstrap
|
||||||
|
# make release
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
||||||
@@ -1,16 +1,17 @@
|
|||||||
name: Publish to Crowdin
|
name: Crowdin - Upload strings
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
branches:
|
||||||
- "*"
|
- V3/develop
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
|
if: github.repository == 'Cog-Creators/Red-DiscordBot'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v1
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: '3.8'
|
python-version: '3.8'
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
@@ -19,10 +20,13 @@ jobs:
|
|||||||
echo "deb https://artifacts.crowdin.com/repo/deb/ /" | sudo tee -a /etc/apt/sources.list
|
echo "deb https://artifacts.crowdin.com/repo/deb/ /" | sudo tee -a /etc/apt/sources.list
|
||||||
sudo apt-get update -qq
|
sudo apt-get update -qq
|
||||||
sudo apt-get install -y crowdin
|
sudo apt-get install -y crowdin
|
||||||
pip install redgettext==3.1
|
pip install redgettext==3.3
|
||||||
- name: Publish
|
- name: Generate source files
|
||||||
|
run: |
|
||||||
|
make gettext
|
||||||
|
- name: Upload source files
|
||||||
|
run: |
|
||||||
|
make upload_translations
|
||||||
env:
|
env:
|
||||||
CROWDIN_API_KEY: ${{ secrets.crowdin_token}}
|
CROWDIN_API_KEY: ${{ secrets.crowdin_token}}
|
||||||
CROWDIN_PROJECT_ID: ${{ secrets.crowdin_identifier }}
|
CROWDIN_PROJECT_ID: ${{ secrets.crowdin_identifier }}
|
||||||
run: |
|
|
||||||
make upload_translations
|
|
||||||
20
.github/workflows/lint_python.yaml
vendored
@@ -1,16 +1,26 @@
|
|||||||
name: Lint Python
|
name: Lint Python
|
||||||
on: [push, pull_request]
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
repository_dispatch:
|
||||||
|
types:
|
||||||
|
- dispatched_test
|
||||||
|
|
||||||
|
env:
|
||||||
|
ref: ${{ github.event.client_payload.ref || '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
lint_python:
|
lint_python:
|
||||||
name: Lint Python
|
name: Lint Python
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-python@v1
|
|
||||||
with:
|
with:
|
||||||
python_version: "3.8"
|
ref: ${{ env.ref }}
|
||||||
- run: "python -m pip install flake8"
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: "3.8"
|
||||||
|
- run: "python -m pip install git+https://github.com/pycqa/pyflakes@1911c20#egg=pyflakes git+https://github.com/pycqa/pycodestyle@d219c68#egg=pycodestyle git+https://gitlab.com/pycqa/flake8@3.7.9#egg=flake8"
|
||||||
name: Install Flake8
|
name: Install Flake8
|
||||||
- run: "python -m flake8 . --count --select=E9,F7,F82 --show-source"
|
- run: "python -m flake8 . --count --select=E9,F7,F82 --show-source"
|
||||||
name: Flake8 Linting
|
name: Flake8 Linting
|
||||||
|
|||||||
130
.github/workflows/prepare_release.yml
vendored
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
name: Prepare Release
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
new_stable_version:
|
||||||
|
description: Version number for the new stable release (leave empty to just strip `.dev1`)
|
||||||
|
required: false
|
||||||
|
default: 'auto'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
crowdin_download_translations:
|
||||||
|
needs: pr_stable_bump
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.8'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
curl https://artifacts.crowdin.com/repo/GPG-KEY-crowdin | sudo apt-key add -
|
||||||
|
echo "deb https://artifacts.crowdin.com/repo/deb/ /" | sudo tee -a /etc/apt/sources.list
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y crowdin
|
||||||
|
pip install redgettext==3.3
|
||||||
|
|
||||||
|
- name: Generate source files
|
||||||
|
run: |
|
||||||
|
make gettext
|
||||||
|
- name: Download translations
|
||||||
|
run: |
|
||||||
|
make download_translations
|
||||||
|
env:
|
||||||
|
CROWDIN_API_KEY: ${{ secrets.crowdin_token}}
|
||||||
|
CROWDIN_PROJECT_ID: ${{ secrets.crowdin_identifier }}
|
||||||
|
|
||||||
|
- name: Create Pull Request
|
||||||
|
id: cpr_crowdin
|
||||||
|
uses: peter-evans/create-pull-request@v3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
commit-message: Automated Crowdin downstream
|
||||||
|
title: "[i18n] Automated Crowdin downstream"
|
||||||
|
body: |
|
||||||
|
This is an automated PR that is part of Prepare Release automated workflow (2 out of 2).
|
||||||
|
Please ensure that there are no errors or invalid files are in the PR.
|
||||||
|
labels: "Automated PR, Category: i18n, Changelog Entry: Skipped"
|
||||||
|
branch: "automated/i18n"
|
||||||
|
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||||
|
milestone: ${{ needs.pr_stable_bump.outputs.milestone_number }}
|
||||||
|
|
||||||
|
- name: Close and reopen the PR with different token to trigger CI
|
||||||
|
uses: actions/github-script@v3
|
||||||
|
env:
|
||||||
|
PR_NUMBER: ${{ steps.cpr_crowdin.outputs.pull-request-number }}
|
||||||
|
PR_OPERATION: ${{ steps.cpr_crowdin.outputs.pull-request-operation }}
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
|
||||||
|
script: |
|
||||||
|
const script = require(
|
||||||
|
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
|
||||||
|
);
|
||||||
|
console.log(script({github, context}));
|
||||||
|
|
||||||
|
pr_stable_bump:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
milestone_number: ${{ steps.get_milestone_number.outputs.result }}
|
||||||
|
steps:
|
||||||
|
# Checkout repository and install Python
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.8'
|
||||||
|
|
||||||
|
# Create PR for stable version bump
|
||||||
|
- name: Update Red version number from input
|
||||||
|
id: bump_version_stable
|
||||||
|
run: |
|
||||||
|
python .github/workflows/scripts/bump_version.py
|
||||||
|
env:
|
||||||
|
PYTHONPATH: ${{ github.workspace }}:${{ env.PYTHONPATH }}
|
||||||
|
NEW_STABLE_VERSION: ${{ github.event.inputs.new_stable_version }}
|
||||||
|
|
||||||
|
# Get milestone number of the milestone for the new stable version
|
||||||
|
- name: Get milestone number
|
||||||
|
id: get_milestone_number
|
||||||
|
uses: actions/github-script@v3
|
||||||
|
env:
|
||||||
|
MILESTONE_TITLE: ${{ steps.bump_version_stable.outputs.new_version }}
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const script = require(
|
||||||
|
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/get_milestone_number_by_exact_title.js`
|
||||||
|
);
|
||||||
|
return await script({github, context});
|
||||||
|
|
||||||
|
- name: Create Pull Request
|
||||||
|
id: cpr_bump_stable
|
||||||
|
uses: peter-evans/create-pull-request@v3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
commit-message: Version bump to ${{ steps.bump_version_stable.outputs.new_version }}
|
||||||
|
title: Version bump to ${{ steps.bump_version_stable.outputs.new_version }}
|
||||||
|
body: |
|
||||||
|
This is an automated PR that is part of Prepare Release automated workflow (1 out of 2).
|
||||||
|
Please ensure that there are no errors or invalid files are in the PR.
|
||||||
|
labels: "Automated PR, Changelog Entry: Skipped"
|
||||||
|
branch: "automated/pr_bumps/${{ steps.bump_version_stable.outputs.new_version }}"
|
||||||
|
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||||
|
milestone: ${{ steps.get_milestone_number.outputs.result }}
|
||||||
|
|
||||||
|
- name: Close and reopen the PR with different token to trigger CI
|
||||||
|
uses: actions/github-script@v3
|
||||||
|
env:
|
||||||
|
PR_NUMBER: ${{ steps.cpr_bump_stable.outputs.pull-request-number }}
|
||||||
|
PR_OPERATION: ${{ steps.cpr_bump_stable.outputs.pull-request-operation }}
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
|
||||||
|
script: |
|
||||||
|
const script = require(
|
||||||
|
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
|
||||||
|
);
|
||||||
|
console.log(await script({github, context}));
|
||||||
26
.github/workflows/publish_pypi.yml
vendored
@@ -1,26 +0,0 @@
|
|||||||
name: Publish to PyPI
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- "*"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v1
|
|
||||||
with:
|
|
||||||
python-version: '3.8'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
pip install setuptools wheel twine
|
|
||||||
- name: Build and publish
|
|
||||||
env:
|
|
||||||
TWINE_USERNAME: __token__
|
|
||||||
TWINE_PASSWORD: ${{ secrets.pypi_token }}
|
|
||||||
run: |
|
|
||||||
python setup.py sdist bdist_wheel
|
|
||||||
twine upload dist/*
|
|
||||||
93
.github/workflows/publish_release.yml
vendored
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
name: Publish Release
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release_to_pypi:
|
||||||
|
if: github.repository == 'Cog-Creators/Red-DiscordBot'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: V3/develop
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.8'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install build twine
|
||||||
|
- name: Build and publish
|
||||||
|
env:
|
||||||
|
TWINE_USERNAME: __token__
|
||||||
|
TWINE_PASSWORD: ${{ secrets.pypi_token }}
|
||||||
|
run: |
|
||||||
|
python -m build
|
||||||
|
twine upload dist/*
|
||||||
|
|
||||||
|
pr_dev_bump:
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
needs: release_to_pypi
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.8'
|
||||||
|
|
||||||
|
# Version bump to development version
|
||||||
|
- name: Update Red version number to dev
|
||||||
|
id: bump_version_dev
|
||||||
|
run: |
|
||||||
|
python .github/workflows/scripts/bump_version.py
|
||||||
|
env:
|
||||||
|
PYTHONPATH: ${{ github.workspace }}:${{ env.PYTHONPATH }}
|
||||||
|
DEV_BUMP: '1'
|
||||||
|
|
||||||
|
# Get milestone number of the milestone for the old version
|
||||||
|
- name: Get milestone number
|
||||||
|
id: get_milestone_number
|
||||||
|
uses: actions/github-script@v3
|
||||||
|
env:
|
||||||
|
MILESTONE_TITLE: ${{ steps.bump_version_dev.outputs.old_version }}
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const script = require(
|
||||||
|
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/get_milestone_number_by_exact_title.js`
|
||||||
|
);
|
||||||
|
return await script({github, context});
|
||||||
|
|
||||||
|
- name: Create Pull Request
|
||||||
|
id: cpr_bump_dev
|
||||||
|
uses: peter-evans/create-pull-request@v3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
commit-message: Version bump to ${{ steps.bump_version_dev.outputs.new_version }}
|
||||||
|
title: Version bump to ${{ steps.bump_version_dev.outputs.new_version }}
|
||||||
|
body: |
|
||||||
|
This is an automated PR.
|
||||||
|
Please ensure that there are no errors or invalid files are in the PR.
|
||||||
|
labels: "Automated PR, Changelog Entry: Skipped"
|
||||||
|
branch: "automated/pr_bumps/${{ steps.bump_version_dev.outputs.new_version }}"
|
||||||
|
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
||||||
|
milestone: ${{ steps.get_milestone_number.outputs.result }}
|
||||||
|
base: V3/develop
|
||||||
|
|
||||||
|
- name: Close and reopen the PR with different token to trigger CI
|
||||||
|
uses: actions/github-script@v3
|
||||||
|
env:
|
||||||
|
PR_NUMBER: ${{ steps.cpr_bump_dev.outputs.pull-request-number }}
|
||||||
|
PR_OPERATION: ${{ steps.cpr_bump_dev.outputs.pull-request-operation }}
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.cogcreators_bot_repo_scoped }}
|
||||||
|
script: |
|
||||||
|
const script = require(
|
||||||
|
`${process.env.GITHUB_WORKSPACE}/.github/workflows/scripts/close_and_reopen_pr.js`
|
||||||
|
);
|
||||||
|
console.log(await script({github, context}));
|
||||||
47
.github/workflows/scripts/bump_version.py
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from typing import Match
|
||||||
|
|
||||||
|
import redbot
|
||||||
|
|
||||||
|
|
||||||
|
version_info = None
|
||||||
|
|
||||||
|
|
||||||
|
def repl(match: Match[str]) -> str:
|
||||||
|
global version_info
|
||||||
|
|
||||||
|
print(f"::set-output name=old_version::{match.group('version')}")
|
||||||
|
|
||||||
|
new_stable_version = os.environ.get("NEW_STABLE_VERSION", "auto")
|
||||||
|
if new_stable_version == "auto":
|
||||||
|
version_info = redbot.VersionInfo.from_str(match.group("version"))
|
||||||
|
version_info.dev_release = None
|
||||||
|
else:
|
||||||
|
version_info = redbot.VersionInfo.from_str(new_stable_version)
|
||||||
|
|
||||||
|
if int(os.environ.get("DEV_BUMP", 0)):
|
||||||
|
version_info.micro += 1
|
||||||
|
version_info.dev_release = 1
|
||||||
|
|
||||||
|
return f'__version__ = "{version_info}"'
|
||||||
|
|
||||||
|
|
||||||
|
with open("redbot/__init__.py", encoding="utf-8") as fp:
|
||||||
|
new_contents, found = re.subn(
|
||||||
|
pattern=r'^__version__ = "(?P<version>[^"]*)"$',
|
||||||
|
repl=repl,
|
||||||
|
string=fp.read(),
|
||||||
|
count=1,
|
||||||
|
flags=re.MULTILINE,
|
||||||
|
)
|
||||||
|
|
||||||
|
if not found:
|
||||||
|
print("Couldn't find `__version__` line!")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
with open("redbot/__init__.py", "w", encoding="utf-8", newline="\n") as fp:
|
||||||
|
fp.write(new_contents)
|
||||||
|
|
||||||
|
print(f"::set-output name=new_version::{version_info}")
|
||||||
25
.github/workflows/scripts/close_and_reopen_pr.js
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
module.exports = (async function ({github, context}) {
|
||||||
|
const pr_number = process.env.PR_NUMBER;
|
||||||
|
const pr_operation = process.env.PR_OPERATION;
|
||||||
|
let sleep_time = 0;
|
||||||
|
|
||||||
|
if (!['created', 'updated'].includes(pr_operation)) {
|
||||||
|
console.log('PR was not created as there were no changes.')
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const new_state of ['closed', 'open']) {
|
||||||
|
// some sleep time needed to make sure API handles open after close
|
||||||
|
if (sleep_time)
|
||||||
|
await new Promise(r => setTimeout(r, sleep_time));
|
||||||
|
|
||||||
|
github.issues.update({
|
||||||
|
issue_number: pr_number,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
state: new_state
|
||||||
|
});
|
||||||
|
|
||||||
|
sleep_time = 2000;
|
||||||
|
}
|
||||||
|
})
|
||||||
49
.github/workflows/scripts/get_milestone_number_by_exact_title.js
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
module.exports = (async function ({github, context}) {
|
||||||
|
const milestone_title = process.env.MILESTONE_TITLE;
|
||||||
|
const [repo_owner, repo_name] = process.env.GITHUB_REPOSITORY.split('/');
|
||||||
|
|
||||||
|
const {
|
||||||
|
repository: {
|
||||||
|
milestones: {
|
||||||
|
nodes: milestones,
|
||||||
|
pageInfo: {hasNextPage}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} = await github.graphql({
|
||||||
|
query: `
|
||||||
|
query getMilestoneNumberByTitle(
|
||||||
|
$repo_owner: String!
|
||||||
|
$repo_name: String!
|
||||||
|
$milestone_title: String!
|
||||||
|
) {
|
||||||
|
repository(owner:$repo_owner name:$repo_name) {
|
||||||
|
milestones(query:$milestone_title states:OPEN first:100) {
|
||||||
|
nodes {
|
||||||
|
number
|
||||||
|
title
|
||||||
|
}
|
||||||
|
pageInfo {
|
||||||
|
hasNextPage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}`,
|
||||||
|
repo_owner: repo_owner,
|
||||||
|
repo_name: repo_name,
|
||||||
|
milestone_title: milestone_title,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (hasNextPage) {
|
||||||
|
// this should realistically never happen so let's just error
|
||||||
|
core.setFailed('Impossible happened! :)');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const milestone of milestones)
|
||||||
|
if (milestone.title === milestone_title)
|
||||||
|
return milestone.number;
|
||||||
|
|
||||||
|
// if no exact match is found, assume the milestone doesn't exist
|
||||||
|
console.log('The milestone was not found. API returned the array: %o', milestones);
|
||||||
|
return null;
|
||||||
|
})
|
||||||
18
.github/workflows/tests.yml
vendored
@@ -1,5 +1,13 @@
|
|||||||
name: Tests
|
name: Tests
|
||||||
on: [push, pull_request]
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
repository_dispatch:
|
||||||
|
types:
|
||||||
|
- dispatched_test
|
||||||
|
|
||||||
|
env:
|
||||||
|
ref: ${{ github.event.client_payload.ref || '' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tox:
|
tox:
|
||||||
@@ -23,8 +31,10 @@ jobs:
|
|||||||
name: Tox - ${{ matrix.friendly_name }}
|
name: Tox - ${{ matrix.friendly_name }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: ${{ env.ref }}
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v1
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python_version }}
|
python-version: ${{ matrix.python_version }}
|
||||||
- name: Install tox
|
- name: Install tox
|
||||||
@@ -55,8 +65,10 @@ jobs:
|
|||||||
POSTGRES_USER: postgres
|
POSTGRES_USER: postgres
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: ${{ env.ref }}
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v1
|
uses: actions/setup-python@v2
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python_version }}
|
python-version: ${{ matrix.python_version }}
|
||||||
- name: Install tox
|
- name: Install tox
|
||||||
|
|||||||
88
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
*.json
|
|
||||||
*.exe
|
*.exe
|
||||||
*.dll
|
*.dll
|
||||||
*.pot
|
*.pot
|
||||||
@@ -6,6 +5,7 @@
|
|||||||
!/tests/cogs/dataconverter/data/**/*.json
|
!/tests/cogs/dataconverter/data/**/*.json
|
||||||
Pipfile
|
Pipfile
|
||||||
Pipfile.lock
|
Pipfile.lock
|
||||||
|
.directory
|
||||||
|
|
||||||
### JetBrains template
|
### JetBrains template
|
||||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
||||||
@@ -14,6 +14,9 @@ Pipfile.lock
|
|||||||
# User-specific stuff:
|
# User-specific stuff:
|
||||||
.idea/
|
.idea/
|
||||||
*.iws
|
*.iws
|
||||||
|
.vscode/
|
||||||
|
*.sublime-project
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
## Plugin-specific files:
|
## Plugin-specific files:
|
||||||
|
|
||||||
@@ -140,3 +143,86 @@ ENV/
|
|||||||
|
|
||||||
# Pre-commit hooks
|
# Pre-commit hooks
|
||||||
/.pre-commit-config.yaml
|
/.pre-commit-config.yaml
|
||||||
|
|
||||||
|
### macOS template
|
||||||
|
# General
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Icon must end with two \r
|
||||||
|
Icon
|
||||||
|
|
||||||
|
# Thumbnails
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
|
||||||
|
# Directories potentially created on remote AFP share
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
.apdisk
|
||||||
|
|
||||||
|
### Windows template
|
||||||
|
# Windows thumbnail cache files
|
||||||
|
Thumbs.db
|
||||||
|
Thumbs.db:encryptable
|
||||||
|
ehthumbs.db
|
||||||
|
ehthumbs_vista.db
|
||||||
|
|
||||||
|
# Dump file
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
[Dd]esktop.ini
|
||||||
|
|
||||||
|
# Recycle Bin used on file shares
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
|
||||||
|
# Windows Installer files
|
||||||
|
*.cab
|
||||||
|
*.msi
|
||||||
|
*.msix
|
||||||
|
*.msm
|
||||||
|
*.msp
|
||||||
|
|
||||||
|
# Windows shortcuts
|
||||||
|
*.lnk
|
||||||
|
|
||||||
|
### SublimeText template
|
||||||
|
# Cache files for Sublime Text
|
||||||
|
*.tmlanguage.cache
|
||||||
|
*.tmPreferences.cache
|
||||||
|
*.stTheme.cache
|
||||||
|
|
||||||
|
# Workspace files are user-specific
|
||||||
|
|
||||||
|
# SFTP configuration file
|
||||||
|
sftp-config.json
|
||||||
|
sftp-config-alt*.json
|
||||||
|
|
||||||
|
# Package control specific files
|
||||||
|
Package Control.last-run
|
||||||
|
Package Control.ca-list
|
||||||
|
Package Control.ca-bundle
|
||||||
|
Package Control.system-ca-bundle
|
||||||
|
Package Control.cache/
|
||||||
|
Package Control.ca-certs/
|
||||||
|
Package Control.merged-ca-bundle
|
||||||
|
Package Control.user-ca-bundle
|
||||||
|
oscrypto-ca-bundle.crt
|
||||||
|
bh_unicode_properties.cache
|
||||||
|
|
||||||
|
# Sublime-github package stores a github token in this file
|
||||||
|
# https://packagecontrol.io/packages/sublime-github
|
||||||
|
GitHub.sublime-settings
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
version: 2
|
version: 2
|
||||||
|
|
||||||
formats:
|
|
||||||
- pdf
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
image: latest
|
image: latest
|
||||||
|
|
||||||
python:
|
python:
|
||||||
version: 3.8
|
version: 3.8
|
||||||
install:
|
install:
|
||||||
- requirements: docs/requirements.txt
|
|
||||||
- method: pip
|
- method: pip
|
||||||
path: .
|
path: .
|
||||||
extra_requirements:
|
extra_requirements:
|
||||||
|
|||||||
65
.travis.yml
@@ -1,65 +0,0 @@
|
|||||||
dist: xenial
|
|
||||||
language: python
|
|
||||||
cache: pip
|
|
||||||
notifications:
|
|
||||||
email: false
|
|
||||||
|
|
||||||
python:
|
|
||||||
- 3.8.1
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- PIPENV_IGNORE_VIRTUALENVS=1
|
|
||||||
|
|
||||||
install:
|
|
||||||
- pip install --upgrade pip tox
|
|
||||||
|
|
||||||
script:
|
|
||||||
- tox
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
include:
|
|
||||||
- env: TOXENV=py
|
|
||||||
- env: TOXENV=docs
|
|
||||||
- env: TOXENV=style
|
|
||||||
- env: TOXENV=postgres
|
|
||||||
services: postgresql
|
|
||||||
addons:
|
|
||||||
postgresql: "10"
|
|
||||||
before_script:
|
|
||||||
- psql -c 'create database red_db;' -U postgres
|
|
||||||
# These jobs only occur on tag creation if the prior ones succeed
|
|
||||||
- stage: PyPi Deployment
|
|
||||||
if: tag IS present
|
|
||||||
python: 3.8.1
|
|
||||||
env:
|
|
||||||
- DEPLOYING=true
|
|
||||||
- TOXENV=py38
|
|
||||||
deploy:
|
|
||||||
- provider: pypi
|
|
||||||
distributions: sdist bdist_wheel
|
|
||||||
user: Red-DiscordBot
|
|
||||||
password:
|
|
||||||
secure: Ty9vYnd/wCuQkVC/OsS4E2jT9LVDVfzsFrQc4U2hMYcTJnYbl/3omyObdCWCOBC40vUDkVHAQU8ULHzoCA+2KX9Ds/7/P5zCumAA0uJRR9Smw7OlRzSMxJI+/lGq4CwXKzxDZKuo5rsxXEbW5qmYjtO8Mk6KuLkvieb1vyr2DcqWEFzg/7TZNDfD1oP8et8ITQ26lLP1dtQx/jlAiIBzgK9wziuwj1Divb9A///VsGz43N8maZ+jfsDjYqrfUVWTy3ar7JPUplletenYCR1PmQ5C46XfV0kitKd1aITJ48YPAKyYgKy8AIT+Uz1JArTnqdzLSFRNELS57qS00lzgllbteCyWQ8Uzy0Zpxb/5DDH8/mL1n0MyJrF8qjZd2hLNAXg3z/k9bGXeiMLGwoxRlGXkL2XpiVgI93UKKyVyooGNMgPTc/QdSc7krjAWcOtX/HgLR34jxeLPFEdzJNAFIimfDD8N+XTFcNBw6EvOYm/n5MXkckNoX/G+ThNobHZ7VKSASltZ9zBRAJ2dDh35G3CYmVEk33U77RKbL9le/Za9QVBcAO8i6rqVGYkdO7thHHKHc/1CB1jNnjsFSDt0bURtNfAqfwKCurQC8487zbEzT+2fog3Wygv7g3cklaRg4guY8UjZuFWStYGqbroTsOCd9ATNqeO5B13pNhllSzU=
|
|
||||||
skip_cleanup: true
|
|
||||||
on:
|
|
||||||
repo: Cog-Creators/Red-DiscordBot
|
|
||||||
tags: true
|
|
||||||
- stage: Crowdin Deployment
|
|
||||||
if: tag IS present OR ENV(BUILD_CROWDIN)
|
|
||||||
python: 3.8.1
|
|
||||||
env:
|
|
||||||
- DEPLOYING=true
|
|
||||||
- TOXENV=py38
|
|
||||||
before_deploy:
|
|
||||||
- curl https://artifacts.crowdin.com/repo/GPG-KEY-crowdin | sudo apt-key add -
|
|
||||||
- echo "deb https://artifacts.crowdin.com/repo/deb/ /" | sudo tee -a /etc/apt/sources.list
|
|
||||||
- sudo apt-get update -qq
|
|
||||||
- sudo apt-get install -y crowdin
|
|
||||||
- pip install redgettext==3.1
|
|
||||||
deploy:
|
|
||||||
- provider: script
|
|
||||||
script: make upload_translations
|
|
||||||
skip_cleanup: true
|
|
||||||
on:
|
|
||||||
repo: Cog-Creators/Red-DiscordBot
|
|
||||||
tags: true
|
|
||||||
@@ -11,9 +11,8 @@
|
|||||||
* [4.4 Make](#44-make)
|
* [4.4 Make](#44-make)
|
||||||
* [4.5 Keeping your dependencies up to date](#45-keeping-your-dependencies-up-to-date)
|
* [4.5 Keeping your dependencies up to date](#45-keeping-your-dependencies-up-to-date)
|
||||||
* [4.6 To contribute changes](#46-to-contribute-changes)
|
* [4.6 To contribute changes](#46-to-contribute-changes)
|
||||||
* [4.7 Using towncrier](#47-using-towncrier)
|
* [4.7 How To Report A Bug](#47-how-to-report-a-bug)
|
||||||
* [4.8 How To Report A Bug](#48-how-to-report-a-bug)
|
* [4.8 How To Suggest A Feature Or Enhancement](#48-how-to-suggest-a-feature-or-enhancement)
|
||||||
* [4.9 How To Suggest A Feature Or Enhancement](#49-how-to-suggest-a-feature-or-enhancement)
|
|
||||||
* [5. Code Review Process](#5-code-review-process)
|
* [5. Code Review Process](#5-code-review-process)
|
||||||
* [5.1 Issues](#51-issues)
|
* [5.1 Issues](#51-issues)
|
||||||
* [5.2 Pull Requests](#52-pull-requests)
|
* [5.2 Pull Requests](#52-pull-requests)
|
||||||
@@ -43,7 +42,7 @@ Unsure of how to get started contributing to Red? Please take a look at the Issu
|
|||||||
* beginner - issues that can normally be fixed in just a few lines of code and maybe a test or two.
|
* beginner - issues that can normally be fixed in just a few lines of code and maybe a test or two.
|
||||||
* help-wanted - issues that are currently unassigned to anyone and may be a bit more involved/complex than issues tagged with beginner.
|
* help-wanted - issues that are currently unassigned to anyone and may be a bit more involved/complex than issues tagged with beginner.
|
||||||
|
|
||||||
**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
|
**Working on your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github)
|
||||||
|
|
||||||
At this point you're ready to start making changes. Feel free to ask for help; everyone was a beginner at some point!
|
At this point you're ready to start making changes. Feel free to ask for help; everyone was a beginner at some point!
|
||||||
|
|
||||||
@@ -79,12 +78,12 @@ If you're not on Windows, you should also have GNU make installed, and you can o
|
|||||||
**Note:** If you're comfortable with setting up virtual environments yourself and would rather do it manually, just run `pip install -Ur tools/dev-requirements.txt` after setting it up.
|
**Note:** If you're comfortable with setting up virtual environments yourself and would rather do it manually, just run `pip install -Ur tools/dev-requirements.txt` after setting it up.
|
||||||
|
|
||||||
### 4.2 Testing
|
### 4.2 Testing
|
||||||
We've recently started using [tox](https://github.com/tox-dev/tox) to run all of our tests. It's extremely simple to use, and if you followed the previous section correctly, it is already installed to your virtual environment.
|
We're using [tox](https://github.com/tox-dev/tox) to run all of our tests. It's extremely simple to use, and if you followed the previous section correctly, it is already installed to your virtual environment.
|
||||||
|
|
||||||
Currently, tox does the following, creating its own virtual environments for each stage:
|
Currently, tox does the following, creating its own virtual environments for each stage:
|
||||||
- Runs all of our unit tests with [pytest](https://github.com/pytest-dev/pytest) on python 3.8 (test environment `py38`)
|
- Runs all of our unit tests with [pytest](https://github.com/pytest-dev/pytest) on python 3.8 (test environment `py38`)
|
||||||
- Ensures documentation builds without warnings, and all hyperlinks have a valid destination (test environment `docs`)
|
- Ensures documentation builds without warnings, and all hyperlinks have a valid destination (test environment `docs`)
|
||||||
- Ensures that the code meets our style guide with [black](https://github.com/ambv/black) (test environment `style`)
|
- Ensures that the code meets our style guide with [black](https://github.com/psf/black) (test environment `style`)
|
||||||
|
|
||||||
To run all of these tests, just run the command `tox` in the project directory.
|
To run all of these tests, just run the command `tox` in the project directory.
|
||||||
|
|
||||||
@@ -93,9 +92,9 @@ To run a subset of these tests, use the command `tox -e <env>`, where `<env>` is
|
|||||||
Your PR will not be merged until all of these tests pass.
|
Your PR will not be merged until all of these tests pass.
|
||||||
|
|
||||||
### 4.3 Style
|
### 4.3 Style
|
||||||
Our style checker of choice, [black](https://github.com/ambv/black), actually happens to be an auto-formatter. The checking functionality simply detects whether or not it would try to reformat something in your code, should you run the formatter on it. For this reason, we recommend using this tool as a formatter, regardless of any disagreements you might have with the style it enforces.
|
Our style checker of choice, [black](https://github.com/psf/black), actually happens to be an auto-formatter. The checking functionality simply detects whether or not it would try to reformat something in your code, should you run the formatter on it. For this reason, we recommend using this tool as a formatter, regardless of any disagreements you might have with the style it enforces.
|
||||||
|
|
||||||
Use the command `black --help` to see how to use this tool. The full style guide is explained in detail on [black's GitHub repository](https://github.com/ambv/black). **There is one exception to this**, however, which is that we set the line length to 99, instead of black's default 88. When using `black` on the command line, simply use it like so: `black -l 99 -N <src>`.
|
Use the command `black --help` to see how to use this tool. The full style guide is explained in detail on [black's GitHub repository](https://github.com/psf/black). **There is one exception to this**, however, which is that we set the line length to 99, instead of black's default 88. This is already set in `pyproject.toml` configuration file in the repo so you can simply format code with Black like so: `black <src>`.
|
||||||
|
|
||||||
### 4.4 Make
|
### 4.4 Make
|
||||||
You may have noticed we have a `Makefile` and a `make.bat` in the top-level directory. For now, you can do a few things with them:
|
You may have noticed we have a `Makefile` and a `make.bat` in the top-level directory. For now, you can do a few things with them:
|
||||||
@@ -116,39 +115,17 @@ Whenever you pull from upstream (V3/develop on the main repository) and you noti
|
|||||||
1. Create a new branch on your fork
|
1. Create a new branch on your fork
|
||||||
2. Make the changes
|
2. Make the changes
|
||||||
3. If you like the changes and think the main Red project could use it:
|
3. If you like the changes and think the main Red project could use it:
|
||||||
* Create a towncrier entry for the changes. (See next section for details)
|
|
||||||
* Run tests with `tox` to ensure your code is up to scratch
|
* Run tests with `tox` to ensure your code is up to scratch
|
||||||
* Create a Pull Request on GitHub with your changes
|
* Create a Pull Request on GitHub with your changes
|
||||||
|
- If you are contributing a behavior change, please keep in mind that behavior changes
|
||||||
|
are conditional on them being appropriate for the project's current goals.
|
||||||
|
If you would like to reduce the risk of putting in effort for something we aren't
|
||||||
|
going to use, open an issue discussing it first.
|
||||||
|
|
||||||
### 4.7 Using towncrier
|
### 4.7 How To Report A Bug
|
||||||
|
|
||||||
Red uses towncrier to create changelogs.
|
|
||||||
|
|
||||||
To create a towncrier entry for your PR, create a file in `changelog.d` for it. If the changes are for a specific cog, place the file in the related subdirectory.
|
|
||||||
|
|
||||||
The filename should be of the format `issuenumber.changetype(.count).rst`, where `(.count)` is an optional
|
|
||||||
part of the filename should multiple entries for the same issue number and type be necessary.
|
|
||||||
If there is not an issue associated with your PR,
|
|
||||||
you may use the PR number in place of the issue number.
|
|
||||||
|
|
||||||
Valid changetypes are:
|
|
||||||
|
|
||||||
* breaking : Breaking changes
|
|
||||||
* dep : Changes to dependencies
|
|
||||||
* enhance : Enhancements
|
|
||||||
* feature : New features
|
|
||||||
* bugfix : Bugfixes
|
|
||||||
* docs : documentation improvements and additions
|
|
||||||
* removal : removal of something
|
|
||||||
* misc : any changes which don't have a user facing change, and don't belong in the changelog for users
|
|
||||||
|
|
||||||
The contents of the file should be a short, human readable description of the impact of the changes made,
|
|
||||||
not the technical details of the change.
|
|
||||||
|
|
||||||
### 4.8 How To Report A Bug
|
|
||||||
Please see our **ISSUES.MD** for more information.
|
Please see our **ISSUES.MD** for more information.
|
||||||
|
|
||||||
### 4.9 How To Suggest A Feature Or Enhancement
|
### 4.8 How To Suggest A Feature Or Enhancement
|
||||||
The goal of Red is to be as useful to as many people as possible, this means that all features must be useful to anyone and any server that uses Red.
|
The goal of Red is to be as useful to as many people as possible, this means that all features must be useful to anyone and any server that uses Red.
|
||||||
|
|
||||||
If you find yourself wanting a feature that Red does not already have, you're probably not alone. There's bound to be a great number of users out there needing the same thing and a lot of the features that Red has today have been added because of the needs of our users. Open an issue on our issues list and describe the feature you would like to see, how you would use it, how it should work, and why it would be useful to the Red community as a whole.
|
If you find yourself wanting a feature that Red does not already have, you're probably not alone. There's bound to be a great number of users out there needing the same thing and a lot of the features that Red has today have been added because of the needs of our users. Open an issue on our issues list and describe the feature you would like to see, how you would use it, how it should work, and why it would be useful to the Red community as a whole.
|
||||||
9
LICENSE
@@ -632,7 +632,8 @@ state the exclusion of warranty; and each file should have at least
|
|||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
Red - A fully customizable Discord bot
|
Red - A fully customizable Discord bot
|
||||||
Copyright (C) 2015-2020 Twentysix
|
Copyright (C) 2017-2021 Cog Creators
|
||||||
|
Copyright (C) 2015-2017 Twentysix
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -652,7 +653,8 @@ Also add information on how to contact you by electronic and paper mail.
|
|||||||
If the program does terminal interaction, make it output a short
|
If the program does terminal interaction, make it output a short
|
||||||
notice like this when it starts in an interactive mode:
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
Red-DiscordBot Copyright (C) 2015-2020 Twentysix
|
Red-DiscordBot Copyright (C) 2017-2021 Cog Creators
|
||||||
|
Red-DiscordBot Copyright (C) 2015-2017 Twentysix
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
@@ -700,3 +702,6 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
This project vendors discord.ext.menus package (https://github.com/Rapptz/discord-ext-menus) made by Danny Y. (Rapptz) which is distributed under MIT License.
|
||||||
|
Copy of this license can be found in discord-ext-menus.LICENSE file in redbot/vendored folder of this repository.
|
||||||
|
|||||||
27
MANIFEST.in
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# include license files
|
||||||
|
include LICENSE
|
||||||
|
recursive-include redbot *.LICENSE
|
||||||
|
|
||||||
|
# include locale files
|
||||||
|
recursive-include redbot locales/*.po
|
||||||
|
|
||||||
|
# include data folders for cogs
|
||||||
|
recursive-include redbot/**/data *
|
||||||
|
|
||||||
|
# include *.export files from the test fixtures
|
||||||
|
recursive-include redbot *.export
|
||||||
|
|
||||||
|
# include the py.typed file informing about Red being typed
|
||||||
|
recursive-include redbot py.typed
|
||||||
|
|
||||||
|
# include *.sql files from postgres driver
|
||||||
|
recursive-include redbot/core/drivers/postgres *.sql
|
||||||
|
|
||||||
|
# include tests
|
||||||
|
graft tests
|
||||||
|
|
||||||
|
# include tox configuration
|
||||||
|
include tox.ini
|
||||||
|
|
||||||
|
# exclude files containing byte-code and compiled libs
|
||||||
|
global-exclude *.py[cod]
|
||||||
45
Makefile
@@ -1,16 +1,46 @@
|
|||||||
|
.DEFAULT_GOAL := help
|
||||||
|
|
||||||
PYTHON ?= python3.8
|
PYTHON ?= python3.8
|
||||||
|
|
||||||
|
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||||
|
|
||||||
|
ifneq ($(wildcard $(ROOT_DIR)/.venv/.),)
|
||||||
|
VENV_PYTHON = $(ROOT_DIR)/.venv/bin/python
|
||||||
|
else
|
||||||
|
VENV_PYTHON = $(PYTHON)
|
||||||
|
endif
|
||||||
|
|
||||||
|
define HELP_BODY
|
||||||
|
Usage:
|
||||||
|
make <command>
|
||||||
|
|
||||||
|
Commands:
|
||||||
|
reformat Reformat all .py files being tracked by git.
|
||||||
|
stylecheck Check which tracked .py files need reformatting.
|
||||||
|
stylediff Show the post-reformat diff of the tracked .py files
|
||||||
|
without modifying them.
|
||||||
|
gettext Generate pot files.
|
||||||
|
upload_translations Upload pot files to Crowdin.
|
||||||
|
download_translations Download translations from Crowdin.
|
||||||
|
bumpdeps Run script bumping dependencies.
|
||||||
|
newenv Create or replace this project's virtual environment.
|
||||||
|
syncenv Sync this project's virtual environment to Red's latest
|
||||||
|
dependencies.
|
||||||
|
endef
|
||||||
|
export HELP_BODY
|
||||||
|
|
||||||
# Python Code Style
|
# Python Code Style
|
||||||
reformat:
|
reformat:
|
||||||
$(PYTHON) -m black -l 99 --target-version py38 `git ls-files "*.py"`
|
$(VENV_PYTHON) -m black $(ROOT_DIR)
|
||||||
stylecheck:
|
stylecheck:
|
||||||
$(PYTHON) -m black --check -l 99 --target-version py38 `git ls-files "*.py"`
|
$(VENV_PYTHON) -m black --check $(ROOT_DIR)
|
||||||
|
stylediff:
|
||||||
|
$(VENV_PYTHON) -m black --check --diff $(ROOT_DIR)
|
||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
gettext:
|
gettext:
|
||||||
$(PYTHON) -m redgettext --command-docstrings --verbose --recursive redbot --exclude-files "redbot/pytest/**/*"
|
$(PYTHON) -m redgettext --command-docstrings --verbose --recursive redbot --exclude-files "redbot/pytest/**/*"
|
||||||
upload_translations:
|
upload_translations:
|
||||||
$(MAKE) gettext
|
|
||||||
crowdin upload sources
|
crowdin upload sources
|
||||||
download_translations:
|
download_translations:
|
||||||
crowdin download
|
crowdin download
|
||||||
@@ -22,12 +52,11 @@ bumpdeps:
|
|||||||
# Development environment
|
# Development environment
|
||||||
newenv:
|
newenv:
|
||||||
$(PYTHON) -m venv --clear .venv
|
$(PYTHON) -m venv --clear .venv
|
||||||
.venv/bin/pip install -U pip setuptools
|
.venv/bin/pip install -U pip setuptools wheel
|
||||||
$(MAKE) syncenv
|
$(MAKE) syncenv
|
||||||
syncenv:
|
syncenv:
|
||||||
.venv/bin/pip install -Ur ./tools/dev-requirements.txt
|
.venv/bin/pip install -Ur ./tools/dev-requirements.txt
|
||||||
|
|
||||||
# Changelog check
|
# Help
|
||||||
checkchangelog:
|
help:
|
||||||
bash tools/check_changelog_entries.sh
|
@echo "$$HELP_BODY"
|
||||||
$(PYTHON) -m towncrier --draft
|
|
||||||
|
|||||||
34
README.md
@@ -12,32 +12,35 @@
|
|||||||
<a href="https://discord.gg/red">
|
<a href="https://discord.gg/red">
|
||||||
<img src="https://discordapp.com/api/guilds/133049272517001216/widget.png?style=shield" alt="Discord Server">
|
<img src="https://discordapp.com/api/guilds/133049272517001216/widget.png?style=shield" alt="Discord Server">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.patreon.com/Red_Devs">
|
<a href="https://pypi.org/project/Red-DiscordBot/">
|
||||||
<img src="https://img.shields.io/badge/Support-Red!-yellow.svg" alt="Support Red on Patreon!">
|
<img alt="PyPI" src="https://img.shields.io/pypi/v/Red-Discordbot">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.python.org/downloads/">
|
<a href="https://www.python.org/downloads/">
|
||||||
<img src="https://img.shields.io/badge/Made%20With-Python%203.8-blue.svg?style=for-the-badge" alt="Made with Python 3.8">
|
<img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/Red-Discordbot">
|
||||||
</a>
|
|
||||||
<a href="https://crowdin.com/project/red-discordbot">
|
|
||||||
<img src="https://d322cqt584bo4o.cloudfront.net/red-discordbot/localized.svg" alt="Localized with Crowdin">
|
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/Rapptz/discord.py/">
|
<a href="https://github.com/Rapptz/discord.py/">
|
||||||
<img src="https://img.shields.io/badge/discord-py-blue.svg" alt="discord.py">
|
<img src="https://img.shields.io/badge/discord-py-blue.svg" alt="discord.py">
|
||||||
|
</a>
|
||||||
|
<a href="https://www.patreon.com/Red_Devs">
|
||||||
|
<img src="https://img.shields.io/badge/Support-Red!-red.svg" alt="Support Red on Patreon!">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/Cog-Creators/Red-DiscordBot/actions">
|
<a href="https://github.com/Cog-Creators/Red-DiscordBot/actions">
|
||||||
<img src="https://github.com/Cog-Creators/Red-DiscordBot/workflows/Tests/badge.svg" alt="GitHub Actions">
|
<img src="https://img.shields.io/github/workflow/status/Cog-Creators/Red-Discordbot/Tests?label=tests" alt="GitHub Actions">
|
||||||
</a>
|
</a>
|
||||||
<a href="http://red-discordbot.readthedocs.io/en/stable/?badge=stable">
|
<a href="http://red-discordbot.readthedocs.io/en/stable/?badge=stable">
|
||||||
<img src="https://readthedocs.org/projects/red-discordbot/badge/?version=stable" alt="Red on readthedocs.org">
|
<img src="https://readthedocs.org/projects/red-discordbot/badge/?version=stable" alt="Red on readthedocs.org">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/ambv/black">
|
<a href="https://github.com/psf/black">
|
||||||
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code Style: Black">
|
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code Style: Black">
|
||||||
</a>
|
</a>
|
||||||
<a href="http://makeapullrequest.com">
|
<a href="http://makeapullrequest.com">
|
||||||
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg">
|
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg">
|
||||||
</a>
|
</a>
|
||||||
|
<a href="https://crowdin.com/project/red-discordbot">
|
||||||
|
<img src="https://d322cqt584bo4o.cloudfront.net/red-discordbot/localized.svg" alt="Localized with Crowdin">
|
||||||
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
@@ -57,19 +60,19 @@
|
|||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
Red is a fully modular bot – meaning all features and commands can be enabled/disabled to your
|
Red is a fully modular bot – meaning all features and commands can be enabled/disabled to your
|
||||||
liking, making it completely customizable. This is also a *self-hosted bot* – meaning you will need
|
liking, making it completely customizable. This is a *self-hosted bot* – meaning you will need
|
||||||
to host and maintain your own instance. You can turn Red into an admin bot, music bot, trivia bot,
|
to host and maintain your own instance. You can turn Red into an admin bot, music bot, trivia bot,
|
||||||
new best friend or all of these together!
|
new best friend or all of these together!
|
||||||
|
|
||||||
[Installation](#installation) is easy, and you do **NOT** need to know anything about coding! Aside
|
[Installation](#installation) is easy, and you do **NOT** need to know anything about coding! Aside
|
||||||
from installation and updating, every part of the bot can be controlled from within Discord.
|
from installing and updating, every part of the bot can be controlled from within Discord.
|
||||||
|
|
||||||
**The default set of modules includes and is not limited to:**
|
**The default set of modules includes and is not limited to:**
|
||||||
|
|
||||||
- Moderation features (kick/ban/softban/hackban, mod-log, filter, chat cleanup)
|
- Moderation features (kick/ban/softban/hackban, mod-log, filter, chat cleanup)
|
||||||
- Trivia (lists are included and can be easily added)
|
- Trivia (lists are included and can be easily added)
|
||||||
- Music features (YouTube, SoundCloud, local files, playlists, queues)
|
- Music features (YouTube, SoundCloud, local files, playlists, queues)
|
||||||
- Stream alerts (Twitch, Youtube, Mixer, Hitbox, Picarto)
|
- Stream alerts (Twitch, Youtube, Picarto)
|
||||||
- Bank (slot machine, user credits)
|
- Bank (slot machine, user credits)
|
||||||
- Custom commands
|
- Custom commands
|
||||||
- Imgur/gif search
|
- Imgur/gif search
|
||||||
@@ -104,14 +107,14 @@ plugins directly from Discord! A few examples are:
|
|||||||
- AniList
|
- AniList
|
||||||
- And much, much more!
|
- And much, much more!
|
||||||
|
|
||||||
Feel free to take a [peek](https://cogboard.red/t/approved-repositories/210) at a list of
|
Feel free to take a [peek](https://index.discord.red) at a list of
|
||||||
available 3rd party cogs!
|
available 3rd party cogs!
|
||||||
|
|
||||||
# Join the community!
|
# Join the community!
|
||||||
|
|
||||||
**Red** is in continuous development, and it’s supported by an active community which produces new
|
**Red** is in continuous development, and it’s supported by an active community which produces new
|
||||||
content (cogs/plugins) for everyone to enjoy. New features are constantly added. If you can’t
|
content (cogs/plugins) for everyone to enjoy. New features are constantly added. If you can’t
|
||||||
[find](https://cogboard.red/t/approved-repositories/210) the cog you’re looking for,
|
[find](https://index.discord.red) the cog you’re looking for,
|
||||||
consult our [guide](https://red-discordbot.readthedocs.io/en/stable/guide_cog_creation.html) on
|
consult our [guide](https://red-discordbot.readthedocs.io/en/stable/guide_cog_creation.html) on
|
||||||
building your own cogs!
|
building your own cogs!
|
||||||
|
|
||||||
@@ -126,3 +129,6 @@ Red is named after the main character of "Transistor", a video game by
|
|||||||
|
|
||||||
Artwork created by [Sinlaire](https://sinlaire.deviantart.com/) on Deviant Art for the Red Discord
|
Artwork created by [Sinlaire](https://sinlaire.deviantart.com/) on Deviant Art for the Red Discord
|
||||||
Bot Project.
|
Bot Project.
|
||||||
|
|
||||||
|
This project vendors [discord.ext.menus](https://github.com/Rapptz/discord-ext-menus) package made by Danny Y. (Rapptz) which is distributed under MIT License.
|
||||||
|
A copy of this license can be found in the [discord-ext-menus.LICENSE](redbot/vendored/discord-ext-menus.LICENSE) file in the [redbot/vendored](redbot/vendored) folder of this repository.
|
||||||
|
|||||||
1
changelog.d/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/admin/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/alias/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/audio/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/bank/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/cleanup/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/customcom/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/downloader/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/economy/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/filter/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/general/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/image/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/mod/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/modlog/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/mutes/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/permissions/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/reports/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/streams/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/trivia/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
1
changelog.d/warnings/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
!.gitignore
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
api_key_env: CROWDIN_API_KEY
|
api_key_env: CROWDIN_API_KEY
|
||||||
project_identifier_env: CROWDIN_PROJECT_ID
|
project_identifier_env: CROWDIN_PROJECT_ID
|
||||||
base_path: ./redbot/
|
base_path: ./redbot/
|
||||||
|
preserve_hierarchy: true
|
||||||
files:
|
files:
|
||||||
- source: cogs/**/messages.pot
|
- source: cogs/**/messages.pot
|
||||||
translation: /%original_path%/%locale%.po
|
translation: /%original_path%/%locale%.po
|
||||||
|
|||||||
BIN
docs/.resources/admin/public_bot.png
Normal file
|
After Width: | Height: | Size: 334 KiB |
BIN
docs/.resources/alias/example-1.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/.resources/alias/example-2.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/.resources/bot-guide/discord_bot_tab.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
docs/.resources/bot-guide/discord_bot_user_options.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
docs/.resources/bot-guide/discord_create_app_button.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
docs/.resources/bot-guide/discord_create_app_form.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/.resources/bot-guide/discord_create_bot_user.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/.resources/bot-guide/discord_privileged_intents.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
docs/.resources/cog_manager_ui/cog-path.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
docs/.resources/cog_manager_ui/custom-cog-example.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 16 KiB |
BIN
docs/.resources/trivia/trivia_author.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
129
docs/_ext/deprecated_removed.py
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
"""
|
||||||
|
A Sphinx extension adding a ``deprecated-removed`` directive that works
|
||||||
|
similarly to CPython's directive with the same name.
|
||||||
|
|
||||||
|
The key difference is that instead of passing the version of planned removal,
|
||||||
|
the writer must provide the minimum amount of days that must pass
|
||||||
|
since the date of the release it was deprecated in.
|
||||||
|
|
||||||
|
Due to lack of a concrete release schedule for Red, this ensures that
|
||||||
|
we give enough time to people affected by the changes no matter
|
||||||
|
when the releases actually happen.
|
||||||
|
|
||||||
|
`DeprecatedRemoved` class is heavily based on
|
||||||
|
`sphinx.domains.changeset.VersionChange` class that is available at:
|
||||||
|
https://github.com/sphinx-doc/sphinx/blob/0949735210abaa05b6448e531984f159403053f4/sphinx/domains/changeset.py
|
||||||
|
|
||||||
|
Copyright 2007-2020 by the Sphinx team, see AUTHORS:
|
||||||
|
https://github.com/sphinx-doc/sphinx/blob/82f495fed386c798735adf675f867b95d61ee0e1/AUTHORS
|
||||||
|
|
||||||
|
The original copy was distributed under BSD License and this derivative work
|
||||||
|
is distributed under GNU GPL Version 3.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
import multiprocessing
|
||||||
|
import subprocess
|
||||||
|
from typing import Any, Dict, List, Optional
|
||||||
|
|
||||||
|
from docutils import nodes
|
||||||
|
from sphinx import addnodes
|
||||||
|
from sphinx.application import Sphinx
|
||||||
|
from sphinx.util.docutils import SphinxDirective
|
||||||
|
|
||||||
|
|
||||||
|
class TagDateCache:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self._tags: Dict[str, datetime.date] = {}
|
||||||
|
|
||||||
|
def _populate_tags(self) -> None:
|
||||||
|
with _LOCK:
|
||||||
|
if self._tags:
|
||||||
|
return
|
||||||
|
out = subprocess.check_output(
|
||||||
|
("git", "tag", "-l", "--format", "%(creatordate:raw)\t%(refname:short)"),
|
||||||
|
text=True,
|
||||||
|
)
|
||||||
|
lines = out.splitlines(False)
|
||||||
|
for line in lines:
|
||||||
|
creator_date, tag_name = line.split("\t", maxsplit=1)
|
||||||
|
timestamp = int(creator_date.split(" ", maxsplit=1)[0])
|
||||||
|
self._tags[tag_name] = datetime.datetime.fromtimestamp(
|
||||||
|
timestamp, tz=datetime.timezone.utc
|
||||||
|
).date()
|
||||||
|
|
||||||
|
def get_tag_date(self, tag_name: str) -> Optional[datetime.date]:
|
||||||
|
self._populate_tags()
|
||||||
|
return self._tags.get(tag_name)
|
||||||
|
|
||||||
|
|
||||||
|
_LOCK = multiprocessing.Manager().Lock()
|
||||||
|
_TAGS = TagDateCache()
|
||||||
|
|
||||||
|
|
||||||
|
class DeprecatedRemoved(SphinxDirective):
|
||||||
|
has_content = True
|
||||||
|
required_arguments = 2
|
||||||
|
optional_arguments = 1
|
||||||
|
final_argument_whitespace = True
|
||||||
|
|
||||||
|
def run(self) -> List[nodes.Node]:
|
||||||
|
# Some Sphinx stuff
|
||||||
|
node = addnodes.versionmodified()
|
||||||
|
node.document = self.state.document
|
||||||
|
self.set_source_info(node)
|
||||||
|
node["type"] = self.name
|
||||||
|
node["version"] = tuple(self.arguments)
|
||||||
|
if len(self.arguments) == 3:
|
||||||
|
inodes, messages = self.state.inline_text(self.arguments[2], self.lineno + 1)
|
||||||
|
para = nodes.paragraph(self.arguments[2], "", *inodes, translatable=False)
|
||||||
|
self.set_source_info(para)
|
||||||
|
node.append(para)
|
||||||
|
else:
|
||||||
|
messages = []
|
||||||
|
|
||||||
|
# Text generation
|
||||||
|
deprecation_version = self.arguments[0]
|
||||||
|
minimum_days = int(self.arguments[1])
|
||||||
|
tag_date = _TAGS.get_tag_date(deprecation_version)
|
||||||
|
text = (
|
||||||
|
f"Will be deprecated in version {deprecation_version},"
|
||||||
|
" and removed in the first minor version that gets released"
|
||||||
|
f" after {minimum_days} days since deprecation"
|
||||||
|
if tag_date is None
|
||||||
|
else f"Deprecated since version {deprecation_version},"
|
||||||
|
" will be removed in the first minor version that gets released"
|
||||||
|
f" after {tag_date + datetime.timedelta(days=minimum_days)}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# More Sphinx stuff
|
||||||
|
if self.content:
|
||||||
|
self.state.nested_parse(self.content, self.content_offset, node)
|
||||||
|
classes = ["versionmodified"]
|
||||||
|
if len(node):
|
||||||
|
if isinstance(node[0], nodes.paragraph) and node[0].rawsource:
|
||||||
|
content = nodes.inline(node[0].rawsource, translatable=True)
|
||||||
|
content.source = node[0].source
|
||||||
|
content.line = node[0].line
|
||||||
|
content += node[0].children
|
||||||
|
node[0].replace_self(nodes.paragraph("", "", content, translatable=False))
|
||||||
|
|
||||||
|
node[0].insert(0, nodes.inline("", f"{text}: ", classes=classes))
|
||||||
|
else:
|
||||||
|
para = nodes.paragraph(
|
||||||
|
"", "", nodes.inline("", f"{text}.", classes=classes), translatable=False
|
||||||
|
)
|
||||||
|
node.append(para)
|
||||||
|
|
||||||
|
ret = [node]
|
||||||
|
ret += messages
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
def setup(app: Sphinx) -> Dict[str, Any]:
|
||||||
|
app.add_directive("deprecated-removed", DeprecatedRemoved)
|
||||||
|
return {
|
||||||
|
"version": "1.0",
|
||||||
|
"parallel_read_safe": True,
|
||||||
|
}
|
||||||
11
docs/_templates/layout.html
vendored
@@ -1,9 +1,18 @@
|
|||||||
{% extends '!layout.html' %}
|
{% extends '!layout.html' %}
|
||||||
{% block document %}
|
{% block document %}
|
||||||
|
{% if version_slug == 'latest' %}
|
||||||
|
<div class="admonition warning">
|
||||||
|
<p class="first admonition-title">Warning</p>
|
||||||
|
<p class="last">
|
||||||
|
This document is for Red's development version, which can be significantly different from previous releases.
|
||||||
|
If you're a regular user, you should read the <a href="{{ dict(versions)['stable'] }}">Red documentation for the current stable release</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
{{ super() }}
|
{{ super() }}
|
||||||
<a href="https://github.com/Cog-Creators/Red-DiscordBot">
|
<a href="https://github.com/Cog-Creators/Red-DiscordBot">
|
||||||
<img style="position: absolute; top: 0; right: 0; border: 0;"
|
<img style="position: absolute; top: 0; right: 0; border: 0;"
|
||||||
src="https://github.blog/wp-content/uploads/2008/12/forkme_right_darkblue_121621.png?resize=149%2C149"
|
src="https://github.blog/wp-content/uploads/2008/12/forkme_right_darkblue_121621.png?resize=149%2C149"
|
||||||
class="attachment-full size-full" alt="Fork me on GitHub">
|
class="attachment-full size-full" alt="Fork me on GitHub">
|
||||||
</a>
|
</a>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
39
docs/about_venv.rst
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
.. _about-venvs:
|
||||||
|
|
||||||
|
==========================
|
||||||
|
About Virtual Environments
|
||||||
|
==========================
|
||||||
|
Creating a virtual environment is really easy and usually prevents many common installation
|
||||||
|
problems.
|
||||||
|
|
||||||
|
**What Are Virtual Environments For?**
|
||||||
|
|
||||||
|
Virtual environments allow you to isolate Red's library dependencies, cog dependencies and python
|
||||||
|
binaries from the rest of your system. There is no performance overhead to using virtual environment
|
||||||
|
and it saves you from a lot of troubles during setup. It also makes sure Red and its dependencies
|
||||||
|
are installed to a predictable location which makes uninstalling Red as simple as removing a single folder,
|
||||||
|
without worrying about losing your data or other things on your system becoming broken.
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------
|
||||||
|
Virtual Environments with Multiple Instances
|
||||||
|
--------------------------------------------
|
||||||
|
If you are running multiple instances of Red on the same machine, you have the option of either
|
||||||
|
using the same virtual environment for all of them, or creating separate ones.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
This only applies for multiple instances of V3. If you are running a V2 instance as well,
|
||||||
|
you **must** use separate virtual environments.
|
||||||
|
|
||||||
|
The advantages of using a *single* virtual environment for all of your V3 instances are:
|
||||||
|
|
||||||
|
- When updating Red, you will only need to update it once for all instances (however you will still need to restart all instances for the changes to take effect)
|
||||||
|
- It will save space on your hard drive
|
||||||
|
|
||||||
|
On the other hand, you may wish to update each of your instances individually.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
|
||||||
|
Windows users with multiple instances should create *separate* virtual environments, as
|
||||||
|
updating multiple running instances at once is likely to cause errors.
|
||||||
109
docs/autostart_mac.rst
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
.. launchd guide
|
||||||
|
|
||||||
|
==============================
|
||||||
|
Setting up auto-restart on Mac
|
||||||
|
==============================
|
||||||
|
|
||||||
|
-----------------------
|
||||||
|
Creating the plist file
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Start by activating your venv. Then run the following command:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
which python
|
||||||
|
|
||||||
|
Copy the output of that command.
|
||||||
|
|
||||||
|
Now run :code:`sudo nano /Library/LaunchDaemons/red.plist`
|
||||||
|
|
||||||
|
Paste the following and replace the following:
|
||||||
|
|
||||||
|
- all instances of :code:`username` with your Mac username
|
||||||
|
- :code:`path` with the path you copied earlier
|
||||||
|
- :code:`instance-name` with your instance name:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>red</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>path</string>
|
||||||
|
<string>-O</string>
|
||||||
|
<string>-m</string>
|
||||||
|
<string>redbot</string>
|
||||||
|
<string>instance-name</string>
|
||||||
|
<string>--no-prompt</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
<key>KeepAlive</key>
|
||||||
|
<dict>
|
||||||
|
<key>SuccessfulExit</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
<key>StandardOutPath</key>
|
||||||
|
<string>/tmp/red_out.log</string>
|
||||||
|
<key>StandardErrorPath</key>
|
||||||
|
<string>/tmp/red_err.log</string>
|
||||||
|
<key>UserName</key>
|
||||||
|
<string>username</string>
|
||||||
|
<key>InitGroups</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
You may add any additional arguments you need to add to the :code:`redbot` command by
|
||||||
|
adding them to the end of the array under :code:`ProgramArguments`
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Should you need to set up auto-restart for additional bots, create a :code:`.plist` file for
|
||||||
|
each bot under a different file name, and use the respective file names for the commands below.
|
||||||
|
|
||||||
|
Save and exit :code:`ctrl + O; enter; ctrl + x`
|
||||||
|
|
||||||
|
-------------------------------
|
||||||
|
Starting and loading the plist
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
To start the bot and set it to start on boot, you must run the following command:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo launchctl load -w /Library/LaunchDaemons/red.plist
|
||||||
|
|
||||||
|
If you need to shutdown the bot, you can use the ``[p]shutdown`` command or
|
||||||
|
type the following command in the terminal:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo launchctl stop red
|
||||||
|
|
||||||
|
To start the bot again after a shutdown, run the following:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo launchctl start red
|
||||||
|
|
||||||
|
To stop the bot and set it to not start on boot anymore, run the following:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo launchctl unload -w /Library/LaunchDaemons/red.plist
|
||||||
|
|
||||||
|
To view Red's log, run the following (:code:`red_out.log` is for the console output, and
|
||||||
|
:code:`red_err.log` for the error logs):
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
nano /tmp/red_out.log
|
||||||
|
nano /tmp/red_err.log
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
.. pm2 service guide
|
|
||||||
|
|
||||||
==============================================
|
|
||||||
Setting up auto-restart using pm2 on Linux
|
|
||||||
==============================================
|
|
||||||
|
|
||||||
.. note:: This guide is for setting up PM2 on a Linux environment. This guide assumes that you already have a working Red instance.
|
|
||||||
|
|
||||||
--------------
|
|
||||||
Installing PM2
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Start by installing Node.JS and NPM via your favorite package distributor. From there run the following command:
|
|
||||||
|
|
||||||
:code:`npm install pm2 -g`
|
|
||||||
|
|
||||||
After PM2 is installed, run the following command to enable your Red instance to be managed by PM2. Replace the brackets with the required information.
|
|
||||||
You can add additional Red based arguments after the instance, such as :code:`--dev`.
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
pm2 start redbot --name "<Insert a name here>" --interpreter "<Location to your Python Interpreter>" --interpreter-args "-O" -- <Red Instance> --no-prompt
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
Arguments to replace.
|
|
||||||
|
|
||||||
<Insert a name here>
|
|
||||||
A name to identify the bot within pm2, this is not your Red instance.
|
|
||||||
|
|
||||||
<Location to your Python Interpreter>
|
|
||||||
The location of your Python interpreter, to find out where that is use the following command inside activated venv:
|
|
||||||
which python
|
|
||||||
|
|
||||||
<Red Instance>
|
|
||||||
The name of your Red instance.
|
|
||||||
|
|
||||||
------------------------------
|
|
||||||
Ensuring that PM2 stays online
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
To make sure that PM2 stays online and persistence between machine restarts, run the following commands:
|
|
||||||
|
|
||||||
:code:`pm2 save` & :code:`pm2 startup`
|
|
||||||
@@ -4,33 +4,47 @@
|
|||||||
Setting up auto-restart using systemd on Linux
|
Setting up auto-restart using systemd on Linux
|
||||||
==============================================
|
==============================================
|
||||||
|
|
||||||
|
.. note:: This guide is for setting up systemd on a Linux environment. This guide assumes that you already have a working Red instance.
|
||||||
|
|
||||||
-------------------------
|
-------------------------
|
||||||
Creating the service file
|
Creating the service file
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
In order to create the service file, you will first need the location of your :code:`redbot` binary.
|
In order to create the service file, you will first need to know two things, your Linux :code:`username` and your Python :code:`path`
|
||||||
|
|
||||||
.. code-block:: bash
|
First, your Linux :code:`username` can be fetched with the following command:
|
||||||
|
|
||||||
# If redbot is installed in a virtualenv
|
.. prompt:: bash
|
||||||
source redenv/bin/activate
|
|
||||||
which python
|
|
||||||
|
|
||||||
# If you are using pyenv
|
whoami
|
||||||
pyenv shell <name>
|
|
||||||
pyenv which python
|
Next, your python :code:`path` can be fetched with the following commands:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
:prompts: $,(redenv) $
|
||||||
|
:modifiers: auto
|
||||||
|
|
||||||
|
# If redbot is installed in a venv
|
||||||
|
$ source ~/redenv/bin/activate
|
||||||
|
(redenv) $ which python
|
||||||
|
|
||||||
|
# If redbot is installed in a pyenv virtualenv
|
||||||
|
$ pyenv shell <virtualenv_name>
|
||||||
|
(redenv) $ pyenv which python
|
||||||
|
|
||||||
Then create the new service file:
|
Then create the new service file:
|
||||||
|
|
||||||
:code:`sudo -e /etc/systemd/system/red@.service`
|
:code:`sudo nano /etc/systemd/system/red@.service`
|
||||||
|
|
||||||
Paste the following and replace all instances of :code:`username` with the username, and :code:`path` with the location you obtained above:
|
Paste the following in the file, and replace all instances of :code:`username` with the Linux username you retrieved above, and :code:`path` with the python path you retrieved above.
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=%I redbot
|
Description=%I redbot
|
||||||
After=multi-user.target
|
After=multi-user.target
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=path -O -m redbot %I --no-prompt
|
ExecStart=path -O -m redbot %I --no-prompt
|
||||||
@@ -55,20 +69,34 @@ Starting and enabling the service
|
|||||||
|
|
||||||
To start the bot, run the service and add the instance name after the **@**:
|
To start the bot, run the service and add the instance name after the **@**:
|
||||||
|
|
||||||
:code:`sudo systemctl start red@instancename`
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo systemctl start red@instancename
|
||||||
|
|
||||||
To set the bot to start on boot, you must enable the service, again adding the instance name after the **@**:
|
To set the bot to start on boot, you must enable the service, again adding the instance name after the **@**:
|
||||||
|
|
||||||
:code:`sudo systemctl enable red@instancename`
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo systemctl enable red@instancename
|
||||||
|
|
||||||
If you need to shutdown the bot, you can use the ``[p]shutdown`` command or
|
If you need to shutdown the bot, you can use the ``[p]shutdown`` command or
|
||||||
type the following command in the terminal, still by adding the instance name after the **@**:
|
type the following command in the terminal, still by adding the instance name after the **@**:
|
||||||
|
|
||||||
:code:`sudo systemctl stop red@instancename`
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo systemctl stop red@instancename
|
||||||
|
|
||||||
.. warning:: If the service doesn't stop in the next 10 seconds, the process is killed.
|
.. warning:: If the service doesn't stop in the next 10 seconds, the process is killed.
|
||||||
Check your logs to know the cause of the error that prevents the shutdown.
|
Check your logs to know the cause of the error that prevents the shutdown.
|
||||||
|
|
||||||
To view Red’s log, you can acccess through journalctl:
|
To set the bot to not start on boot anymore, you must disable the service by running the following command, adding the instance name after the **@**:
|
||||||
|
|
||||||
:code:`sudo journalctl -eu red@instancename`
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo systemctl disable red@instancename
|
||||||
|
|
||||||
|
You can access Red's log through journalctl:
|
||||||
|
|
||||||
|
.. prompt:: bash
|
||||||
|
|
||||||
|
sudo journalctl -eu red@instancename
|
||||||
|
|||||||
79
docs/bot_application_guide.rst
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
===========================================
|
||||||
|
Creating a bot account
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
To use Red you will require a bot account and to enable privileged intents. Both these steps will be covered below.
|
||||||
|
|
||||||
|
.. _creating-a-bot-account:
|
||||||
|
|
||||||
|
-------------------------------
|
||||||
|
Creating the bot application
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
In order to use Red, we must first create a Discord Bot account.
|
||||||
|
|
||||||
|
Creating a Bot account is a pretty straightforward process.
|
||||||
|
|
||||||
|
1. Make sure you're logged on to the `Discord website <https://discord.com>`_.
|
||||||
|
2. Navigate to the `application page <https://discord.com/developers/applications>`_
|
||||||
|
3. Click on the "New Application" button.
|
||||||
|
|
||||||
|
.. image:: /.resources/bot-guide/discord_create_app_button.png
|
||||||
|
:alt: The new application button.
|
||||||
|
|
||||||
|
4. Give the application a name and click "Create".
|
||||||
|
|
||||||
|
.. image:: /.resources/bot-guide/discord_create_app_form.png
|
||||||
|
:alt: The new application form filled in.
|
||||||
|
|
||||||
|
5. Create a Bot User by navigating to the "Bot" tab and clicking "Add Bot".
|
||||||
|
|
||||||
|
- Click "Yes, do it!" to continue.
|
||||||
|
|
||||||
|
.. image:: /.resources/bot-guide/discord_create_bot_user.png
|
||||||
|
:alt: The Add Bot button.
|
||||||
|
6. If you want others to be able to invite your bot tick the **Public Bot**. Keeping it unticked will prevent others from inviting your bot to their servers and only you will be able to add the bot to servers (provided that you have needed permissions in the server you want to add the bot to).
|
||||||
|
|
||||||
|
- Make sure **Require OAuth2 Code Grant** is unchecked.
|
||||||
|
|
||||||
|
.. image:: /.resources/bot-guide/discord_bot_user_options.png
|
||||||
|
:alt: How the Bot User options should look like for most people.
|
||||||
|
|
||||||
|
7. Copy the token using the "Copy" button.
|
||||||
|
|
||||||
|
- **This is not the Client Secret at the General Information page**
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
Do not share your token as it is like your password.
|
||||||
|
If you shared your token you can regenerate it.
|
||||||
|
|
||||||
|
Continue to the next section to enable privileged intents.
|
||||||
|
|
||||||
|
.. _enabling-privileged-intents:
|
||||||
|
|
||||||
|
-------------------------------
|
||||||
|
Enabling Privileged Intents
|
||||||
|
-------------------------------
|
||||||
|
.. warning::
|
||||||
|
Due to Discord API changes, Red Bot requires all intents.
|
||||||
|
\This section is required.
|
||||||
|
|
||||||
|
1. Make sure you're logged on to the `Discord website <https://discord.com>`_.
|
||||||
|
2. Navigate to the `application page <https://discord.com/developers/applications>`_
|
||||||
|
3. Click on the bot you want to enable privileged intents for.
|
||||||
|
4. Navigate to the bot tab on the left side of the screen.
|
||||||
|
|
||||||
|
.. image:: /.resources/bot-guide/discord_bot_tab.png
|
||||||
|
:alt: The bot tab in the application page.
|
||||||
|
|
||||||
|
5. Scroll down to the "Privileged Gateway Intents" section, enable both privileged intents and save your changes.
|
||||||
|
|
||||||
|
.. image:: /.resources/bot-guide/discord_privileged_intents.png
|
||||||
|
:alt: The privileged gateway intents selector.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
Red bots with over 100 servers require `bot verification <https://support.discord.com/hc/en-us/articles/360040720412>`_ which is not covered in this guide.
|
||||||
|
|
||||||
|
*Parts of this guide have been adapted from* `discord.py intro <https://discordpy.readthedocs.io/en/stable/discord.html#discord-intro>`_ *and* `discord.py privileged intents <https://discordpy.readthedocs.io/en/stable/intents.html#privileged-intents>`_.
|
||||||
@@ -1,5 +1,813 @@
|
|||||||
.. 3.3.x Changelogs
|
.. 3.3.x Changelogs
|
||||||
|
|
||||||
|
Redbot 3.3.12 (2020-08-18)
|
||||||
|
==========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`Dav-Git`, :ghuser:`douglas-cpp`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`MeatyChunks`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`thisisjvgrace`, :ghuser:`Vexed01`, :ghuser:`zephyrkul`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Red now logs clearer error if it can't find package to load in any cog path during bot startup (:issue:`4079`)
|
||||||
|
|
||||||
|
Mod
|
||||||
|
***
|
||||||
|
|
||||||
|
- ``[p]mute voice`` and ``[p]unmute voice`` now take action instantly if bot has Move Members permission (:issue:`4064`)
|
||||||
|
- Added typing to ``[p](un)mute guild`` to indicate that mute is being processed (:issue:`4066`, :issue:`4172`)
|
||||||
|
|
||||||
|
Streams
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Improve error messages for invalid channel names/IDs (:issue:`4147`, :issue:`4148`)
|
||||||
|
|
||||||
|
Trivia Lists
|
||||||
|
************
|
||||||
|
|
||||||
|
- Added ``whosthatpokemon2`` trivia containing Pokémons from 2nd generation (:issue:`4102`)
|
||||||
|
- Added ``whosthatpokemon3`` trivia containing Pokémons from 3rd generation (:issue:`4141`)
|
||||||
|
|
||||||
|
|
||||||
|
Miscellaneous
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- Updated features list in ``[p]serverinfo`` with the latest changes from Discord (:issue:`4116`)
|
||||||
|
- Simple version of ``[p]serverinfo`` now shows info about more detailed ``[p]serverinfo 1`` (:issue:`4121`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.11 (2020-08-10)
|
||||||
|
==========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`douglas-cpp`, :ghuser:`Drapersniper`, :ghuser:`Flame`, :ghuser:`jack1142`, :ghuser:`MeatyChunks`, :ghuser:`Vexed01`, :ghuser:`yamikaitou`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Audio
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Audio should now work again on all voice regions (:issue:`4162`, :issue:`4168`)
|
||||||
|
- Removed an edge case where an unfriendly error message was sent in Audio cog (:issue:`3879`)
|
||||||
|
|
||||||
|
Cleanup
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Fixed a bug causing ``[p]cleanup`` commands to clear all messages within last 2 weeks when ``0`` is passed as the amount of messages to delete (:issue:`4114`, :issue:`4115`)
|
||||||
|
|
||||||
|
CustomCommands
|
||||||
|
**************
|
||||||
|
|
||||||
|
- ``[p]cc show`` now sends an error message when command with the provided name couldn't be found (:issue:`4108`)
|
||||||
|
|
||||||
|
Downloader
|
||||||
|
**********
|
||||||
|
|
||||||
|
- ``[p]findcog`` no longer fails for 3rd-party cogs without any author (:issue:`4032`, :issue:`4042`)
|
||||||
|
- Update commands no longer crash when a different repo is added under a repo name that was once used (:issue:`4086`)
|
||||||
|
|
||||||
|
Permissions
|
||||||
|
***********
|
||||||
|
|
||||||
|
- ``[p]permissions removeserverrule`` and ``[p]permissions removeglobalrule`` no longer error when trying to remove a rule that doesn't exist (:issue:`4028`, :issue:`4036`)
|
||||||
|
|
||||||
|
Warnings
|
||||||
|
********
|
||||||
|
|
||||||
|
- ``[p]warn`` now sends an error message (instead of no feedback) when an unregistered reason is used by someone who doesn't have Administrator permission (:issue:`3839`, :issue:`3840`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.10 (2020-07-09)
|
||||||
|
==========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`aikaterna`, :ghuser:`bobloy`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`Injabie3`, :ghuser:`jack1142`, :ghuser:`mikeshardmind`, :ghuser:`MiniJennJenn`, :ghuser:`NeuroAssassin`, :ghuser:`thisisjvgrace`, :ghuser:`Vexed01`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Audio
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Added information about internally managed jar to ``[p]audioset info`` (:issue:`3915`)
|
||||||
|
- Updated to Lavaplayer 1.3.50
|
||||||
|
- Twitch playback and YouTube searching should be functioning again.
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Fixed delayed help when ``[p]set deletedelay`` is enabled (:issue:`3884`, :issue:`3883`)
|
||||||
|
- Bumped the Discord.py requirement from 1.3.3 to 1.3.4 (:issue:`4053`)
|
||||||
|
- Added settings view commands for nearly all cogs. (:issue:`4041`)
|
||||||
|
- Added more strings to be fully translatable by i18n. (:issue:`4044`)
|
||||||
|
|
||||||
|
Downloader
|
||||||
|
**********
|
||||||
|
|
||||||
|
- Added ``[p]cog listpinned`` subcommand to see currently pinned cogs (:issue:`3974`)
|
||||||
|
- Fixed unnecessary typing when running downloader commands (:issue:`3964`, :issue:`3948`)
|
||||||
|
- Added embed version of ``[p]findcog`` (:issue:`3965`, :issue:`3944`)
|
||||||
|
- Fixed ``[p]findcog`` not differentiating between core cogs and local cogs(:issue:`3969`, :issue:`3966`)
|
||||||
|
|
||||||
|
Filter
|
||||||
|
******
|
||||||
|
|
||||||
|
- Added ``[p]filter list`` to show filtered words, and removed DMs when no subcommand was passed (:issue:`3973`)
|
||||||
|
|
||||||
|
Image
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Updated instructions for obtaining and setting the GIPHY API key (:issue:`3994`)
|
||||||
|
|
||||||
|
Mod
|
||||||
|
***
|
||||||
|
|
||||||
|
- Added option to delete messages within the passed amount of days with ``[p]tempban`` (:issue:`3958`)
|
||||||
|
- Added the ability to permanently ban a temporary banned user with ``[p]hackban`` (:issue:`4025`)
|
||||||
|
- Fixed the passed reason not being used when using ``[p]tempban`` (:issue:`3958`)
|
||||||
|
- Fixed invite being sent with ``[p]tempban`` even when no invite was set (:issue:`3991`)
|
||||||
|
- Prevented an issue whereby the author may lock him self out of using the bot via whitelists (:issue:`3903`)
|
||||||
|
- Reduced the number of API calls made to the storage APIs (:issue:`3910`)
|
||||||
|
|
||||||
|
Permissions
|
||||||
|
***********
|
||||||
|
|
||||||
|
- Uploaded YAML files now accept integer commands without quotes (:issue:`3987`, :issue:`3185`)
|
||||||
|
- Uploaded YAML files now accept command rules with empty dictionaries (:issue:`3987`, :issue:`3961`)
|
||||||
|
|
||||||
|
Streams
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Fixed streams cog sending multiple owner notifications about twitch secret not set (:issue:`3901`, :issue:`3587`)
|
||||||
|
- Fixed old bearer tokens not being invalidated when the API key is updated (:issue:`3990`, :issue:`3917`)
|
||||||
|
|
||||||
|
Trivia Lists
|
||||||
|
************
|
||||||
|
|
||||||
|
- Fixed URLs in ``whosthatpokemon`` (:issue:`3975`, :issue:`3023`)
|
||||||
|
- Fixed trivia files ``leagueults`` and ``sports`` (:issue:`4026`)
|
||||||
|
- Updated ``greekmyth`` to include more answer variations (:issue:`3970`)
|
||||||
|
- Added new ``lotr`` trivia list (:issue:`3980`)
|
||||||
|
- Added new ``r6seige`` trivia list (:issue:`4026`)
|
||||||
|
|
||||||
|
|
||||||
|
Developer changelog
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
- Added the utility functions ``map``, ``find``, and ``next`` to ``AsyncIter`` (:issue:`3921`, :issue:`3887`)
|
||||||
|
- Updated deprecation times for ``APIToken``, and loops being passed to various functions to the first minor release (represented by ``X`` in ``3.X.0``) after 2020-08-05 (:issue:`3608`)
|
||||||
|
- Updated deprecation warnings for shared libs to reflect that they have been moved for an undefined time (:issue:`3608`)
|
||||||
|
- Added new ``discord.com`` domain to ``INVITE_URL_RE`` common filter (:issue:`4012`)
|
||||||
|
- Fixed incorrect role mention regex in ``MessagePredicate`` (:issue:`4030`)
|
||||||
|
- Vendor the ``discord.ext.menus`` module (:issue:`4039`)
|
||||||
|
|
||||||
|
|
||||||
|
Miscellaneous
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- Improved error responses for when Modlog and Autoban on mention spam were already disabled (:issue:`3951`, :issue:`3949`)
|
||||||
|
- Clarified that ``[p]embedset user`` only affects commands executed in DMs (:issue:`3972`, :issue:`3953`)
|
||||||
|
- Added link to Getting Started guide if the bot was not in any guilds (:issue:`3906`)
|
||||||
|
- Fixed exceptions being ignored or not sent to log files in special cases (:issue:`3895`)
|
||||||
|
- Added the option of using dots in the instance name when creating your instances (:issue:`3920`)
|
||||||
|
- Added a confirmation when using hyphens in instance names to discourage the use of them (:issue:`3920`)
|
||||||
|
- Fixed migration owner notifications being sent even when migration was not necessary (:issue:`3911`. :issue:`3909`)
|
||||||
|
- Fixed commands being translated where they should not be (:issue:`3938`, :issue:`3919`)
|
||||||
|
- Fixed grammar errors and added full stopts in ``core_commands.py`` (:issue:`4023`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.9 (2020-06-12)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`aikaterna`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`mikeshardmind`, :ghuser:`NeuroAssassin`, :ghuser:`Predeactor`, :ghuser:`Vexed01`
|
||||||
|
|
|
||||||
|
| **Read before updating**:
|
||||||
|
| 1. Bot owners can no longer restrict access to some commands in Permissions cog using global permissions rules. Look at `Permissions changelog <important-339-2>` for full details.
|
||||||
|
| 2. There's been a change in behavior of warning messages. Look at `Warnings changelog <important-339-1>` for full details.
|
||||||
|
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Security
|
||||||
|
********
|
||||||
|
|
||||||
|
**NOTE**: If you can't update immediately, we recommend disabling the affected command until you can.
|
||||||
|
|
||||||
|
- **Mod** - ``[p]tempban`` now properly respects Discord's hierarchy rules (:issue:`3957`)
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- ``[p]info`` command can now be used when bot doesn't have Embed Links permission (:issue:`3907`, :issue:`3102`)
|
||||||
|
- Fixed ungraceful error that happened in ``[p]set custominfo`` when provided text was too long (:issue:`3923`)
|
||||||
|
- Red's start up message now shows storage type (:issue:`3935`)
|
||||||
|
|
||||||
|
Audio
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Audio now properly ignores streams when max length is enabled (:issue:`3878`, :issue:`3877`)
|
||||||
|
- Commands that should work in DMs no longer error (:issue:`3880`)
|
||||||
|
|
||||||
|
Filter
|
||||||
|
******
|
||||||
|
|
||||||
|
- Fixed behavior of detecting quotes in commands for adding/removing filtered words (:issue:`3925`)
|
||||||
|
|
||||||
|
.. _important-339-2:
|
||||||
|
|
||||||
|
Permissions
|
||||||
|
***********
|
||||||
|
|
||||||
|
- **Both global and server rules** can no longer prevent guild owners from accessing commands for changing server rules. Bot owners can still use ``[p]command disable`` if they wish to completely disable any command in Permissions cog (:issue:`3955`, :issue:`3107`)
|
||||||
|
|
||||||
|
Full list of affected commands:
|
||||||
|
|
||||||
|
- ``[p]permissions acl getserver``
|
||||||
|
- ``[p]permissions acl setserver``
|
||||||
|
- ``[p]permissions acl updateserver``
|
||||||
|
- ``[p]permissions addserverrule``
|
||||||
|
- ``[p]permissions removeserverrule``
|
||||||
|
- ``[p]permissions setdefaultserverrule``
|
||||||
|
- ``[p]permissions clearserverrules``
|
||||||
|
- ``[p]permissions canrun``
|
||||||
|
- ``[p]permissions explain``
|
||||||
|
|
||||||
|
.. _important-339-1:
|
||||||
|
|
||||||
|
Warnings
|
||||||
|
********
|
||||||
|
|
||||||
|
- Warnings sent to users don't show the moderator who warned the user by default now. Newly added ``[p]warningset showmoderators`` command can be used to switch this behaviour (:issue:`3781`)
|
||||||
|
- Warn channel functionality has been fixed (:issue:`3781`)
|
||||||
|
|
||||||
|
|
||||||
|
Developer changelog
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Added `bot.set_prefixes() <RedBase.set_prefixes()>` method that allows developers to set global/server prefixes (:issue:`3890`)
|
||||||
|
|
||||||
|
|
||||||
|
Documentation changes
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
- Added Oracle Cloud to free hosting section in :ref:`host-list` (:issue:`3916`)
|
||||||
|
|
||||||
|
Miscellaneous
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- Added missing help message for Downloader, Reports and Streams cogs (:issue:`3892`)
|
||||||
|
- **Core Bot** - cooldown in ``[p]contact`` no longer applies when it's used without any arguments (:issue:`3942`)
|
||||||
|
- **Core Bot** - improved instructions on obtaining user ID in help of ``[p]dm`` command (:issue:`3946`)
|
||||||
|
- **Alias** - ``[p]alias global`` group, ``[p]alias help``, and ``[p]alias show`` commands can now be used in DMs (:issue:`3941`, :issue:`3940`)
|
||||||
|
- **Audio** - Typo fix (:issue:`3889`, :issue:`3900`)
|
||||||
|
- **Audio** - Fixed ``[p]audioset autoplay`` being available in DMs (:issue:`3899`)
|
||||||
|
- **Bank** - ``[p]bankset`` now displays bank's scope (:issue:`3954`)
|
||||||
|
- **Mod** - Preemptive fix for d.py 1.4 (:issue:`3891`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.8 (2020-05-29)
|
||||||
|
==================================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`aikaterna`, :ghuser:`Bakersbakebread`, :ghuser:`DariusStClair`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`mikeshardmind`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`qaisjp`, :ghuser:`Tobotimus`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Important fixes to how PostgreSQL data backend saves data in bulks (:issue:`3829`)
|
||||||
|
- Fixed ``[p]localwhitelist`` and ``[p]localblacklist`` commands (:issue:`3857`)
|
||||||
|
- Red now includes information on how to update when sending information about being out of date (:issue:`3744`)
|
||||||
|
- Using backslashes in bot's username/nickname no longer causes issues (:issue:`3826`, :issue:`3825`)
|
||||||
|
|
||||||
|
Admin
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Fixed server lock (:issue:`3815`, :issue:`3814`)
|
||||||
|
|
||||||
|
Alias
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Added pagination to ``[p]alias list`` and ``[p]alias global list`` to avoid errors for users with a lot of aliases (:issue:`3844`, :issue:`3834`)
|
||||||
|
- ``[p]alias help`` should now work more reliably (:issue:`3864`)
|
||||||
|
|
||||||
|
Audio
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Twitch playback is functional once again (:issue:`3873`)
|
||||||
|
- Recent errors with YouTube playback should be resolved (:issue:`3873`)
|
||||||
|
- Added new option (settable with ``[p]audioset lyrics``) that makes Audio cog prefer (prioritize) tracks with lyrics (:issue:`3519`)
|
||||||
|
- Added global daily (historical) queues (:issue:`3518`)
|
||||||
|
- Added ``[p]audioset countrycode`` that allows to set the country code for spotify searches (:issue:`3528`)
|
||||||
|
- Fixed ``[p]local search`` (:issue:`3528`, :issue:`3501`)
|
||||||
|
- Local folders with special characters should work properly now (:issue:`3528`, :issue:`3467`)
|
||||||
|
- Audio no longer fails to take the last spot in the voice channel with user limit (:issue:`3528`)
|
||||||
|
- ``[p]local play`` no longer enqueues tracks from nested folders (:issue:`3528`)
|
||||||
|
- Fixed ``[p]playlist dedupe`` not removing tracks (:issue:`3518`)
|
||||||
|
- ``[p]disconnect`` now allows to disconnect if both DJ mode and voteskip aren't enabled (:issue:`3502`, :issue:`3485`)
|
||||||
|
- Many UX improvements and fixes, including, among other things:
|
||||||
|
|
||||||
|
- Creating playlists without explicitly passing ``-scope`` no longer causes errors (:issue:`3500`)
|
||||||
|
- ``[p]playlist list`` now shows all accessible playlists if ``--scope`` flag isn't used (:issue:`3518`)
|
||||||
|
- ``[p]remove`` now also accepts a track URL in addition to queue index (:issue:`3201`)
|
||||||
|
- ``[p]playlist upload`` now accepts a playlist file uploaded in the message with a command (:issue:`3251`)
|
||||||
|
- Commands now send friendly error messages for common errors like lost Lavalink connection or bot not connected to voice channel (:issue:`3503`, :issue:`3528`, :issue:`3353`, :issue:`3712`)
|
||||||
|
|
||||||
|
CustomCommands
|
||||||
|
**************
|
||||||
|
|
||||||
|
- ``[p]customcom create`` no longer allows spaces in custom command names (:issue:`3816`)
|
||||||
|
|
||||||
|
Mod
|
||||||
|
***
|
||||||
|
|
||||||
|
- ``[p]userinfo`` now shows default avatar when no avatar is set (:issue:`3819`)
|
||||||
|
|
||||||
|
Modlog
|
||||||
|
******
|
||||||
|
|
||||||
|
- Fixed (again) ``AttributeError`` for cases whose moderator doesn't share the server with the bot (:issue:`3805`, :issue:`3784`, :issue:`3778`)
|
||||||
|
|
||||||
|
Permissions
|
||||||
|
***********
|
||||||
|
|
||||||
|
- Commands for settings ACL using yaml files now properly works on PostgreSQL data backend (:issue:`3829`, :issue:`3796`)
|
||||||
|
|
||||||
|
Warnings
|
||||||
|
********
|
||||||
|
|
||||||
|
- Warnings cog no longer allows to warn bot users (:issue:`3855`, :issue:`3854`)
|
||||||
|
|
||||||
|
|
||||||
|
Developer changelog
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
| **Important:**
|
||||||
|
| If you're using RPC, please see the full annoucement about current state of RPC in main Red server
|
||||||
|
`by clicking here <https://discord.com/channels/133049272517001216/411381123101491200/714560168465137694>`_.
|
||||||
|
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Red now inherits from `discord.ext.commands.AutoShardedBot` for better compatibility with code expecting d.py bot (:issue:`3822`)
|
||||||
|
- Libraries using ``pkg_resources`` (like ``humanize`` or ``google-api-python-client``) that were installed through Downloader should now work properly (:issue:`3843`)
|
||||||
|
- All bot owner IDs can now be found under ``bot.owner_ids`` attribute (:issue:`3793`)
|
||||||
|
|
||||||
|
- Note: If you want to use this on bot startup (e.g. in cog's initialisation), you need to await ``bot.wait_until_red_ready()`` first
|
||||||
|
|
||||||
|
|
||||||
|
Documentation changes
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
- Added information about provisional status of RPC (:issue:`3862`)
|
||||||
|
- Revised install instructions (:issue:`3847`)
|
||||||
|
- Improved navigation in `document about updating Red <update_red>` (:issue:`3856`, :issue:`3849`)
|
||||||
|
|
||||||
|
|
||||||
|
Miscellaneous
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- Few clarifications and typo fixes in few command help docstrings (:issue:`3817`, :issue:`3823`, :issue:`3837`, :issue:`3851`, :issue:`3861`)
|
||||||
|
- **Downloader** - Downloader no longer removes the repo when it fails to load it (:issue:`3867`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.7 (2020-04-28)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
This is a hotfix release fixing issue with generating messages for new cases in Modlog.
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.6 (2020-04-27)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`aikaterna`, :ghuser:`Drapersniper`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`MiniJennJenn`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`TrustyJAID`, :ghuser:`yamikaitou`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Converting from and to Postgres driver with ``redbot-setup convert`` have been fixed (:issue:`3714`, :issue:`3115`)
|
||||||
|
- Fixed big delays in commands that happened when the bot was owner-less (or if it only used co-owners feature) and command caller wasn't the owner (:issue:`3782`)
|
||||||
|
- Various optimizations
|
||||||
|
|
||||||
|
- Reduced calls to data backend when loading bot's commands (:issue:`3764`)
|
||||||
|
- Reduced calls to data backend when showing help for cogs/commands (:issue:`3766`)
|
||||||
|
- Improved performance for bots with big amount of guilds (:issue:`3767`)
|
||||||
|
- Mod cog no longer fetches guild's bans every 60 seconds when handling unbanning for tempbans (:issue:`3783`)
|
||||||
|
- Reduced the bot load for messages starting with a prefix when fuzzy search is disabled (:issue:`3718`)
|
||||||
|
- Aliases in Alias cog are now cached for better performance (:issue:`3788`)
|
||||||
|
|
||||||
|
Core Commands
|
||||||
|
*************
|
||||||
|
|
||||||
|
- ``[p]set avatar`` now supports setting avatar using attachment (:issue:`3747`)
|
||||||
|
- Added ``[p]set avatar remove`` subcommand for removing bot's avatar (:issue:`3757`)
|
||||||
|
- Fixed list of ignored channels that is shown in ``[p]ignore``/``[p]unignore`` (:issue:`3746`)
|
||||||
|
|
||||||
|
Audio
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Age-restricted tracks, live streams, and mix playlists from YouTube should work in Audio again (:issue:`3791`)
|
||||||
|
- Soundcloud's sets and playlists with more than 50 tracks should work in Audio again (:issue:`3791`)
|
||||||
|
|
||||||
|
CustomCommands
|
||||||
|
**************
|
||||||
|
|
||||||
|
- Added ``[p]cc raw`` command that gives you the raw response of a custom command for ease of copy pasting (:issue:`3795`)
|
||||||
|
|
||||||
|
Modlog
|
||||||
|
******
|
||||||
|
|
||||||
|
- Fixed ``AttributeError`` for cases whose moderator doesn't share the server with the bot (:issue:`3784`, :issue:`3778`)
|
||||||
|
|
||||||
|
Streams
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Fixed incorrect stream URLs for Twitch channels that have localised display name (:issue:`3773`, :issue:`3772`)
|
||||||
|
|
||||||
|
Trivia
|
||||||
|
******
|
||||||
|
|
||||||
|
- Fixed the error in ``[p]trivia stop`` that happened when there was no ongoing trivia session in the channel (:issue:`3774`)
|
||||||
|
|
||||||
|
Trivia Lists
|
||||||
|
************
|
||||||
|
|
||||||
|
- Updated ``leagueoflegends`` list with new changes to League of Legends (`b8ac70e <https://github.com/Cog-Creators/Red-DiscordBot/commit/b8ac70e59aa1328f246784f14f992d6ffe00d778>`_)
|
||||||
|
|
||||||
|
|
||||||
|
Developer changelog
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Utility Functions
|
||||||
|
*****************
|
||||||
|
|
||||||
|
- Added `redbot.core.utils.AsyncIter` utility class which allows you to wrap regular iterable into async iterator yielding items and sleeping for ``delay`` seconds every ``steps`` items (:issue:`3767`, :issue:`3776`)
|
||||||
|
- `bold()`, `italics()`, `strikethrough()`, and `underline()` now accept ``escape_formatting`` argument that can be used to disable escaping of markdown formatting in passed text (:issue:`3742`)
|
||||||
|
|
||||||
|
|
||||||
|
Documentation changes
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
- Added `document about updating Red <update_red>` (:issue:`3790`)
|
||||||
|
- ``pyenv`` instructions will now update ``pyenv`` if it's already installed (:issue:`3740`)
|
||||||
|
- Updated Python version in ``pyenv`` instructions (:issue:`3740`)
|
||||||
|
- Updated install docs to include Ubuntu 20.04 (:issue:`3792`)
|
||||||
|
|
||||||
|
|
||||||
|
Miscellaneous
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- **Config** - JSON driver will now properly have only one lock per cog name (:issue:`3780`)
|
||||||
|
- **Core Commands** - ``[p]debuginfo`` now shows used storage type (:issue:`3794`)
|
||||||
|
- **Trivia** - Corrected spelling of Compact Disc in ``games`` list (:issue:`3759`, :issue:`3758`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.5 (2020-04-09)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`jack1142`, :ghuser:`Kowlin`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- "Outdated" field no longer shows in ``[p]info`` when Red is up-to-date (:issue:`3730`)
|
||||||
|
|
||||||
|
Alias
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Fixed regression in ``[p]alias add`` that caused it to reject commands containing arguments (:issue:`3734`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.4 (2020-04-05)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`jack1142`, :ghuser:`kennnyshiwa`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Fixed checks related to bank's global state that were used in commands in Bank, Economy and Trivia cogs (:issue:`3707`)
|
||||||
|
|
||||||
|
Alias
|
||||||
|
*****
|
||||||
|
|
||||||
|
- ``[p]alias add`` now sends an error when command user tries to alias doesn't exist (:issue:`3710`, :issue:`3545`)
|
||||||
|
|
||||||
|
Developer changelog
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Bump dependencies, including update to discord.py 1.3.3 (:issue:`3723`)
|
||||||
|
|
||||||
|
Utility Functions
|
||||||
|
*****************
|
||||||
|
|
||||||
|
- `redbot.core.utils.common_filters.filter_invites` now filters ``discord.io/discord.li`` invites links (:issue:`3717`)
|
||||||
|
- Fixed false-positives in `redbot.core.utils.common_filters.filter_invites` (:issue:`3717`)
|
||||||
|
|
||||||
|
Documentation changes
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
- Versions of pre-requirements are now included in Windows install guide (:issue:`3708`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.3 (2020-03-28)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`AnonGuy`, :ghuser:`Dav-Git`, :ghuser:`FancyJesse`, :ghuser:`Ianardo-DiCaprio`, :ghuser:`jack1142`, :ghuser:`kennnyshiwa`, :ghuser:`Kowlin`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`Stonedestroyer`, :ghuser:`TrustyJAID`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Delete delay for command messages has been moved from Mod cog to Core (:issue:`3638`, :issue:`3636`)
|
||||||
|
- Fixed various bugs with blacklist and whitelist (:issue:`3643`, :issue:`3642`)
|
||||||
|
- Added ``[p]set regionalformat`` command that allows users to set regional formatting that is different from bot's locale (:issue:`3677`, :issue:`3588`)
|
||||||
|
- ``[p]set locale`` allows any valid locale now, not just locales for which Red has translations (:issue:`3676`, :issue:`3596`)
|
||||||
|
- Permissions for commands in Bank, Economy and Trivia cogs can now be overridden by Permissions cog (:issue:`3672`, :issue:`3233`)
|
||||||
|
- Outages of ``pypi.org`` no longer prevent the bot from starting (:issue:`3663`)
|
||||||
|
- Fixed formatting of help strings in fuzzy search results (:issue:`3673`, :issue:`3507`)
|
||||||
|
- Fixed few deprecation warnings related to menus and uvloop (:issue:`3644`, :issue:`3700`)
|
||||||
|
|
||||||
|
Core Commands
|
||||||
|
*************
|
||||||
|
|
||||||
|
- ``[p]set game`` no longer errors when trying to clear the status (:issue:`3630`, :issue:`3628`)
|
||||||
|
- All owner notifcations in Core now use proper prefixes in messages (:issue:`3632`)
|
||||||
|
- Added ``[p]set playing`` and ``[p]set streaming`` aliases for respectively ``[p]set game`` and ``[p]set stream`` (:issue:`3646`, :issue:`3590`)
|
||||||
|
|
||||||
|
ModLog
|
||||||
|
******
|
||||||
|
|
||||||
|
- Modlog's cases now keep last known username to prevent losing that information from case's message on edit (:issue:`3674`, :issue:`3443`)
|
||||||
|
|
||||||
|
CustomCom
|
||||||
|
*********
|
||||||
|
|
||||||
|
- Added ``[p]cc search`` command that allows users to search through created custom commands (:issue:`2573`)
|
||||||
|
|
||||||
|
Cleanup
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Added ``[p]cleanup spam`` command that deletes duplicate messages from the last X messages and keeps only one copy (:issue:`3688`)
|
||||||
|
- Removed regex support in ``[p]cleanup self`` (:issue:`3704`)
|
||||||
|
|
||||||
|
Downloader
|
||||||
|
**********
|
||||||
|
|
||||||
|
- ``[p]cog checkforupdates`` now includes information about cogs that can't be installed due to Red/Python version requirements (:issue:`3678`, :issue:`3448`)
|
||||||
|
|
||||||
|
General
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Added more detailed mode to ``[p]serverinfo`` command that can be accessed with ``[p]serverinfo 1`` (:issue:`2382`, :issue:`3659`)
|
||||||
|
|
||||||
|
Image
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Users can now specify how many images should be returned in ``[p]imgur search`` and ``[p]imgur subreddit`` using ``[count]`` argument (:issue:`3667`, :issue:`3044`)
|
||||||
|
- ``[p]imgur search`` and ``[p]imgur subreddit`` now return one image by default (:issue:`3667`, :issue:`3044`)
|
||||||
|
|
||||||
|
Mod
|
||||||
|
***
|
||||||
|
|
||||||
|
- ``[p]userinfo`` now shows user's activities (:issue:`3669`)
|
||||||
|
- ``[p]userinfo`` now shows status icon near the username (:issue:`3669`)
|
||||||
|
- Muting no longer fails if user leaves while applying overwrite (:issue:`3627`)
|
||||||
|
- Fixed error that happened when Mod cog was loaded for the first time during bot startup (:issue:`3632`, :issue:`3626`)
|
||||||
|
|
||||||
|
Permissions
|
||||||
|
***********
|
||||||
|
|
||||||
|
- Commands for setting default rules now error when user tries to deny access to command designated as being always available (:issue:`3504`, :issue:`3465`)
|
||||||
|
|
||||||
|
Streams
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Fixed an error that happened when no game was set on Twitch stream (:issue:`3631`)
|
||||||
|
- Preview picture for YouTube stream alerts is now bigger (:issue:`3689`, :issue:`3685`)
|
||||||
|
- YouTube channels with a livestream that doesn't have any current viewer are now properly showing as streaming (:issue:`3690`)
|
||||||
|
- Failures in Twitch API authentication are now logged (:issue:`3657`)
|
||||||
|
|
||||||
|
Trivia
|
||||||
|
******
|
||||||
|
|
||||||
|
- Added ``[p]triviaset custom upload/delete/list`` commands for managing custom trivia lists from Discord (:issue:`3420`, :issue:`3307`)
|
||||||
|
- Trivia sessions no longer error on payout when winner's balance would exceed max balance (:issue:`3666`, :issue:`3584`)
|
||||||
|
|
||||||
|
Warnings
|
||||||
|
********
|
||||||
|
|
||||||
|
- Sending warnings to warned user can now be disabled with ``[p]warnset toggledm`` command (:issue:`2929`, :issue:`2800`)
|
||||||
|
- Added ``[p]warnset warnchannel`` command that allows to set a channel where warnings should be sent to instead of the channel command was called in (:issue:`2929`, :issue:`2800`)
|
||||||
|
- Added ``[p]warnset togglechannel`` command that allows to disable sending warn message in guild channel (:issue:`2929`, :issue:`2800`)
|
||||||
|
- ``[p]warn`` now tells the moderator when bot wasn't able to send the warning to the user (:issue:`3653`, :issue:`3633`)
|
||||||
|
|
||||||
|
|
||||||
|
Developer changelog
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Deprecation warnings issued by Red now use correct stack level so that the cog developers can find the cause of them (:issue:`3644`)
|
||||||
|
|
||||||
|
Dev Cog
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Add ``__name__`` to environment's globals (:issue:`3649`, :issue:`3648`)
|
||||||
|
|
||||||
|
|
||||||
|
Documentation changes
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
- Fixed install instructions for Mac in `install_linux_mac` (:issue:`3675`, :issue:`3436`)
|
||||||
|
- Windows install instructions now use ``choco upgrade`` commands instead of ``choco install`` to ensure up-to-date packages (:issue:`3684`)
|
||||||
|
|
||||||
|
|
||||||
|
Miscellaneous
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- **Core Bot** - Command errors (i.e. command on cooldown, dm-only and guild-only commands, etc) can now be translated (:issue:`3665`, :issue:`2988`)
|
||||||
|
- **Core Bot** - ``redbot-setup`` now prints link to Getting started guide at the end of the setup (:issue:`3027`)
|
||||||
|
- **Core Bot** - Whitelist and blacklist commands now properly require passing at least one user (or role in case of local whitelist/blacklist) (:issue:`3652`, :issue:`3645`)
|
||||||
|
- **Downloader** - Fix misleading error appearing when repo name is already taken in ``[p]repo add`` (:issue:`3695`)
|
||||||
|
- **Downloader** - Improved error messages for unexpected errors in ``[p]repo add`` (:issue:`3656`)
|
||||||
|
- **Downloader** - Prevent encoding errors from crashing ``[p]cog update`` (:issue:`3639`, :issue:`3637`)
|
||||||
|
- **Trivia** - Non-finite numbers can no longer be passed to ``[p]triviaset timelimit``, ``[p]triviaset stopafter`` and ``[p]triviaset payout`` (:issue:`3668`, :issue:`3583`)
|
||||||
|
- **Utility Functions** - `redbot.core.utils.menus.menu()` now checks permissions *before* trying to clear reactions (:issue:`3589`, :issue:`3145`)
|
||||||
|
|
||||||
|
|
||||||
|
Redbot 3.3.2 (2020-02-28)
|
||||||
|
=========================
|
||||||
|
|
||||||
|
| Thanks to all these amazing people that contributed to this release:
|
||||||
|
| :ghuser:`aikaterna`, :ghuser:`chasehult`, :ghuser:`Dav-Git`, :ghuser:`DiscordLiz`, :ghuser:`Drapersniper`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`Hedlund01`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`mikeshardmind`, :ghuser:`PredaaA`, :ghuser:`Stonedestroyer`, :ghuser:`trundleroo`, :ghuser:`TrustyJAID`, :ghuser:`zephyrkul`
|
||||||
|
|
||||||
|
End-user changelog
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Ignored guilds/channels and whitelist/blacklist are now cached for performance (:issue:`3472`)
|
||||||
|
- Ignored guilds/channels have been moved from Mod cog to Core (:issue:`3472`)
|
||||||
|
- ``[p]ignore channel`` command can now also ignore channel categories (:issue:`3472`)
|
||||||
|
|
||||||
|
Core Commands
|
||||||
|
*************
|
||||||
|
|
||||||
|
- Core cogs will now send bot mention prefix properly in places where discord doesn't render mentions (:issue:`3579`, :issue:`3591`, :issue:`3499`)
|
||||||
|
- Fix a bug with ``[p]blacklist add`` that made it impossible to blacklist users that bot doesn't share a server with (:issue:`3472`, :issue:`3220`)
|
||||||
|
- Improve user experience of ``[p]set game/listening/watching/`` commands (:issue:`3562`)
|
||||||
|
- Add ``[p]licenceinfo`` alias for ``[p]licenseinfo`` command to conform with non-American English (:issue:`3460`)
|
||||||
|
|
||||||
|
Admin
|
||||||
|
*****
|
||||||
|
|
||||||
|
- ``[p]announce`` will now only send error message if an actual errors occurs (:issue:`3514`, :issue:`3513`)
|
||||||
|
|
||||||
|
Alias
|
||||||
|
*****
|
||||||
|
|
||||||
|
- ``[p]alias help`` will now properly work in non-English locales (:issue:`3546`)
|
||||||
|
|
||||||
|
Audio
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Users should be able to play age-restricted tracks from YouTube again (:issue:`3620`)
|
||||||
|
|
||||||
|
Economy
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Next payday time will now be adjusted for users when payday time is changed (:issue:`3496`, :issue:`3438`)
|
||||||
|
|
||||||
|
Downloader
|
||||||
|
**********
|
||||||
|
|
||||||
|
- Downloader will no longer fail because of invalid ``info.json`` files (:issue:`3533`, :issue:`3456`)
|
||||||
|
- Add better logging of errors when Downloader fails to add a repo (:issue:`3558`)
|
||||||
|
|
||||||
|
Image
|
||||||
|
*****
|
||||||
|
|
||||||
|
- Fix load error for users that updated Red from version lower than 3.1 to version 3.2 or newer (:issue:`3617`)
|
||||||
|
|
||||||
|
Mod
|
||||||
|
***
|
||||||
|
|
||||||
|
- ``[p]hackban`` and ``[p]unban`` commands support user mentions now (:issue:`3524`)
|
||||||
|
- Ignored guilds/channels have been moved from Mod cog to Core (:issue:`3472`)
|
||||||
|
|
||||||
|
Streams
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Fix stream alerts for Twitch (:issue:`3487`)
|
||||||
|
- Significantly reduce the quota usage for YouTube stream alerts (:issue:`3237`)
|
||||||
|
- Add ``[p]streamset timer`` command which can be used to control how often the cog checks for live streams (:issue:`3237`)
|
||||||
|
|
||||||
|
Trivia
|
||||||
|
******
|
||||||
|
|
||||||
|
- Add better handling for errors in trivia session (:issue:`3606`)
|
||||||
|
|
||||||
|
Trivia Lists
|
||||||
|
************
|
||||||
|
|
||||||
|
- Remove empty answers in trivia lists (:issue:`3581`)
|
||||||
|
|
||||||
|
Warnings
|
||||||
|
********
|
||||||
|
|
||||||
|
- Users can now pass a reason to ``[p]unwarn`` command (:issue:`3490`, :issue:`3093`)
|
||||||
|
|
||||||
|
|
||||||
|
Developer changelog
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Core Bot
|
||||||
|
********
|
||||||
|
|
||||||
|
- Updated all our dependencies - we're using discord.py 1.3.2 now (:issue:`3609`)
|
||||||
|
- Add traceback logging to task exception handling (:issue:`3517`)
|
||||||
|
- Developers can now create a command from an async function wrapped in `functools.partial` (:issue:`3542`)
|
||||||
|
- Bot will now show deprecation warnings in logs (:issue:`3527`, :issue:`3615`)
|
||||||
|
- Subcommands of command group with ``invoke_without_command=True`` will again inherit this group's checks (:issue:`3614`)
|
||||||
|
|
||||||
|
Config
|
||||||
|
******
|
||||||
|
|
||||||
|
- Fix Config's singletons (:issue:`3137`, :issue:`3136`)
|
||||||
|
|
||||||
|
Utility Functions
|
||||||
|
*****************
|
||||||
|
|
||||||
|
- Add clearer error when page is of a wrong type in `redbot.core.utils.menus.menu()` (:issue:`3571`)
|
||||||
|
|
||||||
|
Dev Cog
|
||||||
|
*******
|
||||||
|
|
||||||
|
- Allow for top-level `await`, `async for` and `async with` in ``[p]debug`` and ``[p]repl`` commands (:issue:`3508`)
|
||||||
|
|
||||||
|
Downloader
|
||||||
|
**********
|
||||||
|
|
||||||
|
- Downloader will now replace ``[p]`` with clean prefix same as it does in help command (:issue:`3592`)
|
||||||
|
- Add schema validation to ``info.json`` file processing - it should now be easier to notice any issues with those files (:issue:`3533`, :issue:`3442`)
|
||||||
|
|
||||||
|
|
||||||
|
Documentation changes
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
- Add guidelines for Cog Creators in `guide_cog_creation` document (:issue:`3568`)
|
||||||
|
- Restructure virtual environment instructions to improve user experience (:issue:`3495`, :issue:`3411`, :issue:`3412`)
|
||||||
|
- Getting started guide now explain use of quotes for arguments with spaces (:issue:`3555`, :issue:`3111`)
|
||||||
|
- ``latest`` version of docs now displays a warning about possible differences from current stable release (:issue:`3570`)
|
||||||
|
- Make systemd guide clearer on obtaining username and python path (:issue:`3537`, :issue:`3462`)
|
||||||
|
- Indicate instructions for different venv types in systemd guide better (:issue:`3538`)
|
||||||
|
- Service file in `autostart_systemd` now also waits for network connection to be ready (:issue:`3549`)
|
||||||
|
- Hide alias of ``randomize_colour`` in docs (:issue:`3491`)
|
||||||
|
- Add separate headers for each event predicate class for better navigation (:issue:`3595`, :issue:`3164`)
|
||||||
|
- Improve wording of explanation for ``required_cogs`` key in `guide_publish_cogs` (:issue:`3520`)
|
||||||
|
|
||||||
|
|
||||||
|
Miscellaneous
|
||||||
|
-------------
|
||||||
|
|
||||||
|
- Use more reliant way of checking if command is bot owner only in ``[p]warnaction`` (Warnings cog) (:issue:`3516`, :issue:`3515`)
|
||||||
|
- Update PyPI domain in ``[p]info`` and update checker (:issue:`3607`)
|
||||||
|
- Stop using deprecated code in core (:issue:`3610`)
|
||||||
|
|
||||||
|
|
||||||
Redbot 3.3.1 (2020-02-05)
|
Redbot 3.3.1 (2020-02-05)
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
@@ -99,4 +907,4 @@ Mod
|
|||||||
Permissions
|
Permissions
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
- Now has stronger enforcement of prioritizing botwide settings.
|
- Now has stronger enforcement of prioritizing botwide settings.
|
||||||
|
|||||||
1076
docs/changelog_3_4_0.rst
Normal file
@@ -1,4 +1,5 @@
|
|||||||
.. CustomCommands Cog Reference
|
.. CustomCommands Cog Reference
|
||||||
|
.. _cog_customcom:
|
||||||
|
|
||||||
============================
|
============================
|
||||||
CustomCommands Cog Reference
|
CustomCommands Cog Reference
|
||||||
|
|||||||
438
docs/cog_guides/admin.rst
Normal file
@@ -0,0 +1,438 @@
|
|||||||
|
.. _admin:
|
||||||
|
|
||||||
|
=====
|
||||||
|
Admin
|
||||||
|
=====
|
||||||
|
|
||||||
|
This is the cog guide for the admin cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load admin
|
||||||
|
|
||||||
|
.. _admin-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog will provide tools for server admins and bot owners.
|
||||||
|
|
||||||
|
It can add or remove a role to a member, edit one or make some available
|
||||||
|
for members so they can self-assign them as they wish.
|
||||||
|
|
||||||
|
It also provides tools for the bot owner such as server locking (once enabled,
|
||||||
|
the bot will instantly leave new servers it joins) and announcements, which
|
||||||
|
can send something in all the servers of the bot.
|
||||||
|
|
||||||
|
.. _admin-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
Here's a list of all commands available for this cog.
|
||||||
|
|
||||||
|
.. _admin-command-selfrole:
|
||||||
|
|
||||||
|
^^^^^^^^
|
||||||
|
selfrole
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]selfrole <selfrole>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add or remove a role from yourself. It must have been configured as user settable
|
||||||
|
by admins using the :ref:`selfroleset command <admin-command-selfroleset>`.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<selfrole>``: The role you want to attribute or remove from yourself. |role-input|
|
||||||
|
|
||||||
|
.. _admin-command-selfrole-add:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
selfrole add
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]selfrole add <selfrole>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add a role to yourself. It must have been configured as user settable
|
||||||
|
by admins using the :ref:`selfroleset command <admin-command-selfroleset>`.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<selfrole>``: The role you want to attribute to yourself. |role-input|
|
||||||
|
|
||||||
|
.. _admin-command-selfrole-remove:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
selfrole remove
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]selfrole remove <selfrole>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Remove a role from yourself. It must have been configured as user settable
|
||||||
|
by admins using the :ref:`selfroleset command <admin-command-selfroleset>`.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<selfrole>``: The role you want to remove from yourself. |role-input|
|
||||||
|
|
||||||
|
|
||||||
|
.. _admin-command-selfrole-list:
|
||||||
|
|
||||||
|
"""""""""""""
|
||||||
|
selfrole list
|
||||||
|
"""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]selfrole list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List all of the available roles you can assign to yourself.
|
||||||
|
|
||||||
|
.. _admin-command-selfroleset:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
selfroleset
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock| This is also usable by the members with the
|
||||||
|
``Manage roles`` permission.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]selfroleset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Define the list of user settable roles. Those roles will be available to any
|
||||||
|
member using the :ref:`selfrole command <admin-command-selfrole>`.
|
||||||
|
|
||||||
|
.. _admin-command-selfroleset-add:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
selfroleset add
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]selfroleset add <role>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add a role to the list of selfroles.
|
||||||
|
|
||||||
|
.. warning:: Members will be able to assign themselves the role.
|
||||||
|
Make sure it doesn't give extra perms or anything that can break
|
||||||
|
your server's security.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<role>``: The role to add to the list. |role-input|
|
||||||
|
|
||||||
|
.. _admin-command-selfroleset-remove:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
selfroleset remove
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]selfroleset remove <role>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Removes a role from the list of selfroles.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<role>``: The role to remove from the list. |role-input|
|
||||||
|
|
||||||
|
.. _admin-command-addrole:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
addrole
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock| This is also usable by the members with the ``Manage
|
||||||
|
roles`` permission.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]addrole <rolename> [user]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Adds a role to a member. If ``user`` is not given, it will be considered
|
||||||
|
as yourself, the command author.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<role>``: The role to add to the member. |role-input-quotes|
|
||||||
|
|
||||||
|
* ``[user]``: The member you want to add the role to. Defaults to the
|
||||||
|
command author. |member-input|
|
||||||
|
|
||||||
|
.. _admin-command-removerole:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
removerole
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock| This is also usable by the members with the
|
||||||
|
``Manage roles`` permission.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]removerole <rolename> [user]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Removes a role from a member. If ``user`` is not given, it will be considered
|
||||||
|
as yourself, the command author.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<role>``: The role to remove. |role-input-quotes|
|
||||||
|
|
||||||
|
* ``[user]``: The member to remove the role from. |member-input| Defaults
|
||||||
|
to the command author.
|
||||||
|
|
||||||
|
.. _admin-command-editrole:
|
||||||
|
|
||||||
|
^^^^^^^^
|
||||||
|
editrole
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]editrole
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Edits the settings of a role.
|
||||||
|
|
||||||
|
.. _admin-command-editrole-name:
|
||||||
|
|
||||||
|
"""""""""""""
|
||||||
|
editrole name
|
||||||
|
"""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]editrole name <role> <name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Edits the name of a role.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<role>``: The role name to edit. |role-input-quotes|
|
||||||
|
|
||||||
|
* ``<name>``: The new role name. If it has spaces, you must use quotes.
|
||||||
|
|
||||||
|
.. _admin-command-editrole-color:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
editrole color
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]editrole color <role> <color>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Edits the color of a role.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<role>``: The role name to edit. |role-input-quotes|
|
||||||
|
|
||||||
|
* ``<color>``: The new color to assign. |color-input|
|
||||||
|
|
||||||
|
**Examples**
|
||||||
|
|
||||||
|
* ``[p]editrole color "My role" #ff0000``
|
||||||
|
|
||||||
|
* ``[p]editrole color "My role" dark_blue``
|
||||||
|
|
||||||
|
.. _admin-command-announce:
|
||||||
|
|
||||||
|
^^^^^^^^
|
||||||
|
announce
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]announce <message>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Announce your message to all of the servers the bot is in.
|
||||||
|
|
||||||
|
The bot will announce the message in the guild's announcements channel.
|
||||||
|
If this channel is not set, the message won't be announced.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<message>``: The message to send.
|
||||||
|
|
||||||
|
.. _admin-command-announce-cancel:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
announce cancel
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]announce cancel
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Cancels an active announcement.
|
||||||
|
|
||||||
|
.. _admin-command-announceset:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
announceset
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]announceset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Change how announcements are received in this guild.
|
||||||
|
|
||||||
|
.. _admin-command-announceset-channel:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
announceset channel
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]announceset channel [channel]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets the channel where the bot owner announcements will be sent.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[channel]``: The channel that will be used for bot announcements.
|
||||||
|
|channel-input| Defaults to where you typed the command.
|
||||||
|
|
||||||
|
.. _admin-command-announceset-clearchannel:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""
|
||||||
|
announceset clearchannel
|
||||||
|
""""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]announceset clearchannel
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Disables announcements on your server. To enable them again, you will have to
|
||||||
|
re-enter your announcements channel with the :ref:`announceset channel
|
||||||
|
<admin-command-announceset-channel>` command.
|
||||||
|
|
||||||
|
.. _admin-command-serverlock:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
serverlock
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock| This is also usable by the members with the
|
||||||
|
``Administrator`` permission.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]serverlock
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Lock a bot to its current servers only.
|
||||||
|
|
||||||
|
This means that, once you enable this, if someone invites the bot to a new
|
||||||
|
server, the bot will automatically leave the server.
|
||||||
|
|
||||||
|
.. tip:: Another way to prevent your bot from being invited on more servers is
|
||||||
|
making it private directly from the developer portal.
|
||||||
|
|
||||||
|
Once a bot is private, it can only be invited by its owner (or team
|
||||||
|
owners). Other users will get an error on Discord's webpage explaining that
|
||||||
|
the bot is private.
|
||||||
|
|
||||||
|
To do this, go to the `Discord developer portal
|
||||||
|
<https://discord.com/developers>`_, select your application, click "Bot" in
|
||||||
|
the sidebar, then untick "Public bot".
|
||||||
|
|
||||||
|
.. image:: ../.resources/admin/public_bot.png
|
||||||
277
docs/cog_guides/alias.rst
Normal file
@@ -0,0 +1,277 @@
|
|||||||
|
.. _alias:
|
||||||
|
|
||||||
|
=====
|
||||||
|
Alias
|
||||||
|
=====
|
||||||
|
|
||||||
|
This is the cog guide for the alias cog. You will
|
||||||
|
find detailed docs about the usage and the commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load alias
|
||||||
|
|
||||||
|
.. _alias-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog is used to create shortcuts for commands.
|
||||||
|
|
||||||
|
Here's an example:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
[p]play
|
||||||
|
# with an alias, you can call the command above with a shortcut like this:
|
||||||
|
[p]p
|
||||||
|
# "p" is now a shortcut for "play"
|
||||||
|
|
||||||
|
In this example, we made an alias named ``p`` that will
|
||||||
|
invoke the ``play`` command. If you use ``[p]play`` or ``[p]p``, the result will
|
||||||
|
be the same.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
Here's another example
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
[p]cleanup messages
|
||||||
|
# now we're creating another alias that will group both the command and the subcommand into this:
|
||||||
|
[p]clear
|
||||||
|
# "clear" is now a shortcut for "cleanup messages"
|
||||||
|
|
||||||
|
In this second example, we made an alias called ``clear`` that will
|
||||||
|
invoke the ``cleanup messages`` subcommand. Now if you use ``[p]cleanup
|
||||||
|
message`` or ``[p]clear``, the result will be the same.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
This is the basic usage, where you can define an alias for the first part of
|
||||||
|
the command and give the second part when invoking the command. A more advanced
|
||||||
|
usage of aliases is the usage of arguments.
|
||||||
|
|
||||||
|
Let's suppose you want to make an alias to ban someone, delete 7 days of
|
||||||
|
messages and set the reason to "Spam bot.", that cannot be done with a classic
|
||||||
|
alias since the required member argument is the first one. If you create the
|
||||||
|
alias "spamban" using arguments like this ``ban {0} 7 Spam bot.``, ``{0}`` will
|
||||||
|
be replaced by the first argument of your alias:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
# we created the following alias named "spamban"
|
||||||
|
[p]spamban Slime#3160
|
||||||
|
# this alias will execute the following command:
|
||||||
|
[p]ban Slime#3160 7 Spam bot.
|
||||||
|
|
||||||
|
For a more detailed explaination, read :ref:`this <alias-command-alias-add>`.
|
||||||
|
|
||||||
|
.. _alias-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _alias-command-alias:
|
||||||
|
|
||||||
|
^^^^^
|
||||||
|
alias
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]alias
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
This is the main command used for setting up the cog.
|
||||||
|
It will be used for all other commands.
|
||||||
|
|
||||||
|
.. _alias-command-alias-add:
|
||||||
|
|
||||||
|
"""""""""
|
||||||
|
alias add
|
||||||
|
"""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]alias add <alias_name> <command>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Creates an alias. It will be used like this ``[p]alias_name <arguments>``
|
||||||
|
and will be equal to this ``[p]command <arguments>``.
|
||||||
|
|
||||||
|
Let's develop the examples given :ref:`earlier <alias-usage>` a bit more,
|
||||||
|
the left part of the command is the alias (blue), and the right part is the
|
||||||
|
parameters members have to give for the command (orange).
|
||||||
|
|
||||||
|
.. image:: ../.resources/alias/example-1.png
|
||||||
|
|
||||||
|
One more thing you can do with aliases is using arguments, a bit like
|
||||||
|
CustomCommands. Let's suppose you want an alias that bans x member and deletes
|
||||||
|
7 days of messages. Without aliases, the command would look like this:
|
||||||
|
|
||||||
|
``[p]ban NotSoTrustyJAID#0001 7 My random reason``
|
||||||
|
|
||||||
|
A classic alias wouldn't work because the member argument is the first one,
|
||||||
|
and you can only shorten the left part before the required argument.
|
||||||
|
|
||||||
|
An alias with arguments can fix that, you can define the alias on the whole
|
||||||
|
command and replace the required argument by ``{0}``, which will be replaced
|
||||||
|
by the first parameter given when invoking the alias.
|
||||||
|
|
||||||
|
Back to our example, let's make an alias named ``bigban`` which will be
|
||||||
|
assigned to this expression: ``ban {0} 7``
|
||||||
|
|
||||||
|
.. image:: ../.resources/alias/example-2.png
|
||||||
|
|
||||||
|
You can see in blue the "static" part of the alias, what is contained and
|
||||||
|
doesn't need to be given, the orange part is the arguments given at the end of
|
||||||
|
the command, just like a classic alias, and the green part is the positional
|
||||||
|
argument we defined: the first argument of the alias will be the green part.
|
||||||
|
|
||||||
|
You can add as many arguments as you want, they can start at ``{0}`` or ``{1}``
|
||||||
|
and must be in order: ``{1}`` will be the first argument, ``{2}`` will be the
|
||||||
|
second one...
|
||||||
|
|
||||||
|
.. attention:: The numbers must be in order, you cannot use ``{0}`` and ``{2}``
|
||||||
|
without using ``{1}``.
|
||||||
|
|
||||||
|
Here are more examples:
|
||||||
|
|
||||||
|
* * Full command: ``[p]cleanup messages 75 True``
|
||||||
|
* Alias: ``[p]alias add fullclear cleanup messages {0} True``
|
||||||
|
* Invoked alias: ``[p]fullclear 75``
|
||||||
|
|
||||||
|
*The* ``True`` *at the end tells the bot to also clear pinned messages.*
|
||||||
|
|
||||||
|
* * Full command: ``[p]repo add SinbadCogs
|
||||||
|
https://github.com/mikeshardmind/SinbadCogs v3``
|
||||||
|
|
||||||
|
* Alias: ``[p]alias add newrepo repo add {2} https://github.com/{1}/{2}``
|
||||||
|
* Invoked with alias: ``[p]newrepo mikeshardmind SinbadCogs v3``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<alias_name>``: The new command name.
|
||||||
|
|
||||||
|
* ``<command>``: The command to execute when ``[p]alias_name`` is invoked.
|
||||||
|
|
||||||
|
.. _alias-command-alias-delete:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
alias delete
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]alias [delete|remove|del] <alias_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Removes an alias from the list. Check the list with
|
||||||
|
the :ref:`alias list <alias-command-alias-list>` command.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<alias_name>``: The alias' name to delete.
|
||||||
|
|
||||||
|
.. _alias-command-alias-list:
|
||||||
|
|
||||||
|
""""""""""
|
||||||
|
alias list
|
||||||
|
""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]alias list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows all of the existing aliases on the current server.
|
||||||
|
|
||||||
|
.. _alias-command-alias-show:
|
||||||
|
|
||||||
|
""""""""""
|
||||||
|
alias show
|
||||||
|
""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]alias show <alias_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows the command associated to the alias.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<alias_name>``: The alias you want information from.
|
||||||
|
|
||||||
|
.. _alias-command-alias-help:
|
||||||
|
|
||||||
|
""""""""""
|
||||||
|
alias help
|
||||||
|
""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]alias help <alias_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows help message for an alias.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<alias_name>``: Alias you want to get help from.
|
||||||
|
|
||||||
|
.. _alias-command-alias-global:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
alias global
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]alias global
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Another group command which contains the :ref:`add
|
||||||
|
<alias-command-alias-add>`, :ref:`del
|
||||||
|
<alias-command-alias-delete>` and :ref:`list
|
||||||
|
<alias-command-alias-list>` commands.
|
||||||
|
|
||||||
|
They work the same, except the created aliases will be
|
||||||
|
global instead of being only server-wide.
|
||||||
|
|
||||||
|
Please refer to these docs for the commands, they work with the
|
||||||
|
same arguments. For example, if you want to add a global alias,
|
||||||
|
instead of doing ``[p]alias add <arguments>``, do ``[p]alias
|
||||||
|
global add <arguments>``.
|
||||||
186
docs/cog_guides/bank.rst
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
.. _bank:
|
||||||
|
|
||||||
|
====
|
||||||
|
Bank
|
||||||
|
====
|
||||||
|
|
||||||
|
This is the cog guide for the bank cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load bank
|
||||||
|
|
||||||
|
.. _bank-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog manages the bank. It won't be used often by
|
||||||
|
users but this is what makes any interaction with the
|
||||||
|
money possible.
|
||||||
|
|
||||||
|
You will be able to switch between a global and a server-
|
||||||
|
wide bank and choose the bank/currency name.
|
||||||
|
|
||||||
|
.. _bank-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _bank-command-bankset:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
bankset
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bankset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command for configuring bank settings.
|
||||||
|
|
||||||
|
.. _bank-command-bankset-toggleglobal:
|
||||||
|
|
||||||
|
""""""""""""""""""""
|
||||||
|
bankset toggleglobal
|
||||||
|
""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bankset toggleglobal [confirm=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Makes the bank global instead of server-wide. If it
|
||||||
|
is already global, the command will switch it back
|
||||||
|
to the server-wide bank.
|
||||||
|
|
||||||
|
.. warning:: Using this command will reset **all** accounts.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[confirm=False]``: Put ``yes`` to confirm.
|
||||||
|
|
||||||
|
.. _bank-command-bankset-creditsname:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
bankset creditsname
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock| However, if the bank is server-wide, the
|
||||||
|
server owner or an administrator can use this command.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bankset creditsname <name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Change the credits name of the bank. It is ``credits`` by default.
|
||||||
|
|
||||||
|
For example, if you switch it to ``dollars``, the payday
|
||||||
|
command will show this:
|
||||||
|
|
||||||
|
.. TODO reference the payday command
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
Here, take some dollars. Enjoy! (+120 dollars!)
|
||||||
|
|
||||||
|
You currently have 220 dollars.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<name>``: The new credits name.
|
||||||
|
|
||||||
|
.. _bank-command-bankset-bankname:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
bankset bankname
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock| However, if the bank is server-wide, the
|
||||||
|
server owner or an administrator can use this command.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bankset bankname <name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set bank's name.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<name>``: The new bank's name.
|
||||||
|
|
||||||
|
.. _bank-command-bankset-maxbal:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
bankset maxbal
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock| However, if the bank is server-wide, the
|
||||||
|
server owner or an administrator can use this command.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bankset maxbal <amount>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Defines the maximum amount of money a user can have with the bot.
|
||||||
|
|
||||||
|
If an user reaches this limit, he will be unable to gain more money.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<amount>``: The maximum amount of money for users.
|
||||||
|
|
||||||
|
.. _bank-command-bankset-showsettings:
|
||||||
|
|
||||||
|
""""""""""""""""""""
|
||||||
|
bankset showsettings
|
||||||
|
""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock| However, if the bank is server-wide, the
|
||||||
|
server owner or an administrator can use this command.
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bankset showsettings
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows the current settings of your bank.
|
||||||
|
|
||||||
|
This will display the following information:
|
||||||
|
|
||||||
|
* Name of the bank
|
||||||
|
* Scope of the bank (global or per server)
|
||||||
|
* Currency name
|
||||||
|
* Default balance
|
||||||
|
* Maximum allowed balance
|
||||||
296
docs/cog_guides/cleanup.rst
Normal file
@@ -0,0 +1,296 @@
|
|||||||
|
.. _cleanup:
|
||||||
|
|
||||||
|
=======
|
||||||
|
Cleanup
|
||||||
|
=======
|
||||||
|
|
||||||
|
This is the cog guide for the cleanup cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load cleanup
|
||||||
|
|
||||||
|
.. _cleanup-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog contains commands used for "cleaning up" (deleting) messages.
|
||||||
|
|
||||||
|
This is designed as a moderator tool and offers many convenient use cases.
|
||||||
|
All cleanup commands only apply to the channel the command is executed in.
|
||||||
|
|
||||||
|
Messages older than two weeks cannot be mass deleted.
|
||||||
|
This is a limitation of the API.
|
||||||
|
|
||||||
|
|
||||||
|
.. _cleanup-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
cleanup
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command for deleting messages.
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-after:
|
||||||
|
|
||||||
|
"""""""""""""
|
||||||
|
cleanup after
|
||||||
|
"""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup after <message_id> [delete_pinned=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete all messages after a specified message.
|
||||||
|
|
||||||
|
To get a message id, enable developer mode in Discord's
|
||||||
|
settings, 'appearance' tab. Then right click a message
|
||||||
|
and copy its id.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<message_id>`` The id of the message to cleanup after. This message won't be deleted.
|
||||||
|
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-before:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
cleanup before
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup before <message_id> <number> [delete_pinned=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Deletes X messages before the specified message.
|
||||||
|
|
||||||
|
To get a message id, enable developer mode in Discord's
|
||||||
|
settings, 'appearance' tab. Then right click a message
|
||||||
|
and copy its id.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<message_id>`` The id of the message to cleanup before. This message won't be deleted.
|
||||||
|
- ``<number>`` The max number of messages to cleanup. Must be a positive integer.
|
||||||
|
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-between:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
cleanup between
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup between <one> <two> [delete_pinned=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete the messages between Message One and Message Two, providing the messages IDs.
|
||||||
|
|
||||||
|
The first message ID should be the older message and the second one the newer.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]cleanup between 123456789123456789 987654321987654321``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<one>`` The id of the message to cleanup after. This message won't be deleted.
|
||||||
|
- ``<two>`` The id of the message to cleanup before. This message won't be deleted.
|
||||||
|
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-bot:
|
||||||
|
|
||||||
|
"""""""""""
|
||||||
|
cleanup bot
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup bot <number> [delete_pinned=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Clean up command messages and messages from the bot in the current channel.
|
||||||
|
|
||||||
|
Can only cleanup custom commands and alias commands if those cogs are loaded.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<number>`` The max number of messages to cleanup. Must be a positive integer.
|
||||||
|
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-messages:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
cleanup messages
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup messages <number> [delete_pinned=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete the last X messages in the current channel.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]cleanup messages 26``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<number>`` The max number of messages to cleanup. Must be a positive integer.
|
||||||
|
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-self:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
cleanup self
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup self <number> [match_pattern] [delete_pinned=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Clean up messages owned by the bot in the current channel.
|
||||||
|
|
||||||
|
By default, all messages are cleaned. If a second argument is specified,
|
||||||
|
it is used for pattern matching - only messages containing the given text will be deleted.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]cleanup self 6``
|
||||||
|
- ``[p]cleanup self 10 Pong``
|
||||||
|
- ``[p]cleanup self 7 "" True``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<number>`` The max number of messages to cleanup. Must be a positive integer.
|
||||||
|
- ``<match_pattern>`` The text that messages must contain to be deleted. Use "" to skip this.
|
||||||
|
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-spam:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
cleanup spam
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup spam [number=50]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Deletes duplicate messages in the channel from the last X messages and keeps only one copy.
|
||||||
|
|
||||||
|
Defaults to 50.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<number>`` The number of messages to check for duplicates. Must be a positive integer.
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-text:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
cleanup text
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup text <text> <number> [delete_pinned=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete the last X messages matching the specified text in the current channel.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]cleanup text "test" 5``
|
||||||
|
|
||||||
|
Remember to use double quotes.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<number>`` The max number of messages to cleanup. Must be a positive integer.
|
||||||
|
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
|
||||||
|
|
||||||
|
.. _cleanup-command-cleanup-user:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
cleanup user
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cleanup user <user> <number> [delete_pinned=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete the last X messages from a specified user in the current channel.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]cleanup user @Twentysix 2``
|
||||||
|
- ``[p]cleanup user Red 6``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<user>`` The user whose messages are to be cleaned up.
|
||||||
|
- ``<number>`` The max number of messages to cleanup. Must be a positive integer.
|
||||||
|
- ``<delete_pinned>`` Whether to delete pinned messages or not. Defaults to False
|
||||||
249
docs/cog_guides/cog_manager_ui.rst
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
.. _cogmanagerui:
|
||||||
|
|
||||||
|
==============
|
||||||
|
Cog Manager UI
|
||||||
|
==============
|
||||||
|
|
||||||
|
This is the cog guide for the core cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: This cog is not like the other cogs. It is loaded by default, not
|
||||||
|
included in the cogs paths and it cannot be unloaded. It contains needed
|
||||||
|
commands for cog management.
|
||||||
|
|
||||||
|
.. _cogmanaerui-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog allows you to manage your cogs and where you can install them. Unlike
|
||||||
|
V2, which had a ``cogs`` folder where everything was installed, you can
|
||||||
|
install V3 cogs everywhere, and also make them cross-compatible with other
|
||||||
|
instances!
|
||||||
|
|
||||||
|
If you want to install your cogs using a Github repo (usually what you will
|
||||||
|
always be looking for), you need to use the downloader cog. However, if you
|
||||||
|
have the files of a cog or want to code one, this cog is what you should be
|
||||||
|
looking for.
|
||||||
|
|
||||||
|
The most basic command is :ref:`paths <cogmanagerui-command-paths>`, which
|
||||||
|
will list you all of the currently set paths.
|
||||||
|
|
||||||
|
You can add a path by using the :ref:`addpath <cogmanagerui-command-addpath>`
|
||||||
|
command. All cogs in that path will be available for the bot and listed in
|
||||||
|
the :ref:`cogs <cogmanagerui-command-cogs>`. You can then load
|
||||||
|
or unload them.
|
||||||
|
|
||||||
|
.. TODO add ref to load and unload commands
|
||||||
|
|
||||||
|
.. _cogmanagerui-usage-installation:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
How to install a local package without using downloader
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Let's suppose you made a cog request on the `cog board <https://cogboard.discord.red>`_
|
||||||
|
and now you want to add your own cog to Red. You should have a folder that
|
||||||
|
looks like this:
|
||||||
|
|
||||||
|
.. image:: ../.resources/cog_manager_ui/custom-cog-example.png
|
||||||
|
|
||||||
|
You will first need to add a cog path to your instance. For that, use the
|
||||||
|
:ref:`addpath <cogmanagerui-command-addpath>` command with a new directory.
|
||||||
|
|
||||||
|
Create a folder somewhere (should stay accessible) and copy its path. A path
|
||||||
|
looks like this:
|
||||||
|
|
||||||
|
* Windows: ``C:\Users\username\Documents\MyCogs``
|
||||||
|
* macOS: ``/Users/username/Documents/MyCogs``
|
||||||
|
* Linux: ``/home/username/Documents/MyCogs``
|
||||||
|
|
||||||
|
You can now use the command we talked about before: type ``[p]addpath
|
||||||
|
<your_path>``.
|
||||||
|
|
||||||
|
.. attention:: A path shouldn't have spaces in it. If it does, add quotation
|
||||||
|
marks around the path, or a backslash before the space.
|
||||||
|
|
||||||
|
In that ``MyCogs`` folder, you can drop your cog folder. You should now have
|
||||||
|
something that looks like this:
|
||||||
|
|
||||||
|
.. image:: ../.resources/cog_manager_ui/cog-path.png
|
||||||
|
|
||||||
|
Now if you type ``[p]cogs``, your new cog should be listed, and you will be
|
||||||
|
able to load it!
|
||||||
|
|
||||||
|
.. _cogmanagerui-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. note:: The whole cog is locked to the
|
||||||
|
:ref:`bot owner <getting-started-permissions>`. If you are not the owner
|
||||||
|
of the instance, you can ignore this.
|
||||||
|
|
||||||
|
.. _cogmanagerui-command-cogs:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
cogs
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cogs
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Returns a list of loaded and unloaded cogs on the bot.
|
||||||
|
|
||||||
|
Cogs are unloaded by default. This is where you can find your cogs if you
|
||||||
|
installed some recently.
|
||||||
|
|
||||||
|
All of the cogs located inside a cog path will be listed here. You can see a
|
||||||
|
list of the paths with the :ref:`paths <cogmanagerui-command-paths>` command.
|
||||||
|
|
||||||
|
.. _cogmanagerui-command-paths:
|
||||||
|
|
||||||
|
^^^^^
|
||||||
|
paths
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]paths
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Lists the registered cog paths, with the install path for the downloader and
|
||||||
|
the core path for the core cogs.
|
||||||
|
|
||||||
|
.. TODO add ref to downloader
|
||||||
|
|
||||||
|
You can use the :ref:`reorderpath <cogmanagerui-command-reorderpath>` command
|
||||||
|
to reorder the listed paths.
|
||||||
|
|
||||||
|
.. tip:: The number before a cog path can be used for the
|
||||||
|
:ref:`removepath <cogmanagerui-command-removepath>` command.
|
||||||
|
|
||||||
|
.. _cogmanagerui-command-addpath:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
addpath
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]addpath <path>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Adds a path to the list of available cog paths. This means that all valid cogs
|
||||||
|
under the path will be added to the list of available cogs, listed in
|
||||||
|
:ref:`cogs <cogmanagerui-command-cogs>`.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<path>``: A path that should look like this and point to a folder:
|
||||||
|
|
||||||
|
* Windows: ``C:\Users\username\Documents\MyCogs``
|
||||||
|
* macOS: ``/Users/username/Documents/MyCogs``
|
||||||
|
* Linux: ``/home/username/Documents/MyCogs``
|
||||||
|
|
||||||
|
Try to avoid paths with spaces. If there are spaces, add a backslash before
|
||||||
|
the space on Linux. Add quotation marks around the path if needed.
|
||||||
|
|
||||||
|
.. _cogmanagerui-command-removepath:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
removepath
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]removepath <path_number>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Removes a path from the list of available paths. Its cogs won't be accessible
|
||||||
|
anymore.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<path_number>``: The number of the path to remove. You can get it with
|
||||||
|
the :ref:`paths <cogmanagerui>` command.
|
||||||
|
|
||||||
|
.. _cogmanagerui-command-reorderpath:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
reorderpath
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]reorderpath <from_> <to>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Reorders the paths listed with the :ref:`paths <cogmanagerui-command-paths>`
|
||||||
|
command. The goal of this command is to allow the discovery of different cogs.
|
||||||
|
If there are multiple packages with the same names, the one that is inside the
|
||||||
|
highest folder in the list will be kept and the other ones will be ignored.
|
||||||
|
|
||||||
|
For example, let's suppose this is the output of
|
||||||
|
:ref:`paths <cogmanagerui-command-paths>`:
|
||||||
|
|
||||||
|
1. ``/usr/local/lib/python3.7/site-packages/redbot/cogs``
|
||||||
|
2. ``/home/laggron/custom_cogs``
|
||||||
|
3. ``/mnt/not_suspicious_usb_drive/not_suspicious_cogs``
|
||||||
|
|
||||||
|
The folders 2 and 3 both have a package named ``leveler`` while being different
|
||||||
|
cogs, and you want to load the one located in the 3rd folder. To do that, you
|
||||||
|
have to put the 3rd path higher than the 2nd path, let's swap them! Type
|
||||||
|
``[p]reorderpath 2 3`` and the output of
|
||||||
|
:ref:`paths <cogmanagerui-command-paths>` will then be the following:
|
||||||
|
|
||||||
|
1. ``/usr/local/lib/python3.7/site-packages/redbot/cogs``
|
||||||
|
2. ``/mnt/not_suspicious_usb_drive/not_suspicious_cogs``
|
||||||
|
3. ``/home/laggron/custom_cogs``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<from_>``: The index of the path you want to move.
|
||||||
|
* ``<to>``: The location where you want to insert the path.
|
||||||
|
|
||||||
|
.. _cogmanagerui-command-installpath:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
installpath
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]installpath [path]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows the install path, or sets a new one. If you want to set a new path, the
|
||||||
|
same rules as for :ref:`addpath <cogmanagerui-command-addpath>` applies.
|
||||||
|
|
||||||
|
.. warning:: If you edit the install path, the cogs won't be transfered.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[path]``: The absolute path to set. If omitted, the current path will
|
||||||
|
be returned instead.
|
||||||
3524
docs/cog_guides/core.rst
Normal file
294
docs/cog_guides/customcommands.rst
Normal file
@@ -0,0 +1,294 @@
|
|||||||
|
.. _customcommands:
|
||||||
|
|
||||||
|
==============
|
||||||
|
CustomCommands
|
||||||
|
==============
|
||||||
|
|
||||||
|
This is the cog guide for the customcommands cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load customcom
|
||||||
|
|
||||||
|
.. _customcommands-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog contains commands for creating and managing custom commands that display text.
|
||||||
|
|
||||||
|
These are useful for storing information members might need, like FAQ answers or invite links.
|
||||||
|
Custom commands can be used by anyone by default, so be careful with pings.
|
||||||
|
Commands can only be lowercase, and will not respond to any uppercase letters.
|
||||||
|
|
||||||
|
|
||||||
|
.. _customcommands-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
customcom
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom
|
||||||
|
|
||||||
|
.. tip:: Alias: ``cc``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command for Custom Commands management.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-cooldown:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
customcom cooldown
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom cooldown <command> [cooldown] [per=member]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set, edit, or view the cooldown for a custom command.
|
||||||
|
|
||||||
|
You may set cooldowns per member, channel, or guild. Multiple
|
||||||
|
cooldowns may be set. All cooldowns must be cooled to call the
|
||||||
|
custom command.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]customcom cooldown pingrole``
|
||||||
|
- ``[p]customcom cooldown yourcommand 30``
|
||||||
|
- ``[p]cc cooldown mycommand 30 guild``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<command>`` The custom command to check or set the cooldown.
|
||||||
|
- ``<cooldown>`` The number of seconds to wait before allowing the command to be invoked again. If omitted, will instead return the current cooldown settings.
|
||||||
|
- ``<per>`` The group to apply the cooldown on. Defaults to per member. Valid choices are server, guild, user, and member.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-create:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
customcom create
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom create <command> <text>
|
||||||
|
|
||||||
|
.. tip:: Alias: ``customcom add``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Create custom commands.
|
||||||
|
|
||||||
|
If a type is not specified, a simple CC will be created.
|
||||||
|
CCs can be enhanced with arguments, see the guide
|
||||||
|
:ref:`here <cog_customcom>`.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-create-random:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
customcom create random
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom create random <command>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Create a CC where it will randomly choose a response!
|
||||||
|
|
||||||
|
Note: This command is interactive.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<command>`` The command executed to return the text. Cast to lowercase.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-create-simple:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
customcom create simple
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom create simple <command> <text>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add a simple custom command.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]customcom create simple yourcommand Text you want``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<command>`` The command executed to return the text. Cast to lowercase.
|
||||||
|
- ``<text>`` The text to return when executing the command. See guide for enhanced usage.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-delete:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
customcom delete
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom delete <command>
|
||||||
|
|
||||||
|
.. tip:: Aliases: ``customcom del``, ``customcom remove``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete a custom command.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]customcom delete yourcommand``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<command>`` The custom command to delete.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-edit:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
customcom edit
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom edit <command> [text]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Edit a custom command.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]customcom edit yourcommand Text you want``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<command>`` The custom command to edit.
|
||||||
|
- ``<text>`` The new text to return when executing the command.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-list:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
customcom list
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List all available custom commands.
|
||||||
|
|
||||||
|
The list displays a preview of each command's response, with
|
||||||
|
markdown escaped and newlines replaced with spaces.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-raw:
|
||||||
|
|
||||||
|
"""""""""""""
|
||||||
|
customcom raw
|
||||||
|
"""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom raw <command>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Get the raw response of a custom command, to get the proper markdown.
|
||||||
|
|
||||||
|
This is helpful for copy and pasting.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<command>`` The custom command to get the raw response of.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-search:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
customcom search
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom search <query>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Searches through custom commands, according to the query.
|
||||||
|
|
||||||
|
Uses fuzzywuzzy searching to find close matches.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<query>`` The query to search for. Can be multiple words.
|
||||||
|
|
||||||
|
.. _customcommands-command-customcom-show:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
customcom show
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]customcom show <command_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows a custom command's responses and its settings.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<command>`` The custom command to show.
|
||||||
538
docs/cog_guides/downloader.rst
Normal file
@@ -0,0 +1,538 @@
|
|||||||
|
.. _downloader:
|
||||||
|
|
||||||
|
==========
|
||||||
|
Downloader
|
||||||
|
==========
|
||||||
|
|
||||||
|
This is the cog guide for the downloader cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load downloader
|
||||||
|
|
||||||
|
.. _downloader-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
Install community cogs made by Cog Creators.
|
||||||
|
|
||||||
|
Community cogs, also called third party cogs, are not included
|
||||||
|
in the default Red install.
|
||||||
|
|
||||||
|
Community cogs come in repositories. Repos are a group of cogs
|
||||||
|
you can install. You always need to add the creator's repository
|
||||||
|
using the ``[p]repo`` command before you can install one or more
|
||||||
|
cogs from the creator.
|
||||||
|
|
||||||
|
|
||||||
|
.. _downloader-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _downloader-command-cog:
|
||||||
|
|
||||||
|
^^^
|
||||||
|
cog
|
||||||
|
^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command for cog installation management commands.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-checkforupdates:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
cog checkforupdates
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog checkforupdates
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Check for available cog updates (including pinned cogs).
|
||||||
|
|
||||||
|
This command doesn't update cogs, it only checks for updates.
|
||||||
|
Use ``[p]cog update`` to update cogs.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-info:
|
||||||
|
|
||||||
|
""""""""
|
||||||
|
cog info
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog info <repo> <cog>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List information about a single cog.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]cog info 26-Cogs defender``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<repo>`` The repo to get cog info from.
|
||||||
|
- ``<cog>`` The cog to get info on.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-install:
|
||||||
|
|
||||||
|
"""""""""""
|
||||||
|
cog install
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog install <repo> <cogs...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Install a cog from the given repo.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]cog install 26-Cogs defender``
|
||||||
|
- ``[p]cog install Laggrons-Dumb-Cogs say roleinvite``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<repo>`` The name of the repo to install cogs from.
|
||||||
|
- ``<cogs...>`` The cog or cogs to install.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-installversion:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
cog installversion
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog installversion <repo> <revision> <cogs...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Install a cog from the specified revision of given repo.
|
||||||
|
|
||||||
|
Revisions are "commit ids" that point to the point in the code when a specific change was made.
|
||||||
|
The latest revision can be found in the URL bar for any GitHub repo by `pressing "y" on that repo <https://docs.github.com/en/free-pro-team@latest/github/managing-files-in-a-repository/getting-permanent-links-to-files#press-y-to-permalink-to-a-file-in-a-specific-commit>`_.
|
||||||
|
|
||||||
|
Older revisions can be found in the URL bar by `viewing the commit history of any repo <https://cdn.discordapp.com/attachments/133251234164375552/775760247787749406/unknown.png>`_
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]cog installversion Broken-Repo e798cc268e199612b1316a3d1f193da0770c7016 cog_name``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<repo>`` The name of the repo to install cogs from.
|
||||||
|
- ``<revision>`` The revision to install from.
|
||||||
|
- ``<cogs...>`` The cog or cogs to install.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-list:
|
||||||
|
|
||||||
|
""""""""
|
||||||
|
cog list
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog list <repo>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List all available cogs from a single repo.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]cog list 26-Cogs``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<repo>`` The repo to list cogs from.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-listpinned:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
cog listpinned
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog listpinned
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List currently pinned cogs.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-pin:
|
||||||
|
|
||||||
|
"""""""
|
||||||
|
cog pin
|
||||||
|
"""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog pin <cogs...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Pin cogs - this will lock cogs on their current version.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]cog pin defender``
|
||||||
|
- ``[p]cog pin outdated_cog1 outdated_cog2``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<cogs...>`` The cog or cogs to pin. Must already be installed.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-uninstall:
|
||||||
|
|
||||||
|
"""""""""""""
|
||||||
|
cog uninstall
|
||||||
|
"""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog uninstall <cogs...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Uninstall cogs.
|
||||||
|
|
||||||
|
You may only uninstall cogs which were previously installed
|
||||||
|
by Downloader.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]cog uninstall defender``
|
||||||
|
- ``[p]cog uninstall say roleinvite``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<cogs...>`` The cog or cogs to uninstall.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-unpin:
|
||||||
|
|
||||||
|
"""""""""
|
||||||
|
cog unpin
|
||||||
|
"""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog unpin <cogs...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Unpin cogs - this will remove the update lock from those cogs.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]cog unpin defender``
|
||||||
|
- ``[p]cog unpin updated_cog1 updated_cog2``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<cogs...>`` The cog or cogs to unpin. Must already be installed and pinned.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-update:
|
||||||
|
|
||||||
|
""""""""""
|
||||||
|
cog update
|
||||||
|
""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog update [cogs...]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Update all cogs, or ones of your choosing.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]cog update``
|
||||||
|
- ``[p]cog update defender``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``[cogs...]`` The cog or cogs to update. If omitted, all cogs are updated.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-updateallfromrepos:
|
||||||
|
|
||||||
|
""""""""""""""""""""""
|
||||||
|
cog updateallfromrepos
|
||||||
|
""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog updateallfromrepos <repos...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Update all cogs from repos of your choosing.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]cog updateallfromrepos 26-Cogs``
|
||||||
|
- ``[p]cog updateallfromrepos Laggrons-Dumb-Cogs 26-Cogs``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<repos...>`` The repo or repos to update all cogs from.
|
||||||
|
|
||||||
|
.. _downloader-command-cog-updatetoversion:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
cog updatetoversion
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]cog updatetoversion <repo> <revision> [cogs...]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Update all cogs, or ones of your choosing to chosen revision of one repo.
|
||||||
|
|
||||||
|
Note that update doesn't mean downgrade and therefore ``revision``
|
||||||
|
has to be newer than the version that cog currently has installed. If you want to
|
||||||
|
downgrade the cog, uninstall and install it again.
|
||||||
|
|
||||||
|
See ``[p]cog installversion`` for an explanation of ``revision``.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]cog updatetoversion Broken-Repo e798cc268e199612b1316a3d1f193da0770c7016 cog_name``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<repo>`` The repo or repos to update all cogs from.
|
||||||
|
- ``<revision>`` The revision to update to.
|
||||||
|
- ``[cogs...]`` The cog or cogs to update.
|
||||||
|
|
||||||
|
.. _downloader-command-findcog:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
findcog
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]findcog <command_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Find which cog a command comes from.
|
||||||
|
|
||||||
|
This will only work with loaded cogs.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]findcog ping``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<command_name>`` The command to search for.
|
||||||
|
|
||||||
|
.. _downloader-command-pipinstall:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
pipinstall
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]pipinstall <deps...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Install a group of dependencies using pip.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]pipinstall bs4``
|
||||||
|
- ``[p]pipinstall py-cpuinfo psutil``
|
||||||
|
|
||||||
|
Improper usage of this command can break your bot, be careful.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<deps...>`` The package or packages you wish to install.
|
||||||
|
|
||||||
|
.. _downloader-command-repo:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
repo
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]repo
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command for repository management.
|
||||||
|
|
||||||
|
.. _downloader-command-repo-add:
|
||||||
|
|
||||||
|
""""""""
|
||||||
|
repo add
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]repo add <name> <repo_url> [branch]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add a new repo.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]repo add 26-Cogs https://github.com/Twentysix26/x26-Cogs``
|
||||||
|
- ``[p]repo add Laggrons-Dumb-Cogs https://github.com/retke/Laggrons-Dumb-Cogs v3``
|
||||||
|
|
||||||
|
Repo names can only contain characters A-z, numbers, underscores, and hyphens.
|
||||||
|
The branch will be the default branch if not specified.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<name>`` The name given to the repo.
|
||||||
|
- ``<repo_url>`` URL to the cog branch. Usually GitHub or GitLab.
|
||||||
|
- ``[branch]`` Optional branch to install cogs from.
|
||||||
|
|
||||||
|
.. _downloader-command-repo-delete:
|
||||||
|
|
||||||
|
"""""""""""
|
||||||
|
repo delete
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]repo delete <repo>
|
||||||
|
|
||||||
|
.. tip:: Aliases: ``repo remove``, ``repo del``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Remove repos and their files.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]repo delete 26-Cogs``
|
||||||
|
- ``[p]repo delete 26-Cogs Laggrons-Dumb-Cogs``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<repos...>`` The repo or repos to remove.
|
||||||
|
|
||||||
|
.. _downloader-command-repo-info:
|
||||||
|
|
||||||
|
"""""""""
|
||||||
|
repo info
|
||||||
|
"""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]repo info <repo>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Show information about a repo.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]repo info 26-Cogs``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<repo>`` The name of the repo to show info about.
|
||||||
|
|
||||||
|
.. _downloader-command-repo-list:
|
||||||
|
|
||||||
|
"""""""""
|
||||||
|
repo list
|
||||||
|
"""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]repo list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List all installed repos.
|
||||||
|
|
||||||
|
.. _downloader-command-repo-update:
|
||||||
|
|
||||||
|
"""""""""""
|
||||||
|
repo update
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]repo update [repos...]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Update all repos, or ones of your choosing.
|
||||||
|
|
||||||
|
This will *not* update the cogs installed from those repos.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]repo update``
|
||||||
|
- ``[p]repo update 26-Cogs``
|
||||||
|
- ``[p]repo update 26-Cogs Laggrons-Dumb-Cogs``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``[repos...]`` The name or names of repos to update. If omitted, all repos are updated.
|
||||||
539
docs/cog_guides/economy.rst
Normal file
@@ -0,0 +1,539 @@
|
|||||||
|
.. _economy:
|
||||||
|
|
||||||
|
=======
|
||||||
|
Economy
|
||||||
|
=======
|
||||||
|
|
||||||
|
This is the cog guide for the economy cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load economy
|
||||||
|
|
||||||
|
.. _economy-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
Get rich and have fun with imaginary currency!
|
||||||
|
|
||||||
|
|
||||||
|
.. _economy-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _economy-command-bank:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
bank
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command to manage the bank.
|
||||||
|
|
||||||
|
.. _economy-command-bank-balance:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
bank balance
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank balance [user]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Show the user's account balance.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]bank balance``
|
||||||
|
- ``[p]bank balance @Twentysix``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<user>`` The user to check the balance of. If omitted, defaults to your own balance.
|
||||||
|
|
||||||
|
.. _economy-command-bank-prune:
|
||||||
|
|
||||||
|
""""""""""
|
||||||
|
bank prune
|
||||||
|
""""""""""
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank prune
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command for pruning bank accounts.
|
||||||
|
|
||||||
|
.. _economy-command-bank-prune-global:
|
||||||
|
|
||||||
|
"""""""""""""""""
|
||||||
|
bank prune global
|
||||||
|
"""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank prune global [confirmation=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Prune bank accounts for users who no longer share a server with the bot.
|
||||||
|
|
||||||
|
Cannot be used without a global bank. See ``[p]bank prune server``.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]bank prune global`` - Did not confirm. Shows the help message.
|
||||||
|
- ``[p]bank prune global yes``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<confirmation>`` This will default to false unless specified.
|
||||||
|
|
||||||
|
.. _economy-command-bank-prune-server:
|
||||||
|
|
||||||
|
"""""""""""""""""
|
||||||
|
bank prune server
|
||||||
|
"""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank prune server [confirmation=False]
|
||||||
|
|
||||||
|
.. tip:: Aliases: ``bank prune guild``, ``bank prune local``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Prune bank accounts for users no longer in the server.
|
||||||
|
|
||||||
|
Cannot be used with a global bank. See ``[p]bank prune global``.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]bank prune server`` - Did not confirm. Shows the help message.
|
||||||
|
- ``[p]bank prune server yes``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<confirmation>`` This will default to false unless specified.
|
||||||
|
|
||||||
|
.. _economy-command-bank-prune-user:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
bank prune user
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank prune user <user> [confirmation=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete the bank account of a specified user.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]bank prune user @TwentySix`` - Did not confirm. Shows the help message.
|
||||||
|
- ``[p]bank prune user @TwentySix yes``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<user>`` The user to delete the bank of. Takes mentions, names, and user ids.
|
||||||
|
- ``<confirmation>`` This will default to false unless specified.
|
||||||
|
|
||||||
|
.. _economy-command-bank-reset:
|
||||||
|
|
||||||
|
""""""""""
|
||||||
|
bank reset
|
||||||
|
""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank reset [confirmation=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete all bank accounts.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]bank reset`` - Did not confirm. Shows the help message.
|
||||||
|
- ``[p]bank reset yes``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<confirmation>`` This will default to false unless specified.
|
||||||
|
|
||||||
|
.. _economy-command-bank-set:
|
||||||
|
|
||||||
|
""""""""
|
||||||
|
bank set
|
||||||
|
""""""""
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank set <to> <creds>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the balance of a user's bank account.
|
||||||
|
|
||||||
|
Putting + or - signs before the amount will add/remove currency on the user's bank account instead.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]bank set @Twentysix 26`` - Sets balance to 26
|
||||||
|
- ``[p]bank set @Twentysix +2`` - Increases balance by 2
|
||||||
|
- ``[p]bank set @Twentysix -6`` - Decreases balance by 6
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<to>`` The user to set the currency of.
|
||||||
|
- ``<creds>`` The amount of currency to set their balance to.
|
||||||
|
|
||||||
|
.. _economy-command-bank-transfer:
|
||||||
|
|
||||||
|
"""""""""""""
|
||||||
|
bank transfer
|
||||||
|
"""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]bank transfer <to> <amount>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Transfer currency to other users.
|
||||||
|
|
||||||
|
This will come out of your balance, so make sure you have enough.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]bank transfer @Twentysix 500``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<to>`` The user to give currency to.
|
||||||
|
- ``<amount>`` The amount of currency to give.
|
||||||
|
|
||||||
|
.. _economy-command-economyset:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
economyset
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command to manage Economy settings.
|
||||||
|
|
||||||
|
.. _economy-command-economyset-paydayamount:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
economyset paydayamount
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset paydayamount <creds>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the amount earned each payday.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]economyset paydayamount 400``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<creds>`` The new amount to give when using the payday command. Default is 120.
|
||||||
|
|
||||||
|
.. _economy-command-economyset-paydaytime:
|
||||||
|
|
||||||
|
"""""""""""""""""""""
|
||||||
|
economyset paydaytime
|
||||||
|
"""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset paydaytime <duration>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the cooldown for the payday command.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]economyset paydaytime 86400``
|
||||||
|
- ``[p]economyset paydaytime 1d``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- | ``<duration>`` The new duration to wait in between uses of payday. Default is 5 minutes.
|
||||||
|
| Accepts: seconds, minutes, hours, days, weeks (if no unit is specified, the duration is assumed to be given in seconds)
|
||||||
|
|
||||||
|
.. _economy-command-economyset-registeramount:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
economyset registeramount
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset registeramount <creds>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the initial balance for new bank accounts.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]economyset registeramount 5000``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<creds>`` The new initial balance amount. Default is 0.
|
||||||
|
|
||||||
|
.. _economy-command-economyset-rolepaydayamount:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""""
|
||||||
|
economyset rolepaydayamount
|
||||||
|
"""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset rolepaydayamount <role> <creds>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the amount earned each payday for a role. Setting to 0 will remove the custom payday for that role instead.
|
||||||
|
|
||||||
|
Only available when not using a global bank.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]economyset rolepaydayamount @Members 400``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<role>`` The role to assign a custom payday amount to.
|
||||||
|
- ``<creds>`` The new amount to give when using the payday command.
|
||||||
|
|
||||||
|
.. _economy-command-economyset-showsettings:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
economyset showsettings
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset showsettings
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows the current economy settings
|
||||||
|
|
||||||
|
.. _economy-command-economyset-slotmax:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
economyset slotmax
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset slotmax <bid>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the maximum slot machine bid.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]economyset slotmax 50``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<bid>`` The new maximum bid for using the slot machine. Default is 100.
|
||||||
|
|
||||||
|
.. _economy-command-economyset-slotmin:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
economyset slotmin
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset slotmin <bid>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the minimum slot machine bid.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]economyset slotmin 10``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<bid>`` The new minimum bid for using the slot machine. Default is 5.
|
||||||
|
|
||||||
|
.. _economy-command-economyset-slottime:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
economyset slottime
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]economyset slottime <duration>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the cooldown for the slot machine.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]economyset slottime 10``
|
||||||
|
- ``[p]economyset slottime 10m``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- | ``<duration>`` The new duration to wait in between uses of the slot machine. Default is 5 seconds.
|
||||||
|
| Accepts: seconds, minutes, hours, days, weeks (if no unit is specified, the duration is assumed to be given in seconds)
|
||||||
|
|
||||||
|
.. _economy-command-leaderboard:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
leaderboard
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]leaderboard [top=10] [show_global=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Print the leaderboard.
|
||||||
|
|
||||||
|
Defaults to top 10.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]leaderboard``
|
||||||
|
- ``[p]leaderboard 50`` - Shows the top 50 instead of top 10.
|
||||||
|
- ``[p]leaderboard 100 yes`` - Shows the top 100 from all servers.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<top>`` How many positions on the leaderboard to show. Defaults to 10 if omitted.
|
||||||
|
- ``<show_global>`` Whether to include results from all servers. This will default to false unless specified.
|
||||||
|
|
||||||
|
.. _economy-command-payday:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
payday
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]payday
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Get some free currency.
|
||||||
|
|
||||||
|
The amount awarded and frequency can be configured.
|
||||||
|
|
||||||
|
.. _economy-command-payouts:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
payouts
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]payouts
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Show the payouts for the slot machine.
|
||||||
|
|
||||||
|
.. _economy-command-slot:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
slot
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]slot <bid>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Use the slot machine.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]slot 50``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<bid>`` The amount to bet on the slot machine. Winning payouts are higher when you bet more.
|
||||||
303
docs/cog_guides/filter.rst
Normal file
@@ -0,0 +1,303 @@
|
|||||||
|
.. _filter:
|
||||||
|
|
||||||
|
======
|
||||||
|
Filter
|
||||||
|
======
|
||||||
|
|
||||||
|
This is the cog guide for the filter cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load filter
|
||||||
|
|
||||||
|
.. _filter-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog is designed for "filtering" unwanted words and phrases from a server.
|
||||||
|
|
||||||
|
It provides tools to manage a list of words or sentences, and to customize automatic actions to be taken against users who use those words in channels or in their name/nickname.
|
||||||
|
|
||||||
|
This can be used to prevent inappropriate language, off-topic discussions, invite links, and more.
|
||||||
|
|
||||||
|
|
||||||
|
.. _filter-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _filter-command-filter:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
filter
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command to add or remove words from the server filter.
|
||||||
|
|
||||||
|
Use double quotes to add or remove sentences.
|
||||||
|
|
||||||
|
.. _filter-command-filter-add:
|
||||||
|
|
||||||
|
""""""""""
|
||||||
|
filter add
|
||||||
|
""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter add [words...]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add words to the filter.
|
||||||
|
|
||||||
|
Use double quotes to add sentences.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]filter add word1 word2 word3``
|
||||||
|
- ``[p]filter add "This is a sentence"``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``[words...]`` The words or sentences to filter.
|
||||||
|
|
||||||
|
.. _filter-command-filter-channel:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
filter channel
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter channel
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command to add or remove words from the channel filter.
|
||||||
|
|
||||||
|
Use double quotes to add or remove sentences.
|
||||||
|
|
||||||
|
.. _filter-command-filter-channel-add:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
filter channel add
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter channel add [words...]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add words to the filter.
|
||||||
|
|
||||||
|
Use double quotes to add sentences.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]filter channel add word1 word2 word3``
|
||||||
|
- ``[p]filter channel add "This is a sentence"``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``[words...]`` The words or sentences to filter.
|
||||||
|
|
||||||
|
.. _filter-command-filter-channel-list:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
filter channel list
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter channel list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Send a list of the channel's filtered words.
|
||||||
|
|
||||||
|
.. _filter-command-filter-channel-remove:
|
||||||
|
|
||||||
|
"""""""""""""""""""""
|
||||||
|
filter channel remove
|
||||||
|
"""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter channel remove [words...]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Remove words from the filter.
|
||||||
|
|
||||||
|
Use double quotes to remove sentences.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]filter channel remove word1 word2 word3``
|
||||||
|
- ``[p]filter channel remove "This is a sentence"``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``[words...]`` The words or sentences to no longer filter.
|
||||||
|
|
||||||
|
.. _filter-command-filter-delete:
|
||||||
|
|
||||||
|
"""""""""""""
|
||||||
|
filter delete
|
||||||
|
"""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter delete [words...]
|
||||||
|
|
||||||
|
.. tip:: Aliases: ``filter remove``, ``filter del``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Remove words from the filter.
|
||||||
|
|
||||||
|
Use double quotes to remove sentences.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]filter remove word1 word2 word3``
|
||||||
|
- ``[p]filter remove "This is a sentence"``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``[words...]`` The words or sentences to no longer filter.
|
||||||
|
|
||||||
|
.. _filter-command-filter-list:
|
||||||
|
|
||||||
|
"""""""""""
|
||||||
|
filter list
|
||||||
|
"""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Send a list of this server's filtered words.
|
||||||
|
|
||||||
|
.. _filter-command-filter-names:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
filter names
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filter names
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle name and nickname filtering.
|
||||||
|
|
||||||
|
This is disabled by default.
|
||||||
|
|
||||||
|
.. _filter-command-filterset:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
filterset
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filterset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Base command to manage filter settings.
|
||||||
|
|
||||||
|
.. _filter-command-filterset-ban:
|
||||||
|
|
||||||
|
"""""""""""""
|
||||||
|
filterset ban
|
||||||
|
"""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filterset ban <count> <timeframe>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the filter's autoban conditions.
|
||||||
|
|
||||||
|
Users will be banned if they send ``<count>`` filtered words in
|
||||||
|
``<timeframe>`` seconds.
|
||||||
|
|
||||||
|
Set both to zero to disable autoban.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- ``[p]filterset ban 5 5`` - Ban users who say 5 filtered words in 5 seconds.
|
||||||
|
- ``[p]filterset ban 2 20`` - Ban users who say 2 filtered words in 20 seconds.
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<count>`` The amount of filtered words required to trigger a ban.
|
||||||
|
- ``<timeframe>`` The period of time in which too many filtered words will trigger a ban.
|
||||||
|
|
||||||
|
.. _filter-command-filterset-defaultname:
|
||||||
|
|
||||||
|
"""""""""""""""""""""
|
||||||
|
filterset defaultname
|
||||||
|
"""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]filterset defaultname <name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the nickname for users with a filtered name.
|
||||||
|
|
||||||
|
Note that this has no effect if filtering names is disabled
|
||||||
|
(to toggle, run ``[p]filter names``).
|
||||||
|
|
||||||
|
The default name used is *John Doe*.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
- ``[p]filterset defaultname Missingno``
|
||||||
|
|
||||||
|
**Arguments:**
|
||||||
|
|
||||||
|
- ``<name>`` The new nickname to assign.
|
||||||
218
docs/cog_guides/general.rst
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
.. _general:
|
||||||
|
|
||||||
|
=======
|
||||||
|
General
|
||||||
|
=======
|
||||||
|
|
||||||
|
This is the cog guide for the general cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load general
|
||||||
|
|
||||||
|
.. _general-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog includes a miscellaneous group of games, useful
|
||||||
|
tools, and informative commands such as ``serverinfo`` or ``urban``.
|
||||||
|
|
||||||
|
.. _general-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
Here's a list of all commands available for this cog.
|
||||||
|
|
||||||
|
.. _general-command-8:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
8 (8ball)
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]8 <question>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Ask 8 ball a question.
|
||||||
|
|
||||||
|
.. note:: Your question must end with a question mark.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<question>``: The question you would like to ask 8 ball.
|
||||||
|
|
||||||
|
.. _general-command-choose:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
choose
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]choose <first> <second> [others...]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Choose between multiple options.
|
||||||
|
Options are separated by spaces.
|
||||||
|
|
||||||
|
.. note:: There must be at least 2 options to pick from.
|
||||||
|
.. note:: To denote options which include whitespace, you should enclose the option in double quotes.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<first>``: The first mandatory option.
|
||||||
|
* ``<second>``: The second mandatory option.
|
||||||
|
* ``[others...]``: Any remaining optional options.
|
||||||
|
|
||||||
|
|
||||||
|
.. _general-command-flip:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
flip
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]flip [user]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Flip a coin... or a user.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[user]``: The user to flip. Defaults to flipping a coin if no user is provided.
|
||||||
|
|
||||||
|
.. _general-command-lmgtfy:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
lmgtfy
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]lmgtfy <search_terms>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Create a lmgtfy link.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<search_terms>``: The terms used to generate the lmgtfy link.
|
||||||
|
|
||||||
|
.. _general-command-roll:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
roll
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]roll [number=100]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Roll a random number. The result will be between 1 and ``<number>``.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[number]``: The maximum number that can be rolled. Defaults to 100.
|
||||||
|
|
||||||
|
.. _general-command-rps:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
rps (Rock Paper Scissors)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]rps <your_choice>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Play Rock Paper Scissors.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<your_choice>``: The choice that you choose.
|
||||||
|
|
||||||
|
.. note:: Choices **must** be between ``rock``, ``paper``, or ``scissors``.
|
||||||
|
|
||||||
|
.. _general-commands-serverinfo:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
serverinfo
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]serverinfo [details=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Show server information.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[details]``: Show extra details about the server when set to True. Defaults to False.
|
||||||
|
|
||||||
|
.. _general-commands-stopwatch:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
stopwatch
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]stopwatch
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Start or stop the stopwatch.
|
||||||
|
|
||||||
|
.. _general-commands-urban:
|
||||||
|
|
||||||
|
^^^^^
|
||||||
|
urban
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]urban <word>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Search the Urban Dictionary.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<word>``: The term to search for.
|
||||||
205
docs/cog_guides/image.rst
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
.. _image:
|
||||||
|
|
||||||
|
=====
|
||||||
|
Image
|
||||||
|
=====
|
||||||
|
|
||||||
|
This is the cog guide for the image cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load image
|
||||||
|
|
||||||
|
.. _image-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog provides commands for retrieving pictures from
|
||||||
|
websites such as Giphy and Imgur.
|
||||||
|
|
||||||
|
.. _image-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
Here's a list of all commands available for this cog.
|
||||||
|
|
||||||
|
.. _image-command-gif:
|
||||||
|
|
||||||
|
^^^
|
||||||
|
gif
|
||||||
|
^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]gif <keywords...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Retrieve the first search result from Giphy. This command requires API tokens
|
||||||
|
to be set via the :ref:`giphycreds <image-command-giphycreds>` command.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<keywords...>``: The keywords used to search Giphy.
|
||||||
|
|
||||||
|
.. _image-command-gifr:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
gifr
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]gifr <keywords...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Retrieve a random GIF from a Giphy search. This command requires API tokens
|
||||||
|
to be set via the :ref:`giphycreds <image-command-giphycreds>` command.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<keywords...>``: The keywords used to generate a random GIF.
|
||||||
|
|
||||||
|
.. _image-command-imgur:
|
||||||
|
|
||||||
|
^^^^^
|
||||||
|
imgur
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]imgur
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Retrieves pictures from Imgur. This command requires API tokens to be set
|
||||||
|
via the :ref:`imgurcreds <image-command-imgurcreds>` command.
|
||||||
|
|
||||||
|
.. _image-command-imgur-search:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
imgur search
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]imgur search [count=1] <terms...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Search for pictures on Imgur. This command requires API tokens to be set
|
||||||
|
via the :ref:`imgurcreds <image-command-imgurcreds>` command.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[count]``: How many images should be returned (maximum 5). Defaults to 1.
|
||||||
|
|
||||||
|
* ``<terms...>``: The terms used to search Imgur.
|
||||||
|
|
||||||
|
.. _image-command-imgur-subreddit:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
imgur subreddit
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]imgur subreddit <subreddit> [count=1] [sort_type=top] [window=day]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Get images from a subreddit. This command requires API tokens to be set
|
||||||
|
via the :ref:`imgurcreds <image-command-imgurcreds>` command.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<subreddit>``: The subreddit to get images from.
|
||||||
|
|
||||||
|
* ``[count]``: The number of images to return (maximum 5). Defaults to 1.
|
||||||
|
|
||||||
|
* ``[sort_type]``: New, or top results. Defaults to top.
|
||||||
|
|
||||||
|
* ``[window]``: The timeframe, can be the past day, week, month, year or all. Defaults to day.
|
||||||
|
|
||||||
|
.. _image-command-giphycreds:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
giphycreds
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]giphycreds
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Explains how to set GIPHY API tokens.
|
||||||
|
|
||||||
|
**Getting your API key**
|
||||||
|
|
||||||
|
1. Login (or create) a GIPHY account.
|
||||||
|
2. Visit `this page <https://developers.giphy.com/dashboard>`__.
|
||||||
|
3. Press 'Create an App'.
|
||||||
|
4. Click 'Select API', and then 'Next Step'.
|
||||||
|
5. Add an app name, for example 'Red'.
|
||||||
|
6. Add an app description, for example 'Used for Red's image cog'.
|
||||||
|
7. Click 'Create App'. You'll need to agree to the GIPHY API terms.
|
||||||
|
8. Copy the API Key.
|
||||||
|
9. In Discord, run the following command::
|
||||||
|
|
||||||
|
[p]set api GIPHY api_key <your_api_key_here>
|
||||||
|
|
||||||
|
.. _image-command-imgurcreds:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
imgurcreds
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]imgurcreds
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Explains how to set Imgur API tokens.
|
||||||
|
|
||||||
|
**Getting your API key**
|
||||||
|
|
||||||
|
1. Login to (or create) an Imgur account.
|
||||||
|
2. Visit `this page <https://api.imgur.com/oauth2/addclient>`__.
|
||||||
|
3. Add an app name for your application, for example 'Red'.
|
||||||
|
4. Select 'Anonymous usage without user authorization' for the auth type.
|
||||||
|
5. Set the authorization callback URL to ``https://localhost``
|
||||||
|
6. Leave the app website blank.
|
||||||
|
7. Enter a valid email address and a description.
|
||||||
|
8. Check the captcha box and click next.
|
||||||
|
9. Your Client ID will be on the next page.
|
||||||
|
10. In Discord, run the following command::
|
||||||
|
|
||||||
|
[p]set api imgur client_id <your_client_id_here>
|
||||||
763
docs/cog_guides/mod.rst
Normal file
@@ -0,0 +1,763 @@
|
|||||||
|
.. _mod:
|
||||||
|
|
||||||
|
===
|
||||||
|
Mod
|
||||||
|
===
|
||||||
|
|
||||||
|
This is the cog guide for the mod cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load mod
|
||||||
|
|
||||||
|
.. _mod-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
A range of highly customizable moderation tools used to protect your
|
||||||
|
guild from users who cannot follow the rules.
|
||||||
|
|
||||||
|
|
||||||
|
.. _mod-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _mod-command-ban:
|
||||||
|
|
||||||
|
^^^
|
||||||
|
ban
|
||||||
|
^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]ban <user> [days] [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Ban a user from this server and optionally delete days of messages.
|
||||||
|
|
||||||
|
``days`` is the amount of days of messages to cleanup on ban.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<user>``: The user to ban. |user-input|
|
||||||
|
* ``[days]``: The amount of days of messages to cleanup on ban. This parameter defaults to the defaultdays setting, or no days if this has not yet been configured.
|
||||||
|
* ``[reason]``: The reason why the user was banned (optional).
|
||||||
|
|
||||||
|
**Example Usage**
|
||||||
|
|
||||||
|
* ``[p]ban 428675506947227648 7 Continued to spam after told to stop.``
|
||||||
|
This will ban Twentysix and it will delete 7 days worth of messages.
|
||||||
|
* ``[p]ban @Twentysix 7 Continued to spam after told to stop.``
|
||||||
|
This will ban Twentysix and it will delete 7 days worth of messages.
|
||||||
|
|
||||||
|
A user ID should be provided if the user is not a member of this server.
|
||||||
|
If days is not a number, it's treated as the first word of the reason.
|
||||||
|
Minimum 0 days, maximum 7. If not specified, the defaultdays setting will be used instead.
|
||||||
|
|
||||||
|
.. _mod-command-kick:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
kick
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]kick <member> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Kick a user.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to kick. |member-input|
|
||||||
|
* ``[reason]``: The reason why the user was kicked (optional).
|
||||||
|
|
||||||
|
**Example Usage**
|
||||||
|
|
||||||
|
* ``[p]kick 428675506947227648 wanted to be kicked.``
|
||||||
|
This will kick Twentysix from the server.
|
||||||
|
* ``[p]kick @Twentysix wanted to be kicked.``
|
||||||
|
This will kick Twentysix from the server.
|
||||||
|
|
||||||
|
If a reason is specified, it will be the reason that shows up
|
||||||
|
in the audit log.
|
||||||
|
|
||||||
|
.. _mod-command-massban:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
massban
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]massban <user_ids...> [days] [reason]
|
||||||
|
|
||||||
|
.. tip:: Alias: ``hackban``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Mass bans user(s) from the server.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<user_ids...>``: The users to ban. This must be a list of user IDs separated by spaces.
|
||||||
|
* ``[days]``: The amount of days of messages to cleanup on massban.
|
||||||
|
* ``[reason]``: The reason why these users were banned.
|
||||||
|
|
||||||
|
**Example Usage**
|
||||||
|
|
||||||
|
* ``[p]massban 345628097929936898 57287406247743488 7 they broke all rules.``
|
||||||
|
This will ban all the added userids and delete 7 days worth of their messages.
|
||||||
|
|
||||||
|
.. _mod-command-modset:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
modset
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage server administration settings.
|
||||||
|
|
||||||
|
.. _mod-command-modset-defaultdays:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
modset defaultdays
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset defaultdays [days=0]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the default number of days worth of messages to be deleted when a user is banned.
|
||||||
|
|
||||||
|
The number of days must be between 0 and 7.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[days=0]``: The default number of days of messages to be deleted when a user is banned.
|
||||||
|
|
||||||
|
.. note:: This value must be between 0 and 7.
|
||||||
|
|
||||||
|
.. _mod-command-modset-defaultduration:
|
||||||
|
|
||||||
|
""""""""""""""""""""""
|
||||||
|
modset defaultduration
|
||||||
|
""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset defaultduration <duration>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the default time to be used when a user is tempbanned.
|
||||||
|
|
||||||
|
Accepts: seconds, minutes, hours, days, weeks
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<duration>``: The default duration for when a user is temporarily banned. Accepts seconds, minutes, hours, days or weeks.
|
||||||
|
|
||||||
|
**Example Usage**
|
||||||
|
|
||||||
|
* ``[p]modset defaultduration 7d12h10m``
|
||||||
|
* ``[p]modset defaultduration 7 days 12 hours 10 minutes``
|
||||||
|
|
||||||
|
.. _mod-command-modset-deletenames:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
modset deletenames
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset deletenames [confirmation=False]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete all stored usernames and nicknames.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<confirmation>``: Whether to delete all stored usernames and nicknames. |bool-input|
|
||||||
|
|
||||||
|
.. _mod-command-modset-deleterepeats:
|
||||||
|
|
||||||
|
""""""""""""""""""""
|
||||||
|
modset deleterepeats
|
||||||
|
""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset deleterepeats [repeats]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Enable auto-deletion of repeated messages.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[repeats]``: The number of repeated messages needed before further messages are deleted.
|
||||||
|
|
||||||
|
.. note:: Must be between 2 and 20. Set to -1 to disable this feature.
|
||||||
|
|
||||||
|
.. _mod-command-modset-dm:
|
||||||
|
|
||||||
|
"""""""""
|
||||||
|
modset dm
|
||||||
|
"""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset dm [enabled]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle whether a message should be sent to a user when they are kicked/banned.
|
||||||
|
|
||||||
|
If this option is enabled, the bot will attempt to DM the user with the guild name
|
||||||
|
and reason as to why they were kicked/banned.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[enabled]``: Whether a message should be sent to a user when they are kicked/banned. |bool-input|
|
||||||
|
|
||||||
|
.. _mod-command-modset-hierarchy:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
modset hierarchy
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset hierarchy
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle role hierarchy check for mods and admins.
|
||||||
|
|
||||||
|
..warning:: Disabling this setting will allow mods to take actions on users above them in the role hierarchy!
|
||||||
|
|
||||||
|
This is enabled by default.
|
||||||
|
|
||||||
|
.. _mod-command-modset-mentionspam:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
modset mentionspam
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset mentionspam
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage the automoderation settings for mentionspam.
|
||||||
|
|
||||||
|
.. _mod-command-modset-mentionspam-ban:
|
||||||
|
|
||||||
|
""""""""""""""""""""""
|
||||||
|
modset mentionspam ban
|
||||||
|
""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset mentionspam ban <max_mentions>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the autoban conditions for mention spam.
|
||||||
|
|
||||||
|
Users will be banned if they send any message which contains more than
|
||||||
|
``<max_mentions>`` mentions.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<max_mentions>``: Must be 0 or greater. Set to 0 to disable this feature.
|
||||||
|
|
||||||
|
.. _mod-command-modset-mentionspam-kick:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
modset mentionspam kick
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset mentionspam kick <max_mentions>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the autokick conditions for mention spam.
|
||||||
|
|
||||||
|
Users will be kicked if they send any message which contains more than
|
||||||
|
``<max_mentions>`` mentions.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<max_mentions>``: Must be 0 or greater. Set to 0 to disable this feature.
|
||||||
|
|
||||||
|
.. _mod-command-modset-mentionspam-strict:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
modset mentionspam strict
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset mentionspam strict [enabled]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Setting to account for duplicate mentions.
|
||||||
|
|
||||||
|
If enabled all mentions will count including duplicated mentions.
|
||||||
|
If disabled only unique mentions will count.
|
||||||
|
|
||||||
|
Use this command without any parameter to see the current setting.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[enabled]``: Whether all mentions will count, including duplicated mentions. |bool-input|
|
||||||
|
|
||||||
|
.. _mod-command-modset-mentionspam-warn:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
modset mentionspam warn
|
||||||
|
"""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset mentionspam warn <max_mentions>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets the autowarn conditions for mention spam.
|
||||||
|
|
||||||
|
Users will be warned if they send any messages which contain more than
|
||||||
|
``<max_mentions>`` mentions.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<max_mentions>``: Must be 0 or greater. Set to 0 to disable this feature.
|
||||||
|
|
||||||
|
.. _mod-command-modset-reinvite:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
modset reinvite
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset reinvite
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle whether an invite will be sent to a user when unbanned.
|
||||||
|
|
||||||
|
If this is True, the bot will attempt to create and send a single-use invite
|
||||||
|
to the newly-unbanned user.
|
||||||
|
|
||||||
|
.. _mod-command-modset-showsettings:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
modset showsettings
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset showsettings
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Show the current server administration settings.
|
||||||
|
|
||||||
|
.. _mod-command-modset-trackallnames:
|
||||||
|
|
||||||
|
""""""""""""""""""""
|
||||||
|
modset trackallnames
|
||||||
|
""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset trackallnames [enabled]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle whether all name changes should be tracked.
|
||||||
|
|
||||||
|
Toggling this off also overrides the tracknicknames setting.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[enabled]``: Whether all name changes should be tracked. |bool-input|
|
||||||
|
|
||||||
|
.. _mod-command-modset-tracknicknames:
|
||||||
|
|
||||||
|
"""""""""""""""""""""
|
||||||
|
modset tracknicknames
|
||||||
|
"""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modset tracknicknames [enabled]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle whether nickname changes should be tracked.
|
||||||
|
|
||||||
|
This setting will be overridden if trackallnames is disabled.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[enabled]``: Whether all nickname changes should be tracked. |bool-input|
|
||||||
|
|
||||||
|
.. _mod-command-movedeletedelay:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
movedeletedelay
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]movedeletedelay
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Move deletedelay settings to core
|
||||||
|
|
||||||
|
.. _mod-command-moveignoredchannels:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
moveignoredchannels
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]moveignoredchannels
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Move ignored channels and servers to core
|
||||||
|
|
||||||
|
.. _mod-command-names:
|
||||||
|
|
||||||
|
^^^^^
|
||||||
|
names
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]names <member>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Show previous names and nicknames of a member.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: |member-input|
|
||||||
|
|
||||||
|
.. _mod-command-rename:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
rename
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]rename <member> [nickname]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Change a member's nickname.
|
||||||
|
|
||||||
|
Leaving the nickname empty will remove it.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: |member-input|
|
||||||
|
* ``[nickname]``: The new nickname for the member.
|
||||||
|
|
||||||
|
.. _mod-command-slowmode:
|
||||||
|
|
||||||
|
^^^^^^^^
|
||||||
|
slowmode
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]slowmode [interval=0:00:00]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Changes channel's slowmode setting.
|
||||||
|
|
||||||
|
Interval can be anything from 0 seconds to 6 hours.
|
||||||
|
Use without parameters to disable.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[interval=0:00:00]``: The time for the channel's slowmode settings.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Interval can be anything from 0 seconds to 6 hours.
|
||||||
|
Use without parameters to disable.
|
||||||
|
|
||||||
|
.. _mod-command-softban:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
softban
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]softban <member> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Kick a member and delete 1 day's worth of their messages.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to softban. |member-input-quotes|
|
||||||
|
* ``[reason]``: Reason for the kick (optional).
|
||||||
|
|
||||||
|
.. _mod-command-tempban:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
tempban
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]tempban <member> [duration] [days] [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Temporarily ban a user from this server.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to temporarily ban. |member-input-quotes|
|
||||||
|
* ``[duration]``: The amount of time the user should be banned for.
|
||||||
|
* ``[days]``: The amount of days of messages to cleanup on tempban.
|
||||||
|
* ``[reason]``: The reason for the tempban (optional).
|
||||||
|
|
||||||
|
**Example Usage**
|
||||||
|
|
||||||
|
* ``[p]tempban @Twentysix Because I say so``
|
||||||
|
This will ban Twentysix for the default amount of time set by an administrator.
|
||||||
|
* ``[p]tempban @Twentysix 15m You need a timeout``
|
||||||
|
This will ban Twentysix for 15 minutes.
|
||||||
|
* ``[p]tempban 428675506947227648 1d2h15m 5 Evil person``
|
||||||
|
This will ban the user for 1 day 2 hours 15 minutes and will delete the last 5 days of their messages.
|
||||||
|
|
||||||
|
.. _mod-command-unban:
|
||||||
|
|
||||||
|
^^^^^
|
||||||
|
unban
|
||||||
|
^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]unban <user_id> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Unban a user from this server.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<user_id>``: |user-input|
|
||||||
|
* ``[reason]``: The reason for the unban (optional).
|
||||||
|
|
||||||
|
.. _mod-command-userinfo:
|
||||||
|
|
||||||
|
^^^^^^^^
|
||||||
|
userinfo
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]userinfo [member]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Show information about a user.
|
||||||
|
|
||||||
|
This includes fields for status, discord join date, server
|
||||||
|
join date, voice state and previous names/nicknames.
|
||||||
|
|
||||||
|
If the user has no roles, previous names or previous nicknames,
|
||||||
|
these fields will be omitted.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[member]``: |member-input|
|
||||||
|
|
||||||
|
.. _mod-command-voiceban:
|
||||||
|
|
||||||
|
^^^^^^^^
|
||||||
|
voiceban
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]voiceban <member> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Ban a user from speaking and listening in the server's voice channels.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to ban from voice. |member-input|
|
||||||
|
* ``[reason]``: The reason for the voiceban (optional).
|
||||||
|
|
||||||
|
.. _mod-command-voicekick:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
voicekick
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]voicekick <member> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Kick a member from a voice channel.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: |member-input|
|
||||||
|
* ``[reason]``: The reason for the voicekick (optional).
|
||||||
|
|
||||||
|
.. _mod-command-voiceunban:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
voiceunban
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]voiceunban <member> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Unban a user from speaking and listening in the server's voice channels.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to unban from voice. |member-input-quotes|
|
||||||
|
* ``[reason]``: The reason for the voiceunban (optional).
|
||||||
191
docs/cog_guides/modlog.rst
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
.. _modlog:
|
||||||
|
|
||||||
|
======
|
||||||
|
ModLog
|
||||||
|
======
|
||||||
|
|
||||||
|
This is the cog guide for the modlog cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load modlog
|
||||||
|
|
||||||
|
.. _modlog-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
Manage log channels for moderation actions.
|
||||||
|
|
||||||
|
|
||||||
|
.. _modlog-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _modlog-command-case:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
case
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]case <number>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Show the specified case.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<case>``: The case number to get information for.
|
||||||
|
|
||||||
|
.. _modlog-command-casesfor:
|
||||||
|
|
||||||
|
^^^^^^^^
|
||||||
|
casesfor
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]casesfor <member>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Display cases for the specified member.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to get cases for. |member-input|
|
||||||
|
|
||||||
|
.. _modlog-command-listcases:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
listcases
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]listcases <member>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List cases for the specified member.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to get cases for. |member-input|
|
||||||
|
|
||||||
|
.. _modlog-command-modlogset:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
modlogset
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modlogset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage modlog settings.
|
||||||
|
|
||||||
|
.. _modlog-command-modlogset-cases:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
modlogset cases
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modlogset cases [action]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Enable or disable case creation for a mod action.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[action]``: The action to enable or disable case creation for.
|
||||||
|
|
||||||
|
.. _modlog-command-modlogset-modlog:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
modlogset modlog
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modlogset modlog [channel]
|
||||||
|
|
||||||
|
.. tip:: Alias: ``modlogset channel``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set a channel as the modlog.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[channel]``: The channel to set as the modlog. If omitted, the modlog will be disabled.
|
||||||
|
|
||||||
|
.. _modlog-command-modlogset-resetcases:
|
||||||
|
|
||||||
|
""""""""""""""""""""
|
||||||
|
modlogset resetcases
|
||||||
|
""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]modlogset resetcases
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Reset all modlog cases in this server.
|
||||||
|
|
||||||
|
.. _modlog-command-reason:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
reason
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]reason [case] <reason>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Specify a reason for a modlog case.
|
||||||
|
|
||||||
|
Please note that you can only edit cases you are
|
||||||
|
the owner of unless you are a mod, admin or server owner.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[case]``: The case number to update the reason for.
|
||||||
|
* ``<reason>``: The new reason for the specified case.
|
||||||
|
|
||||||
|
.. note:: If no case number is specified, the latest case will be used.
|
||||||
410
docs/cog_guides/mutes.rst
Normal file
@@ -0,0 +1,410 @@
|
|||||||
|
.. _mutes:
|
||||||
|
|
||||||
|
=====
|
||||||
|
Mutes
|
||||||
|
=====
|
||||||
|
|
||||||
|
This is the cog guide for the mutes cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load mutes
|
||||||
|
|
||||||
|
.. _mutes-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
Mute users temporarily or indefinitely.
|
||||||
|
|
||||||
|
.. _mutes-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _mutes-command-activemutes:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
activemutes
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]activemutes
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Displays active mutes on this server.
|
||||||
|
|
||||||
|
.. _mutes-command-mute:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
mute
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]mute <users...> [time_and_reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Mute users.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
* ``[p]mute @member1 @member2 spam 5 hours``
|
||||||
|
* ``[p]mute @member1 3 days``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
|
||||||
|
* ``[time_and_reason]``: The time and reason. If no time is provided, the mute will use the default set time or indefinite if this hasn't been configured.
|
||||||
|
|
||||||
|
.. _mutes-command-mutechannel:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
mutechannel
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]mutechannel <users...> [time_and_reason]
|
||||||
|
|
||||||
|
.. tip:: Alias: ``channelmute``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Mute a user in the current text channel.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
* ``[p]mutechannel @member1 @member2 spam 5 hours``
|
||||||
|
* ``[p]mutechannel @member1 3 days``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
|
||||||
|
* ``[time_and_reason]``: The time and reason. If no time is provided, the mute will use the default set time or indefinite if this hasn't been configured.
|
||||||
|
|
||||||
|
.. _mutes-command-muteset:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
muteset
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Mute settings.
|
||||||
|
|
||||||
|
.. _mutes-command-muteset-defaulttime:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
muteset defaulttime
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset defaulttime [time]
|
||||||
|
|
||||||
|
.. tip:: Alias: ``muteset time``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the default mute time for the mute command.
|
||||||
|
|
||||||
|
If no time interval is provided this will be cleared.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[time]``: The length of time for a default mute.
|
||||||
|
|
||||||
|
.. _mutes-command-muteset-forcerole:
|
||||||
|
|
||||||
|
"""""""""""""""""
|
||||||
|
muteset forcerole
|
||||||
|
"""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset forcerole <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Whether or not to force role only mutes on the bot.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<true_or_false>``: Whether to enable or disable this setting, must provide ``true`` or ``false``.
|
||||||
|
|
||||||
|
.. _mutes-command-muteset-makerole:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
muteset makerole
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset makerole <name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Create a Muted role.
|
||||||
|
|
||||||
|
This will create a role and apply overwrites to all available channels
|
||||||
|
to more easily setup muting a user.
|
||||||
|
|
||||||
|
If you already have a muted role created on the server use
|
||||||
|
``[p]muteset role ROLE_NAME_HERE``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<name>``: The name of the muted role to create.
|
||||||
|
|
||||||
|
.. _mutes-command-muteset-notification:
|
||||||
|
|
||||||
|
""""""""""""""""""""
|
||||||
|
muteset notification
|
||||||
|
""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset notification [channel]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the notification channel for automatic unmute issues.
|
||||||
|
|
||||||
|
If no channel is provided this will be cleared and notifications
|
||||||
|
about issues when unmuting users will not be sent anywhere.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[channel]``: The channel to receive unmute issue updates. |channel-input|
|
||||||
|
|
||||||
|
.. _mutes-command-muteset-role:
|
||||||
|
|
||||||
|
""""""""""""
|
||||||
|
muteset role
|
||||||
|
""""""""""""
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset role [role]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets the role to be applied when muting a user.
|
||||||
|
|
||||||
|
If no role is setup the bot will attempt to mute a user by setting
|
||||||
|
channel overwrites in all channels to prevent the user from sending messages.
|
||||||
|
|
||||||
|
.. Note::
|
||||||
|
|
||||||
|
If no role is setup a user may be able to leave the server
|
||||||
|
and rejoin no longer being muted.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[role]``: The role for muted users to receive. |role-input|
|
||||||
|
|
||||||
|
.. _mutes-command-muteset-senddm:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
muteset senddm
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset senddm <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set whether mute notifications should be sent to users in DMs.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<true_or_false>``: Whether to enable or disable this setting, must provide ``true`` or ``false``.
|
||||||
|
|
||||||
|
.. _mutes-command-muteset-settings:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
muteset settings
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset settings
|
||||||
|
|
||||||
|
.. tip:: Alias: ``muteset showsettings``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows the current mute settings for this guild.
|
||||||
|
|
||||||
|
.. _mutes-command-muteset-showmoderator:
|
||||||
|
|
||||||
|
"""""""""""""""""""""
|
||||||
|
muteset showmoderator
|
||||||
|
"""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]muteset showmoderator <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Decide whether the name of the moderator muting a user should be included in the DM to that user.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<true_or_false>``: Whether to enable or disable this setting, must provide ``true`` or ``false``.
|
||||||
|
|
||||||
|
.. _mutes-command-unmute:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
unmute
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]unmute <users...> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Unmute users.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
|
||||||
|
* ``[reason]``: The reason for the unmute.
|
||||||
|
|
||||||
|
.. _mutes-command-unmutechannel:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
unmutechannel
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]unmutechannel <users...> [reason]
|
||||||
|
|
||||||
|
.. tip:: Alias: ``channelunmute``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Unmute a user in this channel.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
|
||||||
|
* ``[reason]``: The reason for the unmute.
|
||||||
|
|
||||||
|
.. _mutes-command-voicemute:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
voicemute
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]voicemute <users...> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Mute a user in their current voice channel.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
* ``[p]voicemute @member1 @member2 spam 5 hours``
|
||||||
|
* ``[p]voicemute @member1 3 days``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
|
||||||
|
* ``[time_and_reason]``: The time and reason. If no time is provided, the mute will use the default set time or indefinite if this hasn't been configured.
|
||||||
|
|
||||||
|
.. _mutes-command-voiceunmute:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
voiceunmute
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]voiceunmute <users...> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Unmute a user in their current voice channel.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<users...>``: A space separated list of usernames, ID's, or mentions.
|
||||||
|
* ``[reason]``: The reason for the unmute.
|
||||||
440
docs/cog_guides/permissions.rst
Normal file
@@ -0,0 +1,440 @@
|
|||||||
|
.. _permissions:
|
||||||
|
|
||||||
|
===========
|
||||||
|
Permissions
|
||||||
|
===========
|
||||||
|
|
||||||
|
This is the cog guide for the permissions cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load permissions
|
||||||
|
|
||||||
|
.. _permissions-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
Customise permissions for commands and cogs.
|
||||||
|
|
||||||
|
This cog extends the default permission model of the bot. By default, many commands are restricted based on what the command can do.
|
||||||
|
This cog allows you to refine some of those restrictions. You can allow wider or narrower access to most commands using it. You cannot, however, change the restrictions on owner-only commands.
|
||||||
|
|
||||||
|
When additional rules are set using this cog, those rules will be checked prior to checking for the default restrictions of the command.
|
||||||
|
Global rules (set by the owner) are checked first, then rules set for servers. If multiple global or server rules apply to the case, the order they are checked in is:
|
||||||
|
|
||||||
|
1. Rules about a user.
|
||||||
|
2. Rules about the voice channel a user is in.
|
||||||
|
3. Rules about the text channel a command was issued in.
|
||||||
|
4. Rules about a role the user has (The highest role they have with a rule will be used).
|
||||||
|
5. Rules about the server a user is in (Global rules only).
|
||||||
|
|
||||||
|
|
||||||
|
.. _permissions-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _permissions-command-permissions:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
permissions
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Command permission management tools.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-acl:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
permissions acl
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions acl
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage permissions with YAML files.
|
||||||
|
|
||||||
|
.. tip:: See :ref:`here <cog_permissions>` for more information with configuring these yaml files.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-acl-getglobal:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
permissions acl getglobal
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions acl getglobal
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Get a YAML file detailing all global rules.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-acl-getserver:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
permissions acl getserver
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions acl getserver
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Get a YAML file detailing all rules in this server.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-acl-setglobal:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
permissions acl setglobal
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions acl setglobal
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set global rules with a YAML file.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
This will override reset *all* global rules
|
||||||
|
to the rules specified in the uploaded file.
|
||||||
|
|
||||||
|
This does not validate the names of commands and cogs before
|
||||||
|
setting the new rules.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-acl-setserver:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
permissions acl setserver
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions acl setserver
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set rules for this server with a YAML file.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
This will override reset *all* rules in this
|
||||||
|
server to the rules specified in the uploaded file.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-acl-updateglobal:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
permissions acl updateglobal
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions acl updateglobal
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Update global rules with a YAML file.
|
||||||
|
|
||||||
|
This won't touch any rules not specified in the YAML
|
||||||
|
file.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-acl-updateserver:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
permissions acl updateserver
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions acl updateserver
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Update rules for this server with a YAML file.
|
||||||
|
|
||||||
|
This won't touch any rules not specified in the YAML
|
||||||
|
file.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-acl-yamlexample:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""""
|
||||||
|
permissions acl yamlexample
|
||||||
|
"""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions acl yamlexample
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sends an example of the yaml layout for permissions
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-addglobalrule:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
permissions addglobalrule
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions addglobalrule <allow_or_deny> <cog_or_command> <who_or_what...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add a global rule to a cog or command.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<allow_or_deny>``: This should be one of "allow" or "deny".
|
||||||
|
* ``<cog_or_command>``: The cog or command to add the rule to. This is case sensitive.
|
||||||
|
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-addserverrule:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
permissions addserverrule
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions addserverrule <allow_or_deny> <cog_or_command> <who_or_what...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Add a rule to a cog or command in this server.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<allow_or_deny>``: This should be one of "allow" or "deny".
|
||||||
|
* ``<cog_or_command>``: The cog or command to add the rule to. This is case sensitive.
|
||||||
|
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-canrun:
|
||||||
|
|
||||||
|
""""""""""""""""""
|
||||||
|
permissions canrun
|
||||||
|
""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions canrun <user> <command>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Check if a user can run a command.
|
||||||
|
|
||||||
|
This will take the current context into account, such as the
|
||||||
|
server and text channel.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<user>``: The user to check permissions for.
|
||||||
|
* ``<command>``: The command to check whether the user can run it or not.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-clearglobalrules:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
permissions clearglobalrules
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions clearglobalrules
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Reset all global rules.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-clearserverrules:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
permissions clearserverrules
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions clearserverrules
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Reset all rules in this server.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-explain:
|
||||||
|
|
||||||
|
"""""""""""""""""""
|
||||||
|
permissions explain
|
||||||
|
"""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions explain
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Explain how permissions works.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-removeglobalrule:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
permissions removeglobalrule
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions removeglobalrule <cog_or_command> <who_or_what...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Remove a global rule from a command.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<cog_or_command>``: The cog or command to remove the rule from. This is case sensitive.
|
||||||
|
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-removeserverrule:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
permissions removeserverrule
|
||||||
|
""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions removeserverrule <cog_or_command> <who_or_what...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Remove a server rule from a command.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<cog_or_command>``: The cog or command to remove the rule from. This is case sensitive.
|
||||||
|
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-setdefaultglobalrule:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""
|
||||||
|
permissions setdefaultglobalrule
|
||||||
|
""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions setdefaultglobalrule <allow_or_deny> <cog_or_command>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the default global rule for a command or a cog.
|
||||||
|
|
||||||
|
This is the rule a command will default to when no other rule
|
||||||
|
is found.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<cog_or_command>``: The cog or command to add the rule to. This is case sensitive.
|
||||||
|
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
|
||||||
|
|
||||||
|
.. _permissions-command-permissions-setdefaultserverrule:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""
|
||||||
|
permissions setdefaultserverrule
|
||||||
|
""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]permissions setdefaultserverrule <allow_or_deny> <cog_or_command>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the default rule for a command or a cog in this server.
|
||||||
|
|
||||||
|
This is the rule a command will default to when no other rule
|
||||||
|
is found.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<cog_or_command>``: The cog or command to add the rule to. This is case sensitive.
|
||||||
|
* ``<who_or_what...>``: One or more users, channels or roles the rule is for.
|
||||||
141
docs/cog_guides/reports.rst
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
.. _reports:
|
||||||
|
|
||||||
|
=======
|
||||||
|
Reports
|
||||||
|
=======
|
||||||
|
|
||||||
|
This is the cog guide for the reports cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load reports
|
||||||
|
|
||||||
|
.. _reports-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
Create user reports that server staff can respond to.
|
||||||
|
|
||||||
|
Users can open reports using ``[p]report``. These are then sent
|
||||||
|
to a channel in the server for staff, and the report creator
|
||||||
|
gets a DM. Both can be used to communicate.
|
||||||
|
|
||||||
|
|
||||||
|
.. _reports-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _reports-command-report:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
report
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]report [text]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Send a report.
|
||||||
|
|
||||||
|
Use without arguments for interactive reporting, or do
|
||||||
|
``[p]report [text]`` to use it non-interactively.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[text]``: The content included within the report.
|
||||||
|
|
||||||
|
.. _reports-command-report-interact:
|
||||||
|
|
||||||
|
"""""""""""""""
|
||||||
|
report interact
|
||||||
|
"""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]report interact <ticket_number>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Open a message tunnel.
|
||||||
|
|
||||||
|
This tunnel will forward things you say in this channel
|
||||||
|
to the ticket opener's direct messages.
|
||||||
|
|
||||||
|
Tunnels do not persist across bot restarts.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<ticket_number>``: The ticket number to open the tunnel in.
|
||||||
|
|
||||||
|
.. _reports-command-reportset:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
reportset
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]reportset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage Reports.
|
||||||
|
|
||||||
|
.. _reports-command-reportset-output:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
reportset output
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]reportset output <channel>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the channel where reports will be sent.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<channel>``: |channel-input|
|
||||||
|
|
||||||
|
.. _reports-command-reportset-toggle:
|
||||||
|
|
||||||
|
""""""""""""""""
|
||||||
|
reportset toggle
|
||||||
|
""""""""""""""""
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]reportset toggle
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Enable or disable reporting for this server.
|
||||||
517
docs/cog_guides/streams.rst
Normal file
@@ -0,0 +1,517 @@
|
|||||||
|
.. _streams:
|
||||||
|
|
||||||
|
=======
|
||||||
|
Streams
|
||||||
|
=======
|
||||||
|
|
||||||
|
This is the cog guide for the Streams cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load streams
|
||||||
|
|
||||||
|
.. _streams-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog provides commands to check if a channel
|
||||||
|
on a supported streaming service is live as well
|
||||||
|
as to create and manage alerts for channels.
|
||||||
|
|
||||||
|
Supported streaming services are:
|
||||||
|
|
||||||
|
- Twitch
|
||||||
|
- Youtube
|
||||||
|
- Picarto
|
||||||
|
|
||||||
|
Youtube and Twitch both require setting authentication
|
||||||
|
details for commands for those services to work. See
|
||||||
|
:ref:`[p]streamset twitchtoken <streams-command-streamset-twitchtoken>` and
|
||||||
|
:ref:`[p]streamset youtubekey <streams-command-streamset-youtubekey>`
|
||||||
|
for more information.
|
||||||
|
|
||||||
|
.. _streams-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _streams-command-streamset:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
streamset
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage stream alert settings.
|
||||||
|
|
||||||
|
.. _streams-command-streamset-autodelete:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset autodelete
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset autodelete <on_off>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggles automatic deletion of stream alerts when the
|
||||||
|
stream goes offline.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<on_off>``: Whether to turn on or off
|
||||||
|
|
||||||
|
.. _streams-command-streamset-ignorereruns:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset ignorereruns
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset ignorereruns
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggles excluding reruns from the alerts.
|
||||||
|
|
||||||
|
At this time, this functionality only applies to Twitch stream alerts.
|
||||||
|
|
||||||
|
.. _streams-command-streamset-mention:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
streamset mention
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset mention
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle mentions for stream alerts.
|
||||||
|
|
||||||
|
.. _streams-command-streamset-mention-all:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset mention all
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset mention all
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle mentioning ``@everyone`` for stream alerts.
|
||||||
|
|
||||||
|
.. _streams-command-streamset-mention-online:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset mention online
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset mention online
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle mentioning ``@here`` for stream alerts.
|
||||||
|
|
||||||
|
.. _streams-command-streamset-mention-role:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset mention role
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset mention role <role>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle mentioning a role for stream alerts.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<role>``: The role to toggle a mention for. |role-input|
|
||||||
|
|
||||||
|
.. _streams-command-streamset-message:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
streamset message
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset message
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage custom messages for stream alerts.
|
||||||
|
|
||||||
|
.. _streams-command-streamset-message-mention:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset message mention
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset message mention <message>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets a stream alert message for when mentions are enabled.
|
||||||
|
|
||||||
|
Use ``{mention}`` in the message to insert the selected mentions.
|
||||||
|
|
||||||
|
Use ``{stream}`` in the message to insert the channel or user name.
|
||||||
|
|
||||||
|
Use ``{stream.display_name}`` in the message to insert the channel's display name
|
||||||
|
(on Twitch, this may be different from ``{stream}``).
|
||||||
|
|
||||||
|
For example: ``[p]streamset message mention {mention}, {stream.display_name} is live!``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<message>``: Your alert message
|
||||||
|
|
||||||
|
.. _streams-command-streamset-message-nomention:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset message nomention
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset message nomention <message>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets a stream alert message for when mentions are disabled.
|
||||||
|
|
||||||
|
Use ``{stream}`` in the message to insert the channel or user name.
|
||||||
|
|
||||||
|
Use ``{stream.display_name}`` in the message to insert the channel's display name
|
||||||
|
(on Twitch, this may be different from ``{stream}``).
|
||||||
|
|
||||||
|
For example: ``[p]streamset message nomention {stream.display_name} is live!``
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<message>``: Your alert message
|
||||||
|
|
||||||
|
.. _streams-command-streamset-message-clear:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset message clear
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset message clear
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Resets the stream alert messages for the server.
|
||||||
|
|
||||||
|
.. _streams-command-streamset-timer:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
streamset timer
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset timer <refresh_timer>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets the refresh time for stream alerts (how frequently they will be checked).
|
||||||
|
|
||||||
|
This cannot be set to anything less than 60 seconds.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<refresh_timer>``: The frequency with which streams should be checked, in seconds
|
||||||
|
|
||||||
|
.. _streams-command-streamset-youtubekey:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset youtubekey
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset youtubekey
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Explains how to set the YouTube token.
|
||||||
|
|
||||||
|
To get one, do the following:
|
||||||
|
|
||||||
|
1. Create a project
|
||||||
|
(see https://support.google.com/googleapi/answer/6251787 for details)
|
||||||
|
|
||||||
|
2. Enable the YouTube Data API v3
|
||||||
|
(see https://support.google.com/googleapi/answer/6158841 for instructions)
|
||||||
|
|
||||||
|
3. Set up your API key
|
||||||
|
(see https://support.google.com/googleapi/answer/6158862 for instructions)
|
||||||
|
|
||||||
|
4. Copy your API key and run the command ``[p]set api youtube api_key <your_api_key_here>``
|
||||||
|
|
||||||
|
.. attention:: These tokens are sensitive and should only be
|
||||||
|
used in a private channel or in DM with the bot.
|
||||||
|
|
||||||
|
.. _streams-command-streamset-twitchtoken:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamset twitchtoken
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamset twitchtoken
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Explains how to set the Twitch token.
|
||||||
|
|
||||||
|
To set the Twitch API tokens, follow these steps:
|
||||||
|
|
||||||
|
1. Go to this page: https://dev.twitch.tv/dashboard/apps.
|
||||||
|
|
||||||
|
2. Click Register Your Application.
|
||||||
|
|
||||||
|
3. Enter a name, set the OAuth Redirect URI to http://localhost, and select an Application Category of your choosing.
|
||||||
|
|
||||||
|
4. Click Register.
|
||||||
|
|
||||||
|
5. Copy your client ID and your client secret into:
|
||||||
|
``[p]set api twitch client_id <your_client_id_here> client_secret <your_client_secret_here>``
|
||||||
|
|
||||||
|
.. attention:: These tokens are sensitive and should only be
|
||||||
|
used in a private channel or in DM with the bot.
|
||||||
|
|
||||||
|
.. _streams-command-picarto:
|
||||||
|
|
||||||
|
^^^^^^^
|
||||||
|
picarto
|
||||||
|
^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]picarto <channel_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Check if a Picarto channel is live.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<channel_name>``: The Picarto channel to check.
|
||||||
|
|
||||||
|
.. _streams-command-twitchstream:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
twitchstream
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]twitchstream <channel_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Check if a Twitch channel is live.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<channel_name>``: The Twitch channel to check.
|
||||||
|
|
||||||
|
.. _streams-command-youtubestream:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
youtubestream
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]youtubestream <channel_id_or_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Check if a YouTube channel is live.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<channel_id_or_name>``: The name or id of the YouTube channel to be checked.
|
||||||
|
|
||||||
|
.. _streams-command-streamalert:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
streamalert
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamalert
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage automated stream alerts.
|
||||||
|
|
||||||
|
.. _streams-command-streamalert-list:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
streamalert list
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamalert list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Lists all active alerts in the current server.
|
||||||
|
|
||||||
|
.. _streams-command-streamalert-picarto:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamalert picarto
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamalert picarto <channel_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle alerts in the current channel for the
|
||||||
|
specified Picarto channel.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<channel_name>``: The Picarto channel to toggle the alert for.
|
||||||
|
|
||||||
|
.. _streams-command-streamalert-twitch-channel:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamalert twitch channel
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamalert twitch channel <channel_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle alerts in the current channel for the
|
||||||
|
specified Twitch channel.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<channel_name>``: The Twitch channel to toggle the alert for.
|
||||||
|
|
||||||
|
.. _streams-command-streamalert-youtube:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
streamalert youtube
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamalert youtube <channel_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Toggle alerts in the current channel for the
|
||||||
|
specified Picarto channel.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<channel_id_or_name>``: The name or id of the YouTube channel to be checked.
|
||||||
|
|
||||||
|
.. _streams-command-streamalert-stop:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
streamalert stop
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]streamalert stop [disable-all=No]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Disable all stream alerts for this channel or server.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[disable-all]``: Defaults to ``no``. If this is set to ``yes``, all
|
||||||
|
stream alerts in the current server will be disabled.
|
||||||
|
If ``no`` or unspecified, all stream alerts in the
|
||||||
|
current channel will be stopped.
|
||||||
439
docs/cog_guides/trivia.rst
Normal file
@@ -0,0 +1,439 @@
|
|||||||
|
.. _trivia:
|
||||||
|
|
||||||
|
======
|
||||||
|
Trivia
|
||||||
|
======
|
||||||
|
|
||||||
|
This is the cog guide for the trivia cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load trivia
|
||||||
|
|
||||||
|
.. _trivia-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
This cog allows for playing trivia with others. You may
|
||||||
|
choose to play just one category at a time or choose
|
||||||
|
multiple to add variety to your game. You can even create
|
||||||
|
your own lists!
|
||||||
|
|
||||||
|
.. _trivia-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
Here is a list of all of the commands for this cog:
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset:
|
||||||
|
|
||||||
|
^^^^^^^^^
|
||||||
|
triviaset
|
||||||
|
^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Commands for managing trivia settings.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-botplays:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset botplays
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset botplays <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets whether the bot gains a point if nobody guesses correctly.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<true_or_false>`` If ``true``, the bot will gain a point if nobody
|
||||||
|
guesses correctly, otherwise it will not.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-maxscore:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset maxscore
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset maxscore <score>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets the total points required to win.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<score>`` The amount of points required to win.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-override:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset override
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset override <enabled>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Allow/disallow trivia lists to override the settings.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<enabled>`` Whether trivia lists should be able to override settings.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-payout:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
triviaset payout
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset payout <multiplier>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets the payout multiplier.
|
||||||
|
|
||||||
|
If a user wins trivia when at least 3 users are playing, they will receive credits;
|
||||||
|
the amount received is determined by multiplying their total score by this multiplier.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<multiplier>`` The amount to multiply the winner's score by to determine payout.
|
||||||
|
This can be any positive decimal number. Setting this to 0 will disable.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-revealanswer:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset revealanswer
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset revealanswer <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets whether or not the answer is revealed if the time limit for answering runs out.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<true_or_false>`` If ``true``, the bot will reveal the answer if there is no
|
||||||
|
correct guess within the time limit.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-showsettings:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset showsettings
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset showsettings
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows the current trivia settings.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-stopafter:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset stopafter
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset stopafter <seconds>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets how long the bot should wait before stopping the trivia
|
||||||
|
session due to lack of response.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<seconds>`` The number of seconds to wait before stopping the session.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-timelimit:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset timelimit
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |mod-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset timelimit <seconds>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Sets the maximum time permitted to answer a question.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<seconds>`` The number of seconds to wait for an answer.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-custom:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
triviaset custom
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset custom
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage custom trivia lists.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
Looking to learn how to create your own trivia lists?
|
||||||
|
See :ref:`here <guide_trivia_list_creation>` for more information.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-custom-upload:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset custom upload
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset custom upload
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Upload a custom trivia list. The bot will prompt you to upload
|
||||||
|
your list as an attachment in Discord.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-custom-list:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset custom list
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset custom list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List all uploaded custom trivia lists.
|
||||||
|
|
||||||
|
.. _trivia-command-triviaset-custom-delete:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
triviaset custom delete
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |owner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]triviaset custom delete <name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete a custom trivia list.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<name>`` The name of the custom list to be deleted.
|
||||||
|
|
||||||
|
.. _trivia-command-trivia:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
trivia
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]trivia <categories...>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Start a trivia session on the specified category.
|
||||||
|
|
||||||
|
Multiple categories can be listed, in which case the trivia session
|
||||||
|
will use all of the specified lists to select questions from.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``<categories...>`` The category to play. Can be multiple.
|
||||||
|
|
||||||
|
.. _trivia-command-trivia-leaderboard:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
trivia leaderboard
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]trivia leaderboard
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Shows the trivia leaderboard. Defaults to the top ten in the
|
||||||
|
current server, sorted by total wins. The subcommands provide
|
||||||
|
more customized leaderboards.
|
||||||
|
|
||||||
|
.. _trivia-command-trivia-leaderboard-global:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
trivia leaderboard global
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]trivia leaderboard global [sort_by=wins] [top=10]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
The global trivia leaderboard.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``[sort_by=wins]`` The method by which to sort the leaderboard (defaults to wins). Can be one of:
|
||||||
|
|
||||||
|
- ``wins`` Total wins
|
||||||
|
- ``avg`` Average score
|
||||||
|
- ``total`` Total correct answers from all sessions
|
||||||
|
- ``games`` Total games played.
|
||||||
|
|
||||||
|
- ``[top=10]`` The number of ranks to show on the leaderboard. Defaults to 10
|
||||||
|
|
||||||
|
.. _trivia-command-trivia-leaderboard-server:
|
||||||
|
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
trivia leaderboard server
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]trivia leaderboard server [sort_by=wins] [top=10]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
The trivia leaderboard for this server.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
- ``[sort_by=wins]`` The method by which to sort the leaderboard (defaults to wins). Can be one of:
|
||||||
|
|
||||||
|
- ``wins`` Total wins
|
||||||
|
- ``avg`` Average score
|
||||||
|
- ``total`` Total correct answers from all sessions
|
||||||
|
- ``games`` Total games played.
|
||||||
|
|
||||||
|
- ``[top=10]`` The number of ranks to show on the leaderboard. Defaults to 10
|
||||||
|
|
||||||
|
.. _trivia-command-trivia-list:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
trivia list
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]trivia list
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Lists the available trivia categories
|
||||||
|
|
||||||
|
.. _trivia-command-trivia-stop:
|
||||||
|
|
||||||
|
^^^^^^^^^^^
|
||||||
|
trivia stop
|
||||||
|
^^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]trivia stop
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Stops an ongoing trivia session.
|
||||||
403
docs/cog_guides/warnings.rst
Normal file
@@ -0,0 +1,403 @@
|
|||||||
|
.. _warnings:
|
||||||
|
|
||||||
|
========
|
||||||
|
Warnings
|
||||||
|
========
|
||||||
|
|
||||||
|
This is the cog guide for the warnings cog. You will
|
||||||
|
find detailed docs about usage and commands.
|
||||||
|
|
||||||
|
``[p]`` is considered as your prefix.
|
||||||
|
|
||||||
|
.. note:: To use this cog, load it by typing this::
|
||||||
|
|
||||||
|
[p]load warnings
|
||||||
|
|
||||||
|
.. _warnings-usage:
|
||||||
|
|
||||||
|
-----
|
||||||
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
|
Warn misbehaving users and take automated actions.
|
||||||
|
|
||||||
|
|
||||||
|
.. _warnings-commands:
|
||||||
|
|
||||||
|
--------
|
||||||
|
Commands
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. _warnings-command-actionlist:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
actionlist
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]actionlist
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List all configured automated actions for Warnings.
|
||||||
|
|
||||||
|
.. _warnings-command-mywarnings:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
mywarnings
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]mywarnings
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List warnings for yourself.
|
||||||
|
|
||||||
|
.. _warnings-command-reasonlist:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
reasonlist
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]reasonlist
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List all configured reasons for Warnings.
|
||||||
|
|
||||||
|
.. _warnings-command-unwarn:
|
||||||
|
|
||||||
|
^^^^^^
|
||||||
|
unwarn
|
||||||
|
^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]unwarn <member> <warn_id> [reason]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Remove a warning from a member.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to remove the warning from. |member-input-quotes|
|
||||||
|
* ``<warn_id>``: The warning ID to remove from the member.
|
||||||
|
* ``[reason]``: The reason for unwarning this member.
|
||||||
|
|
||||||
|
.. _warnings-command-warn:
|
||||||
|
|
||||||
|
^^^^
|
||||||
|
warn
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warn <member> [points=1] <reason>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Warn the user for the specified reason.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to warn. |member-input-quotes|
|
||||||
|
* ``[points]``: The number of points the warning should be for. If no number is supplied, 1 point will be given. Pre-set warnings disregard this.
|
||||||
|
* ``<reason>``: The reason for the warning. This can be a registered reason, or a custom reason if ``[p]warningset allowcustomreasons`` is set.
|
||||||
|
|
||||||
|
.. _warnings-command-warnaction:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
warnaction
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warnaction
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage automated actions for Warnings.
|
||||||
|
|
||||||
|
Actions are essentially command macros. Any command can be run
|
||||||
|
when the action is initially triggered, and/or when the action
|
||||||
|
is lifted.
|
||||||
|
|
||||||
|
Actions must be given a name and a points threshold. When a
|
||||||
|
user is warned enough so that their points go over this
|
||||||
|
threshold, the action will be executed.
|
||||||
|
|
||||||
|
.. _warnings-command-warnaction-add:
|
||||||
|
|
||||||
|
""""""""""""""
|
||||||
|
warnaction add
|
||||||
|
""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warnaction add <name> <points>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Create an automated action.
|
||||||
|
|
||||||
|
Duplicate action names are not allowed.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<name>``: The name of the action.
|
||||||
|
* ``<points>``: The number of points for this action.
|
||||||
|
|
||||||
|
.. _warnings-command-warnaction-delete:
|
||||||
|
|
||||||
|
"""""""""""""""""
|
||||||
|
warnaction delete
|
||||||
|
"""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warnaction delete <action_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete the action with the specified name.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<action_name>``: The name of the action to delete.
|
||||||
|
|
||||||
|
.. _warnings-command-warnings:
|
||||||
|
|
||||||
|
^^^^^^^^
|
||||||
|
warnings
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |admin-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warnings <member>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
List the warnings for the specified member.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<member>``: The member to get the warnings for. |member-input|
|
||||||
|
|
||||||
|
.. _warnings-command-warningset:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
warningset
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warningset
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage settings for Warnings.
|
||||||
|
|
||||||
|
.. _warnings-command-warningset-allowcustomreasons:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""""""
|
||||||
|
warningset allowcustomreasons
|
||||||
|
"""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warningset allowcustomreasons <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Enable or disable custom reasons for a warning.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<true_or_false>``: |bool-input|
|
||||||
|
|
||||||
|
.. _warnings-command-warningset-senddm:
|
||||||
|
|
||||||
|
"""""""""""""""""
|
||||||
|
warningset senddm
|
||||||
|
"""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warningset senddm <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set whether warnings should be sent to users in DMs.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<true_or_false>``: |bool-input|
|
||||||
|
|
||||||
|
.. _warnings-command-warningset-showmoderator:
|
||||||
|
|
||||||
|
""""""""""""""""""""""""
|
||||||
|
warningset showmoderator
|
||||||
|
""""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warningset showmoderator <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Decide whether the name of the moderator warning a user should be included in the DM to that user.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<true_or_false>``: |bool-input|
|
||||||
|
|
||||||
|
.. _warnings-command-warningset-usewarnchannel:
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
warningset usewarnchannel
|
||||||
|
"""""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warningset usewarnchannel <true_or_false>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set if warnings should be sent to a channel set with ``[p]warningset warnchannel``.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<true_or_false>``: |bool-input|
|
||||||
|
|
||||||
|
.. _warnings-command-warningset-warnchannel:
|
||||||
|
|
||||||
|
""""""""""""""""""""""
|
||||||
|
warningset warnchannel
|
||||||
|
""""""""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warningset warnchannel [channel]
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Set the channel where warnings should be sent to.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``[channel]``: |channel-input| Leave empty to use the channel ``[p]warn`` command was called in.
|
||||||
|
|
||||||
|
.. _warnings-command-warnreason:
|
||||||
|
|
||||||
|
^^^^^^^^^^
|
||||||
|
warnreason
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
.. note:: |guildowner-lock|
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warnreason
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Manage warning reasons.
|
||||||
|
|
||||||
|
Reasons must be given a name, description and points value. The
|
||||||
|
name of the reason must be given when a user is warned.
|
||||||
|
|
||||||
|
.. _warnings-command-warnreason-create:
|
||||||
|
|
||||||
|
"""""""""""""""""
|
||||||
|
warnreason create
|
||||||
|
"""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warnreason create <name> <points> <description>
|
||||||
|
|
||||||
|
.. tip:: Alias: ``warnreason add``
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Create a warning reason.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<name>``: The name for the new reason.
|
||||||
|
* ``<points>``: The number of points with the new reason.
|
||||||
|
* ``<description>``: The description of the new warn reason.
|
||||||
|
|
||||||
|
.. _warnings-command-warnreason-delete:
|
||||||
|
|
||||||
|
"""""""""""""""""
|
||||||
|
warnreason delete
|
||||||
|
"""""""""""""""""
|
||||||
|
|
||||||
|
**Syntax**
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[p]warnreason delete <reason_name>
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
|
||||||
|
Delete a warning reason.
|
||||||
|
|
||||||
|
**Arguments**
|
||||||
|
|
||||||
|
* ``<reason_name>``: The name of the reason to delete.
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
.. Permissions Cog Reference
|
.. Permissions Cog Reference
|
||||||
|
.. _cog_permissions:
|
||||||
|
|
||||||
=========================
|
=========================
|
||||||
Permissions Cog Reference
|
Permissions Cog Reference
|
||||||
|
|||||||
17
docs/conf.py
@@ -21,6 +21,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
sys.path.insert(0, os.path.abspath(".."))
|
sys.path.insert(0, os.path.abspath(".."))
|
||||||
|
sys.path.insert(0, os.path.abspath("_ext"))
|
||||||
|
|
||||||
os.environ["BUILDING_DOCS"] = "1"
|
os.environ["BUILDING_DOCS"] = "1"
|
||||||
|
|
||||||
@@ -42,6 +43,8 @@ extensions = [
|
|||||||
"sphinx.ext.napoleon",
|
"sphinx.ext.napoleon",
|
||||||
"sphinx.ext.doctest",
|
"sphinx.ext.doctest",
|
||||||
"sphinxcontrib_trio",
|
"sphinxcontrib_trio",
|
||||||
|
"sphinx-prompt",
|
||||||
|
"deprecated_removed",
|
||||||
]
|
]
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
@@ -58,7 +61,7 @@ master_doc = "index"
|
|||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = "Red - Discord Bot"
|
project = "Red - Discord Bot"
|
||||||
copyright = "2018-2020, Cog Creators"
|
copyright = "2018-2021, Cog Creators"
|
||||||
author = "Cog Creators"
|
author = "Cog Creators"
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
@@ -108,9 +111,6 @@ rst_prolog += f"\n.. |DPY_VERSION| replace:: {dpy_version}"
|
|||||||
#
|
#
|
||||||
html_theme = "sphinx_rtd_theme"
|
html_theme = "sphinx_rtd_theme"
|
||||||
|
|
||||||
# This will be needed until sphinx_rtd_theme supports the html5 writer
|
|
||||||
html4_writer = True
|
|
||||||
|
|
||||||
# Theme options are theme-specific and customize the look and feel of a theme
|
# Theme options are theme-specific and customize the look and feel of a theme
|
||||||
# further. For a list of options available for each theme, see the
|
# further. For a list of options available for each theme, see the
|
||||||
# documentation.
|
# documentation.
|
||||||
@@ -217,12 +217,17 @@ intersphinx_mapping = {
|
|||||||
"python": ("https://docs.python.org/3", None),
|
"python": ("https://docs.python.org/3", None),
|
||||||
"dpy": (f"https://discordpy.readthedocs.io/en/v{dpy_version}/", None),
|
"dpy": (f"https://discordpy.readthedocs.io/en/v{dpy_version}/", None),
|
||||||
"motor": ("https://motor.readthedocs.io/en/stable/", None),
|
"motor": ("https://motor.readthedocs.io/en/stable/", None),
|
||||||
|
"babel": ("http://babel.pocoo.org/en/stable/", None),
|
||||||
}
|
}
|
||||||
|
|
||||||
# Extlinks
|
# Extlinks
|
||||||
# This allows to create links to d.py docs with
|
# This allows to create links to d.py docs with
|
||||||
# :dpy_docs:`link text <site_name.html>`
|
# :dpy_docs:`link text <site_name.html>`
|
||||||
extlinks = {"dpy_docs": (f"https://discordpy.readthedocs.io/en/v{dpy_version}/%s", None)}
|
extlinks = {
|
||||||
|
"dpy_docs": (f"https://discordpy.readthedocs.io/en/v{dpy_version}/%s", None),
|
||||||
|
"issue": ("https://github.com/Cog-Creators/Red-DiscordBot/issues/%s", "#"),
|
||||||
|
"ghuser": ("https://github.com/%s", "@"),
|
||||||
|
}
|
||||||
|
|
||||||
# Doctest
|
# Doctest
|
||||||
# If this string is non-empty, all blocks with ``>>>`` in them will be
|
# If this string is non-empty, all blocks with ``>>>`` in them will be
|
||||||
@@ -230,5 +235,5 @@ extlinks = {"dpy_docs": (f"https://discordpy.readthedocs.io/en/v{dpy_version}/%s
|
|||||||
doctest_test_doctest_blocks = ""
|
doctest_test_doctest_blocks = ""
|
||||||
|
|
||||||
# Autodoc options
|
# Autodoc options
|
||||||
autodoc_default_flags = ["show-inheritance"]
|
autodoc_default_options = {"show-inheritance": True}
|
||||||
autodoc_typehints = "none"
|
autodoc_typehints = "none"
|
||||||
|
|||||||