Just import nio

Instead of nio.events, nio.responses, etc.
All the classes are already available at nio.
This commit is contained in:
miruka 2019-04-28 01:00:59 -04:00
parent d3749af4bc
commit f65ea9dd0d
4 changed files with 15 additions and 25 deletions

10
TODO.md
View File

@ -1,22 +1,19 @@
- Current focus - Refactoring
- Remember account dialog
- Just import nio?
- Use new H\* components everywhere - Use new H\* components everywhere
- TextInput.accepted() for SendBox - TextInput.accepted() for SendBox
- Refactoring
- Migrate more JS functions to their own files / Implement in Python instead - Migrate more JS functions to their own files / Implement in Python instead
- Don't bake in size properties for components - Don't bake in size properties for components
- Better names and organization for the Message components - Better names and organization for the Message components
- Bug fixes - Bug fixes
- Fix tooltip hide() - Fix tooltip hide()
- ![A picture](https://picsum.photos/256/256) not clickable? - Sending `![A picture](https://picsum.photos/256/256)` not clickable?
- Icons aren't reloaded - Icons aren't reloaded
- Bug when resizing window being tiled (i3), can't figure it out - Bug when resizing window being tiled (i3), can't figure it out
- HStyle singleton isn't reloaded - HStyle singleton isn't reloaded
- UI - UI
- Register/Forgot? for SignIn dialog
- Test HGlassRectangle elements when no effects are available - Test HGlassRectangle elements when no effects are available
- Leave room - Leave room
- Forget room warning popup - Forget room warning popup
@ -72,4 +69,3 @@
- Distribution - Distribution
- Review setup.py, add dependencies - Review setup.py, add dependencies
- REAMDE.md - REAMDE.md
- Remove initial test room switch

View File

@ -9,8 +9,6 @@ from typing import Any, DefaultDict, Dict, Optional, Tuple
from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, pyqtSlot from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, pyqtSlot
import nio import nio
import nio.events as ne
import nio.responses as nr
from .network_manager import NetworkManager from .network_manager import NetworkManager
from .pyqt_future import futurize from .pyqt_future import futurize
@ -103,7 +101,7 @@ class Client(QObject):
@futurize() @futurize()
def resumeSession(self, user_id: str, token: str, device_id: str def resumeSession(self, user_id: str, token: str, device_id: str
) -> "Client": ) -> "Client":
response = nr.LoginResponse(user_id, device_id, token) response = nio.LoginResponse(user_id, device_id, token)
self.nio.receive_response(response) self.nio.receive_response(response)
self.nio_sync.receive_response(response) self.nio_sync.receive_response(response)
return self return self
@ -130,12 +128,12 @@ class Client(QObject):
break break
def _on_sync(self, response: nr.SyncResponse) -> None: def _on_sync(self, response: nio.SyncResponse) -> None:
self.nio.receive_response(response) self.nio.receive_response(response)
for room_id, room_info in response.rooms.invite.items(): for room_id, room_info in response.rooms.invite.items():
for ev in room_info.invite_state: for ev in room_info.invite_state:
member_ev = isinstance(ev, ne.InviteMemberEvent) member_ev = isinstance(ev, nio.InviteMemberEvent)
if member_ev and ev.content["membership"] == "join": if member_ev and ev.content["membership"] == "join":
self.roomInvited.emit(room_id, ev.content) self.roomInvited.emit(room_id, ev.content)
@ -156,14 +154,14 @@ class Client(QObject):
) )
for ev in room_info.ephemeral: for ev in room_info.ephemeral:
if isinstance(ev, nr.TypingNoticeEvent): if isinstance(ev, nio.TypingNoticeEvent):
self.roomTypingUsersUpdated.emit(room_id, ev.users) self.roomTypingUsersUpdated.emit(room_id, ev.users)
else: else:
print("ephemeral event: ", ev) print("ephemeral event: ", ev)
for room_id, room_info in response.rooms.leave.items(): for room_id, room_info in response.rooms.leave.items():
for ev in room_info.timeline.events: for ev in room_info.timeline.events:
member_ev = isinstance(ev, ne.RoomMemberEvent) member_ev = isinstance(ev, nio.RoomMemberEvent)
if member_ev and ev.content["membership"] in ("leave", "ban"): if member_ev and ev.content["membership"] in ("leave", "ban"):
self.roomLeft.emit(room_id, ev.__dict__) self.roomLeft.emit(room_id, ev.__dict__)
@ -190,7 +188,7 @@ class Client(QObject):
self._loading = False self._loading = False
def _on_past_events(self, room_id: str, response: nr.RoomMessagesResponse def _on_past_events(self, room_id: str, response: nio.RoomMessagesResponse
) -> None: ) -> None:
self.roomPastPrevBatchTokenReceived.emit(room_id, response.end) self.roomPastPrevBatchTokenReceived.emit(room_id, response.end)

