Skip to content

Commit 140ae4c

Browse files
authored
Merge pull request #36 from CactusBot/release-v0.3.4
Release v0.3.4
2 parents 0c5a26c + 025848c commit 140ae4c

File tree

4 files changed

+32
-16
lines changed

4 files changed

+32
-16
lines changed

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ branches:
66
only:
77
- master
88
- develop
9-
- /^rel-v(\d+.){0,2}\d+$/
9+
- /^release-v(\d+.){0,2}\d+$/
1010
install:
1111
- pip install flake8
1212
before_script:

beam.py

+20-8
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,14 @@
2222

2323

2424
class Beam:
25-
path = "https://beam.pro/api/v1/"
26-
27-
message_id = 0
25+
PATH = "https://beam.pro/api/v1/"
2826

2927
def __init__(self, debug="INFO", **kwargs):
3028
self._init_logger(debug, kwargs.get("log_to_file", True))
29+
30+
self.message_id = 0
31+
self.csrf_token = None
32+
3133
self.http_session = Session()
3234

3335
def _init_logger(self, level="INFO", file_logging=True, **kwargs):
@@ -94,7 +96,18 @@ def _init_users(self):
9496
def _request(self, url, method="GET", **kwargs):
9597
"""Send HTTP request to Beam."""
9698
response = self.http_session.request(
97-
method, urljoin(self.path, url.lstrip('/')), **kwargs)
99+
method,
100+
urljoin(self.PATH, url.lstrip('/')),
101+
headers={"X-CSRF-Token": self.csrf_token},
102+
**kwargs
103+
)
104+
105+
if self.csrf_token is None:
106+
self.csrf_token = response.headers.get("X-CSRF-Token")
107+
elif response.status_code == 461:
108+
self.csrf_token = response.headers.get("X-CSRF-Token")
109+
self._request(url, method, **kwargs)
110+
98111
try:
99112
return response.json()
100113
except Exception:
@@ -221,10 +234,9 @@ def send_message(self, *args, method="msg"):
221234
user=args[0],
222235
message=args[1]))
223236

224-
def remove_message(self, channel_id, message_id):
237+
def remove_message(self, message_id):
225238
"""Remove a message from chat."""
226-
return self._request("/chats/{id}/message/{message}".format(
227-
id=channel_id, message=message_id), method="DELETE")
239+
return self.send_message(message_id, method="deleteMessage")
228240

229241
@coroutine
230242
def read_chat(self, handler=None):
@@ -407,5 +419,5 @@ def watch_liveloading(self, handler=None):
407419
self.logger.info("- {} hosted the channel.".format(
408420
packet["data"][1]["hoster"]["token"]))
409421
self.send_message(
410-
"Thanks for the hosting the channel, @{}!".format(
422+
"Thanks for hosting the channel, @{}!".format(
411423
packet["data"][1]["hoster"]["token"]))

messages.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def message_handler(self, data):
9292
if not (data["user_roles"][0] in mod_roles or user.friend):
9393
if (len(parsed) > self.config["spam_protection"].get(
9494
"maximum_message_length", 256)):
95-
self.remove_message(data["channel"], data["id"])
95+
self.remove_message(data["id"])
9696
user.offenses += 1
9797
session.commit()
9898
return self.send_message(
@@ -101,7 +101,7 @@ def message_handler(self, data):
101101
elif (sum(char.isupper() for char in parsed) >
102102
self.config["spam_protection"].get(
103103
"maximum_message_capitals", 32)):
104-
self.remove_message(data["channel"], data["id"])
104+
self.remove_message(data["id"])
105105
user.offenses += 1
106106
session.commit()
107107
return self.send_message(
@@ -111,7 +111,7 @@ def message_handler(self, data):
111111
for chunk in data["message"]["message"]) >
112112
self.config["spam_protection"].get(
113113
"maximum_message_emotes", 8)):
114-
self.remove_message(data["channel"], data["id"])
114+
self.remove_message(data["id"])
115115
user.offenses += 1
116116
session.commit()
117117
return self.send_message(
@@ -121,15 +121,15 @@ def message_handler(self, data):
121121
r"[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"),
122122
parsed) and not
123123
self.config["spam_protection"].get("allow_links", False)):
124-
self.remove_message(data["channel"], data["id"])
124+
self.remove_message(data["id"])
125125
user.offenses += 1
126126
session.commit()
127127
return self.send_message(
128128
data["user_name"], "Please stop posting links.",
129129
method="whisper")
130130

131131
if parsed == "/cry":
132-
self.remove_message(data["channel"], data["id"])
132+
self.remove_message(data["id"])
133133
return self.send_message("/me cries with {} :'(".format(
134134
data["user_name"]))
135135

models.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ def __call__(self, args, data=None):
295295
class CubeCommand(Command):
296296

297297
def __call__(self, args, data=None, **kwargs):
298-
if args >= 2:
298+
if len(args) >= 2:
299299
if args[1] == '2' and len(args) == 2:
300300
return "8! Whoa, that's 2Cubed!"
301301

@@ -448,7 +448,11 @@ def __call__(self, args, data):
448448
def send(self, repeat):
449449
try:
450450
self.send_message(
451-
repeat.command
451+
repeat.command(
452+
repeat.arguments.split(),
453+
self.data,
454+
channel_name=self.channel
455+
)[0]
452456
)
453457
except TypeError:
454458
command_name = repeat.command_name

0 commit comments

Comments
 (0)