Skip to content

Commit ae30238

Browse files
committed
kick!ban!leave!join!etc
1 parent cf13eda commit ae30238

1 file changed

Lines changed: 44 additions & 30 deletions

File tree

redpill.py

Lines changed: 44 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
reload(sys)
1313
sys.setdefaultencoding('utf8')
1414

15+
import requests
16+
requests.packages.urllib3.disable_warnings()
17+
1518
def loadCredentials(filename):
1619
global password, username, server
1720
json_data = open(filename)
@@ -24,7 +27,7 @@ def loadCredentials(filename):
2427

2528

2629
def processMessage(obj):
27-
global room, all_rooms, rooms, lastEventRoom
30+
global room, rooms, lastEventRoom, room_keys
2831

2932
with open('event.log', 'a') as the_file:
3033
the_file.write(str(obj) + "\n")
@@ -34,27 +37,10 @@ def processMessage(obj):
3437

3538
room = obj["room_id"]
3639

37-
if "room_id" in obj and False:
38-
#rooms[all_rooms].events.append(
39-
obj2 = {
40-
"origin_server_ts": obj["origin_server_ts"],
41-
"event_id": "",
42-
"age": "",
43-
"content": {
44-
"body": obj["room_id"],
45-
"msgtype": "m.text"
46-
},
47-
"room_id": obj["room_id"],
48-
"user_id": " ",
49-
"type" : "m.room.message",
50-
}
51-
52-
53-
#rooms[all_rooms].events.append( {u'origin_server_ts': 1422443849044, u'event_id': u'$1422443849125hkoiO:matrix.org', u'age': 771, u'content': {u'body': u'zing', u'msgtype': u'm.text'}, u'room_id': u'!pDoZaoxgqWkenMFAyE:matrix.org', u'user_id': u'@oddvar:matrix.org', u'type': u'm.room.message'})
54-
55-
with open('event.log', 'a') as the_file:
56-
the_file.write(str(obj2) + "\n")
57-
#rooms[all_rooms].events.append(obj2)
40+
if "room_id" not in rooms:
41+
room_keys.append(obj["room_id"])
42+
43+
5844
if ("room_id" in obj and obj["room_id"] != lastEventRoom and "type" in obj and
5945
obj["type"] != "m.presence" and obj["type"] != "m.typing" and obj["type"] != "m.room.topic"
6046
and obj["type"] != "m.room.name"):
@@ -73,11 +59,11 @@ def getFirstRoomAlias(r):
7359
name = r.room_id
7460
if len(r.aliases) > 0:
7561
name = r.aliases[0]
76-
return name.encode('utf-8')
62+
return name #.encode('utf-8')
7763

7864

7965
def main(stdscr):
80-
global size, room, data, rooms, access_token, endTime, rooms, all_rooms, lastEventRoom
66+
global size, room, data, rooms, access_token, endTime, rooms, all_rooms, lastEventRoom, room_keys
8167

8268
curses.curs_set(0)
8369
curses.use_default_colors()
@@ -99,8 +85,8 @@ def main(stdscr):
9985
rooms[all_rooms] = Room(client, all_rooms)
10086

10187
rooms[all_rooms].events = []
102-
roomkeys = list(rooms.keys())
103-
room = roomkeys[1] # "all_rooms"
88+
room_keys = list(rooms.keys())
89+
room = all_rooms #room_keys[1] # "all_rooms"
10490
nextRoom = 1
10591
endTime = client.end
10692

@@ -534,11 +520,39 @@ def main(stdscr):
534520

535521
if c == 9:
536522
#stdscr.addstr(1, 0, "%s was pressed\n" % c)
537-
room = roomkeys[nextRoom]
523+
room = room_keys[nextRoom]
538524
nextRoom = (nextRoom + 1) % len(rooms)
539525
elif c == 10: # enter
540526
if inputBuffer.startswith("/me"):
541527
rooms[room].send_emote(inputBuffer[3:])
528+
elif inputBuffer.startswith("/invite"):
529+
user_id = inputBuffer[7:].lstrip(" ").rstrip(" ") # todo: better way? strip() ? also refactor
530+
rooms[room].invite(user_id)
531+
elif inputBuffer.startswith("/kick"):
532+
user_id = inputBuffer[5:].lstrip(" ").rstrip(" ") # todo: better way? strip() ?
533+
rooms[room].kick(user_id)
534+
elif inputBuffer.startswith("/power"):
535+
user_id = inputBuffer[7:].lstrip(" ").rstrip(" ") # todo: better way? strip() ?
536+
power_level = 50
537+
rooms[room].set_power_level(user_id, power_level)
538+
elif inputBuffer.startswith("/op"):
539+
user_id = inputBuffer[2:].lstrip(" ").rstrip(" ") # todo: better way? strip() ?
540+
rooms[room].set_power_level(user_id)
541+
elif inputBuffer.startswith("/ban"): # reason
542+
user_id = inputBuffer[4:].lstrip(" ").rstrip(" ") # todo: better way? strip() ?
543+
reason = "sux" #FIXME
544+
rooms[room].ban(user_id, reason)
545+
elif inputBuffer.startswith("/join"): # there's a /join that supports aliases
546+
room_alias = inputBuffer[5:].lstrip(" ").rstrip(" ")
547+
client.join_room(room_alias)
548+
elif inputBuffer.startswith("/leave"):
549+
rooms[room].leave_room(room_id)
550+
elif inputBuffer.startswith("/create"): # create a new room
551+
is_public = True
552+
invitees = ()
553+
# def create_room(self, alias=None, is_public=False, invitees=()):
554+
room_alias = inputBuffer[7:].lstrip(" ").rstrip(" ") # todo: better way? strip() ?
555+
client.create_room(room_alias, is_public, invitees)
542556
else:
543557
rooms[room].send_text(inputBuffer)
544558
inputBuffer = ""
@@ -594,17 +608,17 @@ def main(stdscr):
594608
stdscr.refresh()
595609
curses.halfdelay(10)
596610
stdscr.timeout(1)
597-
elif c == 27:
611+
elif c == 27: # need to test for alt combo or ESC
598612
curses.endwin()
599613
quit()
600614
elif c == curses.KEY_F2:
601615
PAD_COMMENTS = not PAD_COMMENTS
602616

603-
stdscr.addstr(2, 0, "time() == %s\n" % time.time())
617+
#stdscr.addstr(2, 0, "time() == %s\n" % time.time())
604618

605619
finally:
606620
do_nothing = True
607621

608622

609623

610-
curses.wrapper(main)
624+
curses.wrapper(main)

0 commit comments

Comments
 (0)