1
0
Fork 0

Update to latest GoPy version, fix issues

This fixes issues related to breaking changes in latest versions of
GoPy, which will now return concrete instances of corresponding classes
in iterators; previously, only a "pointer" would be returned, which
would've then needed to be set as the handle for a newly created
instance of a relevant class.

Closes: #17
This commit is contained in:
Alex Palaistras 2023-12-14 18:57:27 +00:00
parent ce1526bc6d
commit 7eedd28d28
7 changed files with 17 additions and 21 deletions

View File

@ -27,7 +27,7 @@ RUN ln -s /venv/lib/python$PYTHONVER /venv/lib/python
WORKDIR /build
ENV GOBIN="/usr/local/bin"
RUN go install github.com/go-python/[email protected]
RUN go install -v github.com/go-python/gopy@latest
RUN go install golang.org/x/tools/cmd/goimports@latest
ENV PATH="/root/.local/bin:$PATH"

View File

@ -7,7 +7,7 @@ from pathlib import Path
def main():
os.environ["PATH"] = os.path.expanduser("~/go/bin") + ":" + os.environ["PATH"]
subprocess.run(["go", "install", "github.com/go-python/gopy@v0.4.7"], check=True)
subprocess.run(["go", "install", "github.com/go-python/gopy@latest"], check=True)
subprocess.run(
["go", "install", "golang.org/x/tools/cmd/goimports@latest"], check=True
)

View File

@ -38,8 +38,8 @@ class Roster(LegacyRoster[str, Contact]):
local roster.
"""
contacts = self.session.whatsapp.GetContacts(refresh=config.ALWAYS_SYNC_ROSTER)
for ptr in contacts:
await self.add_whatsapp_contact(whatsapp.Contact(handle=ptr))
for contact in contacts:
await self.add_whatsapp_contact(contact)
async def add_whatsapp_contact(self, data: whatsapp.Contact):
"""

View File

@ -3,7 +3,7 @@ module git.sr.ht/~nicoco/slidge-whatsapp/slidge_whatsapp
go 1.20
require (
github.com/go-python/gopy v0.4.7
github.com/go-python/gopy v0.4.8
github.com/h2non/filetype v1.1.3
github.com/mattn/go-sqlite3 v1.14.18
go.mau.fi/libsignal v0.1.0
@ -15,7 +15,7 @@ require (
filippo.io/edwards25519 v1.0.0 // indirect
github.com/gorilla/websocket v1.5.1 // indirect
go.mau.fi/util v0.2.0 // indirect
golang.org/x/crypto v0.15.0 // indirect
golang.org/x/net v0.18.0 // indirect
golang.org/x/crypto v0.16.0 // indirect
golang.org/x/net v0.19.0 // indirect
google.golang.org/protobuf v1.31.0 // indirect
)

View File

@ -1,8 +1,8 @@
filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek=
filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/go-python/gopy v0.4.7 h1:VkJmTmzioBIRWca7+3EBN9W8/yPQavC8VNg+CMINHHQ=
github.com/go-python/gopy v0.4.7/go.mod h1:SqsDVtw9SG+TJNwJOnnnU/myD76uOhO8w5jehFewoVc=
github.com/go-python/gopy v0.4.8 h1:02kVfflUZlSXMTzYT7wiy9W305jN/kio5oiINfzB6Ro=
github.com/go-python/gopy v0.4.8/go.mod h1:zMV/gSSYa9u/8Zp0WYR+L/z+kOIqIUtMg/a1/GRy5uw=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
@ -20,12 +20,12 @@ go.mau.fi/util v0.2.0 h1:AMGBEdg9Ya/smb/09dljo9wBwKr432EpfjDWF7aFQg0=
go.mau.fi/util v0.2.0/go.mod h1:AxuJUMCxpzgJ5eV9JbPWKRH8aAJJidxetNdUj7qcb84=
go.mau.fi/whatsmeow v0.0.0-20231127175850-3c97433b4676 h1:YaFOVOdFJCSSByUT6WSgh65ChcVEDZN4QD7OTwaMw+k=
go.mau.fi/whatsmeow v0.0.0-20231127175850-3c97433b4676/go.mod h1:5xTtHNaZpGni6z6aE1iEopjW7wNgsKcolZxZrOujK9M=
golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA=
golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4=
golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE=
golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg=
golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=

View File

@ -79,8 +79,7 @@ class MUC(LegacyMUC[str, str, Participant, str]):
participant = await self.get_participant_by_legacy_id(info.Subject.SetByJID)
if name := participant.nickname:
self.subject_setter = name
for ptr in info.Participants:
data = whatsapp.GroupParticipant(handle=ptr)
for data in info.Participants:
participant = await self.get_participant_by_legacy_id(data.JID)
if data.Action == whatsapp.GroupParticipantActionRemove:
self.remove_participant(participant)
@ -113,8 +112,8 @@ class Bookmarks(LegacyBookmarks[str, MUC]):
async def fill(self):
groups = self.session.whatsapp.GetGroups()
for ptr in groups:
await self.add_whatsapp_group(whatsapp.Group(handle=ptr))
for group in groups:
await self.add_whatsapp_group(group)
self.__filled = True
async def add_whatsapp_group(self, data: whatsapp.Group):

View File

@ -493,10 +493,7 @@ class Attachment(LegacyAttachment):
def convert_list(
attachments: list, muc: Optional["MUC"] = None
) -> list["Attachment"]:
return [
Attachment.convert(whatsapp.Attachment(handle=ptr), muc)
for ptr in attachments
]
return [Attachment.convert(attachment, muc) for attachment in attachments]
@staticmethod
def convert(