Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Push auras from Wago to Companion #44

Closed
mrbuds opened this issue Dec 31, 2018 · 15 comments
Closed

Push auras from Wago to Companion #44

mrbuds opened this issue Dec 31, 2018 · 15 comments
Labels
enhancement New feature or request

Comments

@mrbuds
Copy link
Contributor

mrbuds commented Dec 31, 2018

From @oratory on 20 december

just pushed some changes for the app, enables a listening server
if running that and open a dev console on wago.io, type enableCompanion=true and the "Send to WA Companion App" button will show up

We got to think about the workflow after pushing that button on Wago.

Wago

Push "Send to WeakAuras Companion App"

Companion

I'm thinking about making the app go into a "stash mode" that let you push more auras
Every time you push another aura it goes in the stash, which reflect what is stored for weakauras
Next time WoW (re)load it show stashed auras
When app detect World of Warcraft has finish showing a load screen, it gets out of stash mode and reset the data

WeakAuras

On load, check if there are auras in Companion's stash
Then how to let user interact with the data is yet to decide, some options are:

  • show a list of links in chat on load, maybe add a /wa command too ?
  • show a list in wa options under "External"
@Stanzilla
Copy link
Contributor

Just one more for the "we need tags" category, I think.

@mrbuds
Copy link
Contributor Author

mrbuds commented Dec 31, 2018

I have implemented it on companion without much thinking on the UI part

