Skip to content

Commit 0c5a26c

Browse files
authored
Merge pull request #24 from CactusBot/develop
CactusBot v0.3.3 .:. Develop -> Master.
2 parents 45c3571 + 2e3dc85 commit 0c5a26c

13 files changed

+1771
-39
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ branches:
1010
install:
1111
- pip install flake8
1212
before_script:
13-
- "flake8 ."
13+
- "flake8 cactus.py beam.py messages.py models.py"
1414
script: nosetests

beam.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ def send_message(self, *args, method="msg"):
195195

196196
if method == "msg":
197197
for message in args:
198-
for chunk in re.findall(r'.{1,250}', message):
198+
for chunk in re.findall(r'.{1,500}', message):
199199
message_packet = {
200200
"type": "method",
201201
"method": "msg",

docs/LICENSE

+674
Large diffs are not rendered by default.

docs/Makefile

+216
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
# Makefile for Sphinx documentation
2+
#
3+
4+
# You can set these variables from the command line.
5+
SPHINXOPTS =
6+
SPHINXBUILD = sphinx-build
7+
PAPER =
8+
BUILDDIR = _build
9+
10+
# User-friendly check for sphinx-build
11+
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
12+
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
13+
endif
14+
15+
# Internal variables.
16+
PAPEROPT_a4 = -D latex_paper_size=a4
17+
PAPEROPT_letter = -D latex_paper_size=letter
18+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
19+
# the i18n builder cannot share the environment and doctrees with the others
20+
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
21+
22+
.PHONY: help
23+
help:
24+
@echo "Please use \`make <target>' where <target> is one of"
25+
@echo " html to make standalone HTML files"
26+
@echo " dirhtml to make HTML files named index.html in directories"
27+
@echo " singlehtml to make a single large HTML file"
28+
@echo " pickle to make pickle files"
29+
@echo " json to make JSON files"
30+
@echo " htmlhelp to make HTML files and a HTML help project"
31+
@echo " qthelp to make HTML files and a qthelp project"
32+
@echo " applehelp to make an Apple Help Book"
33+
@echo " devhelp to make HTML files and a Devhelp project"
34+
@echo " epub to make an epub"
35+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
36+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
37+
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
38+
@echo " text to make text files"
39+
@echo " man to make manual pages"
40+
@echo " texinfo to make Texinfo files"
41+
@echo " info to make Texinfo files and run them through makeinfo"
42+
@echo " gettext to make PO message catalogs"
43+
@echo " changes to make an overview of all changed/added/deprecated items"
44+
@echo " xml to make Docutils-native XML files"
45+
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
46+
@echo " linkcheck to check all external links for integrity"
47+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
48+
@echo " coverage to run coverage check of the documentation (if enabled)"
49+
50+
.PHONY: clean
51+
clean:
52+
rm -rf $(BUILDDIR)/*
53+
54+
.PHONY: html
55+
html:
56+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
57+
@echo
58+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
59+
60+
.PHONY: dirhtml
61+
dirhtml:
62+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
63+
@echo
64+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
65+
66+
.PHONY: singlehtml
67+
singlehtml:
68+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
69+
@echo
70+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
71+
72+
.PHONY: pickle
73+
pickle:
74+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
75+
@echo
76+
@echo "Build finished; now you can process the pickle files."
77+
78+
.PHONY: json
79+
json:
80+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
81+
@echo
82+
@echo "Build finished; now you can process the JSON files."
83+
84+
.PHONY: htmlhelp
85+
htmlhelp:
86+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
87+
@echo
88+
@echo "Build finished; now you can run HTML Help Workshop with the" \
89+
".hhp project file in $(BUILDDIR)/htmlhelp."
90+
91+
.PHONY: qthelp
92+
qthelp:
93+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
94+
@echo
95+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
96+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
97+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/CactusBot.qhcp"
98+
@echo "To view the help file:"
99+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/CactusBot.qhc"
100+
101+
.PHONY: applehelp
102+
applehelp:
103+
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
104+
@echo
105+
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
106+
@echo "N.B. You won't be able to view it unless you put it in" \
107+
"~/Library/Documentation/Help or install it in your application" \
108+
"bundle."
109+
110+
.PHONY: devhelp
111+
devhelp:
112+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
113+
@echo
114+
@echo "Build finished."
115+
@echo "To view the help file:"
116+
@echo "# mkdir -p $$HOME/.local/share/devhelp/CactusBot"
117+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/CactusBot"
118+
@echo "# devhelp"
119+
120+
.PHONY: epub
121+
epub:
122+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
123+
@echo
124+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
125+
126+
.PHONY: latex
127+
latex:
128+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
129+
@echo
130+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
131+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
132+
"(use \`make latexpdf' here to do that automatically)."
133+
134+
.PHONY: latexpdf
135+
latexpdf:
136+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
137+
@echo "Running LaTeX files through pdflatex..."
138+
$(MAKE) -C $(BUILDDIR)/latex all-pdf
139+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
140+
141+
.PHONY: latexpdfja
142+
latexpdfja:
143+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
144+
@echo "Running LaTeX files through platex and dvipdfmx..."
145+
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
146+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
147+
148+
.PHONY: text
149+
text:
150+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
151+
@echo
152+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
153+
154+
.PHONY: man
155+
man:
156+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
157+
@echo
158+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
159+
160+
.PHONY: texinfo
161+
texinfo:
162+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
163+
@echo
164+
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
165+
@echo "Run \`make' in that directory to run these through makeinfo" \
166+
"(use \`make info' here to do that automatically)."
167+
168+
.PHONY: info
169+
info:
170+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
171+
@echo "Running Texinfo files through makeinfo..."
172+
make -C $(BUILDDIR)/texinfo info
173+
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
174+
175+
.PHONY: gettext
176+
gettext:
177+
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
178+
@echo
179+
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
180+
181+
.PHONY: changes
182+
changes:
183+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
184+
@echo
185+
@echo "The overview file is in $(BUILDDIR)/changes."
186+
187+
.PHONY: linkcheck
188+
linkcheck:
189+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
190+
@echo
191+
@echo "Link check complete; look for any errors in the above output " \
192+
"or in $(BUILDDIR)/linkcheck/output.txt."
193+
194+
.PHONY: doctest
195+
doctest:
196+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
197+
@echo "Testing of doctests in the sources finished, look at the " \
198+
"results in $(BUILDDIR)/doctest/output.txt."
199+
200+
.PHONY: coverage
201+
coverage:
202+
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
203+
@echo "Testing of coverage in the sources finished, look at the " \
204+
"results in $(BUILDDIR)/coverage/python.txt."
205+
206+
.PHONY: xml
207+
xml:
208+
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
209+
@echo
210+
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
211+
212+
.PHONY: pseudoxml
213+
pseudoxml:
214+
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
215+
@echo
216+
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

docs/cactus.png

44.4 KB
Loading

docs/commands.md

+136
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
## `!command`
2+
The `!command` command is used for manipulation of custom commands. It may only be run by users of rank *Mod* or above.
3+
4+
- To add a command, use `!command add <command> <response>`.
5+
- [`%targets%`](/targets) may also be utilized to enable dynamic responses.
6+
- If `<command>` is of the form `x-y`, it may be run later as either `!x-y` and `!x y`.
7+
- To limit the users who may run the command, append one of the prefixes to the beginning of the name.
8+
- `+` - Moderator-Only
9+
- `$` - Subscriber-Only
10+
11+
> [2Cubed] !command add cactusbot CactusBot! :cactus
12+
> [CactusBot] Added command !cactusbot.
13+
> [2Cubed] !cactusbot
14+
> [CactusBot] CactusBot! :cactus
15+
16+
> [2Cubed] !command add cactusbot-twitter twitter.com/CactusBotBeam
17+
> [CactusBot] Added command !cactusbot-twitter.
18+
> [ParadigmShift3d] !cactusbot-twitter
19+
> [CactusBot] twitter.com/CactusBotBeam
20+
21+
> [Jello] !cactusbot twitter
22+
> [CactusBot] twitter.com/CactusBotBeam
23+
24+
> [2Cubed] !cactusbot
25+
> [CactusBot] CactusBot! :cactus
26+
27+
> [ParadigmShift3d] !command add +raid Let's go raid %arg1%! beam.pro/%arg1%
28+
> [Innectic] !raid Matt
29+
> [CactusBot] Let's go raid Matt! beam.pro/Matt
30+
31+
> [Innectic] !command add $fancy Look how fancy I am! I'm a subscriber! O:-)
32+
> [Xyntak] !fancy
33+
> [CactusBot] Look how fancy I am! I'm a subscriber! O:-)
34+
35+
- To remove a command, use `!command remove <name>`.
36+
37+
> [2Cubed] !command remove waffle
38+
> [CactusBot] Removed command !waffle.
39+
> [Innectic] Oh no, my waffles! /cry
40+
41+
- To list custom commands, use `!command list`.
42+
43+
> [ParadigmShift3d] !command list
44+
> [CactusBot] Commands: potato, waffle, hamster
45+
46+
## `!quote`
47+
The `!quote` command manages quotes. It may only be run by users of rank *Mod* or above.
48+
49+
- To recall a random quote, use `!quote`.
50+
51+
> [ParadigmShift3d] !quote
52+
> [CactusBot] ":fish :fish :fish :fish :fish :fish :fish :fish" -Matt
53+
54+
- To recall a specific quote based on numerical ID, use `!quote <id>`.
55+
56+
> [BreachBreachBreach] !quote 8
57+
> [CactusBot] "…*silence*…" -Stanley
58+
59+
- To add a quote, use `!quote add <quote>`.
60+
61+
> [Innectic] !quote add "Potatoes!" - 2Cubed
62+
> [CactusBot] Added quote with ID 9.
63+
64+
- To remove a quote, use `!quote remove <id>`.
65+
66+
> [ParadigmShift3d] !quote remove 9
67+
> [CactusBot] Removed quote with ID 9.
68+
69+
70+
## `!repeat`
71+
The `!repeat` command manages commands that are set to run at a certain interval. It may only be run by users of rank *Mod* or above.
72+
73+
- To add a repeat, use `!repeat add <interval> <command> [arguments]`, where `<interval>` is in seconds.
74+
75+
> [Innectic] !command add space :%arg1%inaspacesuit
76+
> [CactusBot] Added command !space.
77+
> [ParadigmShift3d] !repeat add 600 space %channel%
78+
> [CactusBot] Repeating command '!space' every 600 seconds.
79+
80+
- To remove a repeat, use `!repeat remove <command>`.
81+
82+
> [2Cubed] !repeat remove space
83+
> [CactusBot] Removed repeat for command !space.
84+
85+
- To list all repeats, use `!repeat list`.
86+
87+
> [ParadigmShift3d] !repeat list
88+
> [CactusBot] Repeats: follow 3600, tweet 1800
89+
90+
91+
## `!social`
92+
The `!social` command retrieves social media data from the Beam API.
93+
94+
- To retrieve links for all services, use `!social`.
95+
96+
> [ParadigmShift3d] !social
97+
> [CactusBot] Youtube: https://youtube.com/2CubedTech, Twitter: https://twitter.com/2CubedTech
98+
99+
- To retrieve links for specific services, use `!social <services>`, where `<services>` is a space-delimited list of services.
100+
101+
> [Alkali_Metal] !social twitter
102+
> [CactusBot] Twitter: https://twitter.com/CactusBotBeam
103+
104+
105+
## `!spamprot`
106+
The `!spamprot` command changes spam protection options. It may only be run by users of rank *Mod* or above.
107+
108+
- To update the maximum amount of characters of a message, use `!spamprot length <amount>`, where `<amount>` is the desired length. The default is 256.
109+
110+
> [ParadigmShift3d] !spamprot length 100
111+
> [CactusBot] Maximum message length set to 100.
112+
113+
- To update the maximum capital characters allowed in a message, use `!spamprot caps <amount>`, where `<amount>` is the desired amount of capitals. The default is 32.
114+
115+
> [2Cubed] !spamprot caps 20
116+
> [CactusBot] Maximum capitals per message set to 20.
117+
118+
- To update the maximum emoticons allowed in a message, use `!spamprot emotes <amount>`, where `<amount>` is the desired amount of emoticons. The default is 8.
119+
120+
> [Innectic] !spamprot emotes 4
121+
> [CactusBot] Maximum emotes per message set to 4.
122+
> [duke] :beer :mappa <3 :cactus
123+
124+
- To enable or disable links in messages, use `!spamprot links <value>`, where `<value>` is either `true` or `false`. The default is `false`.
125+
126+
> [ParadigmShift3d] !spamprot links true
127+
> [CactusBot] Links are now allowed.
128+
129+
130+
## `!friend`
131+
The `!friend` command allows users to be ignored by spam protection. It may only be run by users of rank *Mod* or above.
132+
133+
- To friend a user, use `!friend <username>`.
134+
135+
> [2Cubed] !friend Stanley
136+
> [CactusBot] Added @Stanley as a friend.

0 commit comments

Comments
 (0)