smeea / vdb Goto Github PK
View Code? Open in Web Editor NEWVTES cards search & deck building & twda search web application
License: MIT License
VTES cards search & deck building & twda search web application
License: MIT License
scenario:
Library
for croc
Crocodile's Tongue
TWD
icon+
to search for decks with more instances of the cardI wanted to save the inventory to a local file, but I got an "error" toaster message.
In the "PDF Proxy" page, the "Add Missing In Inventory" button is messing up the proxySelected object so that the Generate buttons fail with below error caused by the card details being missed out.
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'localeCompare')
at Rr (sorting.js:5:16)
at Array.sort ()
at aa (cryptSort.js:28:22)
at y (DeckProxyButton.jsx:115:25)
at g (DeckProxySelectModal.jsx:176:5)
at onClick (DeckProxySelectModal.jsx:232:34)
at Object.Ke (react-dom.production.min.js:54:317)
at et (react-dom.production.min.js:54:471)
at react-dom.production.min.js:55:35
at Yr (react-dom.production.min.js:105:68)
This setProxySelected line does not do what is expected. Merging by spreading like this only does a shallow merge, where crypt and library only have the q and print attributes and each selected card loses the c attribute.
This could be solved by any deep merge solution e.g.
const merge = (a,b) => Object.assign(a, ...Object.keys(b).map(k => ({[k]: typeof b[k] === 'object' ? merge(a[k], b[k]) : b[k]})));
and replace
setProxySelected({ ...proxySelected, ...crypt, ...library });
with
setProxySelected(merge(proxySelected, {...crypt, ...library}));
It would be cool to have a filter that shows what cards are not in the TWDA. Both crypt and library could use this feature.
After clicking twice on the Thaumaturgy discipline icon to get vampires with superior Thaumaturgy:
https://vdb.smeea.casa/crypt?q=%7B%22disciplines%22%3A%7B%22Thaumaturgy%22%3A1%7D%7D
react_devtools_backend.js:2540 TypeError: Cannot read properties of undefined (reading 'Group')
at ResultCryptTotal.jsx:12
at Array.map ()
at kf (ResultCryptTotal.jsx:11)
at gi (react-dom.production.min.js:157)
at il (react-dom.production.min.js:267)
at ql (react-dom.production.min.js:250)
at zl (react-dom.production.min.js:250)
at Ll (react-dom.production.min.js:250)
at Al (react-dom.production.min.js:243)
at react-dom.production.min.js:123
overrideMethod @ react_devtools_backend.js:2540
Co @ react-dom.production.min.js:216
n.callback @ react-dom.production.min.js:216
Ss @ react-dom.production.min.js:131
Eo @ react-dom.production.min.js:220
Wl @ react-dom.production.min.js:259
y @ scheduler.production.min.js:18
as @ react-dom.production.min.js:122
Hl @ react-dom.production.min.js:252
Al @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
y @ scheduler.production.min.js:18
as @ react-dom.production.min.js:122
os @ react-dom.production.min.js:123
is @ react-dom.production.min.js:122
Sl @ react-dom.production.min.js:237
qi @ react-dom.production.min.js:170
(anonymous) @ App.js:365
Promise.then (async)
(anonymous) @ App.js:364
Yl @ react-dom.production.min.js:262
y @ scheduler.production.min.js:18
as @ react-dom.production.min.js:122
$l @ react-dom.production.min.js:261
Al @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
y @ scheduler.production.min.js:18
as @ react-dom.production.min.js:122
os @ react-dom.production.min.js:123
is @ react-dom.production.min.js:122
Rl @ react-dom.production.min.js:244
gc @ react-dom.production.min.js:289
c @ react-dom.production.min.js:296
(anonymous) @ index.js:6
ResultCryptTotal.jsx:12 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'Group')
at ResultCryptTotal.jsx:12
at Array.map ()
at kf (ResultCryptTotal.jsx:11)
at gi (react-dom.production.min.js:157)
at il (react-dom.production.min.js:267)
at ql (react-dom.production.min.js:250)
at zl (react-dom.production.min.js:250)
at Ll (react-dom.production.min.js:250)
at Al (react-dom.production.min.js:243)
at react-dom.production.min.js:123
When I try to export a deck (whatever the format [txt, lackey, twd], whatever the destination [clipboard or file]), I have a red "ERROR" label appearing.
I've tried with different decks. There is no visible error in the Console.
When a card list should appear when selecting a deck or searching under Crypt or Library, nothing shows up in Firefox.
Everything works under Chrome, but in FF some warnings appear in the Debugging console.
Some browsers will automatically check spelling and propose autocomplete/autocorrect on the search inputs for card names, which results in a frustrating interaction:
As soon as you get of of focus of the search field (for example to click on the card you just found), autocorrect kicks in:
This can be fixed by setting the proper attributes on the input field to tell the browser to avoid any kind of correction/modification on this field:
<input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
It would be amazing if we could, optionally, set to which Set belong the cards in the Inventory.
Maybe adding a drop down with only the available Sets for each card in the inventory list, to set how many we have of each set.
Also, that would mean being able to filter by Set in the Inventory list.
The last part would be being able to set to which Set the cards in a Deck belong: I think it would be useful to keep track of cards, but I'm not 100% sure of this.
Also, I don't know how this could be shown in the interface without getting in the way.
Thanks a lot for your great effort!
The issue happens when searching for a card by name with an active filter
If you remove the filter then no card shows up, although the error message disappears
You need to update the card name field (by example, adding a letter or a space) to get your results
Ideally, just removing the filter should be enough to get the updated results, without needing to update the card name.
It would be wonderful to have a compare feature to ... compare decks.
What it could do would be:
The benefits from it would be:
I'd be happy to discuss it more with you if you want to
STEPS
ACTUAL:
The deck does not parse the extra space that JOL has, and i must remove all spaces:
This fails:
4 x Handsome Dan
1 x Laura Goldman
4 x Alabástrom
2 x Malachai
3 x Anarch Convert
This works:
4x Handsome Dan
1x Laura Goldman
4x Alabástrom
2x Malachai
3x Anarch Convert
First of all thanks for VDB, it is such a precious tool!
This is more a remark than a bug, and possibly a suggestion for future development.
Many (Android) browsers implement the "back to previous page" functionality as a swipe to the left. The add/remove cards on swipe functionality is extremely sensitive and many times while your intention is just to go back, you also modify your deck.
I am not an expert in web development, so take it as a humble suggestion to your great work: maybe add a visual clue to the action (similar, for example, to the swipe function in Gmail mobile) and make the response to the swipe more "elastic" (i.e. you have to pull harder in order to add/remove).
When trying to search "Lisé", no results are returned, because of the accent.
Given i am on https://vdb.im/pda
When use the 'library' search
And search for 'Cryptic Rider'
Then I expect results to show decks using that card.
ACTUAL:
https://vdb.im/pda?q=%7B%22library%22%3A%7B%22100478%22%3A%7B%22q%22%3A1%2C%22m%22%3A%22gt%22%7D%7D%7D
dead:
I still have an error:
Request URL: https://vdb.smeea.casa/api/decks/export
Request Method: POST
Status Code: 502
Remote Address: 109.172.10.230:443
Referrer Policy: strict-origin-when-cross-origin
Payload
{"deckid":"inventory","format":"text"}
I'm using Windows 10 / Chrome
Amaranth exposes all versions of a deck though I am not sure if there's an easily accessible way to get the other versions programatically. It would be useful when importing a deck to import all versions of the deck.
When building a crypt, I like to add all the vampires that could fit in my strategy, even if they are in no consecutive groups. I'd like to be able to sort the crypt by group.
Currently, one can only sort by capacity or by quantity
The other sort allows sorting by:
Name
Clan
Group
Capacity - Min to Max
Capacity - Max to Min
i've got 3 of them i'd like to add to my inventory.
Contents
4 pre-constructed decks
Brujah antitribu deck (50 cards; 6 crypt cards & 44 library cards)
Malkavian antitribu deck (50 cards; 6 crypt cards & 44 library cards)
Tremere antitribu deck (50 cards; 6 crypt cards & 44 library cards)
Tzimsice deck (50 cards; 6 crypt cards & 44 library cards)
Brujah antitribu (Bruce):
Crypt:
Alessandro Garcia; Armin Brenner; Father Juan Carlos; Hektor (sketch variant); Smash; Urraca
Library:
Acrobatics (x2); Amusement Park Hunting Ground; Bewitching Oration (x2); Blood Doll (x2); Bribes (x2); Celerity; Consanguineous Boon (x2); Disputed Territory; Flash (x4); Increased Strength (x2); Iron Glare (x3); Kine Resources Contested (x4); Leather Jacket; Nimble Feet (x2); On the Qui Vive (x2); Potence; Sabbat Priest; Secret Horde; Stunt Cycle (x2); Torn Signpost (x2); Undead Strength (x4); Voter Captivation (x2)
Malkavian antitribu (Malcolm):
Crypt:
Apache Jones; Beauregard Krueller; Bloodfeud; Harold Zettler, Pentex Director (sketch variant); Persephone Tar-Anis; White Lily
Library:
Blood Doll (x2); Cloak the Gathering (x4); Confusion (x3); Dementation; Effective Management; Elder Impersonation; Escaped Mental Patient; Eyes of Chaos (x3); Glancing Blow (x2); Institution Hunting Ground; Kindred Spirits (x3); Leather Jacket (x2); Lost in Crowds (x4); Mind Tricks (x2); Obfuscate; On the Qui Vive (x2); Palatial Estate; Precognition (x2); Sawed-Off Shotgun; Swallowed by the Night (x2); Telepathic Counter (x3); Telepathic Misdirection
Tremere antitribu (Trey):
Crypt:
Esoara (sketch variant); Frondator; Janine; Lucubratio; Paul Cordwood; Uta Kovacs
Library:
Apportation (x4); Blood Doll (x2); Blood Rage (x2); Bonding (x4); Dominate; Enhanced Senses (x3); Govern the Unaligned (x3); Hand Intervention; Harass (x2); On the Qui Vive (x2); Redirection (x3); The Spirit's Touch (x4); Strained Vitae Supply; Thaumaturgy; Theft of Vitae (x4); Threats (x3); University Hunting Ground; Walk of Flame (x3)
Tzimisce (Tim):
Crypt:
Count Vladimir Rustovich (sketch variant); Duality; Radu Bistri; Lady Zara Slatikov; Laika; Yuri Kerezenski
Library:
Amaranth; Aura Reading; Auspex; Blood Doll (x2); Body Arsenal (x3); Bonecraft (x3); Canine Horde; Changeling (x3); Drawing Out the Beast (x2); Enhanced Senses (x4); Festivo dello Estinto; Forced Awakening (x2); Forgery (x2); Guard Dogs (x2); Horrid Form (x2); Library Hunting Ground; Plasmic Form (x2); Raven Spy (x2); Revenant; Rumble (x2); Scorpion Sting (x2); The Spirit's Touch (x2); Vicissitude; Wolf Companion
The swipe functionality to add/remove cards on mobile works even if a deck is "locked" to avoid unintended modifications.
It would be very nice to be able to add tags to deck and filter the decks by tags. I was thinking about "folders" but tags can be used to:
It would be great to perform a "not containing" search on text, for instance:
!unique
or !"Black Hand" (if there is more than one word)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.