Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Matrix
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Container Registry
Model registry
Operate
Environments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
TeDomum
Matrix
Commits
10027c80
Unverified
Commit
10027c80
authored
5 years ago
by
Patrick Cloke
Committed by
GitHub
5 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Add type hints to the spam check module (#6915)
Add typing information to the spam checker modules.
parent
32873efa
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
changelog.d/6915.misc
+1
-0
1 addition, 0 deletions
changelog.d/6915.misc
synapse/events/spamcheck.py
+26
-18
26 additions, 18 deletions
synapse/events/spamcheck.py
synapse/spam_checker_api/__init__.py
+8
-4
8 additions, 4 deletions
synapse/spam_checker_api/__init__.py
tox.ini
+1
-0
1 addition, 0 deletions
tox.ini
with
36 additions
and
22 deletions
changelog.d/6915.misc
0 → 100644
+
1
−
0
View file @
10027c80
Add type hints to the spam checker module.
This diff is collapsed.
Click to expand it.
synapse/events/spamcheck.py
+
26
−
18
View file @
10027c80
...
...
@@ -19,9 +19,13 @@ from typing import Dict
from
synapse.spam_checker_api
import
SpamCheckerApi
MYPY
=
False
if
MYPY
:
import
synapse.server
class
SpamChecker
(
object
):
def
__init__
(
self
,
hs
):
def
__init__
(
self
,
hs
:
"
synapse.server.HomeServer
"
):
self
.
spam_checker
=
None
module
=
None
...
...
@@ -41,7 +45,7 @@ class SpamChecker(object):
else
:
self
.
spam_checker
=
module
(
config
=
config
)
def
check_event_for_spam
(
self
,
event
)
:
def
check_event_for_spam
(
self
,
event
:
"
synapse.events.EventBase
"
)
->
bool
:
"""
Checks if a given event is considered
"
spammy
"
by this server.
If the server considers an event spammy, then it will be rejected if
...
...
@@ -49,26 +53,30 @@ class SpamChecker(object):
users receive a blank event.
Args:
event
(synapse.events.EventBase)
: the event to be checked
event: the event to be checked
Returns:
bool:
True if the event is spammy.
True if the event is spammy.
"""
if
self
.
spam_checker
is
None
:
return
False
return
self
.
spam_checker
.
check_event_for_spam
(
event
)
def
user_may_invite
(
self
,
inviter_userid
,
invitee_userid
,
room_id
):
def
user_may_invite
(
self
,
inviter_userid
:
str
,
invitee_userid
:
str
,
room_id
:
str
)
->
bool
:
"""
Checks if a given user may send an invite
If this method returns false, the invite will be rejected.
Args:
userid (string): The sender
'
s user ID
inviter_userid: The user ID of the sender of the invitation
invitee_userid: The user ID targeted in the invitation
room_id: The room ID
Returns:
bool:
True if the user may send an invite, otherwise False
True if the user may send an invite, otherwise False
"""
if
self
.
spam_checker
is
None
:
return
True
...
...
@@ -77,50 +85,50 @@ class SpamChecker(object):
inviter_userid
,
invitee_userid
,
room_id
)
def
user_may_create_room
(
self
,
userid
)
:
def
user_may_create_room
(
self
,
userid
:
str
)
->
bool
:
"""
Checks if a given user may create a room
If this method returns false, the creation request will be rejected.
Args:
userid
(string): The sender
'
s user ID
userid
: The ID of the user attempting to create a room
Returns:
bool:
True if the user may create a room, otherwise False
True if the user may create a room, otherwise False
"""
if
self
.
spam_checker
is
None
:
return
True
return
self
.
spam_checker
.
user_may_create_room
(
userid
)
def
user_may_create_room_alias
(
self
,
userid
,
room_alias
)
:
def
user_may_create_room_alias
(
self
,
userid
:
str
,
room_alias
:
str
)
->
bool
:
"""
Checks if a given user may create a room alias
If this method returns false, the association request will be rejected.
Args:
userid
(string): The sender
'
s user ID
room_alias
(string)
: The alias to be created
userid
: The ID of the user attempting to create a room alias
room_alias: The alias to be created
Returns:
bool:
True if the user may create a room alias, otherwise False
True if the user may create a room alias, otherwise False
"""
if
self
.
spam_checker
is
None
:
return
True
return
self
.
spam_checker
.
user_may_create_room_alias
(
userid
,
room_alias
)
def
user_may_publish_room
(
self
,
userid
,
room_id
)
:
def
user_may_publish_room
(
self
,
userid
:
str
,
room_id
:
str
)
->
bool
:
"""
Checks if a given user may publish a room to the directory
If this method returns false, the publish request will be rejected.
Args:
userid
(string)
: The se
nder
'
s user ID
room_id
(string)
: The ID of the room that would be published
userid: The
u
se
r ID attempting to publish the room
room_id: The ID of the room that would be published
Returns:
bool:
True if the user may publish the room, otherwise False
True if the user may publish the room, otherwise False
"""
if
self
.
spam_checker
is
None
:
return
True
...
...
This diff is collapsed.
Click to expand it.
synapse/spam_checker_api/__init__.py
+
8
−
4
View file @
10027c80
...
...
@@ -18,6 +18,10 @@ from twisted.internet import defer
from
synapse.storage.state
import
StateFilter
MYPY
=
False
if
MYPY
:
import
synapse.server
logger
=
logging
.
getLogger
(
__name__
)
...
...
@@ -26,18 +30,18 @@ class SpamCheckerApi(object):
access to rooms and other relevant information.
"""
def
__init__
(
self
,
hs
):
def
__init__
(
self
,
hs
:
"
synapse.server.HomeServer
"
):
self
.
hs
=
hs
self
.
_store
=
hs
.
get_datastore
()
@defer.inlineCallbacks
def
get_state_events_in_room
(
self
,
room_id
,
types
)
:
def
get_state_events_in_room
(
self
,
room_id
:
str
,
types
:
tuple
)
->
defer
.
Deferred
:
"""
Gets state events for the given room.
Args:
room_id
(string)
: The room ID to get state events in.
types
(tuple)
: The event type and state key (using None
room_id: The room ID to get state events in.
types: The event type and state key (using None
to represent
'
any
'
) of the room state to acquire.
Returns:
...
...
This diff is collapsed.
Click to expand it.
tox.ini
+
1
−
0
View file @
10027c80
...
...
@@ -179,6 +179,7 @@ extras = all
commands
=
mypy
\
synapse/api
\
synapse/config/
\
synapse/events/spamcheck.py
\
synapse/federation/sender
\
synapse/federation/transport
\
synapse/handlers/sync.py
\
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment