1212reload (sys )
1313sys .setdefaultencoding ('utf8' )
1414
15+ import requests
16+ requests .packages .urllib3 .disable_warnings ()
17+
1518def loadCredentials (filename ):
1619 global password , username , server
1720 json_data = open (filename )
@@ -24,7 +27,7 @@ def loadCredentials(filename):
2427
2528
2629def 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
7965def 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