-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmudnix-mgr.py
More file actions
executable file
·78 lines (66 loc) · 1.89 KB
/
mudnix-mgr.py
File metadata and controls
executable file
·78 lines (66 loc) · 1.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/env python3
import sys
import json
from datetime import datetime
class UsersFile:
def __init__(self, path):
self._path = path
self.data = None
def load(self):
file = open(self._path)
self.data = json.loads(file.read())
file.close()
def save(self, of=None):
if self.data is not None:
out_path = self._path if of is None else of
out_file = open(out_path, "w+")
out_file.write(json.dumps(self.data, indent=2))
out_file.close()
def print_user(user):
creation_time = datetime.utcfromtimestamp(
user['account_creation_timestamp']
).strftime('%Y-%m-%d %H:%M:%S UTC')
active_time = datetime.utcfromtimestamp(
user['last_activity_timestamp']
).strftime('%Y-%m-%d %H:%M:%S UTC')
print(f"User: {user['username']}")
print(f"* Account created:\t{creation_time}")
print(f"* Last time active:\t{active_time}")
print(f"* Current location:\t{user['world_location']}\n")
def print_current_time():
print(
"Current time: "
+ datetime.now().strftime('%Y-%m-%d %H:%M:%S UTC')
+ "\n"
)
def main(argv):
users_file = UsersFile("users.json")
if len(argv) < 2:
print(
f"usage: {argv[0]} "
"{ --list | (--userdel | --userinfo) <users>... }"
)
elif argv[1] == "--list":
print_current_time()
users_file.load()
for user in users_file.data["users"]:
print_user(user)
elif argv[1] == "--userdel":
users_file.load()
users_to_delete = argv[2:]
users_file.data["users"] = [
user for user in users_file.data["users"] if (
user["username"] not in users_to_delete
)
]
users_file.save()
elif argv[1] == "--userinfo":
print_current_time()
users_file.load()
users_to_print = argv[2:]
for user in filter(
lambda u: u["username"] in users_to_print, users_file.data["users"]
):
print_user(user)
if __name__ == "__main__":
main(sys.argv)