View File

@ -10,15 +10,13 @@ from typing import Callable, Optional, Tuple
from uuid import UUID from uuid import UUID
import nio import nio
import nio.responses as nr
from nio.exceptions import ProtocolError, RemoteTransportError
OptSock = Optional[ssl.SSLSocket] OptSock = Optional[ssl.SSLSocket]
NioRequestFunc = Callable[..., Tuple[UUID, bytes]] NioRequestFunc = Callable[..., Tuple[UUID, bytes]]
class NioErrorResponse(Exception): class NioErrorResponse(Exception):
def __init__(self, response: nr.ErrorResponse) -> None: def __init__(self, response: nio.ErrorResponse) -> None:
self.response = response self.response = response
super().__init__(str(response)) super().__init__(str(response))
@ -77,11 +75,11 @@ class NetworkManager:
def http_disconnect(self) -> None: def http_disconnect(self) -> None:
try: try:
self.write(self.nio.disconnect()) self.write(self.nio.disconnect())
except (OSError, ProtocolError): except (OSError, nio.ProtocolError):
pass pass
def read(self, with_sock: OptSock = None) -> nr.Response: def read(self, with_sock: OptSock = None) -> nio.Response:
sock = with_sock or self._get_socket() sock = with_sock or self._get_socket()
response = None response = None
@ -93,7 +91,7 @@ class NetworkManager:
self.nio.receive(sock.recv(4096)) self.nio.receive(sock.recv(4096))
response = self.nio.next_response() response = self.nio.next_response()
if isinstance(response, nr.ErrorResponse): if isinstance(response, nio.ErrorResponse):
raise NioErrorResponse(response) raise NioErrorResponse(response)
if not with_sock: if not with_sock:
@ -113,7 +111,7 @@ class NetworkManager:
def talk(self, def talk(self,
nio_func: NioRequestFunc, nio_func: NioRequestFunc,
*args, *args,
**kwargs) -> nr.Response: **kwargs) -> nio.Response:
with self._lock: with self._lock:
retry = RetrySleeper() retry = RetrySleeper()
@ -132,7 +130,7 @@ class NetworkManager:
self.write(to_send, sock) self.write(to_send, sock)
response = self.read(sock) response = self.read(sock)
except (OSError, RemoteTransportError) as err: except (OSError, nio.RemoteTransportError) as err:
self._close_socket(sock) self._close_socket(sock)
self.http_disconnect() self.http_disconnect()
retry.sleep(max_time=2) retry.sleep(max_time=2)

View File

@ -67,7 +67,6 @@ Item {
loginWith === "phone" ? "Phone" : loginWith === "phone" ? "Phone" :
"Username" "Username"
) )
text: "test_mary"
onAccepted: signInBox.clickEnterButtonTarget() onAccepted: signInBox.clickEnterButtonTarget()
Layout.fillWidth: true Layout.fillWidth: true
@ -75,7 +74,6 @@ Item {
} }
Base.HTextField { Base.HTextField {
text: "1234"
id: passwordField id: passwordField
placeholderText: qsTr("Password") placeholderText: qsTr("Password")
echoMode: TextField.Password echoMode: TextField.Password