WeakAuras

WeakAuras

206M Downloads

WeakAuras Companion provides auras which do not Match

emptyrivers opened this issue · 4 comments

commented

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

  1. 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
    
  2. In WeakAuras-companion, fetch for updates.

  3. 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:
image

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?

59ccd8b

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.

commented

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 ?

commented

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.

commented

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

commented

I do not believe any change needs to be made outside of WeakAuras.