it adds a table to WeakAurasCompanion global variable in game

  stash = {
    ['H1KRNaqum'] = {
      name = "Shadows",
      encoded = "!vxvWYPnmq0VMESGTRHaDApajqdtigcYjzApOuHTWwtesUsYqOh63ExjhaN2cTmtp0IyWJ0U6T7(29zW(4ymAjgLIrAmkOXznodJwtYKJUaJU0)QzrKVu6Sd(TzYIfAQbh96GG2yetWmpOneLHMIJ8Hdauq5Ku5Aal6tferkyzogTIQ0mPW5uMsUgGEYSrFAsuCVXwCmuLGWVBRxqkOPlHlHr(n8A4HrCjXLbLA6djCIgW3OkPyu1gWIMjY4WbZM8HBhGnWcWGVyQeqhJgpyyS9kSSmiiw)jjg2kAC1jxltPqv57zVwPIJr5gtH(TnBAPIgmzZDurtOeu0mipJ3uaXlDJGSKLavvzbeYcsc1vMLwYO1OGPS23Ft6nUeAfyjmamsGma2NapICDG1Sutook07LCLfJHmr63(89uYJcQRUPpz8FUSoFqu8Gz)Ag0LaczVXL9Mo72lg(Nuyjsjh6EIyigdeK58Q2xHsMPGGpvrtyvbWZ6SiLzGD6DLrson5r8EM2veRikMfkmAE5IfaIWjCO3f5y7KCIiJUhciwfuLzdWSunXuQig62B0hUquWl9krYLQTo4aX(nW97BC)gcrQrlp7NwDB7f2oSLB(OAvXNy0Rko4qNUGMuBedG1uFsSF1gNx9pYejYq4uORvdPGTi9SP(o32pLwrjBjZQuHZhL(STOU(EW4KfdqkAdGkdKNiyIClJ(JJpGvO)orW3yZvBdbLlxpraqdp7Xxt2OTuV1s1a(L9MD9WBhxrwhw14OXHsHbX(QvbeUFAYgPCkll3unHxx(WGPODD1JOcISxFoNar80uaZlVtpTx(vFSy8FDfWp9cW)ZKeD60TByhpFVWAsIk02L2sqx8U3FO0hEjpdshB7KTCxsHcB054fIRfE(HYtpxE65Yt)ttRwxj(71Th7FpobzOF3wHTcoUoS2a8)OAq7c)9d",
      author = "undefined",
      version = "1",
    },
    ['r19-4nFBX'] = {
      name = "BfA Assassination Rogue",
      encoded = "!T3z)YPnUwa8NMDMT)rt932SZ9FGeOH2aKIjTPD2HIblaxm2S2M81ChES2xG7l2vs2g8xYytamK6D2jj1ylKKLo)ohD05O(0971xEEFz1(Y29LzUq6c6(YpQmXS5v9LTOR8EoJg1Uh95W775oJhBdC63McE3Ju0b9BdV7haw2AMg9BZ3xwdwovTTvST1muCqxvEOYOzQwMlU0u30cwkWhb9)m4FYI)jhSeVGVVd8Bemb(q9EEbOV8elZLlGpVPLkWQ)W(YlrLU5)04Z32svv8MR7lRymAQP1TMAgWN9Y6T7vVl82S07lp1XzH9F9HpGAkxOz(H1nLpW7xK(ngEu5On3T6I6nu0W)2bxlmmnG)uDPf(Z)P7fTbJmnuTr1yBhflNSF7J1m0SNM57h(eGNwOyOcur9aJTuMdKDG3ScUR3THKPEwBG(yVoQAD61RtRBQ3awlEkWRu3sRU6eyvOnUE5ELAEVbHpPU2lVOyPUAqpttDhT1VEK1Ebnyqa99mhoGOVm9fuxq9EyFRUPcEWJQ24XAJwQ78mUtg(hAW)a3evGFYta7yxFSYO1VucE9r6WbyXUQMH7iMOx3szei2fTxagf)on1JFNlEyHdCOUHtSpHWLTr9fjFVmrVUJ)y4gO3SUJ7LVSB96THpIL2KjW5wUVzHp4sdVlHFy5n)d4NOHQP6kpJ66vbdxoESBHDD9BUTXD3aFpbVK8uZh7aNsAJ)DvyN7daCxHUEtvB3sf8aQnjFnqr3zk8dxoeFLBTaW3rWk3T1V5MnxwE5y8L)5LvL79t5Ev7UEKTcCmnC8nSzzhOXI)o75wZBzQch08EAk0Gd7FT0WRcPORJUx3rwnnWdpPHJ2rtk0qdi8QQUJoWde0qDa9coFm4CnVHhoaldf9V6lUQc6QpalAogyHR4(mJw3BVwy37zyzrDQ2koOPPa0erhWto0HMo1T5hVUxybyAJqY)oLLTmdawufnvWPl6EqTSaYjYUa1rqPbQMpA0d2Tu3qzOouCvnu9xB0SNVYRcSUFRHjQ0ByP9YQbFzPIksCguIsqPrVNg9cFIU5JU1PiYu8)(cvKUYGyOCVetKgr(gSGl0aTKh1uHZgAZX7v4KBcR)4g6ktGi1o317MMTRhgtoAPTJ5CuV1DlurdPKx697egL6wzUewKWbpZXZoB2wU5v19(Y8RMdd8L71xWrarokvIbTFpad5V0l3EjOS0Xe13T(fu0EeCb1x(pw4nvPgAQ)IPUOTOt2Nc0Mm1X9vWlMMZXelCr7vcgOoyaQqoaeNL2GFIrg1cqFG64mbcmK725J3vFZdi)TQDVPZLFgEVPHjsfl5v0Ooc)ph(312uzCRe1iWSiqBsgnrIBse85exrKuzvE8g)F3fOO(Sh2PnSyGZiyefJs0GTrLH2MwdXuIAeOAOBBcWayPnYdUH6sGSl51LUCDuvXWay4E7ywzT1Vs9URAbrvYHlYW17LgEis847i0ZOnks8tVI4sp5yRgCRL5elGT9Qb)jUQ)oFH4qruolT3cXf3ww3(dPnqUXUK1hXvm0wN3J0s)kW4XRgW7PZ(1sZK6(9FyT8PjWBOnt641AL41JaEL6IkvQiWYkkvHsilO2ANCO2mqXEDqxM9k0LOMbb4GKr9BLMgvK8AKkP5ZPry3mhwOKYwyu2n65KoETaiPbGLXaPXGGHjzPcqtK86JjddWZcdDxmFDFctZQUYzLTUr)ymyT3pSRnTZKgFt5geyLnkyLbjKxusGvuOc)VpqwCFZ7(6dVmF(9lPehxmmwEruVpViJip7ENXguy9jNXQzDe)Uqr3mdi)QzWuqKvYuD0a1lHK0zLu2ZikllndC85bdZ2sboVsF1avG1QbYJMQ44KdKRBL73DMBi1P3QWOmyjrCd3qsFlxO4I2swEPY1j(GToXBL0funKCZrZQQcy15gYjx5QXMnx(WSKbSEt5lxB4IMNUrdTx3QcF6rzJqrJSaTXqWzGY6VMYNNM1sqsZEI4Uw34vdy6J3NgHGT0IPArRViSsoBw5SxBch5VyPrO1jgnoENSBL)aIx5ZgEnzwyq(AYoh9iUoXBevssDaFclpFMM0qcc3Qt7oxED3oTQ)F7DDZl)mPfFol8yOebKGJMOztTPzzyKeJJKxZH91HOKhFo4R2W4wlW8(YSrGSv72kZqw4mLjAJDaoGvd(SoS2dWfANfay1boot()SH4IQB(3VHFFxyyFyIQlddk7ycWjUjUjJiJX0JVVOAPH29ItCl)6pPz7GF5LdRKHxOJH(ZzLMNxh9ch3PbNS4(1nmKMhmC8SssfKtF)i8nNN26pRWF3SNTKF38Qi0Tq6O7HLO7s0D(SmMmFVqW3(y3CsRdBSAwW1Kwl6mXKdUHR8MVI0TUenxuO5m7SKunKoflllaCE09yvbqW93zZzaG7zaEaInr1roRq5jS3tOZ6sTn6t8xDlDlWNgsrwZaOqoXFpnih3hDVGS58As0ZQ8TZAOEqG1H2A7mae3b4nXDu1U4C59KlLZQC9Jm)pU(kLK)cI8JduUL2d1xIx158eRpPVe45bNhOcKgfpaCmmrnm(omApI)NZLz3Hudyl2Dtex7RSZbD90tJFtrjrjCuCFDc2zMc2wQ0y8sJX3ZRJ(MW2jxa8ux2PJEGnT2B3NkRHor9BcrpknH)8jsOoEMQNcBN8cUhNNhILfutGxjTFJj6Bh2hWj5Hv85O528Oy(qQbLBcFmBUY8EG5zUUwoJn)20HBSDWbjjnY2qtQ0Z4hyIo9B41wFp4v8Go9nF(apTDvssR2)HWi7xppNxOIi5iSI3lcRCxc1vdkX3NJohFpAiEd0COTeEYHScp(U52futxrqGiNBV5Q7qQjKK2eb8pWXCHZ9vh547(BFtgWyAXp)dh17T)b)N)heDg(LMkEE4B51jNTrx5VS87D(i3VkPZNuE(ENq0jOYfzQ9Bc2CPT1V5ST(na4o)E4(Tk0EhD0TpWoL1jNoEAa7ck4)jqtXYJs1DL5SKJzKEXlH69PLyPP45eQCEMYsoar91OJrSwVLqllXpHiBF)eqyFwLEwRwTFN5)CD65YKOouRKKxmU7(2PAOV7ShM10s8S00hUiaRM(shlte2ZVQLXqS2RI9BCmwhkOoYcULKb2ECyeULPmyQlCe75zSuxMiWoOjcmxPJLMcFoKKs2smvFAHuZA8u7ZBFZhq1hQ8e2Koo63)9Pty60dJAzldL6JTdJfyFdVM0hKD2n9(lSSkIDQDcz36yB6RkuBFHORPdaQyN0DwaF3PtHHxj99qFen8kCsCWZcb)90veSxIl(CGfno6Q)wv)rLNTJU2VHzJPTLVqm6LgtcUiVtvCwnOfejQGIOR962KA9AoxabYKW3)sxWJZEyg700xPxUO8qouQBSIqfojgoMFF8w7t39sLBwm6PjiNrC8qJ40ukpnTiTestKtZ4B6O5y2iBiQDjTDfaBS2ST03ZZV(irAx35ZSumXHGzDrTlxw3InvF5RFvEpQI89dzWnuCYuNKDnBycAw9p6EKrgKRNFWONMa5hjMMs)YQM)0t0ziOa6A)0BanU7X7s4jWWHPaLzvHTd7)kKiJGfMZHkuKO5)noeIN1yQtf6Pn1CE6ygkscmVL36YNkbIuU2OuetFL71icolgBcSuTmTT1XXKAjv9moRGeM6gKTv39DmqpuyYMfJsdZU3h2LgeJEGngDJQg5g7oA)TWSB1Voo4JrZOur8gpILIh(NsLrRBjI8TZA1M4(okvASlski56qcntknAeEvLZ2C(sq6jBMOomQmGjP7aeKyKTgpXxTHrUDkiz(9oSRBtKOwa5aAKcNBAmyRoDpIVzV8lFxN36U39vmoum5vNLsIJtKrS0ZLLbtZEytbrKDwelEBp3uZyopnLkeli32o7RK(vKMrsqVSDIgMflf93RqzmqwomMmsm)wSREWCx3vp7sIEGmwfZgVTUzRF9RVkzOJZ8d0szNnwAQyjB8ySwQ5jWspmho97lq4oNmNscuMXD0BjPSyIoLEBYg2hC6yiQYEY7LB5GMFF69ss81JxIqI6PU6V0TbV2ZCP7FXkLB01JosCNt1Hmf(w4PiZ8r5n8klEshhVKiJWoT5DWchhwI8kuK3xbgQah4iGShsMmcC04KA7bkFkSPkrkbeNqqxS58dieUKWXhW226qRZjsbA2IvO5OYziDgMs61SosjwHOrAZ(DJgLSHizLDR8OOSKT(90lEmv2ndvzEk(SNDFA55ZDylbL0E4jRu9mF65YZFCs6W45FDO)6vngZ09Jt7LhJulpxDpVYgsjgjOPfYKfcLNeKm1KOukQaSdjqPmN)HJRpqEJY0InFjTN3fteINGa6v6DU9YqNEIDO0i8daiNQmbjDIFS4V3Tnht3DE(XP01Dg)Xh)r5XK)BJJj)q5bbHdxUBanNz00h1GcVnYtQqsi6cANVdWN4hDah3e3WRdQE0oj8d(2z1amxnFjmPsUAjxTKRURCvUhhB34tD)4N((9LC13gC1TNQKojGT5ijjj8Bqks6ytADnHnActIJMye5qWCwY7tYs6BwPVC84mWSephxfg6tssm1E6e1lLSQ)rDZyf0rTjV9OpntY)m4XheZSHujRoWobStKCv4PwjY5ePTbYHDS5KMNyRCK58Hky6cjnAiNWLW53zOSHvd4ZJ5XIchWfTgsPCC2YXDFy3rhc(TRhDEPCKbGAU5Xl09(F)RQU2OPaiwhTB3kStj3x3XNxCdyZL)NV7lF6kNzku)G9Pakl6GLbgfYxAp9HNOF(sXZugHAFaXpIryBqczXMBetIF7Rnsj7(0LDV3S)oon)vFO4sGHhcsIVfNDeMtAtNf58bkYXyBMpeFIr)JPUWrz3LfsLKI0p0B0tuWpLpsnv)ozRQD7cWmDCcMcjJ5N2AQOPPUhyaHX62luSMHegV0cElnrsGHYaa)9LkqEMXKAkw)9DnF)M)17Lrpqy0pAZ0puXIecexY11F4UMRgutxXa(0dnTubwnnCxyz61IarvKBaq1ZK)dJeGIoAZbwUI3PzWVghnZod9vESn6kUrigphddlkPeBAPbFz6wzLVUt3M)Ot7EvVXRxPgCAUk(fQC1RUknWf(27A6wsEpXD96aBNkwbREuxqlWjsXljXWYZuHdxBJFr2KUOFBXTRB9XwGxNIh1Pnwji)LhoqNAxmAle1jkGziSZu1YCrtJgwi2)qVI2v3gupn6V8zmd3WywZd2oEXxgE0W1CVDYJMRe2oQHynd72UywYqWHEK3nnH2dr4CNrK0EquXvbw4ZdLfiHL2LU5sPjlZtSuwYbEOzcz4(2yQHeEoPeNihnd2ftwO5ra0Gw445oivMWfQ7dCpwzlyFzv1FbNocubQT0WsAoLT8alEMV6F(UQMGHFsz8gbGUt1QLfZo2KJEyzeW9zIIvyQGooWClT6QO4BYteqUSfiOI7b6S)oUZ2DUFibmUFFP)AM6c(1di82x2bENP80A5lzy0IVOPm9nsu)EuPG0e1qnKmzxHWUsDdvZDB3endY3CbA3mufhVOOaRGyOJmuuJ)AnvSJoAx)RiZpC778zJKl(1wwKOrmrTcWTuR51pHsINAV8IILkSSGtWD0w4xz8Q0SEMSGfPJuridAM4(D4HFf8s1U(YqxnO6WzOtqXxayDhXqPunHCdhpj7(cHuxBHvOrH4B5BEO91dudOEqmJ7DXn9))",
      author = "undefined",
      version = "5",
    },
  }

