WeakAuras Companion provides auras which do not Match
emptyrivers opened this issue · 4 comments
Describe the bug
Under certain circumstances, an aura can have a url which leads to an aura which will not be correctly detected by MatchData
.
Do you have an error log of what happened?
N/A
To Reproduce
-
Import this aura manually into the game:
!TIrxVjooW)lv6KOsCuGRD3BR0(aFeAZkAsxCyR09qatId42GnNJdu6d8B)MXjqdF1cRUMkWz8mJhpFp4xZ3ZNm1NeI)dlLP6yUG5tC77112XYNOzVQR)OKl0(KwwoEw9YGvRJuOj83y(o1Q7tOP6jsL7mnxksaobyhYtMftx6bi7t8jlDJIsyAFNQa2Iaa7D4Ae)vw4t8q9eFN6vbScst0YPi99Nfs1GuLM)nCAYPunpidDsd4DaAW6tNKOPkDMyWfCCvo3qAv0bmX8ktKYxwn87RggLkmuw6Yv)y1WShCZewqQIH7wQXBmfxZSMotUGPyH2A20(2LVWvGRim9fL3WLewCuboT7tSmGgVAiWTPDHLijgPajRcn7CqM2MQPG9qfWU9oM2Ua6L(aUZJY40T2jnel94mvp2CgfmQJbYgQNWehN41pTg4XNYuvAePzQsvR81Yfurd)C639XDgtCynyhLC6wxTIQLl)8tIjc)aSGDFFZmuZabpOIsi1Rgwc0uHHUIUsAilS0fnJ5V9gvfoixI7BFXL7P56B)ivXeAKid1hMo48ItyVt2w(ELkkoNZdeAjhK7o3eDXJaF8Kjg3D4nTIpEmtHXboM47Ca4Y0e2aA8c6YeTkLbuNbzuIun6bzObYyMaUabKjYfUciuY8DdW8phI8e0PS847mjWoqkWW7S3gmHdmHOb3hiLIE5m27bEPcWted4PMO18xAjfH8S4wsiBuAuKNHQ7T6(yN(DZXd2Sr72Uod662OTvBqQMXIJTd3suafXA3uwzuql4AGMBgeNbbAxuKtxagfWgmerpF7dyipwGZE2ZT88Gp2OxYuf535K0rMve42YF1NmOvdI3aIxJE5MOumNfACWVjywuW8THShHKsizKhT62fV(PI3nXOlGt9Dm7BBi(WJpxeVhYzGzwp8zEifELkvoM((FS6z7znW6HhDFYQNv7bWBpagaxpJb4W62c5jn5hb()HizhAqlpxPTisIjxUhU5ki73lMmlxEuomIo(O7Led5j2pjZp(S0MxFMPnJKk4QyUfvlVAOt)hg0SXDdiDD9iRggkp9eVgo9SHt1kB0jqyMMcv2voPtjW9jPe)YZJN7QY3OU3WAJEVDjE5NV88zl6WG80enAy(3F3UEALTo2JX(Hc7Z)(8a9pqwWpFwSvvO)xq(044pofvEMU580V5EaXf7EPyr8BBPyqBAy4xt64gIq0HReOblJN254BCYy2AWH6VOc0y290KMmM4xC2cO6E8P3AXNW6FB(EqJ329XSU6X6Y9Fyf5n1h)OSShUo0bQzFGQjyJ8pBsKHhhvSmRt75mVm0m9n48N1QAA(ahnWsqhfdmBKp5fgBwdOyDGUhQGqqubFQrzvSrDsiukfbMlHqV3qJbjRlDjKWqja7NcjAoDS30x0PHFU4xhNSXN0rXFB1WFMsdbsPRg65LF7YZ3n1OcTDi2TTqoghLppttxpp3hYrEly9SV7EVchsNy64KcZAnHXhpbkFxRsv8VVEtTQ1(7BQJZWavue04FbT1HkoNV5dXuuZiBqN9kz6mZGCPXA(M2aPXOeUly0wShWqo0jqaaz5EBPKXS9agetts2dAu2ay7bF28zhryu0a2re867l54WM7aeLfPmouUqGZjU2XdBDIdnFrJghK21toHeaI3wdSAmch0ugYsOA0FHHERBM19WEelYMxDplMH9fIdYpUyPkRTC8)6Mp)lZNxJFIAe2yqfM1cS2m5CWNtuQkgCE06zj3E1vlOJLv4YRU)L(6)L)1F(ZR(wbxUmfq9R9jVwCECSJ8M5xwFYFKKtbSCgChLQWNuuy1tBw9MeA)dj9zihcpcYj01QJxb11U(2O5G8cF2QH5Ptb9NIYHIpzdOUj46tVTrkOxDO7wWgGqY)Xe6GqZ0BKw9SSCG0MXYfOUhI1J4Jx)RbmhIHy5Gxp5r2w4Kmn387wygSXPE1VCZnFPkMOIh8YY255rq6JoMtb6R6tAZM7tMds411rX2))(d
-
In WeakAuras-companion, fetch for updates.
-
Enter the game, note that the imported aura is now marked as having an update.
Expected behavior: the update dialog appears.
Actual behavior: a fresh import dialog appears with no option to update. Upon importing, a copy is made, and the update button remains on the original aura. Clicking the button a second time will bring up an update dialog for the copy.
Screenshots
Upon clicking the update button:
Did you try having WeakAuras as the only enabled addon and everything else (especially something like ElvUI) disabled?
Obviously, this doesn't work without WeakAuras Companion enabled. But that was the only other addon.
Which version of WeakAuras are you using?
Was it working in a previous version? If yes, which was the last good one?
I do not believe that this has ever worked properly.
Additional context
This aura has a url which leads to a wago whose uid does not match. Exactly how to resolve this is uncertain, but I believe it is something that should be solved on the WeakAuras side, possibly by creating a method to bypass MatchData
, and instead trust the user's click and apply the update on the aura which had the button. Alternatively or in addition, we could find a method to allow the uid of an aura to change upon a user-initiated update like this.
I can ask Ora to add on API the uid of the aura (for single aura) or uid of group, with a flag if it's a group
Then when clicking on the icon it would update uid from what was on wago, as you said.
For groups it would update group uid instead of what you clicked on
++ groupA uid=123 slug="raid"
- aura1 uid=345 slug="raid"
- aura2 uid=678 slug="raid"
WeakAurasCompanion = { ["raid1"] = { uid=91, encoded="!fsdf56sf516s5f1", isGroup=true } }
local wago = WeakAurasCompanion[self.update.slug]
if (wago.isGroup and self:IsGroup()) or not(wago.isGroup) then
self.data.uid = wago.uid
WeakAuras.Add(self.data)
else
local group = WeakAuras.GetData(self.data.parent)
group.uid = wago.uid
WeakAuras.Add(group)
end
You have a better understanding of how uid are handled, do you think this would be enough ?
If I did think that, I would have opened a ticket on the project I think needs changing :)
To expand on this a bit, the code path which ImportString
invokes was designed for when a user pastes a string into the import box or clicks on a link in chat. But this update button is not the same, and in particular there is more information available. We know that the user clicked the particular button on this particular aura, and not some other button. So, there’s no need to use the uid or id to try to find a match for it-we can just use the aura which was commanded to update by the user.
Also, even if we decided to update the uid (which I’m not convinced of), we already have it from the update payload. So no need for @oratory to update his API