diff options
| author | Cerapter <cerap@protonmail.com> | 2018-08-13 14:39:09 +0200 |
|---|---|---|
| committer | Cerapter <cerap@protonmail.com> | 2018-08-13 14:39:09 +0200 |
| commit | 3712526ff0e4a715ea9548f331edfc43d1502eb9 (patch) | |
| tree | f78792708d114cf45581fe9239674100d8a7a666 /server/ban_manager.py | |
| parent | 37c0a709488d6d8b3d8191f321098ea996d9cf70 (diff) | |
Added a HDID-based banning system.
Diffstat (limited to 'server/ban_manager.py')
| -rw-r--r-- | server/ban_manager.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/server/ban_manager.py b/server/ban_manager.py index 24518b28..b4f97b71 100644 --- a/server/ban_manager.py +++ b/server/ban_manager.py @@ -25,6 +25,9 @@ class BanManager: self.bans = [] self.load_banlist() + self.hdid_bans = [] + self.load_hdid_banlist() + def load_banlist(self): try: with open('storage/banlist.json', 'r') as banlist_file: @@ -52,3 +55,31 @@ class BanManager: def is_banned(self, ipid): return (ipid in self.bans) + + def load_hdid_banlist(self): + try: + with open('storage/banlist_hdid.json', 'r') as banlist_file: + self.hdid_bans = json.load(banlist_file) + except FileNotFoundError: + return + + def write_hdid_banlist(self): + with open('storage/banlist_hdid.json', 'w') as banlist_file: + json.dump(self.hdid_bans, banlist_file) + + def add_hdid_ban(self, hdid): + if hdid not in self.hdid_bans: + self.hdid_bans.append(hdid) + else: + raise ServerError('This HDID is already banned.') + self.write_hdid_banlist() + + def remove_hdid_ban(self, hdid): + if hdid in self.hdid_bans: + self.hdid_bans.remove(hdid) + else: + raise ServerError('This HDID is not banned.') + self.write_hdid_banlist() + + def is_hdid_banned(self, hdid): + return (hdid in self.hdid_bans)
\ No newline at end of file |