When game is reloaded, file is rewrite with an empty WeakAurasCompanion.stash

@mrbuds
Copy link
Contributor Author

mrbuds commented Dec 31, 2018

Considering that:

  • user has made a direct action on wago to install an aura
  • companion app show a list of these auras and warn to reload, but the app display will quickly be ignored and be kept in tray once users understand the workflow
  • wow has just been loaded or reloaded since the action on wago
  • if user does not take action to import the aura now, on next reload the data won't be available anymore in game (it makes the workflow much easier, no need to manage a queue in both addon and app)

@Stanzilla @emptyrivers @InfusOnWoW do you have ideas or preferences on how to show each import button in weakauras ?

some options that may be doable :

  • show a clickable link in chat for each import
  • show a modal window in the middle of screen, do you want to import xxxx yes/no, clicking yes shows import tooltip
  • show a modal window in the middle of screen with a list of clickable link (i like this option, but i know stan doesn't like adding new windows)
  • directly shows tooltip for each auras (i don't know if it is possible to do it with more than one at once)
  • add something in weakaurasOptions right panel after External, it might look good option but it require another user action before he can click on the import, i think it make the workflow too "heavy"

Stan on discord though about importing the auras directly and use the future tag system to categorize them.
Problem is nothing prevent a user to click on the "send aura to companion app" button with an aura he already have installed, so the encoded string has to go through the import/update process that require user interaction.
Also i dislike strongly to not have any user interaction in game to install an aura, it would be a mistake to think it is not possible to use a vulnerability on wago to install code on wow client.

@krazyito65
Copy link

krazyito65 commented Dec 31, 2018

I think the best way would be a new button somewhere that shows there are new auras available to import from wago, that shows a new pop up window

@oratory
Copy link
Collaborator

oratory commented Dec 31, 2018

I like the idea of adding an option to the weakaurasOptions panel in addition to a chat reminder on login. I'm not sure of the point of auto wiping the stash table on reload though. Would it not be better to detect if an import from the stash is imported (or deleted/cancelled) from in game, and then removing it?

Also I agree that there should be some user interaction in-game, much like when an update is available.

@emptyrivers
Copy link
Contributor

The implementation of this local webserver is, quite frankly, begging for a cross-site request forgery attack.

Also i dislike strongly to not have any user interaction in game to install an aura, it would be a mistake to think it is not possible to use a vulnerability on wago to install code on wow client.

I agree, but this is a bit like the pot calling the kettle black :)

@emptyrivers
Copy link
Contributor

emptyrivers commented Dec 31, 2018

Besides that though...

Relying on a chat message on login is foolishness, in my opinion. It's probably fine to have a message in the login, but there are too many other addons which also fill the chat message history.

That leaves us with essentially three options:

  1. Make a companion GUI which shows minimal information about the data it's received so far, and provides buttons which OnClick call WeakAuras.Import. This option has the advantage of being the simplest to implement.
  2. Create an extra section within the WeakAurasOptions > New GUI which new data can go before the user imports it. This would require that we create a new GUI, as well as publish a new API for the Companion to consume.
  3. Go ahead and add the data to the database, but perhaps not consider it immported until the user confirms the change to their data. Since the user has not yet gone through the import process, this option may require special care to ensure that unintended data does not slip into the database. If we can seal the holes in the companion app and wago, however, then we could possibly interpret the button click on the website as the necessary user consent and commit the new data fully, perhaps tagging it with a temporary New tag (which, of course, requires that we have tagging functionality).

Stanzilla added a commit that referenced this issue Jan 14, 2019
…config-prettier-3.4.0

Bump eslint-config-prettier from 3.3.0 to 3.4.0
@mrbuds mrbuds added the enhancement New feature or request label Jan 14, 2019
@cont1nuity
Copy link
Contributor

Another request which might just fit this topic:
How about an option to automatically install "My Favourite" auras from wago?
My use case for this: I am traveling a lot and thus playing on different systems (PC vs. laptop with different screen sizes) and copying my whole config over every time is a bit annoying. Having at least WA somehow sync my most needed / starred WAs would be nice.
This could be hooked to account and/or API key to identify the user.

@mrbuds
Copy link
Contributor Author

mrbuds commented Mar 24, 2019

There are countless of free tools for syncing files between computers

@emptyrivers

This comment has been minimized.

@Stanzilla

This comment has been minimized.

@mrbuds

This comment has been minimized.

@mrbuds

This comment has been minimized.

@emptyrivers

This comment has been minimized.

@mrbuds

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants