├── .editorconfig ├── .gitattributes ├── .github ├── dependabot.yml └── workflows │ ├── build.yml │ ├── pr.yml │ └── pr2.yml ├── .gitignore ├── .nvmrc ├── CODEOWNERS ├── README.md ├── db ├── .gitkeep ├── 1of1keycaps.csv ├── 1of1keycaps.json ├── 26studio-asterisk.csv ├── 26studio-asterisk.json ├── 2mcaps.csv ├── 2mcaps.json ├── 2tcraft.csv ├── 2tcraft.json ├── 404artisans.csv ├── 404artisans.json ├── 8o8keys.csv ├── 8o8keys.json ├── ackeys.csv ├── ackeys.json ├── aero-keys.csv ├── aero-keys.json ├── alee-keycaps.csv ├── alee-keycaps.json ├── alheckz.csv ├── alheckz.json ├── almondcaps.csv ├── almondcaps.json ├── alpha-keycaps.csv ├── alpha-keycaps.json ├── amano-studio.csv ├── amano-studio.json ├── amidst-the-clouds.csv ├── amidst-the-clouds.json ├── animech.csv ├── animech.json ├── anomaly-caps.csv ├── anomaly-caps.json ├── apothecary-caps.csv ├── apothecary-caps.json ├── archetype.csv ├── archetype.json ├── arkeys.csv ├── arkeys.json ├── artkey.csv ├── artkey.json ├── artzeikaps.csv ├── artzeikaps.json ├── asianjoyco.csv ├── asianjoyco.json ├── atelier-axiom.csv ├── atelier-axiom.json ├── atelier-rng.csv ├── atelier-rng.json ├── ato-works.csv ├── ato-works.json ├── avocaps.csv ├── avocaps.json ├── ax-studio.csv ├── ax-studio.json ├── azi-keycaps.csv ├── azi-keycaps.json ├── b-o-b-handcraft.csv ├── b-o-b-handcraft.json ├── backward-caps.csv ├── backward-caps.json ├── bad-and-booj-keys.csv ├── bad-and-booj-keys.json ├── bad-habit-caps.csv ├── bad-habit-caps.json ├── bad-magic-trick.csv ├── bad-magic-trick.json ├── bailong.csv ├── bailong.json ├── basilkeys.csv ├── basilkeys.json ├── beetlecaps.csv ├── beetlecaps.json ├── bg-caps.csv ├── bg-caps.json ├── bhomass-caps.csv ├── bhomass-caps.json ├── binirias.csv ├── binirias.json ├── bkm-caps.csv ├── bkm-caps.json ├── black-mage-caps.csv ├── black-mage-caps.json ├── blademx.csv ├── blademx.json ├── blank-beast-caps.csv ├── blank-beast-caps.json ├── blank-works.csv ├── blank-works.json ├── blanksy.csv ├── blanksy.json ├── bludgeoned-kaps.csv ├── bludgeoned-kaps.json ├── bogan-caps.csv ├── bogan-caps.json ├── bogwitch-brie.csv ├── bogwitch-brie.json ├── boomsnap-caps.csv ├── boomsnap-caps.json ├── booper-omniclectic.csv ├── booper-omniclectic.json ├── bowbie.csv ├── bowbie.json ├── brewcaps.csv ├── brewcaps.json ├── bro-caps.csv ├── bro-caps.json ├── bungkee.csv ├── bungkee.json ├── c-y-o-keycaps.csv ├── c-y-o-keycaps.json ├── cantoclicks.csv ├── cantoclicks.json ├── captomaniacs.csv ├── captomaniacs.json ├── catalog.csv ├── catalog.json ├── catto-caps.csv ├── catto-caps.json ├── chickencap.csv ├── chickencap.json ├── clack-factory.csv ├── clack-factory.json ├── clackeys.csv ├── clackeys.json ├── clover.csv ├── clover.json ├── coconut-keycaps.csv ├── coconut-keycaps.json ├── cozcaps.csv ├── cozcaps.json ├── craftkey.csv ├── craftkey.json ├── creasi-workshop.csv ├── creasi-workshop.json ├── crystal-pieces.csv ├── crystal-pieces.json ├── cysm.csv ├── cysm.json ├── d-slime.csv ├── d-slime.json ├── dalifu-caps.csv ├── dalifu-caps.json ├── dccaps.csv ├── dccaps.json ├── deagcaps.csv ├── deagcaps.json ├── death-dealer.csv ├── death-dealer.json ├── deathcaps.csv ├── deathcaps.json ├── della-key.csv ├── della-key.json ├── destroyer-caps.csv ├── destroyer-caps.json ├── dollartacos.csv ├── dollartacos.json ├── doohickeys.csv ├── doohickeys.json ├── dreadkeys.csv ├── dreadkeys.json ├── driiip-keys.csv ├── driiip-keys.json ├── dustycaps.csv ├── dustycaps.json ├── dwarf-factory.csv ├── dwarf-factory.json ├── echoppcaps.csv ├── echoppcaps.json ├── emotikeys.csv ├── emotikeys.json ├── ezkeys.csv ├── ezkeys.json ├── fraktal-kaps.csv ├── fraktal-kaps.json ├── fromscratch-caps.csv ├── fromscratch-caps.json ├── frumpzkeys.csv ├── frumpzkeys.json ├── gaia’s-creature.csv ├── gaia’s-creature.json ├── girlycaps-studios.csv ├── girlycaps-studios.json ├── glyco-caps.csv ├── glyco-caps.json ├── goldenstar-keycap.csv ├── goldenstar-keycap.json ├── gooey-keys.csv ├── gooey-keys.json ├── gothcaps.csv ├── gothcaps.json ├── grimey-as-fuck.csv ├── grimey-as-fuck.json ├── gtb.csv ├── gtb.json ├── haon.csv ├── haon.json ├── hdkey.csv ├── hdkey.json ├── hellbent-caps.csv ├── hellbent-caps.json ├── hello-caps.csv ├── hello-caps.json ├── hot-keys-project.csv ├── hot-keys-project.json ├── hunger-work-studio.csv ├── hunger-work-studio.json ├── hungryhustlas.csv ├── hungryhustlas.json ├── iisudas-studio.csv ├── iisudas-studio.json ├── inkblot-caps.csv ├── inkblot-caps.json ├── jankycaps.csv ├── jankycaps.json ├── jelly-cap.csv ├── jelly-cap.json ├── jelly-key.csv ├── jelly-key.json ├── jibii.csv ├── jibii.json ├── jusherhoe.csv ├── jusherhoe.json ├── just-another-keymaker.csv ├── just-another-keymaker.json ├── kapcave.csv ├── kapcave.json ├── kaphaus.csv ├── kaphaus.json ├── kapsule-lab.csv ├── kapsule-lab.json ├── kb-keycraft.csv ├── kb-keycraft.json ├── kbk-kwk.csv ├── kbk-kwk.json ├── key-capital.csv ├── key-capital.json ├── keycapcustoms.csv ├── keycapcustoms.json ├── keycat.csv ├── keycat.json ├── keycravings.csv ├── keycravings.json ├── keyforge.csv ├── keyforge.json ├── keykollectiv.csv ├── keykollectiv.json ├── keylabs-keycaps.csv ├── keylabs-keycaps.json ├── keysense.csv ├── keysense.json ├── keyzen.csv ├── keyzen.json ├── kin-caps.csv ├── kin-caps.json ├── kit-ann-caps.csv ├── kit-ann-caps.json ├── kiyokaps.csv ├── kiyokaps.json ├── klaykaps.csv ├── klaykaps.json ├── kook.csv ├── kook.json ├── krakenkap.csv ├── krakenkap.json ├── krap-shop.csv ├── krap-shop.json ├── kuco.csv ├── kuco.json ├── kug.csv ├── kug.json ├── landcaps.csv ├── landcaps.json ├── latrialum.csv ├── latrialum.json ├── lazercaps.csv ├── lazercaps.json ├── lazy-factory.csv ├── lazy-factory.json ├── lazycaps.csv ├── lazycaps.json ├── level-caps.csv ├── level-caps.json ├── lilith-project.csv ├── lilith-project.json ├── lividity.csv ├── lividity.json ├── lo-ki-caps.csv ├── lo-ki-caps.json ├── luna-keycaps.csv ├── luna-keycaps.json ├── m1k-art.csv ├── m1k-art.json ├── macher-studio.csv ├── macher-studio.json ├── mad-labs-keycaps.csv ├── mad-labs-keycaps.json ├── maison-of-the-west.csv ├── maison-of-the-west.json ├── mariotheguy.csv ├── mariotheguy.json ├── mastonon-kaps.csv ├── mastonon-kaps.json ├── matae-keycaps.csv ├── matae-keycaps.json ├── melonkeys.csv ├── melonkeys.json ├── meof.csv ├── meof.json ├── mfc.csv ├── mfc.json ├── mfcaps.csv ├── mfcaps.json ├── miniworld.csv ├── miniworld.json ├── monstera-keycaps.csv ├── monstera-keycaps.json ├── mozicaps.csv ├── mozicaps.json ├── mubai.csv ├── mubai.json ├── mystic-world.csv ├── mystic-world.json ├── myth-caps.csv ├── myth-caps.json ├── namong.csv ├── namong.json ├── navacaps.csv ├── navacaps.json ├── nibbnubb-keycaps.csv ├── nibbnubb-keycaps.json ├── nightcaps.csv ├── nightcaps.json ├── noob-studio.csv ├── noob-studio.json ├── nork.csv ├── nork.json ├── not-caps.csv ├── not-caps.json ├── nubbinator.csv ├── nubbinator.json ├── nuhz-caps.csv ├── nuhz-caps.json ├── object-garage.csv ├── object-garage.json ├── obscura.csv ├── obscura.json ├── ochre-+-moss.csv ├── ochre-+-moss.json ├── okeydokey-studio.csv ├── okeydokey-studio.json ├── omega-keycaps.csv ├── omega-keycaps.json ├── p-craft-studio.csv ├── p-craft-studio.json ├── panduuh-caps.csv ├── panduuh-caps.json ├── phage-caps.csv ├── phage-caps.json ├── phangkey.csv ├── phangkey.json ├── picaps.csv ├── picaps.json ├── pixart-valley.csv ├── pixart-valley.json ├── polymer-salon.csv ├── polymer-salon.json ├── pretty-petite-crafty.csv ├── pretty-petite-crafty.json ├── primecaps.csv ├── primecaps.json ├── projectkey.csv ├── projectkey.json ├── psycho-keycaps.csv ├── psycho-keycaps.json ├── q-qaps.csv ├── q-qaps.json ├── radcaps.csv ├── radcaps.json ├── rath.csv ├── rath.json ├── rathcaps.csv ├── rathcaps.json ├── raw-studio.csv ├── raw-studio.json ├── resin-party.csv ├── resin-party.json ├── ritual-master.csv ├── ritual-master.json ├── rtg_caps_.csv ├── rtg_caps_.json ├── rubrehose.csv ├── rubrehose.json ├── s-craft-studio.csv ├── s-craft-studio.json ├── sandun.csv ├── sandun.json ├── save-caps.csv ├── save-caps.json ├── shirouu-kaps.csv ├── shirouu-kaps.json ├── simulacra-caps.csv ├── simulacra-caps.json ├── sinpra-caps.csv ├── sinpra-caps.json ├── sirreal-caps.csv ├── sirreal-caps.json ├── slime-scholar.csv ├── slime-scholar.json ├── sludgekidd.csv ├── sludgekidd.json ├── sm-caps.csv ├── sm-caps.json ├── smyleey-x-godmade.csv ├── smyleey-x-godmade.json ├── sodiecaps.csv ├── sodiecaps.json ├── sonder-caps.csv ├── sonder-caps.json ├── soom-caps.csv ├── soom-caps.json ├── stone-keys.csv ├── stone-keys.json ├── stupid-fruit.csv ├── stupid-fruit.json ├── sublyme-keys.csv ├── sublyme-keys.json ├── suited-up-keycaps.csv ├── suited-up-keycaps.json ├── sway-caps.csv ├── sway-caps.json ├── symbio-keys.csv ├── symbio-keys.json ├── t-art-universe.csv ├── t-art-universe.json ├── t-lab.csv ├── t-lab.json ├── tech--stoned--amish-.csv ├── tech--stoned--amish-.json ├── theboxkeycap.csv ├── theboxkeycap.json ├── tinymakesthings.csv ├── tinymakesthings.json ├── tokkipee.csv ├── tokkipee.json ├── triplenight-kaps.csv ├── triplenight-kaps.json ├── trmk.csv ├── trmk.json ├── txd.csv ├── txd.json ├── unbranded-caps.csv ├── unbranded-caps.json ├── unknown-keycaps.csv ├── unknown-keycaps.json ├── varsity-keys.csv ├── varsity-keys.json ├── vice-caps.csv ├── vice-caps.json ├── wheat-keys.csv ├── wheat-keys.json ├── wildkeycaps.csv ├── wildkeycaps.json ├── wildstory-caps.csv ├── wildstory-caps.json ├── win-keys.csv ├── win-keys.json ├── youngsterharris.csv ├── youngsterharris.json ├── yu-keys.csv ├── yu-keys.json ├── zellkey.csv ├── zellkey.json ├── zero-keycaps.csv ├── zero-keycaps.json ├── zomgkey.csv ├── zomgkey.json ├── zorbcaps.csv ├── zorbcaps.json ├── zouabi-co-.csv ├── zouabi-co-.json ├── zuno-studio.csv ├── zuno-studio.json ├── zy-cap.csv └── zy-cap.json ├── package.json ├── src ├── catalog-img-dump.js ├── detect-dupes.js ├── discord-update-report.js ├── discord-update-revision.js ├── generate.js ├── google │ └── index.js ├── img-resizer.js ├── importer │ ├── custom │ │ ├── alphakeycaps.js │ │ └── gooey.js │ └── json │ │ ├── 1of1keycaps.json │ │ ├── 26studio-asterisk.json │ │ ├── 2m.json │ │ ├── 2tcraft.json │ │ ├── 404artisans.json │ │ ├── 8o8keys.json │ │ ├── ackeys.json │ │ ├── aerokeys.json │ │ ├── alee-keycaps.json │ │ ├── alheckz.json │ │ ├── almondcaps.json │ │ ├── amano-studio.json │ │ ├── amidst.json │ │ ├── animech.json │ │ ├── anomalycaps.json │ │ ├── apothecary-caps.json │ │ ├── archetype.json │ │ ├── arkeys.json │ │ ├── artkey.json │ │ ├── artzeikaps.json │ │ ├── asianjoyco.json │ │ ├── atelier-axiom.json │ │ ├── atelier-rng.json │ │ ├── atoworks.json │ │ ├── avocaps.json │ │ ├── ax_studio.json │ │ ├── azi.json │ │ ├── backward.json │ │ ├── bad.json │ │ ├── badhabit.json │ │ ├── bailong.json │ │ ├── basilkeys.json │ │ ├── beetlecaps.json │ │ ├── bg-caps.json │ │ ├── bhomasscaps.json │ │ ├── binge.json │ │ ├── binirias.json │ │ ├── bkmcaps.json │ │ ├── blackmagecaps.json │ │ ├── blademx.json │ │ ├── blank-beast-caps.json │ │ ├── blank-works.json │ │ ├── blanksy.json │ │ ├── bludgeoned.json │ │ ├── bmtcaps.json │ │ ├── bobhandcraft.json │ │ ├── bogancaps.json │ │ ├── bogwitch-brie.json │ │ ├── boomsnap.json │ │ ├── boop.json │ │ ├── bowbie.json │ │ ├── brewcaps.json │ │ ├── bro.json │ │ ├── bungkee.json │ │ ├── cantoclicks.json │ │ ├── captomaniacs.json │ │ ├── cattocaps.json │ │ ├── chickencap.json │ │ ├── clack.json │ │ ├── clackeys.json │ │ ├── clover.json │ │ ├── coconutkeycaps.json │ │ ├── coz.json │ │ ├── craftkey.json │ │ ├── creasi.json │ │ ├── crystal-pieces.json │ │ ├── cyo.json │ │ ├── cysm.json │ │ ├── d-slime.json │ │ ├── dalifu.json │ │ ├── dc.json │ │ ├── deag.json │ │ ├── death-dealer.json │ │ ├── deathcaps.json │ │ ├── della-key.json │ │ ├── destroyercaps.json │ │ ├── dollartaco.json │ │ ├── doohickeys.json │ │ ├── dreadkeys.json │ │ ├── driiip-keys.json │ │ ├── dustycaps.json │ │ ├── dwarf-factory.json │ │ ├── echopp-caps.json │ │ ├── emotikeys.json │ │ ├── ezkeys.json │ │ ├── fraktal.json │ │ ├── from-scratch.json │ │ ├── frump.json │ │ ├── gaf.json │ │ ├── gaia.json │ │ ├── girlycaps.json │ │ ├── glyco.json │ │ ├── goth.json │ │ ├── gsk.json │ │ ├── gtb.json │ │ ├── haon.json │ │ ├── hdkey.json │ │ ├── hellbentcaps.json │ │ ├── hello.json │ │ ├── hotkeysproject.json │ │ ├── iisudas-studio.json │ │ ├── inkblot.json │ │ ├── jak.json │ │ ├── janky.json │ │ ├── jellycap.json │ │ ├── jellykey.json │ │ ├── jibii.json │ │ ├── jusherhoe.json │ │ ├── kaphaus.json │ │ ├── kapsule-lab.json │ │ ├── kb-keycraft.json │ │ ├── kbk.json │ │ ├── key-capital.json │ │ ├── keycapcustoms.json │ │ ├── keycat.json │ │ ├── keycravings.json │ │ ├── keyforge.json │ │ ├── keykollectiv.json │ │ ├── keylabs.json │ │ ├── keysense.json │ │ ├── keyzen.json │ │ ├── kin-caps.json │ │ ├── kitanncaps.json │ │ ├── kiyokaps.json │ │ ├── klaykaps.json │ │ ├── kookcaps.json │ │ ├── krakenkap.json │ │ ├── krapshop.json │ │ ├── kuco.json │ │ ├── kug.json │ │ ├── landcaps.json │ │ ├── latrialum.json │ │ ├── lazercaps.json │ │ ├── lazy_factory.json │ │ ├── lazycaps.json │ │ ├── level.json │ │ ├── lilith-project.json │ │ ├── lividity.json │ │ ├── loki.json │ │ ├── lunakeycaps.json │ │ ├── m1kart.json │ │ ├── macher.json │ │ ├── madlabskeycaps.json │ │ ├── maisonofthewest.json │ │ ├── mariotheguy.json │ │ ├── mastononkaps.json │ │ ├── matae-keycaps.json │ │ ├── melon.json │ │ ├── meof.json │ │ ├── mfc.json │ │ ├── mfcaps.json │ │ ├── miniworld.json │ │ ├── monstera.json │ │ ├── mozicaps.json │ │ ├── mubai.json │ │ ├── mystic-world.json │ │ ├── myth-caps.json │ │ ├── namong.json │ │ ├── navacaps.json │ │ ├── nibbnubb.json │ │ ├── nightcaps.json │ │ ├── noob-studio.json │ │ ├── nork.json │ │ ├── not-caps.json │ │ ├── nubbinator.json │ │ ├── nuhz.json │ │ ├── objectgarage.json │ │ ├── obscura.json │ │ ├── ochre-moss.json │ │ ├── okeydokey.json │ │ ├── omega.json │ │ ├── panduuh.json │ │ ├── pcraftstudio.json │ │ ├── phage.json │ │ ├── phangkey.json │ │ ├── pixart-valley.json │ │ ├── polymer.json │ │ ├── prettypetitecrafty.json │ │ ├── prime.json │ │ ├── projectkey.json │ │ ├── psycho.json │ │ ├── qqaps.json │ │ ├── radcaps.json │ │ ├── rathcaps.json │ │ ├── rawstudio.json │ │ ├── resin-party.json │ │ ├── ritual.json │ │ ├── rtgcaps.json │ │ ├── rubrehose.json │ │ ├── sandun.json │ │ ├── savecaps.json │ │ ├── scraft.json │ │ ├── shirouu.json │ │ ├── shuangmu.json │ │ ├── simulacra.json │ │ ├── sinpracaps.json │ │ ├── sirreal.json │ │ ├── slimescholar.json │ │ ├── sludgekidd.json │ │ ├── smyleey.json │ │ ├── sodie.json │ │ ├── sondercaps.json │ │ ├── soom.json │ │ ├── stone-keys.json │ │ ├── stupid-fruit.json │ │ ├── sublymekeys.json │ │ ├── suk.json │ │ ├── sway.json │ │ ├── symbio.json │ │ ├── t-art.json │ │ ├── techstonedamish.json │ │ ├── theboxkeycap.json │ │ ├── tiny.json │ │ ├── tlab.json │ │ ├── tokkipee.json │ │ ├── triplenightkaps.json │ │ ├── trmk.json │ │ ├── txd.json │ │ ├── unbrandedcaps.json │ │ ├── unknown-keycaps.json │ │ ├── varsitykeys.json │ │ ├── vice-caps.json │ │ ├── wheat-keys.json │ │ ├── wildkeycaps.json │ │ ├── wildstory.json │ │ ├── winkeys.json │ │ ├── youngster.json │ │ ├── yu.keys.json │ │ ├── zellkey.json │ │ ├── zero.json │ │ ├── zomgkey.json │ │ ├── zorbcaps.json │ │ ├── zouabi.json │ │ ├── zuno.json │ │ └── zycap.json ├── prune-images.js ├── refresh-images.js ├── remap-img.js ├── schema.json ├── scraper │ └── gdoc.js ├── sync-images.js ├── utils.js └── validate.js ├── templates └── README.md └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | max_line_length = 120 12 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "npm" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | open-pull-requests-limit: 10 8 | -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | name: Database Lint 2 | 3 | on: 4 | pull_request_target: 5 | 6 | jobs: 7 | lint: 8 | name: Lint 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Checkout code 12 | uses: actions/checkout@v3 13 | with: 14 | ref: "refs/pull/${{ github.event.number }}/merge" 15 | - id: nodeversion 16 | run: echo "NODE=$(cat .nvmrc)" >> $GITHUB_OUTPUT 17 | - name: restore Cache 18 | uses: actions/cache@master 19 | with: 20 | path: node_modules 21 | key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} 22 | - name: Use Node.js ${{steps.nodeversion.outputs.NODE}} 23 | uses: actions/setup-node@v3 24 | with: 25 | node-version: ${{ steps.nodeversion.outputs.NODE }} 26 | - name: install 27 | run: | 28 | yarn 29 | - name: lint 30 | run: | 31 | yarn lint 32 | - name: create-json secret 33 | uses: jsdaniell/create-json@v1.2.2 34 | with: 35 | name: "key.json" 36 | json: ${{ secrets.GDOC_KEY }} 37 | - name: Test generation 38 | run: | 39 | node src/generate.js test 40 | -------------------------------------------------------------------------------- /.github/workflows/pr2.yml: -------------------------------------------------------------------------------- 1 | name: Database Lint 2 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | lint: 8 | name: Lint 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Checkout code 12 | uses: actions/checkout@v3 13 | - id: nodeversion 14 | run: echo "NODE=$(cat .nvmrc)" >> $GITHUB_OUTPUT 15 | - name: restore Cache 16 | uses: actions/cache@master 17 | with: 18 | path: node_modules 19 | key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} 20 | - name: Use Node.js ${{steps.nodeversion.outputs.NODE}} 21 | uses: actions/setup-node@v3 22 | with: 23 | node-version: ${{ steps.nodeversion.outputs.NODE }} 24 | - name: install 25 | run: | 26 | yarn 27 | - name: lint 28 | run: | 29 | yarn lint 30 | - name: create-json secret 31 | uses: jsdaniell/create-json@v1.2.2 32 | with: 33 | name: "key.json" 34 | json: ${{ secrets.GDOC_KEY }} 35 | - name: Test generation 36 | run: | 37 | node src/generate.js test 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | wiki-dist 3 | package-lock.json 4 | SAVE_IMG/ 5 | catalog_old.json 6 | dump 7 | key.json 8 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v18.12.1 2 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | .github/workflows/* @zekth 2 | CODEOWNERS @zekth 3 | -------------------------------------------------------------------------------- /db/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/keycap-archivist/database/808a86ce52286885cb4a3df3a4c6944112889d67/db/.gitkeep -------------------------------------------------------------------------------- /db/26studio-asterisk.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | c65c34d5,26Studio Asterisk,Kabuto,Carbon,https://cdn.keycap-archivist.com/keycaps/c65c34d5.jpg 3 | e0235445,26Studio Asterisk,Kabuto,BnW,https://cdn.keycap-archivist.com/keycaps/e0235445.jpg 4 | 10bad4f6,26Studio Asterisk,Kabuto,Vintage Cream,https://cdn.keycap-archivist.com/keycaps/10bad4f6.jpg 5 | b5926ada,26Studio Asterisk,Kabuto,M.Moss,https://cdn.keycap-archivist.com/keycaps/b5926ada.jpg 6 | 87d7fae8,26Studio Asterisk,Kuwagata,Carbon,https://cdn.keycap-archivist.com/keycaps/87d7fae8.jpg 7 | 35b89198,26Studio Asterisk,Kuwagata,BnW,https://cdn.keycap-archivist.com/keycaps/35b89198.jpg 8 | a41ab628,26Studio Asterisk,Kuwagata,Vintage Cream,https://cdn.keycap-archivist.com/keycaps/a41ab628.jpg 9 | 81a4bf9e,26Studio Asterisk,Kuwagata,M.Moss,https://cdn.keycap-archivist.com/keycaps/81a4bf9e.jpg 10 | -------------------------------------------------------------------------------- /db/26studio-asterisk.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1ibFx-5cB25empbAYZdMpKMB1SvUC9hDsG7Wg-sigLAw","id":"4e100c9e","name":"26Studio Asterisk","instagram":"https://www.instagram.com/26studio_asterisk/","website":"","discord":"https://discord.gg/zrna2pHSzv","sculpts":[{"id":"749e03ee","name":"Kabuto","colorways":[{"id":"c65c34d5","img":"https://cdn.keycap-archivist.com/keycaps/c65c34d5.jpg","name":"Carbon","isCover":false,"releaseDate":"Dec 2023","totalCount":"10","note":""},{"id":"e0235445","img":"https://cdn.keycap-archivist.com/keycaps/e0235445.jpg","name":"BnW","isCover":false,"releaseDate":"Jan 2023","totalCount":"5","note":""},{"id":"10bad4f6","img":"https://cdn.keycap-archivist.com/keycaps/10bad4f6.jpg","name":"Vintage Cream","isCover":false,"note":""},{"id":"b5926ada","img":"https://cdn.keycap-archivist.com/keycaps/b5926ada.jpg","name":"M.Moss","isCover":false,"note":""}]},{"id":"7413cb49","name":"Kuwagata","colorways":[{"id":"87d7fae8","img":"https://cdn.keycap-archivist.com/keycaps/87d7fae8.jpg","name":"Carbon","isCover":false,"releaseDate":"Dec 2023","totalCount":"10","note":""},{"id":"35b89198","img":"https://cdn.keycap-archivist.com/keycaps/35b89198.jpg","name":"BnW","isCover":false,"releaseDate":"Jan 2023","totalCount":"5","note":""},{"id":"a41ab628","img":"https://cdn.keycap-archivist.com/keycaps/a41ab628.jpg","name":"Vintage Cream","isCover":false,"note":""},{"id":"81a4bf9e","img":"https://cdn.keycap-archivist.com/keycaps/81a4bf9e.jpg","name":"M.Moss","isCover":false,"note":""}]}],"selfOrder":false,"nationality":"vn"} -------------------------------------------------------------------------------- /db/2mcaps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 5a19b4a4,2MCaps,Osedax,DarkBlue & White,https://cdn.keycap-archivist.com/keycaps/5a19b4a4.jpg 3 | 5f804ee2,2MCaps,Osedax,Black & White,https://cdn.keycap-archivist.com/keycaps/5f804ee2.jpg 4 | ea21f3ef,2MCaps,Osedax,Carbon,https://cdn.keycap-archivist.com/keycaps/ea21f3ef.jpg 5 | 5af6b6ca,2MCaps,Osedax,Oblivion,https://cdn.keycap-archivist.com/keycaps/5af6b6ca.jpg 6 | e71cc1d7,2MCaps,Lucky Toad,,https://cdn.keycap-archivist.com/keycaps/e71cc1d7.jpg 7 | -------------------------------------------------------------------------------- /db/2mcaps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1erwMZyh07nwT9sIo6RZBUwDrmnGUaWFF1Cx-WUeLGco","id":"7e949449","name":"2MCaps","instagram":"https://www.instagram.com/2m_works","website":"","discord":"https://discord.gg/RnY2knJhhb","sculpts":[{"id":"ea665021","name":"Osedax","colorways":[{"id":"5a19b4a4","img":"https://cdn.keycap-archivist.com/keycaps/5a19b4a4.jpg","name":"DarkBlue & White","isCover":false,"note":""},{"id":"5f804ee2","img":"https://cdn.keycap-archivist.com/keycaps/5f804ee2.jpg","name":"Black & White","isCover":false,"note":""},{"id":"ea21f3ef","img":"https://cdn.keycap-archivist.com/keycaps/ea21f3ef.jpg","name":"Carbon","isCover":false,"note":""},{"id":"5af6b6ca","img":"https://cdn.keycap-archivist.com/keycaps/5af6b6ca.jpg","name":"Oblivion","isCover":false,"note":""}]},{"id":"583faae4","name":"Lucky Toad","colorways":[{"id":"e71cc1d7","img":"https://cdn.keycap-archivist.com/keycaps/e71cc1d7.jpg","name":"","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/ackeys.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | fa020fbb,ACkeys,JawsCat,JawsCat,https://cdn.keycap-archivist.com/keycaps/fa020fbb.jpg 3 | 611f8855,ACkeys,BearCat,B BearCat V1,https://cdn.keycap-archivist.com/keycaps/611f8855.jpg 4 | c7e5afca,ACkeys,BearCat,PolarbearCat,https://cdn.keycap-archivist.com/keycaps/c7e5afca.jpg 5 | a5a3f3ad,ACkeys,BearCat,IronbearCat,https://cdn.keycap-archivist.com/keycaps/a5a3f3ad.jpg 6 | 82740c68,ACkeys,ForestDrake,Forest Drake V1,https://cdn.keycap-archivist.com/keycaps/82740c68.jpg 7 | 3063e821,ACkeys,ForestDrake,Forest Drake V1 Berserk,https://cdn.keycap-archivist.com/keycaps/3063e821.jpg 8 | 6a9d1857,ACkeys,ForestDrake,ArticunoDrake,https://cdn.keycap-archivist.com/keycaps/6a9d1857.jpg 9 | d0b00683,ACkeys,EnderDragon,EnderDragon,https://cdn.keycap-archivist.com/keycaps/d0b00683.jpg 10 | 71967560,ACkeys,EnderDragon,MoltresDragon,https://cdn.keycap-archivist.com/keycaps/71967560.jpg 11 | d49de79f,ACkeys,AmaranthineDragon,AmaranthineDragon (Ver.G),https://cdn.keycap-archivist.com/keycaps/d49de79f.jpg 12 | 50c04a2,ACkeys,AmaranthineDragon,AmaranthineDragon (Ver.P),https://cdn.keycap-archivist.com/keycaps/50c04a2.jpg 13 | 9853fca3,ACkeys,AmaranthineDragon,AmaranthineDragon (Ver. Cosmos),https://cdn.keycap-archivist.com/keycaps/9853fca3.jpg 14 | f7c26d2c,ACkeys,AmaranthineDragon,ZapdosDragon,https://cdn.keycap-archivist.com/keycaps/f7c26d2c.jpg 15 | -------------------------------------------------------------------------------- /db/ackeys.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1-pP9xJMH55xNGq3waZb6n5x0t6vNX9aqsQAUKaXLfv8","id":"ff5fc103","name":"ACkeys","instagram":"https://www.instagram.com/ac.keycaps/","website":"","discord":"https://discord.gg/8TgdcFZsqA","sculpts":[{"id":"9cf15fa3","name":"JawsCat","colorways":[{"id":"fa020fbb","img":"https://cdn.keycap-archivist.com/keycaps/fa020fbb.jpg","name":"JawsCat","isCover":false,"note":""}]},{"id":"63935695","name":"BearCat","colorways":[{"id":"611f8855","img":"https://cdn.keycap-archivist.com/keycaps/611f8855.jpg","name":"B BearCat V1","isCover":false,"note":""},{"id":"c7e5afca","img":"https://cdn.keycap-archivist.com/keycaps/c7e5afca.jpg","name":"PolarbearCat","isCover":false,"note":""},{"id":"a5a3f3ad","img":"https://cdn.keycap-archivist.com/keycaps/a5a3f3ad.jpg","name":"IronbearCat","isCover":false,"note":""}]},{"id":"605fb039","name":"ForestDrake","colorways":[{"id":"82740c68","img":"https://cdn.keycap-archivist.com/keycaps/82740c68.jpg","name":"Forest Drake V1","isCover":false,"note":""},{"id":"3063e821","img":"https://cdn.keycap-archivist.com/keycaps/3063e821.jpg","name":"Forest Drake V1 Berserk","isCover":false,"note":""},{"id":"6a9d1857","img":"https://cdn.keycap-archivist.com/keycaps/6a9d1857.jpg","name":"ArticunoDrake","isCover":false,"note":""}]},{"id":"f0565f8d","name":"EnderDragon","colorways":[{"id":"d0b00683","img":"https://cdn.keycap-archivist.com/keycaps/d0b00683.jpg","name":"EnderDragon","isCover":false,"note":""},{"id":"71967560","img":"https://cdn.keycap-archivist.com/keycaps/71967560.jpg","name":"MoltresDragon","isCover":false,"note":""}]},{"id":"e0877cd8","name":"AmaranthineDragon","colorways":[{"id":"d49de79f","img":"https://cdn.keycap-archivist.com/keycaps/d49de79f.jpg","name":"AmaranthineDragon (Ver.G)","isCover":false,"note":""},{"id":"50c04a2","img":"https://cdn.keycap-archivist.com/keycaps/50c04a2.jpg","name":"AmaranthineDragon (Ver.P)","isCover":false,"note":""},{"id":"9853fca3","img":"https://cdn.keycap-archivist.com/keycaps/9853fca3.jpg","name":"AmaranthineDragon (Ver. Cosmos)","isCover":false,"note":""},{"id":"f7c26d2c","img":"https://cdn.keycap-archivist.com/keycaps/f7c26d2c.jpg","name":"ZapdosDragon","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/alheckz.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 1541ee26,alheckz,Gobblin,Irredeemable,https://cdn.keycap-archivist.com/keycaps/1541ee26.jpg 3 | 6b00573d,alheckz,Gobblin,Gangreen,https://cdn.keycap-archivist.com/keycaps/6b00573d.jpg 4 | 4160f6cb,alheckz,Gobblin,Loamie,https://cdn.keycap-archivist.com/keycaps/4160f6cb.jpg 5 | f01bb43,alheckz,Gobblin,Bleuphoria,https://cdn.keycap-archivist.com/keycaps/f01bb43.jpg 6 | 8c148fcb,alheckz,Gobblin,Miasma,https://cdn.keycap-archivist.com/keycaps/8c148fcb.jpg 7 | 915fe6e8,alheckz,Gobblin,Covalent,https://cdn.keycap-archivist.com/keycaps/915fe6e8.jpg 8 | c2a7665e,alheckz,Gobblin,Coalamity,https://cdn.keycap-archivist.com/keycaps/c2a7665e.jpg 9 | e1e25731,alheckz,Gobblin,SMISKTTY,https://cdn.keycap-archivist.com/keycaps/e1e25731.jpg 10 | ff1fb340,alheckz,Gobblin,Buck Flue,https://cdn.keycap-archivist.com/keycaps/ff1fb340.jpg 11 | 759d29da,alheckz,Gobblin,Necropplin,https://cdn.keycap-archivist.com/keycaps/759d29da.jpg 12 | efec971a,alheckz,Gobblin,Yamaba,https://cdn.keycap-archivist.com/keycaps/efec971a.jpg 13 | 91f51453,alheckz,Gobblin,Blight,https://cdn.keycap-archivist.com/keycaps/91f51453.jpg 14 | d4278735,alheckz,Gobblin,Avarice,https://cdn.keycap-archivist.com/keycaps/d4278735.jpg 15 | 4bdcd0b1,alheckz,ASS,Breakin’ Wind,https://cdn.keycap-archivist.com/keycaps/4bdcd0b1.jpg 16 | 11e5f608,alheckz,ASS,Beach Bum,https://cdn.keycap-archivist.com/keycaps/11e5f608.jpg 17 | 4f2ad5cd,alheckz,Hyottokey,Breakin’ Wind,https://cdn.keycap-archivist.com/keycaps/4f2ad5cd.jpg 18 | b976016f,alheckz,Punk (Alheckz x Level Caps),Irredeemable,https://cdn.keycap-archivist.com/keycaps/b976016f.jpg 19 | c4e931aa,alheckz,Punk (Alheckz x Level Caps),From Nothing,https://cdn.keycap-archivist.com/keycaps/c4e931aa.jpg 20 | 956cd0a0,alheckz,Punk (Alheckz x Level Caps),Apophis,https://cdn.keycap-archivist.com/keycaps/956cd0a0.jpg 21 | 3504743,alheckz,ASS v2,Beige Emergence,https://cdn.keycap-archivist.com/keycaps/3504743.jpg 22 | 763e264e,alheckz,Chubb,Beige Emergence,https://cdn.keycap-archivist.com/keycaps/763e264e.jpg 23 | ebcd2601,alheckz,Goji,Dweller,https://cdn.keycap-archivist.com/keycaps/ebcd2601.jpg 24 | 2a5093c1,alheckz,Goji,On Patrol,https://cdn.keycap-archivist.com/keycaps/2a5093c1.jpg 25 | -------------------------------------------------------------------------------- /db/apothecary-caps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | dfa441fc,Apothecary Caps,Gateway,Gateway,https://cdn.keycap-archivist.com/keycaps/dfa441fc.jpg 3 | c78ca22a,Apothecary Caps,Gateway,Reina,https://cdn.keycap-archivist.com/keycaps/c78ca22a.jpg 4 | c03ced39,Apothecary Caps,Gateway,Luna,https://cdn.keycap-archivist.com/keycaps/c03ced39.jpg 5 | 856ab1d0,Apothecary Caps,Gateway,Pay Your Taxes,https://cdn.keycap-archivist.com/keycaps/856ab1d0.jpg 6 | ce3cbd4a,Apothecary Caps,Gateway,You Died,https://cdn.keycap-archivist.com/keycaps/ce3cbd4a.jpg 7 | 802274b4,Apothecary Caps,Gateway,Fae Portal,https://cdn.keycap-archivist.com/keycaps/802274b4.jpg 8 | 77d93914,Apothecary Caps,Gateway,Pink Pony Club,https://cdn.keycap-archivist.com/keycaps/77d93914.jpg 9 | 9f1978c3,Apothecary Caps,Gateway,Cloud 9,https://cdn.keycap-archivist.com/keycaps/9f1978c3.jpg 10 | 96e6d1,Apothecary Caps,Gateway,Lake of Rot,https://cdn.keycap-archivist.com/keycaps/96e6d1.jpg 11 | 6b448ace,Apothecary Caps,Gateway,Gilded Grave,https://cdn.keycap-archivist.com/keycaps/6b448ace.jpg 12 | 7cea6666,Apothecary Caps,Gateway,Shadow,https://cdn.keycap-archivist.com/keycaps/7cea6666.jpg 13 | 914697d0,Apothecary Caps,Gateway,Goop,https://cdn.keycap-archivist.com/keycaps/914697d0.jpg 14 | af910def,Apothecary Caps,Gateway,Borealis,https://cdn.keycap-archivist.com/keycaps/af910def.jpg 15 | ecd81f7d,Apothecary Caps,Gateway,Aurora,https://cdn.keycap-archivist.com/keycaps/ecd81f7d.jpg 16 | f15aa993,Apothecary Caps,Gateway,You Died (again),https://cdn.keycap-archivist.com/keycaps/f15aa993.jpg 17 | b21f889b,Apothecary Caps,Gateway,Black Hole Sun,https://cdn.keycap-archivist.com/keycaps/b21f889b.jpg 18 | 47c51993,Apothecary Caps,Gateway,Hyacinth,https://cdn.keycap-archivist.com/keycaps/47c51993.jpg 19 | 5536445b,Apothecary Caps,Gateway,Sleepy Dragon,https://cdn.keycap-archivist.com/keycaps/5536445b.jpg 20 | c2b9958,Apothecary Caps,Gateway,I’m Blue (Alert),https://cdn.keycap-archivist.com/keycaps/c2b9958.jpg 21 | 483db505,Apothecary Caps,Phantom Gateway,Borealis,https://cdn.keycap-archivist.com/keycaps/483db505.jpg 22 | c352c23e,Apothecary Caps,Phantom Gateway,You Died (again),https://cdn.keycap-archivist.com/keycaps/c352c23e.jpg 23 | -------------------------------------------------------------------------------- /db/atelier-axiom.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | d07fccc,Atelier Axiom,RK-01,Noir,https://cdn.keycap-archivist.com/keycaps/d07fccc.jpg 3 | 8a8b6529,Atelier Axiom,RK-01,Blanc,https://cdn.keycap-archivist.com/keycaps/8a8b6529.jpg 4 | -------------------------------------------------------------------------------- /db/atelier-axiom.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1vUt_jPo7E8DQeMVcr4r4fwJp3X8rt_5mJoJAzyGlckM","id":"eb93541f","name":"Atelier Axiom","instagram":"https://www.instagram.com/atelier_axiom","website":"https://www.atelieraxiom.com/","discord":"","sculpts":[{"id":"8f6abfe8","name":"RK-01","colorways":[{"id":"d07fccc","img":"https://cdn.keycap-archivist.com/keycaps/d07fccc.jpg","name":"Noir","isCover":false,"note":""},{"id":"8a8b6529","img":"https://cdn.keycap-archivist.com/keycaps/8a8b6529.jpg","name":"Blanc","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/ax-studio.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | a8545c4,AX Studio,Richard,OG,https://cdn.keycap-archivist.com/keycaps/a8545c4.jpg 3 | 16aaeb64,AX Studio,Richard,Pink,https://cdn.keycap-archivist.com/keycaps/16aaeb64.jpg 4 | c4cd5ae6,AX Studio,Richard,X‘s’,https://cdn.keycap-archivist.com/keycaps/c4cd5ae6.jpg 5 | 887e94d4,AX Studio,Richard,Shrooms,https://cdn.keycap-archivist.com/keycaps/887e94d4.jpg 6 | 123bfa22,AX Studio,Richard,Holy Shiitake,https://cdn.keycap-archivist.com/keycaps/123bfa22.jpg 7 | d5654d70,AX Studio,Richard,Whatamelon,https://cdn.keycap-archivist.com/keycaps/d5654d70.jpg 8 | acd6fe96,AX Studio,Richard,Rudy,https://cdn.keycap-archivist.com/keycaps/acd6fe96.jpg 9 | a1160707,AX Studio,Richard,Snowman,https://cdn.keycap-archivist.com/keycaps/a1160707.jpg 10 | 4b398cc,AX Studio,Richard,Miss Ginger,https://cdn.keycap-archivist.com/keycaps/4b398cc.jpg 11 | 8a644440,AX Studio,Richard,Richie,https://cdn.keycap-archivist.com/keycaps/8a644440.jpg 12 | bd2725d0,AX Studio,Richard,Champagne Pop,https://cdn.keycap-archivist.com/keycaps/bd2725d0.jpg 13 | 257ec4e9,AX Studio,Richard,Slurp,https://cdn.keycap-archivist.com/keycaps/257ec4e9.jpg 14 | 5024a079,AX Studio,Richard,Purple Nurple,https://cdn.keycap-archivist.com/keycaps/5024a079.jpg 15 | 3f0b4dc,AX Studio,Richard,Magic Mushroom,https://cdn.keycap-archivist.com/keycaps/3f0b4dc.jpg 16 | 207a298,AX Studio,Richard,Kaonashi+no face(gold),https://cdn.keycap-archivist.com/keycaps/207a298.jpg 17 | f44d67c0,AX Studio,Richard,Churum (Peach),https://cdn.keycap-archivist.com/keycaps/f44d67c0.jpg 18 | fef9af1,AX Studio,Richard,Jinro (Green Grape),https://cdn.keycap-archivist.com/keycaps/fef9af1.jpg 19 | 6fe2268b,AX Studio,Richard,Lover Boy,https://cdn.keycap-archivist.com/keycaps/6fe2268b.jpg 20 | 6e342ccf,AX Studio,Madam Medusa,OG,https://cdn.keycap-archivist.com/keycaps/6e342ccf.jpg 21 | 109953c0,AX Studio,Madam Medusa,Marbled,https://cdn.keycap-archivist.com/keycaps/109953c0.jpg 22 | f4950876,AX Studio,Madam Medusa,Raven Light & Dark,https://cdn.keycap-archivist.com/keycaps/f4950876.jpg 23 | 4ad8ea24,AX Studio,Madam Medusa,Geiko (testing),https://cdn.keycap-archivist.com/keycaps/4ad8ea24.jpg 24 | -------------------------------------------------------------------------------- /db/bad-magic-trick.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | ac37a8dc,Bad Magic Trick,Monstare,OG Dark,https://cdn.keycap-archivist.com/keycaps/ac37a8dc.jpg 3 | 46481dea,Bad Magic Trick,Monstare,OG Light,https://cdn.keycap-archivist.com/keycaps/46481dea.jpg 4 | 76b335d9,Bad Magic Trick,Monstare,Calcifriend,https://cdn.keycap-archivist.com/keycaps/76b335d9.jpg 5 | bbffb800,Bad Magic Trick,Monstare,Blucifer,https://cdn.keycap-archivist.com/keycaps/bbffb800.jpg 6 | 8fdb6943,Bad Magic Trick,Monstare,MechMark,https://cdn.keycap-archivist.com/keycaps/8fdb6943.jpg 7 | 2dc01c4e,Bad Magic Trick,Monstare,Fowl Play,https://cdn.keycap-archivist.com/keycaps/2dc01c4e.jpg 8 | e6377c1d,Bad Magic Trick,Monstare,Cold Turkey,https://cdn.keycap-archivist.com/keycaps/e6377c1d.jpg 9 | 34a911d7,Bad Magic Trick,Monstare,Pocket Penny,https://cdn.keycap-archivist.com/keycaps/34a911d7.jpg 10 | ae83abd8,Bad Magic Trick,Monstare,"Monstare, Inc.",https://cdn.keycap-archivist.com/keycaps/ae83abd8.jpg 11 | 6c9ff0f6,Bad Magic Trick,Monstare,Budzilla,https://cdn.keycap-archivist.com/keycaps/6c9ff0f6.jpg 12 | b702b518,Bad Magic Trick,Monstare,Sticks and Stoners,https://cdn.keycap-archivist.com/keycaps/b702b518.jpg 13 | 8b0150a3,Bad Magic Trick,Monstare,Cannabits,https://cdn.keycap-archivist.com/keycaps/8b0150a3.jpg 14 | 6210cf5a,Bad Magic Trick,Monstare,Mike Drop,https://cdn.keycap-archivist.com/keycaps/6210cf5a.jpg 15 | fb077a86,Bad Magic Trick,Beasthood,Amelia,https://cdn.keycap-archivist.com/keycaps/fb077a86.jpg 16 | -------------------------------------------------------------------------------- /db/bad-magic-trick.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1SQIE9e--kJnyOBByAdMBvVKUhnbTq2JHR5yZjhL31E0","id":"c4b98276","name":"Bad Magic Trick","instagram":"https://www.instagram.com/bmtcaps/","website":"","discord":"","sculpts":[{"id":"f6f71809","name":"Monstare","colorways":[{"id":"ac37a8dc","img":"https://cdn.keycap-archivist.com/keycaps/ac37a8dc.jpg","name":"OG Dark","isCover":false,"note":""},{"id":"46481dea","img":"https://cdn.keycap-archivist.com/keycaps/46481dea.jpg","name":"OG Light","isCover":false,"note":""},{"id":"76b335d9","img":"https://cdn.keycap-archivist.com/keycaps/76b335d9.jpg","name":"Calcifriend","isCover":false,"note":""},{"id":"bbffb800","img":"https://cdn.keycap-archivist.com/keycaps/bbffb800.jpg","name":"Blucifer","isCover":false,"note":""},{"id":"8fdb6943","img":"https://cdn.keycap-archivist.com/keycaps/8fdb6943.jpg","name":"MechMark","isCover":false,"note":""},{"id":"2dc01c4e","img":"https://cdn.keycap-archivist.com/keycaps/2dc01c4e.jpg","name":"Fowl Play","isCover":false,"note":""},{"id":"e6377c1d","img":"https://cdn.keycap-archivist.com/keycaps/e6377c1d.jpg","name":"Cold Turkey","isCover":false,"note":""},{"id":"34a911d7","img":"https://cdn.keycap-archivist.com/keycaps/34a911d7.jpg","name":"Pocket Penny","isCover":false,"note":""},{"id":"ae83abd8","img":"https://cdn.keycap-archivist.com/keycaps/ae83abd8.jpg","name":"Monstare, Inc.","isCover":false,"note":""},{"id":"6c9ff0f6","img":"https://cdn.keycap-archivist.com/keycaps/6c9ff0f6.jpg","name":"Budzilla","isCover":false,"note":""},{"id":"b702b518","img":"https://cdn.keycap-archivist.com/keycaps/b702b518.jpg","name":"Sticks and Stoners","isCover":false,"note":""},{"id":"8b0150a3","img":"https://cdn.keycap-archivist.com/keycaps/8b0150a3.jpg","name":"Cannabits","isCover":false,"note":""},{"id":"6210cf5a","img":"https://cdn.keycap-archivist.com/keycaps/6210cf5a.jpg","name":"Mike Drop","isCover":false,"note":""}],"design":"physical","cast":"resin"},{"id":"cadf31a3","name":"Beasthood","colorways":[{"id":"fb077a86","img":"https://cdn.keycap-archivist.com/keycaps/fb077a86.jpg","name":"Amelia","isCover":false,"note":""}],"design":"physical","cast":"resin"}],"selfOrder":false} -------------------------------------------------------------------------------- /db/beetlecaps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | b46d9be2,Beetlecaps,Orb,Sakura,https://cdn.keycap-archivist.com/keycaps/b46d9be2.jpg 3 | ea9ced4c,Beetlecaps,Orb,Divine,https://cdn.keycap-archivist.com/keycaps/ea9ced4c.jpg 4 | 135b2ec9,Beetlecaps,Orb,Galaxy,https://cdn.keycap-archivist.com/keycaps/135b2ec9.jpg 5 | 31c69866,Beetlecaps,Orb,Dream,https://cdn.keycap-archivist.com/keycaps/31c69866.jpg 6 | b6f2a9b4,Beetlecaps,Orb,Autumn,https://cdn.keycap-archivist.com/keycaps/b6f2a9b4.jpg 7 | 6f5686df,Beetlecaps,Scarab,Pharaoh,https://cdn.keycap-archivist.com/keycaps/6f5686df.jpg 8 | 57cba760,Beetlecaps,Scarab,Opal Dream,https://cdn.keycap-archivist.com/keycaps/57cba760.jpg 9 | add2e0be,Beetlecaps,Scarab,Verdant,https://cdn.keycap-archivist.com/keycaps/add2e0be.jpg 10 | 35f09618,Beetlecaps,Scarab,Jack O’ Scarab,https://cdn.keycap-archivist.com/keycaps/35f09618.jpg 11 | d2bec16d,Beetlecaps,Scarab,Toxic,https://cdn.keycap-archivist.com/keycaps/d2bec16d.jpg 12 | 875a1f64,Beetlecaps,Scarab,Morse,https://cdn.keycap-archivist.com/keycaps/875a1f64.jpg 13 | 81fcd99d,Beetlecaps,Scarab,Skelly,https://cdn.keycap-archivist.com/keycaps/81fcd99d.jpg 14 | 197609da,Beetlecaps,Scarab,Mono,https://cdn.keycap-archivist.com/keycaps/197609da.jpg 15 | -------------------------------------------------------------------------------- /db/beetlecaps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/12T82CMnIwcdEg36bIrE9hlyi4Ikd15kutuRbYsOFKnw","id":"474cb671","name":"Beetlecaps","instagram":"https://www.instagram.com/beetle.caps","website":"","discord":"","sculpts":[{"id":"104be863","name":"Orb","colorways":[{"id":"b46d9be2","img":"https://cdn.keycap-archivist.com/keycaps/b46d9be2.jpg","name":"Sakura","isCover":false,"note":""},{"id":"ea9ced4c","img":"https://cdn.keycap-archivist.com/keycaps/ea9ced4c.jpg","name":"Divine","isCover":false,"note":""},{"id":"135b2ec9","img":"https://cdn.keycap-archivist.com/keycaps/135b2ec9.jpg","name":"Galaxy","isCover":false,"note":""},{"id":"31c69866","img":"https://cdn.keycap-archivist.com/keycaps/31c69866.jpg","name":"Dream","isCover":false,"note":""},{"id":"b6f2a9b4","img":"https://cdn.keycap-archivist.com/keycaps/b6f2a9b4.jpg","name":"Autumn","isCover":false,"note":""}]},{"id":"71777817","name":"Scarab","colorways":[{"id":"6f5686df","img":"https://cdn.keycap-archivist.com/keycaps/6f5686df.jpg","name":"Pharaoh","isCover":false,"note":""},{"id":"57cba760","img":"https://cdn.keycap-archivist.com/keycaps/57cba760.jpg","name":"Opal Dream","isCover":false,"note":""},{"id":"add2e0be","img":"https://cdn.keycap-archivist.com/keycaps/add2e0be.jpg","name":"Verdant","isCover":false,"note":""},{"id":"35f09618","img":"https://cdn.keycap-archivist.com/keycaps/35f09618.jpg","name":"Jack O’ Scarab","isCover":false,"note":""},{"id":"d2bec16d","img":"https://cdn.keycap-archivist.com/keycaps/d2bec16d.jpg","name":"Toxic","isCover":false,"note":""},{"id":"875a1f64","img":"https://cdn.keycap-archivist.com/keycaps/875a1f64.jpg","name":"Morse","isCover":false,"note":""},{"id":"81fcd99d","img":"https://cdn.keycap-archivist.com/keycaps/81fcd99d.jpg","name":"Skelly","isCover":false,"note":""},{"id":"197609da","img":"https://cdn.keycap-archivist.com/keycaps/197609da.jpg","name":"Mono","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/binirias.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 3ce81c20,Binirias,Mume,OG Mume,https://cdn.keycap-archivist.com/keycaps/3ce81c20.jpg 3 | 36a8d391,Binirias,Mume,Virus Mume,https://cdn.keycap-archivist.com/keycaps/36a8d391.jpg 4 | 12261de4,Binirias,Mume,Copper Boo Boo Mume,https://cdn.keycap-archivist.com/keycaps/12261de4.jpg 5 | e759ea4b,Binirias,Mume,Red Oxide,https://cdn.keycap-archivist.com/keycaps/e759ea4b.jpg 6 | ebffda0e,Binirias,Mume,Micaceous Oxide,https://cdn.keycap-archivist.com/keycaps/ebffda0e.jpg 7 | b34c3343,Binirias,Mume,Pollock,https://cdn.keycap-archivist.com/keycaps/b34c3343.jpg 8 | f64d7fd7,Binirias,Mume,Blank Canvas,https://cdn.keycap-archivist.com/keycaps/f64d7fd7.jpg 9 | cdfa340a,Binirias,Mume,Fire Mume,https://cdn.keycap-archivist.com/keycaps/cdfa340a.jpg 10 | cb66f06a,Binirias,Mume,see Water Mume,https://cdn.keycap-archivist.com/keycaps/cb66f06a.jpg 11 | 4b619a59,Binirias,Mume,Earth Mume,https://cdn.keycap-archivist.com/keycaps/4b619a59.jpg 12 | d41659c8,Binirias,Mume,Air Mume,https://cdn.keycap-archivist.com/keycaps/d41659c8.jpg 13 | bbaf5841,Binirias,Mume,Bliss Mume,https://cdn.keycap-archivist.com/keycaps/bbaf5841.jpg 14 | be51ce6e,Binirias,Mume,Pink Holo,https://cdn.keycap-archivist.com/keycaps/be51ce6e.jpg 15 | 1d0b41af,Binirias,Mume,Zombie Mume,https://cdn.keycap-archivist.com/keycaps/1d0b41af.jpg 16 | d8c4972d,Binirias,Mume,Ghost Mume,https://cdn.keycap-archivist.com/keycaps/d8c4972d.jpg 17 | -------------------------------------------------------------------------------- /db/binirias.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/11EAZ-nVLgIKuRXEXQDQ1SJotvq871jPLMo9HlS3eAZg","id":"85b28a01","name":"Binirias","instagram":"https://www.instagram.com/binirias/","website":"https://www.binirias.com/","discord":"https://discord.gg/EN3jRqZ","sculpts":[{"id":"16168f51","name":"Mume","colorways":[{"id":"3ce81c20","img":"https://cdn.keycap-archivist.com/keycaps/3ce81c20.jpg","name":"OG Mume","isCover":false,"note":""},{"id":"36a8d391","img":"https://cdn.keycap-archivist.com/keycaps/36a8d391.jpg","name":"Virus Mume","isCover":false,"note":""},{"id":"12261de4","img":"https://cdn.keycap-archivist.com/keycaps/12261de4.jpg","name":"Copper Boo Boo Mume","isCover":false,"note":""},{"id":"e759ea4b","img":"https://cdn.keycap-archivist.com/keycaps/e759ea4b.jpg","name":"Red Oxide","isCover":false,"note":""},{"id":"ebffda0e","img":"https://cdn.keycap-archivist.com/keycaps/ebffda0e.jpg","name":"Micaceous Oxide","isCover":false,"note":""},{"id":"b34c3343","img":"https://cdn.keycap-archivist.com/keycaps/b34c3343.jpg","name":"Pollock","isCover":false,"note":""},{"id":"f64d7fd7","img":"https://cdn.keycap-archivist.com/keycaps/f64d7fd7.jpg","name":"Blank Canvas","isCover":false,"note":""},{"id":"cdfa340a","img":"https://cdn.keycap-archivist.com/keycaps/cdfa340a.jpg","name":"Fire Mume","isCover":false,"note":""},{"id":"cb66f06a","img":"https://cdn.keycap-archivist.com/keycaps/cb66f06a.jpg","name":"see Water Mume","isCover":false,"note":""},{"id":"4b619a59","img":"https://cdn.keycap-archivist.com/keycaps/4b619a59.jpg","name":"Earth Mume","isCover":false,"note":""},{"id":"d41659c8","img":"https://cdn.keycap-archivist.com/keycaps/d41659c8.jpg","name":"Air Mume","isCover":false,"note":""},{"id":"bbaf5841","img":"https://cdn.keycap-archivist.com/keycaps/bbaf5841.jpg","name":"Bliss Mume","isCover":false,"note":""},{"id":"be51ce6e","img":"https://cdn.keycap-archivist.com/keycaps/be51ce6e.jpg","name":"Pink Holo","isCover":false,"note":""},{"id":"1d0b41af","img":"https://cdn.keycap-archivist.com/keycaps/1d0b41af.jpg","name":"Zombie Mume","isCover":false,"note":""},{"id":"d8c4972d","img":"https://cdn.keycap-archivist.com/keycaps/d8c4972d.jpg","name":"Ghost Mume","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/blademx.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | a0200a16,BladeMX,Strider,Master,https://cdn.keycap-archivist.com/keycaps/a0200a16.jpg 3 | da076c02,BladeMX,Strider,Borg,https://cdn.keycap-archivist.com/keycaps/da076c02.jpg 4 | 17b0767c,BladeMX,Strider,Blaze It,https://cdn.keycap-archivist.com/keycaps/17b0767c.jpg 5 | 16efe3d1,BladeMX,Strider,Dani,https://cdn.keycap-archivist.com/keycaps/16efe3d1.jpg 6 | e693ae1c,BladeMX,Strider,Eva,https://cdn.keycap-archivist.com/keycaps/e693ae1c.jpg 7 | 2a1a6a64,BladeMX,Strider,Lavender Wink,https://cdn.keycap-archivist.com/keycaps/2a1a6a64.jpg 8 | d1975589,BladeMX,Strider,Heart Eyes Mfer,https://cdn.keycap-archivist.com/keycaps/d1975589.jpg 9 | 287fa83d,BladeMX,Strider,Azure,https://cdn.keycap-archivist.com/keycaps/287fa83d.jpg 10 | 387e25fa,BladeMX,Strider,Vanir,https://cdn.keycap-archivist.com/keycaps/387e25fa.jpg 11 | 87c2dab8,BladeMX,Strider,Jade,https://cdn.keycap-archivist.com/keycaps/87c2dab8.jpg 12 | 844c5487,BladeMX,Strider,Ocean Dolch,https://cdn.keycap-archivist.com/keycaps/844c5487.jpg 13 | 6f731094,BladeMX,Strider,Blade Nights,https://cdn.keycap-archivist.com/keycaps/6f731094.jpg 14 | a5627c39,BladeMX,Strider,Taro,https://cdn.keycap-archivist.com/keycaps/a5627c39.jpg 15 | c313131b,BladeMX,Strider,iPapi,https://cdn.keycap-archivist.com/keycaps/c313131b.jpg 16 | 1a84bdfa,BladeMX,Strider,Heath,https://cdn.keycap-archivist.com/keycaps/1a84bdfa.jpg 17 | 12066da5,BladeMX,Strider,Kunoichi,https://cdn.keycap-archivist.com/keycaps/12066da5.jpg 18 | d1995db1,BladeMX,Strider,Hiryu,https://cdn.keycap-archivist.com/keycaps/d1995db1.jpg 19 | c7e1fd9b,BladeMX,Strider,Ryu,https://cdn.keycap-archivist.com/keycaps/c7e1fd9b.jpg 20 | 920491eb,BladeMX,Strider,Chun-Li,https://cdn.keycap-archivist.com/keycaps/920491eb.jpg 21 | ef30c2f8,BladeMX,Strider,Stitches,https://cdn.keycap-archivist.com/keycaps/ef30c2f8.jpg 22 | 4320ef84,BladeMX,Strider,Vape,https://cdn.keycap-archivist.com/keycaps/4320ef84.jpg 23 | be11e346,BladeMX,Strider,Daphne-01,https://cdn.keycap-archivist.com/keycaps/be11e346.jpg 24 | -------------------------------------------------------------------------------- /db/blank-works.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 1744dda0,Blank Works,Mooing,OG,https://cdn.keycap-archivist.com/keycaps/1744dda0.jpg 3 | 8ccb112e,Blank Works,Mooing,Berry Jam,https://cdn.keycap-archivist.com/keycaps/8ccb112e.jpg 4 | acc0847f,Blank Works,Mooing,Ice (Mr. Ice),https://cdn.keycap-archivist.com/keycaps/acc0847f.jpg 5 | 4a5712b9,Blank Works,Mooing,Ice (Ms. Ice),https://cdn.keycap-archivist.com/keycaps/4a5712b9.jpg 6 | f18e1cdf,Blank Works,Mooing,Caramel,https://cdn.keycap-archivist.com/keycaps/f18e1cdf.jpg 7 | a5b943ab,Blank Works,Mooing,Sullivan,https://cdn.keycap-archivist.com/keycaps/a5b943ab.jpg 8 | 5468782a,Blank Works,Mooing,No Face,https://cdn.keycap-archivist.com/keycaps/5468782a.jpg 9 | 4215a183,Blank Works,Mooing,Totoro,https://cdn.keycap-archivist.com/keycaps/4215a183.jpg 10 | 24b4c238,Blank Works,Mooing,Maneki,https://cdn.keycap-archivist.com/keycaps/24b4c238.jpg 11 | d39cae94,Blank Works,Mooing,Valley (Boy),https://cdn.keycap-archivist.com/keycaps/d39cae94.jpg 12 | 5aa7904a,Blank Works,Mooing,Valley (Girl),https://cdn.keycap-archivist.com/keycaps/5aa7904a.jpg 13 | f144dd26,Blank Works,Mooing,Tiffany,https://cdn.keycap-archivist.com/keycaps/f144dd26.jpg 14 | 63a346ba,Blank Works,Mooing,The Future,https://cdn.keycap-archivist.com/keycaps/63a346ba.jpg 15 | 2420a2b0,Blank Works,Mooing,Chocolate,https://cdn.keycap-archivist.com/keycaps/2420a2b0.jpg 16 | 1a60701e,Blank Works,Mooing,Pocket,https://cdn.keycap-archivist.com/keycaps/1a60701e.jpg 17 | 687ce735,Blank Works,Mooing,Bouquet,https://cdn.keycap-archivist.com/keycaps/687ce735.jpg 18 | c047af0,Blank Works,Mooing,Daisy,https://cdn.keycap-archivist.com/keycaps/c047af0.jpg 19 | e63f8cdd,Blank Works,Mooing,Skeleton,https://cdn.keycap-archivist.com/keycaps/e63f8cdd.jpg 20 | da188a25,Blank Works,Mooing,Billy,https://cdn.keycap-archivist.com/keycaps/da188a25.jpg 21 | 3ec610d4,Blank Works,Mooing,Snowball,https://cdn.keycap-archivist.com/keycaps/3ec610d4.jpg 22 | 93d391cd,Blank Works,Mooing,DBEE,https://cdn.keycap-archivist.com/keycaps/93d391cd.jpg 23 | 10ced60,Blank Works,Mooing,Scareberry,https://cdn.keycap-archivist.com/keycaps/10ced60.jpg 24 | a6159967,Blank Works,Mooing,MooDonald,https://cdn.keycap-archivist.com/keycaps/a6159967.jpg 25 | -------------------------------------------------------------------------------- /db/blanksy.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | b906bd3f,Blanksy,Proto,Proto I,https://cdn.keycap-archivist.com/keycaps/b906bd3f.jpg 3 | 8eade06f,Blanksy,Proto,Proto II,https://cdn.keycap-archivist.com/keycaps/8eade06f.jpg 4 | 24e0c614,Blanksy,Proto,Proto III,https://cdn.keycap-archivist.com/keycaps/24e0c614.jpg 5 | a12e6eef,Blanksy,Proto,Proto IV,https://cdn.keycap-archivist.com/keycaps/a12e6eef.jpg 6 | aed2906,Blanksy,Proto,Proto V,https://cdn.keycap-archivist.com/keycaps/aed2906.jpg 7 | 56c48f80,Blanksy,Proto,Proto VI,https://cdn.keycap-archivist.com/keycaps/56c48f80.jpg 8 | f2580430,Blanksy,Proto,Proto VII,https://cdn.keycap-archivist.com/keycaps/f2580430.jpg 9 | a49d8297,Blanksy,Proto,Proto VIII,https://cdn.keycap-archivist.com/keycaps/a49d8297.jpg 10 | cdf257db,Blanksy,Proto,Proto IX,https://cdn.keycap-archivist.com/keycaps/cdf257db.jpg 11 | bca6d0ce,Blanksy,Proto,Proto X,https://cdn.keycap-archivist.com/keycaps/bca6d0ce.jpg 12 | a107833d,Blanksy,Proto,Proto XI,https://cdn.keycap-archivist.com/keycaps/a107833d.jpg 13 | -------------------------------------------------------------------------------- /db/blanksy.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1tlH37yLHd9HnHJMF_rHTIdX64kkwhm_WvtC3vPRXa1E","id":"272c6dae","name":"Blanksy","instagram":"https://www.instagram.com/blanksy.caps","website":"https://www.blanksycaps.com","discord":"","sculpts":[{"id":"b352df30","name":"Proto","colorways":[{"id":"b906bd3f","img":"https://cdn.keycap-archivist.com/keycaps/b906bd3f.jpg","name":"Proto I","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"8eade06f","img":"https://cdn.keycap-archivist.com/keycaps/8eade06f.jpg","name":"Proto II","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"24e0c614","img":"https://cdn.keycap-archivist.com/keycaps/24e0c614.jpg","name":"Proto III","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"a12e6eef","img":"https://cdn.keycap-archivist.com/keycaps/a12e6eef.jpg","name":"Proto IV","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"aed2906","img":"https://cdn.keycap-archivist.com/keycaps/aed2906.jpg","name":"Proto V","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"56c48f80","img":"https://cdn.keycap-archivist.com/keycaps/56c48f80.jpg","name":"Proto VI","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"f2580430","img":"https://cdn.keycap-archivist.com/keycaps/f2580430.jpg","name":"Proto VII","isCover":true,"releaseDate":"2023","totalCount":"1","note":""},{"id":"a49d8297","img":"https://cdn.keycap-archivist.com/keycaps/a49d8297.jpg","name":"Proto VIII","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"cdf257db","img":"https://cdn.keycap-archivist.com/keycaps/cdf257db.jpg","name":"Proto IX","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"bca6d0ce","img":"https://cdn.keycap-archivist.com/keycaps/bca6d0ce.jpg","name":"Proto X","isCover":false,"releaseDate":"2023","totalCount":"1","note":""},{"id":"a107833d","img":"https://cdn.keycap-archivist.com/keycaps/a107833d.jpg","name":"Proto XI","isCover":false,"releaseDate":"2023","totalCount":"1","note":""}],"profile":"blank","design":"physical","cast":"resin"}],"selfOrder":true} -------------------------------------------------------------------------------- /db/captomaniacs.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 991ad6ef,Captomaniacs,Kinkey,Kinkey - Majin Oob,https://cdn.keycap-archivist.com/keycaps/991ad6ef.jpg 3 | -------------------------------------------------------------------------------- /db/captomaniacs.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/14VMtz60UJoIfm-Lq66lqJjpwwofk4ZlREq4JKSMEFPo","id":"7893764b","name":"Captomaniacs","instagram":"https://www.instagram.com/captomaniacs/","website":"","discord":"","sculpts":[{"id":"cfc980d6","name":"Kinkey","colorways":[{"id":"991ad6ef","img":"https://cdn.keycap-archivist.com/keycaps/991ad6ef.jpg","name":"Kinkey - Majin Oob","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/catto-caps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 488966d7,Catto Caps,Catto Caps,Gojo Catoru,https://cdn.keycap-archivist.com/keycaps/488966d7.jpg 3 | 7d981a51,Catto Caps,Catto Caps,Toto Nightmare,https://cdn.keycap-archivist.com/keycaps/7d981a51.jpg 4 | f4969ec8,Catto Caps,Catto Caps,Tiger Bao,https://cdn.keycap-archivist.com/keycaps/f4969ec8.jpg 5 | e25fafa4,Catto Caps,Meowster Mash,Gudenyama,https://cdn.keycap-archivist.com/keycaps/e25fafa4.jpg 6 | ebba8aa7,Catto Caps,Meowster Mash,Cinnamonsteroll,https://cdn.keycap-archivist.com/keycaps/ebba8aa7.jpg 7 | e9b9284c,Catto Caps,Meowster Mash,Pomkin Purin,https://cdn.keycap-archivist.com/keycaps/e9b9284c.jpg 8 | 213c26e6,Catto Caps,Catto Crossing,Blue Capoid,https://cdn.keycap-archivist.com/keycaps/213c26e6.jpg 9 | 82aad09a,Catto Caps,Catto Crossing,White Capoid,https://cdn.keycap-archivist.com/keycaps/82aad09a.jpg 10 | 89c71575,Catto Caps,Catto Crossing,Pink Capoid,https://cdn.keycap-archivist.com/keycaps/89c71575.jpg 11 | 45dff7c2,Catto Caps,Catto Capsmas,Pochitypes,https://cdn.keycap-archivist.com/keycaps/45dff7c2.jpg 12 | 7ab8b1f1,Catto Caps,Catto Capsmas,Choco Muffin,https://cdn.keycap-archivist.com/keycaps/7ab8b1f1.jpg 13 | fe9be161,Catto Caps,Catto Capsmas,Merry Muffin,https://cdn.keycap-archivist.com/keycaps/fe9be161.jpg 14 | -------------------------------------------------------------------------------- /db/catto-caps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1Lb8WPFy3mCNnt49yAkhJwqQugKJdo11PBLJfeMfodHI","id":"f3c6b75f","name":"Catto Caps","instagram":"https://www.instagram.com/tifameows/","website":"","discord":"https://discord.com/invite/B9M3q4KaXD","sculpts":[{"id":"b967cdc","name":"Catto Caps","colorways":[{"id":"488966d7","img":"https://cdn.keycap-archivist.com/keycaps/488966d7.jpg","name":"Gojo Catoru","isCover":false,"releaseDate":"Sept 2021","note":""},{"id":"7d981a51","img":"https://cdn.keycap-archivist.com/keycaps/7d981a51.jpg","name":"Toto Nightmare","isCover":false,"releaseDate":"Oct 2021","note":""},{"id":"f4969ec8","img":"https://cdn.keycap-archivist.com/keycaps/f4969ec8.jpg","name":"Tiger Bao","isCover":false,"releaseDate":"Feb 2022","note":""}]},{"id":"ea0ac85e","name":"Meowster Mash","colorways":[{"id":"e25fafa4","img":"https://cdn.keycap-archivist.com/keycaps/e25fafa4.jpg","name":"Gudenyama","isCover":false,"note":""},{"id":"ebba8aa7","img":"https://cdn.keycap-archivist.com/keycaps/ebba8aa7.jpg","name":"Cinnamonsteroll","isCover":false,"note":""},{"id":"e9b9284c","img":"https://cdn.keycap-archivist.com/keycaps/e9b9284c.jpg","name":"Pomkin Purin","isCover":false,"note":""}]},{"id":"1276c70f","name":"Catto Crossing","colorways":[{"id":"213c26e6","img":"https://cdn.keycap-archivist.com/keycaps/213c26e6.jpg","name":"Blue Capoid","isCover":false,"note":""},{"id":"82aad09a","img":"https://cdn.keycap-archivist.com/keycaps/82aad09a.jpg","name":"White Capoid","isCover":false,"note":""},{"id":"89c71575","img":"https://cdn.keycap-archivist.com/keycaps/89c71575.jpg","name":"Pink Capoid","isCover":false,"note":""}]},{"id":"14d137d5","name":"Catto Capsmas","colorways":[{"id":"45dff7c2","img":"https://cdn.keycap-archivist.com/keycaps/45dff7c2.jpg","name":"Pochitypes","isCover":false,"note":""},{"id":"7ab8b1f1","img":"https://cdn.keycap-archivist.com/keycaps/7ab8b1f1.jpg","name":"Choco Muffin","isCover":false,"note":""},{"id":"fe9be161","img":"https://cdn.keycap-archivist.com/keycaps/fe9be161.jpg","name":"Merry Muffin","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/chickencap.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 22fbc04a,ChickenCap,BloodySkul,,https://cdn.keycap-archivist.com/keycaps/22fbc04a.jpg 3 | 455e800a,ChickenCap,Multiface,Carphophis,https://cdn.keycap-archivist.com/keycaps/455e800a.jpg 4 | 737acb79,ChickenCap,Multiface,Poison Ivy,https://cdn.keycap-archivist.com/keycaps/737acb79.jpg 5 | 24338955,ChickenCap,I-zomb,Carphophis,https://cdn.keycap-archivist.com/keycaps/24338955.jpg 6 | -------------------------------------------------------------------------------- /db/chickencap.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1pkiYq1bxrHYqydM7yj9dKZPG8vC8fNBMGOrQGSyT7qQ","id":"b2618556","name":"ChickenCap","instagram":"https://www.instagram.com/chickencap123/","website":"","discord":"","sculpts":[{"id":"d19f22aa","name":"BloodySkul","colorways":[{"id":"22fbc04a","img":"https://cdn.keycap-archivist.com/keycaps/22fbc04a.jpg","name":"","isCover":false,"note":""}]},{"id":"cdf00e10","name":"Multiface","colorways":[{"id":"455e800a","img":"https://cdn.keycap-archivist.com/keycaps/455e800a.jpg","name":"Carphophis","isCover":false,"note":""},{"id":"737acb79","img":"https://cdn.keycap-archivist.com/keycaps/737acb79.jpg","name":"Poison Ivy","isCover":false,"note":""}]},{"id":"bb76f42","name":"I-zomb","colorways":[{"id":"24338955","img":"https://cdn.keycap-archivist.com/keycaps/24338955.jpg","name":"Carphophis","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/clover.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 4bf1e106,CLOVER,Crush,DIY Girls,https://cdn.keycap-archivist.com/keycaps/4bf1e106.jpg 3 | e6788fe6,CLOVER,Crush,First Crush,https://cdn.keycap-archivist.com/keycaps/e6788fe6.jpg 4 | 9afda72e,CLOVER,Crush,Emo Flamingo,https://cdn.keycap-archivist.com/keycaps/9afda72e.jpg 5 | bb706c47,CLOVER,Crush,Clean Cut,https://cdn.keycap-archivist.com/keycaps/bb706c47.jpg 6 | -------------------------------------------------------------------------------- /db/clover.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/18VXOqRajYKnkxWzlUVFf2vIm3JvqBVZ8W5rUs0cqVPI","id":"620fdd8","name":"CLOVER","instagram":"https://www.instagram.com/cloverkeycaps/","website":"","discord":"https://discord.gg/2UZ7BP4bQy","sculpts":[{"id":"2ba24d03","name":"Crush","colorways":[{"id":"4bf1e106","img":"https://cdn.keycap-archivist.com/keycaps/4bf1e106.jpg","name":"DIY Girls","isCover":false,"note":""},{"id":"e6788fe6","img":"https://cdn.keycap-archivist.com/keycaps/e6788fe6.jpg","name":"First Crush","isCover":false,"note":""},{"id":"9afda72e","img":"https://cdn.keycap-archivist.com/keycaps/9afda72e.jpg","name":"Emo Flamingo","isCover":false,"note":""},{"id":"bb706c47","img":"https://cdn.keycap-archivist.com/keycaps/bb706c47.jpg","name":"Clean Cut","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/d-slime.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 22113850,D.Slime,Blue-eyes Toon Dragon,Nebula Purple,https://cdn.keycap-archivist.com/keycaps/22113850.jpg 3 | c9d555ea,D.Slime,Blue-eyes Toon Dragon,Steel Gray,https://cdn.keycap-archivist.com/keycaps/c9d555ea.jpg 4 | ace25fce,D.Slime,Blue-eyes Toon Dragon,EVA 01,https://cdn.keycap-archivist.com/keycaps/ace25fce.jpg 5 | 3af2c787,D.Slime,Bubble MCfin,Sea Blue,https://cdn.keycap-archivist.com/keycaps/3af2c787.jpg 6 | ecf36bab,D.Slime,Rufus,Pearl Ivory,https://cdn.keycap-archivist.com/keycaps/ecf36bab.jpg 7 | 1210cf46,D.Slime,Rufus,White Ivory,https://cdn.keycap-archivist.com/keycaps/1210cf46.jpg 8 | adfe93e6,D.Slime,Abaddon,War Red,https://cdn.keycap-archivist.com/keycaps/adfe93e6.jpg 9 | 2c4d30cc,D.Slime,Abaddon,Dreadful Green,https://cdn.keycap-archivist.com/keycaps/2c4d30cc.jpg 10 | 79c5149c,D.Slime,Naruto’s serials,Genin,https://cdn.keycap-archivist.com/keycaps/79c5149c.jpg 11 | 7da0ad2a,D.Slime,Naruto’s serials,Six Path Sage,https://cdn.keycap-archivist.com/keycaps/7da0ad2a.jpg 12 | 217189b,D.Slime,Naruto’s serials,Uchiha Itachi,https://cdn.keycap-archivist.com/keycaps/217189b.jpg 13 | 428de67b,D.Slime,Naruto’s serials,Kakashi - Susanoo,https://cdn.keycap-archivist.com/keycaps/428de67b.jpg 14 | 3977d34a,D.Slime,Naruto’s serials,Sasuke_deep lilac,https://cdn.keycap-archivist.com/keycaps/3977d34a.jpg 15 | fe330786,D.Slime,Naruto’s serials,Sasuke_royal blue,https://cdn.keycap-archivist.com/keycaps/fe330786.jpg 16 | 1d97bf9f,D.Slime,Dippy,Sweet Candy,https://cdn.keycap-archivist.com/keycaps/1d97bf9f.jpg 17 | 8de6da81,D.Slime,Buns,Ruddy Brown,https://cdn.keycap-archivist.com/keycaps/8de6da81.jpg 18 | 3c0ee21c,D.Slime,Panko,Grapefruit,https://cdn.keycap-archivist.com/keycaps/3c0ee21c.jpg 19 | 6db7be97,D.Slime,Lilith,EVA,https://cdn.keycap-archivist.com/keycaps/6db7be97.jpg 20 | 4225ccc9,D.Slime,Pixel,Dreamy Pixel Glow,https://cdn.keycap-archivist.com/keycaps/4225ccc9.jpg 21 | -------------------------------------------------------------------------------- /db/emotikeys.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 4fb3de0a,Emotikeys,Frowny,Moondane,https://cdn.keycap-archivist.com/keycaps/4fb3de0a.jpg 3 | 1853ca51,Emotikeys,Frowny,Dia de Muertos,https://cdn.keycap-archivist.com/keycaps/1853ca51.jpg 4 | a5afa331,Emotikeys,Frowny,Patina steampunk,https://cdn.keycap-archivist.com/keycaps/a5afa331.jpg 5 | 59e46723,Emotikeys,Frowny,Patina Base,https://cdn.keycap-archivist.com/keycaps/59e46723.jpg 6 | a1fbf759,Emotikeys,Frowny,White Dwarf Cosmos,https://cdn.keycap-archivist.com/keycaps/a1fbf759.jpg 7 | 4f946bcc,Emotikeys,Frowny,Galaxy Cosmos,https://cdn.keycap-archivist.com/keycaps/4f946bcc.jpg 8 | 89c68ec2,Emotikeys,Frowny,Beige : Black with Rosary,https://cdn.keycap-archivist.com/keycaps/89c68ec2.jpg 9 | 5e6a2df8,Emotikeys,Frowny,Beige : Beige with Rosary,https://cdn.keycap-archivist.com/keycaps/5e6a2df8.jpg 10 | aa605d38,Emotikeys,Frowny,Beige : Black No Rosary,https://cdn.keycap-archivist.com/keycaps/aa605d38.jpg 11 | 2a5db1df,Emotikeys,Frowny,Beige : Beige No Rosary,https://cdn.keycap-archivist.com/keycaps/2a5db1df.jpg 12 | 4dd6d981,Emotikeys,Frowny,Mcdon’talds,https://cdn.keycap-archivist.com/keycaps/4dd6d981.jpg 13 | 49dad984,Emotikeys,Frowny,Anal Drip,https://cdn.keycap-archivist.com/keycaps/49dad984.jpg 14 | edce1f2b,Emotikeys,Frowny,Mictlan V2,https://cdn.keycap-archivist.com/keycaps/edce1f2b.jpg 15 | fdd5883,Emotikeys,Frowny,SIMP Byote,https://cdn.keycap-archivist.com/keycaps/fdd5883.jpg 16 | 2070455c,Emotikeys,Frowny V1.5,Kaonashi,https://cdn.keycap-archivist.com/keycaps/2070455c.jpg 17 | c747ed49,Emotikeys,Frowny V1.5,Kaonashi : Side Print,https://cdn.keycap-archivist.com/keycaps/c747ed49.jpg 18 | ca488808,Emotikeys,Frowny V1.5,Anal Drip,https://cdn.keycap-archivist.com/keycaps/ca488808.jpg 19 | a7d402e3,Emotikeys,Frowny V1.5,Mictlan V2,https://cdn.keycap-archivist.com/keycaps/a7d402e3.jpg 20 | fa26bb87,Emotikeys,Frowny V1.5,SIMP Byote,https://cdn.keycap-archivist.com/keycaps/fa26bb87.jpg 21 | c42def5e,Emotikeys,Duality,Mcdon’talds,https://cdn.keycap-archivist.com/keycaps/c42def5e.jpg 22 | 2e67dd38,Emotikeys,Duality,Anal Drip,https://cdn.keycap-archivist.com/keycaps/2e67dd38.jpg 23 | 3c57b178,Emotikeys,Duality,Mictlan V2,https://cdn.keycap-archivist.com/keycaps/3c57b178.jpg 24 | ab93c5eb,Emotikeys,Duality,SIMP Byote,https://cdn.keycap-archivist.com/keycaps/ab93c5eb.jpg 25 | d8827f10,Emotikeys,Damon,SIMP Byote,https://cdn.keycap-archivist.com/keycaps/d8827f10.jpg 26 | -------------------------------------------------------------------------------- /db/fromscratch-caps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | d096c253,FromScratch Caps,Geoblank,Northern Lights,https://cdn.keycap-archivist.com/keycaps/d096c253.jpg 3 | 12699811,FromScratch Caps,Geoblank,Green Magic,https://cdn.keycap-archivist.com/keycaps/12699811.jpg 4 | 1f827f75,FromScratch Caps,Geoblank,Wildflower,https://cdn.keycap-archivist.com/keycaps/1f827f75.jpg 5 | a233aeb8,FromScratch Caps,Geoblank,Purple Forest,https://cdn.keycap-archivist.com/keycaps/a233aeb8.jpg 6 | 8b715596,FromScratch Caps,Geoheart,Onyx,https://cdn.keycap-archivist.com/keycaps/8b715596.jpg 7 | b6314d64,FromScratch Caps,Geoheart,Quartz Jelly,https://cdn.keycap-archivist.com/keycaps/b6314d64.jpg 8 | 773fea31,FromScratch Caps,Geoheart,Quartz Clouds,https://cdn.keycap-archivist.com/keycaps/773fea31.jpg 9 | 9f248a55,FromScratch Caps,Geoheart,True Love,https://cdn.keycap-archivist.com/keycaps/9f248a55.jpg 10 | 4f1bf684,FromScratch Caps,Geoheart,Purple Witch,https://cdn.keycap-archivist.com/keycaps/4f1bf684.jpg 11 | 5190b30f,FromScratch Caps,Geoheart,Witch’s Heart,https://cdn.keycap-archivist.com/keycaps/5190b30f.jpg 12 | fca5fe0d,FromScratch Caps,Geoheart,Lazurite,https://cdn.keycap-archivist.com/keycaps/fca5fe0d.jpg 13 | 72a9eeee,FromScratch Caps,Geoheart,Lazurite Ore,https://cdn.keycap-archivist.com/keycaps/72a9eeee.jpg 14 | eb68d18e,FromScratch Caps,Geoheart,Aurora,https://cdn.keycap-archivist.com/keycaps/eb68d18e.jpg 15 | 36e5d3cc,FromScratch Caps,Geoheart,Aurora’s Heart,https://cdn.keycap-archivist.com/keycaps/36e5d3cc.jpg 16 | 3c1d700b,FromScratch Caps,Geoheart,Soul of Justice,https://cdn.keycap-archivist.com/keycaps/3c1d700b.jpg 17 | 21bca197,FromScratch Caps,Geoheart,Strawberry Valentine,https://cdn.keycap-archivist.com/keycaps/21bca197.jpg 18 | 5a63cce5,FromScratch Caps,Geoheart,Strawberry Heart,https://cdn.keycap-archivist.com/keycaps/5a63cce5.jpg 19 | 38754017,FromScratch Caps,Geoheart,Red Lantern,https://cdn.keycap-archivist.com/keycaps/38754017.jpg 20 | 76d905b,FromScratch Caps,Geoheart,Petal Princess,https://cdn.keycap-archivist.com/keycaps/76d905b.jpg 21 | 2671f809,FromScratch Caps,Geoheart,Ice Palace,https://cdn.keycap-archivist.com/keycaps/2671f809.jpg 22 | f56d65e2,FromScratch Caps,Geoheart,Lilac Dream,https://cdn.keycap-archivist.com/keycaps/f56d65e2.jpg 23 | 2a1c8294,FromScratch Caps,Geoheart,Lilac Heart,https://cdn.keycap-archivist.com/keycaps/2a1c8294.jpg 24 | 8fc87e42,FromScratch Caps,Geoheart,Unity,https://cdn.keycap-archivist.com/keycaps/8fc87e42.jpg 25 | 143ad2f2,FromScratch Caps,Geoheart,Ukraine Heart,https://cdn.keycap-archivist.com/keycaps/143ad2f2.jpg 26 | 4bd9d8cd,FromScratch Caps,Geoheart,Galaxia,https://cdn.keycap-archivist.com/keycaps/4bd9d8cd.jpg 27 | -------------------------------------------------------------------------------- /db/hdkey.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | e3417ba9,HDKey,Ikarus,Son of the Forest,https://cdn.keycap-archivist.com/keycaps/e3417ba9.jpg 3 | 5a7e0fc7,HDKey,Ikarus,The King without Throne,https://cdn.keycap-archivist.com/keycaps/5a7e0fc7.jpg 4 | 61987cb,HDKey,Ikarus,The Great Wall,https://cdn.keycap-archivist.com/keycaps/61987cb.jpg 5 | 495ee8e8,HDKey,Ikarus,Man of Steel,https://cdn.keycap-archivist.com/keycaps/495ee8e8.jpg 6 | ff844397,HDKey,Ikarus,Ikapanda,https://cdn.keycap-archivist.com/keycaps/ff844397.jpg 7 | 144ae7d0,HDKey,Ikarus,Hope (One-off),https://cdn.keycap-archivist.com/keycaps/144ae7d0.jpg 8 | 7f4da0e9,HDKey,Ikarus,Ikapika,https://cdn.keycap-archivist.com/keycaps/7f4da0e9.jpg 9 | 71bcf802,HDKey,Ikarus,Carbonika,https://cdn.keycap-archivist.com/keycaps/71bcf802.jpg 10 | 4912c7db,HDKey,Gaausmeof,Tiger Cub,https://cdn.keycap-archivist.com/keycaps/4912c7db.jpg 11 | 13cd4672,HDKey,Gaausmeof,Pinky,https://cdn.keycap-archivist.com/keycaps/13cd4672.jpg 12 | -------------------------------------------------------------------------------- /db/hdkey.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1eAcxA8lthmxRaPe77X9QpFmThezCcr9BjPpw17aSB6U","id":"f74b1fa4","name":"HDKey","instagram":"https://www.instagram.com/hdkey.official/","website":"","discord":"","sculpts":[{"id":"cfee1bc2","name":"Ikarus","colorways":[{"id":"e3417ba9","img":"https://cdn.keycap-archivist.com/keycaps/e3417ba9.jpg","name":"Son of the Forest","isCover":false,"note":""},{"id":"5a7e0fc7","img":"https://cdn.keycap-archivist.com/keycaps/5a7e0fc7.jpg","name":"The King without Throne","isCover":false,"note":""},{"id":"61987cb","img":"https://cdn.keycap-archivist.com/keycaps/61987cb.jpg","name":"The Great Wall","isCover":false,"note":""},{"id":"495ee8e8","img":"https://cdn.keycap-archivist.com/keycaps/495ee8e8.jpg","name":"Man of Steel","isCover":false,"note":""},{"id":"ff844397","img":"https://cdn.keycap-archivist.com/keycaps/ff844397.jpg","name":"Ikapanda","isCover":true,"note":""},{"id":"144ae7d0","img":"https://cdn.keycap-archivist.com/keycaps/144ae7d0.jpg","name":"Hope (One-off)","isCover":false,"note":""},{"id":"7f4da0e9","img":"https://cdn.keycap-archivist.com/keycaps/7f4da0e9.jpg","name":"Ikapika","isCover":false,"note":""},{"id":"71bcf802","img":"https://cdn.keycap-archivist.com/keycaps/71bcf802.jpg","name":"Carbonika","isCover":false,"note":""}]},{"id":"f0c70736","name":"Gaausmeof","colorways":[{"id":"4912c7db","img":"https://cdn.keycap-archivist.com/keycaps/4912c7db.jpg","name":"Tiger Cub","isCover":false,"note":""},{"id":"13cd4672","img":"https://cdn.keycap-archivist.com/keycaps/13cd4672.jpg","name":"Pinky","isCover":false,"note":""}]}],"selfOrder":false,"nationality":"vn"} -------------------------------------------------------------------------------- /db/jankycaps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | d566c208,jankycaps,Infinite Topo,Atlantic,https://cdn.keycap-archivist.com/keycaps/d566c208.jpg 3 | 9ab7d8ef,jankycaps,Infinite Topo,Pink Lake,https://cdn.keycap-archivist.com/keycaps/9ab7d8ef.jpg 4 | b928c7f5,jankycaps,Infinite Topo,Void,https://cdn.keycap-archivist.com/keycaps/b928c7f5.jpg 5 | 5e21cbe6,jankycaps,Infinite Topo,(Atlantic) Salmon,https://cdn.keycap-archivist.com/keycaps/5e21cbe6.jpg 6 | 529434ca,jankycaps,Infinite Topo,Huat Ah!,https://cdn.keycap-archivist.com/keycaps/529434ca.jpg 7 | e1458e5c,jankycaps,Infinite Topo,Atomic-ish,https://cdn.keycap-archivist.com/keycaps/e1458e5c.jpg 8 | aff07857,jankycaps,Infinite Topo,Mountain Dew,https://cdn.keycap-archivist.com/keycaps/aff07857.jpg 9 | 12574b61,jankycaps,Infinite Topo,Weathering Iron,https://cdn.keycap-archivist.com/keycaps/12574b61.jpg 10 | 547d04a4,jankycaps,Infinite Topo,Verdigris,https://cdn.keycap-archivist.com/keycaps/547d04a4.jpg 11 | c84e9b77,jankycaps,Terrazzo,Copper,https://cdn.keycap-archivist.com/keycaps/c84e9b77.jpg 12 | 67cf148c,jankycaps,Wisdom,Wisdom,https://cdn.keycap-archivist.com/keycaps/67cf148c.jpg 13 | -------------------------------------------------------------------------------- /db/jankycaps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1nT-vBKIXCFuAPPUCewAcUcwGt9-1Bedkyd4CGdjQfBM","id":"f8c855a4","name":"jankycaps","instagram":"https://www.instagram.com/jankycaps/","website":"https://anky.studio/","discord":"https://discord.gg/bwntKeGk8g","sculpts":[{"id":"cc7727f0","name":"Infinite Topo","colorways":[{"id":"d566c208","img":"https://cdn.keycap-archivist.com/keycaps/d566c208.jpg","name":"Atlantic","isCover":false,"note":""},{"id":"9ab7d8ef","img":"https://cdn.keycap-archivist.com/keycaps/9ab7d8ef.jpg","name":"Pink Lake","isCover":false,"note":""},{"id":"b928c7f5","img":"https://cdn.keycap-archivist.com/keycaps/b928c7f5.jpg","name":"Void","isCover":false,"note":""},{"id":"5e21cbe6","img":"https://cdn.keycap-archivist.com/keycaps/5e21cbe6.jpg","name":"(Atlantic) Salmon","isCover":false,"note":""},{"id":"529434ca","img":"https://cdn.keycap-archivist.com/keycaps/529434ca.jpg","name":"Huat Ah!","isCover":false,"note":""},{"id":"e1458e5c","img":"https://cdn.keycap-archivist.com/keycaps/e1458e5c.jpg","name":"Atomic-ish","isCover":false,"note":""},{"id":"aff07857","img":"https://cdn.keycap-archivist.com/keycaps/aff07857.jpg","name":"Mountain Dew","isCover":false,"note":""},{"id":"12574b61","img":"https://cdn.keycap-archivist.com/keycaps/12574b61.jpg","name":"Weathering Iron","isCover":false,"note":""},{"id":"547d04a4","img":"https://cdn.keycap-archivist.com/keycaps/547d04a4.jpg","name":"Verdigris","isCover":false,"note":""}]},{"id":"283104ce","name":"Terrazzo","colorways":[{"id":"c84e9b77","img":"https://cdn.keycap-archivist.com/keycaps/c84e9b77.jpg","name":"Copper","isCover":false,"note":""}]},{"id":"248d5f39","name":"Wisdom","colorways":[{"id":"67cf148c","img":"https://cdn.keycap-archivist.com/keycaps/67cf148c.jpg","name":"Wisdom","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/keycapcustoms.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | a294e9af,KeyCapCustoms,The Bears,Polar bear,https://cdn.keycap-archivist.com/keycaps/a294e9af.jpg 3 | f9761bd7,KeyCapCustoms,The Bears,Black bear,https://cdn.keycap-archivist.com/keycaps/f9761bd7.jpg 4 | 7a84933c,KeyCapCustoms,The Bears,Brown bear,https://cdn.keycap-archivist.com/keycaps/7a84933c.jpg 5 | acc7b7a7,KeyCapCustoms,The Bears,Panda bear,https://cdn.keycap-archivist.com/keycaps/acc7b7a7.jpg 6 | 45ce7932,KeyCapCustoms,Alpacaps,Black Alpacap,https://cdn.keycap-archivist.com/keycaps/45ce7932.jpg 7 | 83886c92,KeyCapCustoms,Alpacaps,Blue Alpacap,https://cdn.keycap-archivist.com/keycaps/83886c92.jpg 8 | 511e598d,KeyCapCustoms,Alpacaps,Brown Alpacap,https://cdn.keycap-archivist.com/keycaps/511e598d.jpg 9 | f0d8e375,KeyCapCustoms,Alpacaps,Green Alpacap,https://cdn.keycap-archivist.com/keycaps/f0d8e375.jpg 10 | 152addb3,KeyCapCustoms,Alpacaps,Orange Alpacap,https://cdn.keycap-archivist.com/keycaps/152addb3.jpg 11 | e415e47,KeyCapCustoms,Alpacaps,Pink Alpacap,https://cdn.keycap-archivist.com/keycaps/e415e47.jpg 12 | 2c983fb6,KeyCapCustoms,Alpacaps,Gold Alpacap,https://cdn.keycap-archivist.com/keycaps/2c983fb6.jpg 13 | 9fed155,KeyCapCustoms,Alpacaps,Purple Alpacap,https://cdn.keycap-archivist.com/keycaps/9fed155.jpg 14 | 349e650f,KeyCapCustoms,Alpacaps,Red Alpacap,https://cdn.keycap-archivist.com/keycaps/349e650f.jpg 15 | 88e08f40,KeyCapCustoms,Alpacaps,Copper Alpacap,https://cdn.keycap-archivist.com/keycaps/88e08f40.jpg 16 | 3b7ff549,KeyCapCustoms,Alpacaps,Rainbow Alpacap,https://cdn.keycap-archivist.com/keycaps/3b7ff549.jpg 17 | f86d74d,KeyCapCustoms,Alpacaps,Lavender Alpacap,https://cdn.keycap-archivist.com/keycaps/f86d74d.jpg 18 | ba3a549f,KeyCapCustoms,Alpacaps,Count Alpaca,https://cdn.keycap-archivist.com/keycaps/ba3a549f.jpg 19 | c99b4258,KeyCapCustoms,Alpacaps,Azure Alpacap,https://cdn.keycap-archivist.com/keycaps/c99b4258.jpg 20 | 9669175,KeyCapCustoms,Alpacaps,Silver Alpacap,https://cdn.keycap-archivist.com/keycaps/9669175.jpg 21 | e4121014,KeyCapCustoms,Alpacaps,Taro Alpacap,https://cdn.keycap-archivist.com/keycaps/e4121014.jpg 22 | f94751ec,KeyCapCustoms,Alpacaps,Xmas Alpacap,https://cdn.keycap-archivist.com/keycaps/f94751ec.jpg 23 | 65d34c03,KeyCapCustoms,Alpacaps,Navy Blue Alpacap,https://cdn.keycap-archivist.com/keycaps/65d34c03.jpg 24 | -------------------------------------------------------------------------------- /db/kin-caps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | ad3522aa,Kin Caps,Kinsman,OG,https://cdn.keycap-archivist.com/keycaps/ad3522aa.jpg 3 | c995f584,Kin Caps,Kinsman,●▲■,https://cdn.keycap-archivist.com/keycaps/c995f584.jpg 4 | afd7f1f1,Kin Caps,Kinsman,Phantom,https://cdn.keycap-archivist.com/keycaps/afd7f1f1.jpg 5 | 3a932bdf,Kin Caps,Kinsman,Phantom (Gold),https://cdn.keycap-archivist.com/keycaps/3a932bdf.jpg 6 | 1e28c9a6,Kin Caps,Kinsman,Vlad,https://cdn.keycap-archivist.com/keycaps/1e28c9a6.jpg 7 | ada3269f,Kin Caps,Kinsman,Jester,https://cdn.keycap-archivist.com/keycaps/ada3269f.jpg 8 | 2f7b37db,Kin Caps,Kinsman,Simp,https://cdn.keycap-archivist.com/keycaps/2f7b37db.jpg 9 | dad5de1e,Kin Caps,Kinsman,Tarnished Cu,https://cdn.keycap-archivist.com/keycaps/dad5de1e.jpg 10 | e3685480,Kin Caps,Kiddo,Candycane,https://cdn.keycap-archivist.com/keycaps/e3685480.jpg 11 | 408f367e,Kin Caps,Kiddo,OG,https://cdn.keycap-archivist.com/keycaps/408f367e.jpg 12 | bf280644,Kin Caps,Kiddo,Cub,https://cdn.keycap-archivist.com/keycaps/bf280644.jpg 13 | 67bc4a46,Kin Caps,Kiddo,Pika,https://cdn.keycap-archivist.com/keycaps/67bc4a46.jpg 14 | 44e562c2,Kin Caps,Kiddo,Matcha Candy,https://cdn.keycap-archivist.com/keycaps/44e562c2.jpg 15 | 86dd2dfe,Kin Caps,Kiddo,Matcha Latte,https://cdn.keycap-archivist.com/keycaps/86dd2dfe.jpg 16 | -------------------------------------------------------------------------------- /db/kin-caps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1oSC6767-PT4EzL_qaj8Q1kFWyl64QqzH40Fgg_jzadw","id":"da43467e","name":"Kin Caps","instagram":"https://www.instagram.com/_kincaps/","website":"","discord":"https://discord.gg/rXQdruaQ2E","sculpts":[{"id":"734583b0","name":"Kinsman","colorways":[{"id":"ad3522aa","img":"https://cdn.keycap-archivist.com/keycaps/ad3522aa.jpg","name":"OG","isCover":false,"note":""},{"id":"c995f584","img":"https://cdn.keycap-archivist.com/keycaps/c995f584.jpg","name":"●▲■","isCover":false,"note":""},{"id":"afd7f1f1","img":"https://cdn.keycap-archivist.com/keycaps/afd7f1f1.jpg","name":"Phantom","isCover":false,"note":""},{"id":"3a932bdf","img":"https://cdn.keycap-archivist.com/keycaps/3a932bdf.jpg","name":"Phantom (Gold)","isCover":false,"note":""},{"id":"1e28c9a6","img":"https://cdn.keycap-archivist.com/keycaps/1e28c9a6.jpg","name":"Vlad","isCover":false,"note":""},{"id":"ada3269f","img":"https://cdn.keycap-archivist.com/keycaps/ada3269f.jpg","name":"Jester","isCover":false,"note":""},{"id":"2f7b37db","img":"https://cdn.keycap-archivist.com/keycaps/2f7b37db.jpg","name":"Simp","isCover":false,"note":""},{"id":"dad5de1e","img":"https://cdn.keycap-archivist.com/keycaps/dad5de1e.jpg","name":"Tarnished Cu","isCover":false,"note":""}]},{"id":"1f9b5161","name":"Kiddo","colorways":[{"id":"e3685480","img":"https://cdn.keycap-archivist.com/keycaps/e3685480.jpg","name":"Candycane","isCover":false,"note":""},{"id":"408f367e","img":"https://cdn.keycap-archivist.com/keycaps/408f367e.jpg","name":"OG","isCover":false,"note":""},{"id":"bf280644","img":"https://cdn.keycap-archivist.com/keycaps/bf280644.jpg","name":"Cub","isCover":false,"note":""},{"id":"67bc4a46","img":"https://cdn.keycap-archivist.com/keycaps/67bc4a46.jpg","name":"Pika","isCover":false,"note":""},{"id":"44e562c2","img":"https://cdn.keycap-archivist.com/keycaps/44e562c2.jpg","name":"Matcha Candy","isCover":false,"note":""},{"id":"86dd2dfe","img":"https://cdn.keycap-archivist.com/keycaps/86dd2dfe.jpg","name":"Matcha Latte","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/kit-ann-caps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 8465a2c4,Kit Ann Caps,Monster Manual,Halloween,https://cdn.keycap-archivist.com/keycaps/8465a2c4.jpg 3 | f2a3188c,Kit Ann Caps,Intergalactic Interloper,Messier 81,https://cdn.keycap-archivist.com/keycaps/f2a3188c.jpg 4 | 32840454,Kit Ann Caps,Intergalactic Interloper,Halloween,https://cdn.keycap-archivist.com/keycaps/32840454.jpg 5 | ff4119b4,Kit Ann Caps,Witches Brew,Siren,https://cdn.keycap-archivist.com/keycaps/ff4119b4.jpg 6 | e860ec3b,Kit Ann Caps,Witches Brew,Halloween,https://cdn.keycap-archivist.com/keycaps/e860ec3b.jpg 7 | 2dcfd0c2,Kit Ann Caps,Kyos,Space Prince,https://cdn.keycap-archivist.com/keycaps/2dcfd0c2.jpg 8 | 2ed1c375,Kit Ann Caps,Fluffington,instaComfy,https://cdn.keycap-archivist.com/keycaps/2ed1c375.jpg 9 | 5040b25b,Kit Ann Caps,Appa,V1,https://cdn.keycap-archivist.com/keycaps/5040b25b.jpg 10 | -------------------------------------------------------------------------------- /db/kit-ann-caps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1OKMEDz4c7rILX8aiH332n-wW3PjIN3meKu5ZXStgDTs","id":"87e8613c","name":"Kit Ann Caps","instagram":"https://www.instagram.com/kitanncaps/","website":"https://www.kitanncaps.com/","discord":"https://discord.gg/yEPb992cUG","sculpts":[{"id":"cc15d458","name":"Monster Manual","colorways":[{"id":"8465a2c4","img":"https://cdn.keycap-archivist.com/keycaps/8465a2c4.jpg","name":"Halloween","isCover":false,"note":""}]},{"id":"8cadec94","name":"Intergalactic Interloper","colorways":[{"id":"f2a3188c","img":"https://cdn.keycap-archivist.com/keycaps/f2a3188c.jpg","name":"Messier 81","isCover":false,"note":""},{"id":"32840454","img":"https://cdn.keycap-archivist.com/keycaps/32840454.jpg","name":"Halloween","isCover":false,"note":""}]},{"id":"937f154f","name":"Witches Brew","colorways":[{"id":"ff4119b4","img":"https://cdn.keycap-archivist.com/keycaps/ff4119b4.jpg","name":"Siren","isCover":false,"note":""},{"id":"e860ec3b","img":"https://cdn.keycap-archivist.com/keycaps/e860ec3b.jpg","name":"Halloween","isCover":false,"note":""}]},{"id":"f7578dd0","name":"Kyos","colorways":[{"id":"2dcfd0c2","img":"https://cdn.keycap-archivist.com/keycaps/2dcfd0c2.jpg","name":"Space Prince","isCover":false,"note":""}]},{"id":"5e5ccc93","name":"Fluffington","colorways":[{"id":"2ed1c375","img":"https://cdn.keycap-archivist.com/keycaps/2ed1c375.jpg","name":"instaComfy","isCover":false,"note":""}]},{"id":"a9d829ed","name":"Appa","colorways":[{"id":"5040b25b","img":"https://cdn.keycap-archivist.com/keycaps/5040b25b.jpg","name":"V1","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/kiyokaps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 12922d53,KiyoKaps,Pengy,OG,https://cdn.keycap-archivist.com/keycaps/12922d53.jpg 3 | cef8f0a6,KiyoKaps,Pengy,Mashu,https://cdn.keycap-archivist.com/keycaps/cef8f0a6.jpg 4 | 1f9bdc78,KiyoKaps,Pengy,Fou,https://cdn.keycap-archivist.com/keycaps/1f9bdc78.jpg 5 | f8169f6c,KiyoKaps,Pengy,Padoru,https://cdn.keycap-archivist.com/keycaps/f8169f6c.jpg 6 | 47441708,KiyoKaps,Pengy,Superstar,https://cdn.keycap-archivist.com/keycaps/47441708.jpg 7 | 1d337f6d,KiyoKaps,Pengy,Evil Eye,https://cdn.keycap-archivist.com/keycaps/1d337f6d.jpg 8 | 90d6adda,KiyoKaps,Pengy,Sukonbu,https://cdn.keycap-archivist.com/keycaps/90d6adda.jpg 9 | c2ad3ad1,KiyoKaps,Pengy,Delibird,https://cdn.keycap-archivist.com/keycaps/c2ad3ad1.jpg 10 | 5ef9dca,KiyoKaps,Pengy,Iron Bundle,https://cdn.keycap-archivist.com/keycaps/5ef9dca.jpg 11 | f6cb8596,KiyoKaps,Pengy,Shiny Delibird,https://cdn.keycap-archivist.com/keycaps/f6cb8596.jpg 12 | 4146db8d,KiyoKaps,Pengy,Shiny Iron Bundle,https://cdn.keycap-archivist.com/keycaps/4146db8d.jpg 13 | f8b26fc3,KiyoKaps,Pengy,Anniversary,https://cdn.keycap-archivist.com/keycaps/f8b26fc3.jpg 14 | 830477c9,KiyoKaps,Pengy,Oni,https://cdn.keycap-archivist.com/keycaps/830477c9.jpg 15 | 65cd041e,KiyoKaps,Mimi,OG,https://cdn.keycap-archivist.com/keycaps/65cd041e.jpg 16 | 52b6381d,KiyoKaps,Mimi,Superstar,https://cdn.keycap-archivist.com/keycaps/52b6381d.jpg 17 | d8ea99f0,KiyoKaps,Mimi,Evil Eye,https://cdn.keycap-archivist.com/keycaps/d8ea99f0.jpg 18 | 3bb3dbec,KiyoKaps,Mimi,FBK,https://cdn.keycap-archivist.com/keycaps/3bb3dbec.jpg 19 | c306ff5c,KiyoKaps,Kiyo,Cake (anniversary),https://cdn.keycap-archivist.com/keycaps/c306ff5c.jpg 20 | d1446841,KiyoKaps,Kiyo,Bundle (delibird),https://cdn.keycap-archivist.com/keycaps/d1446841.jpg 21 | bc26c2ae,KiyoKaps,Oni,OG,https://cdn.keycap-archivist.com/keycaps/bc26c2ae.jpg 22 | b10fbbdd,KiyoKaps,Oni,Oni,https://cdn.keycap-archivist.com/keycaps/b10fbbdd.jpg 23 | 6eb61ad8,KiyoKaps,Ojou,Red on White,https://cdn.keycap-archivist.com/keycaps/6eb61ad8.jpg 24 | e87fd717,KiyoKaps,Ojou,Red on Black,https://cdn.keycap-archivist.com/keycaps/e87fd717.jpg 25 | 3d5fc9,KiyoKaps,Zak,OG,https://cdn.keycap-archivist.com/keycaps/3d5fc9.jpg 26 | 2fae667b,KiyoKaps,Dodo,OG,https://cdn.keycap-archivist.com/keycaps/2fae667b.jpg 27 | -------------------------------------------------------------------------------- /db/kook.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 99aa0820,Kook,Kook,Whaddup Man?,https://cdn.keycap-archivist.com/keycaps/99aa0820.jpg 3 | 48ace436,Kook,Kook,Dollar Bling,https://cdn.keycap-archivist.com/keycaps/48ace436.jpg 4 | 81947ad6,Kook,Kook,Fleshy Goodness,https://cdn.keycap-archivist.com/keycaps/81947ad6.jpg 5 | a25278fa,Kook,Kook,SGMK 2022,https://cdn.keycap-archivist.com/keycaps/a25278fa.jpg 6 | 304af7df,Kook,Kook,Two Face,https://cdn.keycap-archivist.com/keycaps/304af7df.jpg 7 | af3f551c,Kook,Croaks,Cucumber Mint,https://cdn.keycap-archivist.com/keycaps/af3f551c.jpg 8 | caa71ff7,Kook,Croaks,Blackcurrant,https://cdn.keycap-archivist.com/keycaps/caa71ff7.jpg 9 | 31ddab43,Kook,Croaks,Shovacado,https://cdn.keycap-archivist.com/keycaps/31ddab43.jpg 10 | -------------------------------------------------------------------------------- /db/kook.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1RI8quPYaJnGxMVBc1fTw_jL4skru4b--V7ORXfmaszw","id":"16df4385","name":"Kook","instagram":"https://www.instagram.com/kook_caps/","website":"https://discord.gg/74xdJEXRFE","discord":"","sculpts":[{"id":"a2028fda","name":"Kook","colorways":[{"id":"99aa0820","img":"https://cdn.keycap-archivist.com/keycaps/99aa0820.jpg","name":"Whaddup Man?","isCover":false,"note":""},{"id":"48ace436","img":"https://cdn.keycap-archivist.com/keycaps/48ace436.jpg","name":"Dollar Bling","isCover":false,"note":""},{"id":"81947ad6","img":"https://cdn.keycap-archivist.com/keycaps/81947ad6.jpg","name":"Fleshy Goodness","isCover":false,"note":""},{"id":"a25278fa","img":"https://cdn.keycap-archivist.com/keycaps/a25278fa.jpg","name":"SGMK 2022","isCover":false,"note":""},{"id":"304af7df","img":"https://cdn.keycap-archivist.com/keycaps/304af7df.jpg","name":"Two Face","isCover":false,"note":""}]},{"id":"71b8c5bb","name":"Croaks","colorways":[{"id":"af3f551c","img":"https://cdn.keycap-archivist.com/keycaps/af3f551c.jpg","name":"Cucumber Mint","isCover":false,"note":""},{"id":"caa71ff7","img":"https://cdn.keycap-archivist.com/keycaps/caa71ff7.jpg","name":"Blackcurrant","isCover":false,"note":""},{"id":"31ddab43","img":"https://cdn.keycap-archivist.com/keycaps/31ddab43.jpg","name":"Shovacado","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/luna-keycaps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 977c2802,Luna Keycaps,Cat Bento,Sushi,https://cdn.keycap-archivist.com/keycaps/977c2802.jpg 3 | f5bfef73,Luna Keycaps,Cat Bento,Calcifer,https://cdn.keycap-archivist.com/keycaps/f5bfef73.jpg 4 | 446a304d,Luna Keycaps,Cat Bento,Dimsum,https://cdn.keycap-archivist.com/keycaps/446a304d.jpg 5 | c663bc2f,Luna Keycaps,Cat Bento,MOMS BDAY 2021,https://cdn.keycap-archivist.com/keycaps/c663bc2f.jpg 6 | b8d9f9b8,Luna Keycaps,Cat Bento,MOMS BDAY 2021 Limited Edition,https://cdn.keycap-archivist.com/keycaps/b8d9f9b8.jpg 7 | 7443e264,Luna Keycaps,Cat Bento,Tea at Z’s,https://cdn.keycap-archivist.com/keycaps/7443e264.jpg 8 | 397ed334,Luna Keycaps,Cat Bento,TRICK OR TREAT,https://cdn.keycap-archivist.com/keycaps/397ed334.jpg 9 | 621c9494,Luna Keycaps,Cat Bento,TRICK OR TREAT,https://cdn.keycap-archivist.com/keycaps/621c9494.jpg 10 | c2e83636,Luna Keycaps,Cat Bento,BONE APPÉTIT,https://cdn.keycap-archivist.com/keycaps/c2e83636.jpg 11 | 596830c8,Luna Keycaps,Cat Bento,DADS BDAY 2021,https://cdn.keycap-archivist.com/keycaps/596830c8.jpg 12 | 3ddaf6ce,Luna Keycaps,Cat Bento,TIRAMISU (GMK Tiramisu Collab),https://cdn.keycap-archivist.com/keycaps/3ddaf6ce.jpg 13 | 4b2e3ba7,Luna Keycaps,Cat Bento,DALGONA,https://cdn.keycap-archivist.com/keycaps/4b2e3ba7.jpg 14 | 72a9e458,Luna Keycaps,Cat Bento,WINTER HOLIDAY,https://cdn.keycap-archivist.com/keycaps/72a9e458.jpg 15 | 6d9add52,Luna Keycaps,Cat Bento,WINTER WONDERLAND,https://cdn.keycap-archivist.com/keycaps/6d9add52.jpg 16 | f52f3945,Luna Keycaps,Cat Bento,WINTER BABY,https://cdn.keycap-archivist.com/keycaps/f52f3945.jpg 17 | d835830c,Luna Keycaps,Bunny Bento,Sushi,https://cdn.keycap-archivist.com/keycaps/d835830c.jpg 18 | b5f21139,Luna Keycaps,Bunny Bento,Calcifer,https://cdn.keycap-archivist.com/keycaps/b5f21139.jpg 19 | 301ed4ed,Luna Keycaps,Bunny Bento,Dimsum,https://cdn.keycap-archivist.com/keycaps/301ed4ed.jpg 20 | d8e211eb,Luna Keycaps,Bunny Bento,MOMS BDAY 2021,https://cdn.keycap-archivist.com/keycaps/d8e211eb.jpg 21 | 95e6811b,Luna Keycaps,Bunny Bento,Tea at Z’s,https://cdn.keycap-archivist.com/keycaps/95e6811b.jpg 22 | 33b95847,Luna Keycaps,Bunny Bento,TRICK OR TREAT,https://cdn.keycap-archivist.com/keycaps/33b95847.jpg 23 | b5eee1f3,Luna Keycaps,Bunny Bento,TRICK OR TREAT,https://cdn.keycap-archivist.com/keycaps/b5eee1f3.jpg 24 | 5b85501e,Luna Keycaps,Bunny Bento,BONE APPÉTIT,https://cdn.keycap-archivist.com/keycaps/5b85501e.jpg 25 | b6df34b0,Luna Keycaps,Bunny Bento,TIRAMISU (GMK Tiramisu Collab),https://cdn.keycap-archivist.com/keycaps/b6df34b0.jpg 26 | -------------------------------------------------------------------------------- /db/meof.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 17c4d1d5,meof,BUNN,Tuzi,https://cdn.keycap-archivist.com/keycaps/17c4d1d5.jpg 3 | f6835e22,meof,BUNN,Tuzi,https://cdn.keycap-archivist.com/keycaps/f6835e22.jpg 4 | 9bcca9,meof,BUNN,Soju,https://cdn.keycap-archivist.com/keycaps/9bcca9.jpg 5 | 1473fd57,meof,BUNN,Soju,https://cdn.keycap-archivist.com/keycaps/1473fd57.jpg 6 | a18824ee,meof,BUNN,Encore,https://cdn.keycap-archivist.com/keycaps/a18824ee.jpg 7 | 6cf330e3,meof,BUNN,Encore,https://cdn.keycap-archivist.com/keycaps/6cf330e3.jpg 8 | 97665613,meof,BUNN,Origami,https://cdn.keycap-archivist.com/keycaps/97665613.jpg 9 | 6c016793,meof,BUNN,Stargaze,https://cdn.keycap-archivist.com/keycaps/6c016793.jpg 10 | e0e5436b,meof,BUNN,Bouquet,https://cdn.keycap-archivist.com/keycaps/e0e5436b.jpg 11 | cc56b8b8,meof,BUNN,Fruit Chew,https://cdn.keycap-archivist.com/keycaps/cc56b8b8.jpg 12 | c5554228,meof,BUNN,Cookie Monster,https://cdn.keycap-archivist.com/keycaps/c5554228.jpg 13 | f9fc1cb1,meof,BUNN,Lunar Tiger,https://cdn.keycap-archivist.com/keycaps/f9fc1cb1.jpg 14 | 6c326705,meof,BUNN,Taiga Taiger,https://cdn.keycap-archivist.com/keycaps/6c326705.jpg 15 | 344ab925,meof,BUNN,Fruit Chew - Yellow,https://cdn.keycap-archivist.com/keycaps/344ab925.jpg 16 | 6a4a98af,meof,BUNN,Fruit Chew - Purple,https://cdn.keycap-archivist.com/keycaps/6a4a98af.jpg 17 | 4db5c093,meof,BUNN,Fruit Chew - Green,https://cdn.keycap-archivist.com/keycaps/4db5c093.jpg 18 | 9a2e90a6,meof,BUNN,Mimi - Inu,https://cdn.keycap-archivist.com/keycaps/9a2e90a6.jpg 19 | 8b24d3a7,meof,BUNN,Mimi - Cloudy,https://cdn.keycap-archivist.com/keycaps/8b24d3a7.jpg 20 | 379ab3d2,meof,BUNN,Pink Sprinkles,https://cdn.keycap-archivist.com/keycaps/379ab3d2.jpg 21 | a245b69b,meof,BUNN,Blue Sprinkles,https://cdn.keycap-archivist.com/keycaps/a245b69b.jpg 22 | f8b08342,meof,BUNN,Ocean Sunset,https://cdn.keycap-archivist.com/keycaps/f8b08342.jpg 23 | e513e77,meof,BUNN,Gradient Mint,https://cdn.keycap-archivist.com/keycaps/e513e77.jpg 24 | 403d9195,meof,BUNN,Gengar,https://cdn.keycap-archivist.com/keycaps/403d9195.jpg 25 | 5b96302e,meof,BUNN,Gawr Gura - Happy,https://cdn.keycap-archivist.com/keycaps/5b96302e.jpg 26 | 8a179fa7,meof,BUNN,Gawr Gura - 0w0,https://cdn.keycap-archivist.com/keycaps/8a179fa7.jpg 27 | 93ab7e03,meof,Bun Manchi,Nervous Snowbeast,https://cdn.keycap-archivist.com/keycaps/93ab7e03.jpg 28 | 245ae104,meof,Miss Pepper,Encore,https://cdn.keycap-archivist.com/keycaps/245ae104.jpg 29 | ad915a31,meof,Dino,Pinky,https://cdn.keycap-archivist.com/keycaps/ad915a31.jpg 30 | 6f97a14e,meof,Dino,Orange Jam,https://cdn.keycap-archivist.com/keycaps/6f97a14e.jpg 31 | -------------------------------------------------------------------------------- /db/miniworld.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 72599d90,Miniworld,Octalevia,Pennywise,https://cdn.keycap-archivist.com/keycaps/72599d90.jpg 3 | 6958f265,Miniworld,Neo-Valkyrie,V1 Prototype,https://cdn.keycap-archivist.com/keycaps/6958f265.jpg 4 | 9b24d08e,Miniworld,Neo-Valkyrie,Z,https://cdn.keycap-archivist.com/keycaps/9b24d08e.jpg 5 | 617b26c0,Miniworld,Neo-Valkyrie,EVA-01,https://cdn.keycap-archivist.com/keycaps/617b26c0.jpg 6 | a2bbb936,Miniworld,Neo-Valkyrie,The Last Empress,https://cdn.keycap-archivist.com/keycaps/a2bbb936.jpg 7 | 5dd63df3,Miniworld,Neo-Valkyrie,Houhai,https://cdn.keycap-archivist.com/keycaps/5dd63df3.jpg 8 | -------------------------------------------------------------------------------- /db/miniworld.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1K2IP5lV4-6PLuJcFLhpR-gJAqHhxY7baxZSG2DaSPvo","id":"e57c41a","name":"Miniworld","instagram":"https://www.instagram.com/miniworld.keycaps/","website":"https://www.miniworld.studio/","discord":"","sculpts":[{"id":"895e6907","name":"Octalevia","colorways":[{"id":"72599d90","img":"https://cdn.keycap-archivist.com/keycaps/72599d90.jpg","name":"Pennywise","isCover":false,"note":""}]},{"id":"25eaf06f","name":"Neo-Valkyrie","colorways":[{"id":"6958f265","img":"https://cdn.keycap-archivist.com/keycaps/6958f265.jpg","name":"V1 Prototype","isCover":false,"note":""},{"id":"9b24d08e","img":"https://cdn.keycap-archivist.com/keycaps/9b24d08e.jpg","name":"Z","isCover":false,"note":""},{"id":"617b26c0","img":"https://cdn.keycap-archivist.com/keycaps/617b26c0.jpg","name":"EVA-01","isCover":false,"note":""},{"id":"a2bbb936","img":"https://cdn.keycap-archivist.com/keycaps/a2bbb936.jpg","name":"The Last Empress","isCover":false,"note":""},{"id":"5dd63df3","img":"https://cdn.keycap-archivist.com/keycaps/5dd63df3.jpg","name":"Houhai","isCover":false,"note":""}]}],"selfOrder":false,"nationality":"vn"} -------------------------------------------------------------------------------- /db/mystic-world.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 89a201b6,Mystic World,Space Kid,,https://cdn.keycap-archivist.com/keycaps/89a201b6.jpg 3 | 37456ef4,Mystic World,Space Kid,Universe,https://cdn.keycap-archivist.com/keycaps/37456ef4.jpg 4 | 831b42c4,Mystic World,Space Kid,Lag,https://cdn.keycap-archivist.com/keycaps/831b42c4.jpg 5 | 6fa1cdd4,Mystic World,Bellion,Carbon,https://cdn.keycap-archivist.com/keycaps/6fa1cdd4.jpg 6 | 9899177a,Mystic World,Bellion,GMK Panels,https://cdn.keycap-archivist.com/keycaps/9899177a.jpg 7 | 7075753f,Mystic World,Bellion,Love Hunter,https://cdn.keycap-archivist.com/keycaps/7075753f.jpg 8 | 84a9aa85,Mystic World,Bellion,Laser,https://cdn.keycap-archivist.com/keycaps/84a9aa85.jpg 9 | 55ea2a00,Mystic World,Bellion,WoB,https://cdn.keycap-archivist.com/keycaps/55ea2a00.jpg 10 | -------------------------------------------------------------------------------- /db/mystic-world.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1oeXo0YesQfjJSZ9USDUd_fIQuib5i5m6LNfacSR-1T4","id":"af8591c1","name":"Mystic World","instagram":"https://www.instagram.com/mysticworldcaps/","website":"","discord":"https://discord.gg/5kQ6Va9pyB","sculpts":[{"id":"8e636dc6","name":"Space Kid","colorways":[{"id":"89a201b6","img":"https://cdn.keycap-archivist.com/keycaps/89a201b6.jpg","name":"","isCover":false,"note":""},{"id":"37456ef4","img":"https://cdn.keycap-archivist.com/keycaps/37456ef4.jpg","name":"Universe","isCover":false,"note":""},{"id":"831b42c4","img":"https://cdn.keycap-archivist.com/keycaps/831b42c4.jpg","name":"Lag","isCover":false,"note":""}]},{"id":"ed1efc35","name":"Bellion","colorways":[{"id":"6fa1cdd4","img":"https://cdn.keycap-archivist.com/keycaps/6fa1cdd4.jpg","name":"Carbon","isCover":false,"note":""},{"id":"9899177a","img":"https://cdn.keycap-archivist.com/keycaps/9899177a.jpg","name":"GMK Panels","isCover":false,"note":""},{"id":"7075753f","img":"https://cdn.keycap-archivist.com/keycaps/7075753f.jpg","name":"Love Hunter","isCover":false,"note":""},{"id":"84a9aa85","img":"https://cdn.keycap-archivist.com/keycaps/84a9aa85.jpg","name":"Laser","isCover":false,"note":""},{"id":"55ea2a00","img":"https://cdn.keycap-archivist.com/keycaps/55ea2a00.jpg","name":"WoB","isCover":false,"note":""}]}],"selfOrder":false,"nationality":"vn"} -------------------------------------------------------------------------------- /db/not-caps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 7649d9ae,NOT Caps,Float,Variety Pack,https://cdn.keycap-archivist.com/keycaps/7649d9ae.jpg 3 | 16bde9d7,NOT Caps,Float,Fair Prize,https://cdn.keycap-archivist.com/keycaps/16bde9d7.jpg 4 | a03abf38,NOT Caps,Float,House of Balloons,https://cdn.keycap-archivist.com/keycaps/a03abf38.jpg 5 | 3331883e,NOT Caps,Float,Glacier Globe,https://cdn.keycap-archivist.com/keycaps/3331883e.jpg 6 | 83ac74de,NOT Caps,Float,New Year’s Resolution,https://cdn.keycap-archivist.com/keycaps/83ac74de.jpg 7 | 87d85b2,NOT Caps,Float,Oil Spill,https://cdn.keycap-archivist.com/keycaps/87d85b2.jpg 8 | 62b4efcc,NOT Caps,Float,Plastic Beach,https://cdn.keycap-archivist.com/keycaps/62b4efcc.jpg 9 | db8fea74,NOT Caps,Float,Heartstrung,https://cdn.keycap-archivist.com/keycaps/db8fea74.jpg 10 | df5c5e22,NOT Caps,Float,Eternity of Isolation,https://cdn.keycap-archivist.com/keycaps/df5c5e22.jpg 11 | ad775f88,NOT Caps,Float,Good For Health,https://cdn.keycap-archivist.com/keycaps/ad775f88.jpg 12 | fae7fa60,NOT Caps,Float,Teaser,https://cdn.keycap-archivist.com/keycaps/fae7fa60.jpg 13 | 26f45053,NOT Caps,Float,Party Pack,https://cdn.keycap-archivist.com/keycaps/26f45053.jpg 14 | -------------------------------------------------------------------------------- /db/not-caps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1nnUMA_-ll05sFz-EGeCllZTRZyUilkhstPUNB6NJEUs","id":"9b2f6077","name":"NOT Caps","instagram":"https://www.instagram.com/n0tcaps/","website":"","discord":"","sculpts":[{"id":"42b4938a","name":"Float","colorways":[{"id":"7649d9ae","img":"https://cdn.keycap-archivist.com/keycaps/7649d9ae.jpg","name":"Variety Pack","isCover":false,"note":""},{"id":"16bde9d7","img":"https://cdn.keycap-archivist.com/keycaps/16bde9d7.jpg","name":"Fair Prize","isCover":false,"note":""},{"id":"a03abf38","img":"https://cdn.keycap-archivist.com/keycaps/a03abf38.jpg","name":"House of Balloons","isCover":false,"note":""},{"id":"3331883e","img":"https://cdn.keycap-archivist.com/keycaps/3331883e.jpg","name":"Glacier Globe","isCover":false,"note":""},{"id":"83ac74de","img":"https://cdn.keycap-archivist.com/keycaps/83ac74de.jpg","name":"New Year’s Resolution","isCover":false,"note":""},{"id":"87d85b2","img":"https://cdn.keycap-archivist.com/keycaps/87d85b2.jpg","name":"Oil Spill","isCover":false,"note":""},{"id":"62b4efcc","img":"https://cdn.keycap-archivist.com/keycaps/62b4efcc.jpg","name":"Plastic Beach","isCover":false,"note":""},{"id":"db8fea74","img":"https://cdn.keycap-archivist.com/keycaps/db8fea74.jpg","name":"Heartstrung","isCover":false,"note":""},{"id":"df5c5e22","img":"https://cdn.keycap-archivist.com/keycaps/df5c5e22.jpg","name":"Eternity of Isolation","isCover":false,"note":""},{"id":"ad775f88","img":"https://cdn.keycap-archivist.com/keycaps/ad775f88.jpg","name":"Good For Health","isCover":false,"note":""},{"id":"fae7fa60","img":"https://cdn.keycap-archivist.com/keycaps/fae7fa60.jpg","name":"Teaser","isCover":false,"note":""},{"id":"26f45053","img":"https://cdn.keycap-archivist.com/keycaps/26f45053.jpg","name":"Party Pack","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/object-garage.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | b95afce1,Object.Garage,DisCat,B & W,https://cdn.keycap-archivist.com/keycaps/b95afce1.jpg 3 | ca2651e9,Object.Garage,DisCat,Choco Banana,https://cdn.keycap-archivist.com/keycaps/ca2651e9.jpg 4 | 3a6954f6,Object.Garage,DisCat,Red Chili,https://cdn.keycap-archivist.com/keycaps/3a6954f6.jpg 5 | 947a00db,Object.Garage,DisCat,Hyper,https://cdn.keycap-archivist.com/keycaps/947a00db.jpg 6 | 396aca15,Object.Garage,DisCat,Choco,https://cdn.keycap-archivist.com/keycaps/396aca15.jpg 7 | d72e2810,Object.Garage,DisCat,Blossom,https://cdn.keycap-archivist.com/keycaps/d72e2810.jpg 8 | -------------------------------------------------------------------------------- /db/object-garage.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1RWKUmcfE9XYslR5GDldajorjTxCqBVM0UE7wBxeB6G4","id":"2f6b5457","name":"Object.Garage","instagram":"https://www.instagram.com/object.garage/","website":"","discord":"","sculpts":[{"id":"74eb6da0","name":"DisCat","colorways":[{"id":"b95afce1","img":"https://cdn.keycap-archivist.com/keycaps/b95afce1.jpg","name":"B & W","isCover":false,"note":""},{"id":"ca2651e9","img":"https://cdn.keycap-archivist.com/keycaps/ca2651e9.jpg","name":"Choco Banana","isCover":false,"note":""},{"id":"3a6954f6","img":"https://cdn.keycap-archivist.com/keycaps/3a6954f6.jpg","name":"Red Chili","isCover":false,"note":""},{"id":"947a00db","img":"https://cdn.keycap-archivist.com/keycaps/947a00db.jpg","name":"Hyper","isCover":false,"note":""},{"id":"396aca15","img":"https://cdn.keycap-archivist.com/keycaps/396aca15.jpg","name":"Choco","isCover":false,"note":""},{"id":"d72e2810","img":"https://cdn.keycap-archivist.com/keycaps/d72e2810.jpg","name":"Blossom","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/ochre-+-moss.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 62c7a8fb,Ochre + Moss,Goob,Original,https://cdn.keycap-archivist.com/keycaps/62c7a8fb.jpg 3 | d4857288,Ochre + Moss,Goob,Peperomia,https://cdn.keycap-archivist.com/keycaps/d4857288.jpg 4 | d907a80f,Ochre + Moss,Goob,Lazuli (GMK Lazurite),https://cdn.keycap-archivist.com/keycaps/d907a80f.jpg 5 | cc8723fa,Ochre + Moss,Goob,Wisteria,https://cdn.keycap-archivist.com/keycaps/cc8723fa.jpg 6 | d71c2d13,Ochre + Moss,Goob,Orion (GMK Stargaze),https://cdn.keycap-archivist.com/keycaps/d71c2d13.jpg 7 | 7d6386e7,Ochre + Moss,Goob,Lady (SA Fledgling),https://cdn.keycap-archivist.com/keycaps/7d6386e7.jpg 8 | f1e44140,Ochre + Moss,Goob (Special Colorways),Baby Blues (Mints for Health Charity Auction),https://cdn.keycap-archivist.com/keycaps/f1e44140.jpg 9 | 750e0202,Ochre + Moss,Goob (Special Colorways),"Julie (SA Fledgling, Blind Auction)",https://cdn.keycap-archivist.com/keycaps/750e0202.jpg 10 | 33ed3408,Ochre + Moss,DSA,Mint Cleric Set (DSA Magic Girl),https://cdn.keycap-archivist.com/keycaps/33ed3408.jpg 11 | 51f06339,Ochre + Moss,DSA,Pink Cleric Set (DSA Magic Girl),https://cdn.keycap-archivist.com/keycaps/51f06339.jpg 12 | 31445dda,Ochre + Moss,DSA,Dark Summoner Set (DSA Magic Girl),https://cdn.keycap-archivist.com/keycaps/31445dda.jpg 13 | -------------------------------------------------------------------------------- /db/ochre-+-moss.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1r3HhhDyLTnLJrDb5kpCazx_-j7SwOk9GHl9G-zek-N0","id":"f086fafc","name":"Ochre + Moss","instagram":"https://www.instagram.com/ochre.moss/","website":"","discord":"https://discord.gg/EAHpSPfTE6","sculpts":[{"id":"6ef94a3d","name":"Goob","colorways":[{"id":"62c7a8fb","img":"https://cdn.keycap-archivist.com/keycaps/62c7a8fb.jpg","name":"Original","isCover":false,"releaseDate":"March 2021","note":""},{"id":"d4857288","img":"https://cdn.keycap-archivist.com/keycaps/d4857288.jpg","name":"Peperomia","isCover":false,"releaseDate":"April 2021","note":""},{"id":"d907a80f","img":"https://cdn.keycap-archivist.com/keycaps/d907a80f.jpg","name":"Lazuli (GMK Lazurite)","isCover":false,"releaseDate":"May 2021","note":""},{"id":"cc8723fa","img":"https://cdn.keycap-archivist.com/keycaps/cc8723fa.jpg","name":"Wisteria","isCover":false,"releaseDate":"June 2021","note":""},{"id":"d71c2d13","img":"https://cdn.keycap-archivist.com/keycaps/d71c2d13.jpg","name":"Orion (GMK Stargaze)","isCover":false,"releaseDate":"August 2021","note":""},{"id":"7d6386e7","img":"https://cdn.keycap-archivist.com/keycaps/7d6386e7.jpg","name":"Lady (SA Fledgling)","isCover":false,"releaseDate":"October 2021","note":""}]},{"id":"24396821","name":"Goob (Special Colorways)","colorways":[{"id":"f1e44140","img":"https://cdn.keycap-archivist.com/keycaps/f1e44140.jpg","name":"Baby Blues (Mints for Health Charity Auction)","isCover":false,"releaseDate":"April 2021","note":""},{"id":"750e0202","img":"https://cdn.keycap-archivist.com/keycaps/750e0202.jpg","name":"Julie (SA Fledgling, Blind Auction)","isCover":false,"releaseDate":"October 2021","note":""}]},{"id":"304560ba","name":"DSA","colorways":[{"id":"33ed3408","img":"https://cdn.keycap-archivist.com/keycaps/33ed3408.jpg","name":"Mint Cleric Set (DSA Magic Girl)","isCover":false,"releaseDate":"December 2020","note":""},{"id":"51f06339","img":"https://cdn.keycap-archivist.com/keycaps/51f06339.jpg","name":"Pink Cleric Set (DSA Magic Girl)","isCover":false,"releaseDate":"December 2020","note":""},{"id":"31445dda","img":"https://cdn.keycap-archivist.com/keycaps/31445dda.jpg","name":"Dark Summoner Set (DSA Magic Girl)","isCover":false,"releaseDate":"December 2020","note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/sway-caps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 537336cf,Sway Caps,Miz,OG,https://cdn.keycap-archivist.com/keycaps/537336cf.jpg 3 | 5a818382,Sway Caps,Miz,Pastel Love Galore,https://cdn.keycap-archivist.com/keycaps/5a818382.jpg 4 | 7aa03bbb,Sway Caps,Miz,Pastel Love Galore,https://cdn.keycap-archivist.com/keycaps/7aa03bbb.jpg 5 | a6bf5f2f,Sway Caps,Miz,Pastel Love Galore,https://cdn.keycap-archivist.com/keycaps/a6bf5f2f.jpg 6 | d5a7b1e2,Sway Caps,Miz,MIZ-01,https://cdn.keycap-archivist.com/keycaps/d5a7b1e2.jpg 7 | 45cc2b60,Sway Caps,Miz,Lover Boi,https://cdn.keycap-archivist.com/keycaps/45cc2b60.jpg 8 | 2db40bd3,Sway Caps,Miz,Rhesus Hoax,https://cdn.keycap-archivist.com/keycaps/2db40bd3.jpg 9 | dbb32d59,Sway Caps,Miz,EDG the Momkey,https://cdn.keycap-archivist.com/keycaps/dbb32d59.jpg 10 | 6a92a8a,Sway Caps,Miz,Albert II,https://cdn.keycap-archivist.com/keycaps/6a92a8a.jpg 11 | c9c6275,Sway Caps,Miz,Bonzi,https://cdn.keycap-archivist.com/keycaps/c9c6275.jpg 12 | f670dcc3,Sway Caps,Miz,No Face,https://cdn.keycap-archivist.com/keycaps/f670dcc3.jpg 13 | fa1bf899,Sway Caps,Miz,Ziggy,https://cdn.keycap-archivist.com/keycaps/fa1bf899.jpg 14 | b8991,Sway Caps,Boneana,OG,https://cdn.keycap-archivist.com/keycaps/b8991.jpg 15 | a645324f,Sway Caps,Boneana,Cupid’s Tip,https://cdn.keycap-archivist.com/keycaps/a645324f.jpg 16 | 229b8775,Sway Caps,Boneana,TT-KEY,https://cdn.keycap-archivist.com/keycaps/229b8775.jpg 17 | 27af4824,Sway Caps,Boneana,BANana,https://cdn.keycap-archivist.com/keycaps/27af4824.jpg 18 | cdff0b81,Sway Caps,Boneana,Space Food,https://cdn.keycap-archivist.com/keycaps/cdff0b81.jpg 19 | 5f301e31,Sway Caps,Boneana,Kamikakushi,https://cdn.keycap-archivist.com/keycaps/5f301e31.jpg 20 | -------------------------------------------------------------------------------- /db/sway-caps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1tRhoMKBVZuBxE9UAynqtBNrm__OEjQnOF07NIUamQtE","id":"ede9ca7c","name":"Sway Caps","instagram":"https://www.instagram.com/sway.caps/","website":"","discord":"","sculpts":[{"id":"e3672472","name":"Miz","colorways":[{"id":"537336cf","img":"https://cdn.keycap-archivist.com/keycaps/537336cf.jpg","name":"OG","isCover":false,"note":""},{"id":"5a818382","img":"https://cdn.keycap-archivist.com/keycaps/5a818382.jpg","name":"Pastel Love Galore","isCover":false,"note":""},{"id":"7aa03bbb","img":"https://cdn.keycap-archivist.com/keycaps/7aa03bbb.jpg","name":"Pastel Love Galore","isCover":false,"note":""},{"id":"a6bf5f2f","img":"https://cdn.keycap-archivist.com/keycaps/a6bf5f2f.jpg","name":"Pastel Love Galore","isCover":false,"note":""},{"id":"d5a7b1e2","img":"https://cdn.keycap-archivist.com/keycaps/d5a7b1e2.jpg","name":"MIZ-01","isCover":false,"note":""},{"id":"45cc2b60","img":"https://cdn.keycap-archivist.com/keycaps/45cc2b60.jpg","name":"Lover Boi","isCover":false,"note":""},{"id":"2db40bd3","img":"https://cdn.keycap-archivist.com/keycaps/2db40bd3.jpg","name":"Rhesus Hoax","isCover":false,"note":""},{"id":"dbb32d59","img":"https://cdn.keycap-archivist.com/keycaps/dbb32d59.jpg","name":"EDG the Momkey","isCover":false,"note":""},{"id":"6a92a8a","img":"https://cdn.keycap-archivist.com/keycaps/6a92a8a.jpg","name":"Albert II","isCover":false,"note":""},{"id":"c9c6275","img":"https://cdn.keycap-archivist.com/keycaps/c9c6275.jpg","name":"Bonzi","isCover":false,"note":""},{"id":"f670dcc3","img":"https://cdn.keycap-archivist.com/keycaps/f670dcc3.jpg","name":"No Face","isCover":false,"note":""},{"id":"fa1bf899","img":"https://cdn.keycap-archivist.com/keycaps/fa1bf899.jpg","name":"Ziggy","isCover":false,"note":""}]},{"id":"fdde04e2","name":"Boneana","colorways":[{"id":"b8991","img":"https://cdn.keycap-archivist.com/keycaps/b8991.jpg","name":"OG","isCover":false,"note":""},{"id":"a645324f","img":"https://cdn.keycap-archivist.com/keycaps/a645324f.jpg","name":"Cupid’s Tip","isCover":false,"note":""},{"id":"229b8775","img":"https://cdn.keycap-archivist.com/keycaps/229b8775.jpg","name":"TT-KEY","isCover":false,"note":""},{"id":"27af4824","img":"https://cdn.keycap-archivist.com/keycaps/27af4824.jpg","name":"BANana","isCover":false,"note":""},{"id":"cdff0b81","img":"https://cdn.keycap-archivist.com/keycaps/cdff0b81.jpg","name":"Space Food","isCover":false,"note":""},{"id":"5f301e31","img":"https://cdn.keycap-archivist.com/keycaps/5f301e31.jpg","name":"Kamikakushi","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/theboxkeycap.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | ab699a31,theboxkeycap,One Piece Series,Luffy’s cap,https://cdn.keycap-archivist.com/keycaps/ab699a31.jpg 3 | 77b164b7,theboxkeycap,One Piece Series,Ace’s cap,https://cdn.keycap-archivist.com/keycaps/77b164b7.jpg 4 | a6af7,theboxkeycap,One Piece Series,Sabo’s cap,https://cdn.keycap-archivist.com/keycaps/a6af7.jpg 5 | 45380c41,theboxkeycap,One Piece Series,Sabo’s cap,https://cdn.keycap-archivist.com/keycaps/45380c41.jpg 6 | 1106a465,theboxkeycap,One Piece Series,Chopper’s cap ver Pink,https://cdn.keycap-archivist.com/keycaps/1106a465.jpg 7 | 3c0a80ff,theboxkeycap,One Piece Series,Chopper’s cap ver Blue,https://cdn.keycap-archivist.com/keycaps/3c0a80ff.jpg 8 | 5d44a97c,theboxkeycap,One Piece Series,Merry cap,https://cdn.keycap-archivist.com/keycaps/5d44a97c.jpg 9 | 9ac8b24e,theboxkeycap,One Piece Series,Sunny cap,https://cdn.keycap-archivist.com/keycaps/9ac8b24e.jpg 10 | 796bf296,theboxkeycap,One Piece Series,Whitebeard’s cap,https://cdn.keycap-archivist.com/keycaps/796bf296.jpg 11 | bd5cfdcb,theboxkeycap,One Piece Series,Blackbeard’s cap,https://cdn.keycap-archivist.com/keycaps/bd5cfdcb.jpg 12 | 36f4555c,theboxkeycap,One Piece Series,Buggy’s cap,https://cdn.keycap-archivist.com/keycaps/36f4555c.jpg 13 | 1fcbc5d8,theboxkeycap,One Piece Series,Marine’s cap,https://cdn.keycap-archivist.com/keycaps/1fcbc5d8.jpg 14 | 32b29a16,theboxkeycap,Manga Character,Arale’s cap,https://cdn.keycap-archivist.com/keycaps/32b29a16.jpg 15 | b2f1d0f3,theboxkeycap,Lucky Pets,Maneki Neko (ver Calico),https://cdn.keycap-archivist.com/keycaps/b2f1d0f3.jpg 16 | e8647bf7,theboxkeycap,Lucky Pets,Maneki Neko (ver Black),https://cdn.keycap-archivist.com/keycaps/e8647bf7.jpg 17 | 8d6b67a,theboxkeycap,Lucky Pets,Maneki Neko (ver Red-White),https://cdn.keycap-archivist.com/keycaps/8d6b67a.jpg 18 | 587e3989,theboxkeycap,Lucky Pets,Maneki Neko (ver White),https://cdn.keycap-archivist.com/keycaps/587e3989.jpg 19 | 1d4105da,theboxkeycap,Lucky Pets,Maneki Neko (ver Red-Gold),https://cdn.keycap-archivist.com/keycaps/1d4105da.jpg 20 | 713e8bd7,theboxkeycap,Lucky Pets,Maneki Neko (ver Gold),https://cdn.keycap-archivist.com/keycaps/713e8bd7.jpg 21 | 400f0030,theboxkeycap,Lucky Pets,Daruma,https://cdn.keycap-archivist.com/keycaps/400f0030.jpg 22 | dd0ee6e9,theboxkeycap,Kappie,Kappie - DOM,https://cdn.keycap-archivist.com/keycaps/dd0ee6e9.jpg 23 | b2c40417,theboxkeycap,Kappie,Kappie - SA,https://cdn.keycap-archivist.com/keycaps/b2c40417.jpg 24 | a44e410d,theboxkeycap,Yuki,Yuki - DOM,https://cdn.keycap-archivist.com/keycaps/a44e410d.jpg 25 | a2aaf4c,theboxkeycap,Yuki,Yuki - SA,https://cdn.keycap-archivist.com/keycaps/a2aaf4c.jpg 26 | -------------------------------------------------------------------------------- /db/triplenight-kaps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | f5d59ff5,TripleNight.Kaps,YAMA,OG(伍殿之主),https://cdn.keycap-archivist.com/keycaps/f5d59ff5.jpg 3 | d7837ac4,TripleNight.Kaps,YAMA,OG(Normal),https://cdn.keycap-archivist.com/keycaps/d7837ac4.jpg 4 | 7bd2545,TripleNight.Kaps,YAMA,Lilith‘s Blood,https://cdn.keycap-archivist.com/keycaps/7bd2545.jpg 5 | 1c013ae,TripleNight.Kaps,YAMA,Night King,https://cdn.keycap-archivist.com/keycaps/1c013ae.jpg 6 | f5f62135,TripleNight.Kaps,YAMA,Self-Obliterating,https://cdn.keycap-archivist.com/keycaps/f5f62135.jpg 7 | dbd3166,TripleNight.Kaps,YAMA,Nightingale,https://cdn.keycap-archivist.com/keycaps/dbd3166.jpg 8 | 3e934399,TripleNight.Kaps,YAMA,T-8000,https://cdn.keycap-archivist.com/keycaps/3e934399.jpg 9 | e5a09547,TripleNight.Kaps,YAMA,Claus,https://cdn.keycap-archivist.com/keycaps/e5a09547.jpg 10 | 3114b302,TripleNight.Kaps,YAMA,Lion Dance,https://cdn.keycap-archivist.com/keycaps/3114b302.jpg 11 | 6dee4733,TripleNight.Kaps,YAMA,ALPHA,https://cdn.keycap-archivist.com/keycaps/6dee4733.jpg 12 | 82f6c58e,TripleNight.Kaps,CrasCras,Black Eclipse,https://cdn.keycap-archivist.com/keycaps/82f6c58e.jpg 13 | 55b3d75f,TripleNight.Kaps,CrasCras,Pandora,https://cdn.keycap-archivist.com/keycaps/55b3d75f.jpg 14 | 525e68c5,TripleNight.Kaps,CrasCras,墨(Ink),https://cdn.keycap-archivist.com/keycaps/525e68c5.jpg 15 | 64e0ed4b,TripleNight.Kaps,CrasCras,羽(Feather),https://cdn.keycap-archivist.com/keycaps/64e0ed4b.jpg 16 | 2cd67e1,TripleNight.Kaps,CrasCras,Muninn,https://cdn.keycap-archivist.com/keycaps/2cd67e1.jpg 17 | 18035e52,TripleNight.Kaps,CrasCras,Huginn,https://cdn.keycap-archivist.com/keycaps/18035e52.jpg 18 | c0acfd91,TripleNight.Kaps,CrasCras,OCCULT,https://cdn.keycap-archivist.com/keycaps/c0acfd91.jpg 19 | 824a74d1,TripleNight.Kaps,CrasCras,Satan,https://cdn.keycap-archivist.com/keycaps/824a74d1.jpg 20 | -------------------------------------------------------------------------------- /db/triplenight-kaps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1q_LPkHEAF7Hp-_jBul6foA65RC6LHPKVeN9ExqghsrQ","id":"d518e1b0","name":"TripleNight.Kaps","instagram":"https://www.instagram.com/tn.kaps/","website":"","discord":"","sculpts":[{"id":"ec5c16e2","name":"YAMA","colorways":[{"id":"f5d59ff5","img":"https://cdn.keycap-archivist.com/keycaps/f5d59ff5.jpg","name":"OG(伍殿之主)","isCover":false,"note":""},{"id":"d7837ac4","img":"https://cdn.keycap-archivist.com/keycaps/d7837ac4.jpg","name":"OG(Normal)","isCover":false,"note":""},{"id":"7bd2545","img":"https://cdn.keycap-archivist.com/keycaps/7bd2545.jpg","name":"Lilith‘s Blood","isCover":false,"note":""},{"id":"1c013ae","img":"https://cdn.keycap-archivist.com/keycaps/1c013ae.jpg","name":"Night King","isCover":false,"note":""},{"id":"f5f62135","img":"https://cdn.keycap-archivist.com/keycaps/f5f62135.jpg","name":"Self-Obliterating","isCover":false,"note":""},{"id":"dbd3166","img":"https://cdn.keycap-archivist.com/keycaps/dbd3166.jpg","name":"Nightingale","isCover":false,"note":""},{"id":"3e934399","img":"https://cdn.keycap-archivist.com/keycaps/3e934399.jpg","name":"T-8000","isCover":false,"note":""},{"id":"e5a09547","img":"https://cdn.keycap-archivist.com/keycaps/e5a09547.jpg","name":"Claus","isCover":false,"note":""},{"id":"3114b302","img":"https://cdn.keycap-archivist.com/keycaps/3114b302.jpg","name":"Lion Dance","isCover":false,"note":""},{"id":"6dee4733","img":"https://cdn.keycap-archivist.com/keycaps/6dee4733.jpg","name":"ALPHA","isCover":false,"note":""}]},{"id":"4e6ab86c","name":"CrasCras","colorways":[{"id":"82f6c58e","img":"https://cdn.keycap-archivist.com/keycaps/82f6c58e.jpg","name":"Black Eclipse","isCover":false,"note":""},{"id":"55b3d75f","img":"https://cdn.keycap-archivist.com/keycaps/55b3d75f.jpg","name":"Pandora","isCover":false,"note":""},{"id":"525e68c5","img":"https://cdn.keycap-archivist.com/keycaps/525e68c5.jpg","name":"墨(Ink)","isCover":false,"note":""},{"id":"64e0ed4b","img":"https://cdn.keycap-archivist.com/keycaps/64e0ed4b.jpg","name":"羽(Feather)","isCover":false,"note":""},{"id":"2cd67e1","img":"https://cdn.keycap-archivist.com/keycaps/2cd67e1.jpg","name":"Muninn","isCover":false,"note":""},{"id":"18035e52","img":"https://cdn.keycap-archivist.com/keycaps/18035e52.jpg","name":"Huginn","isCover":false,"note":""},{"id":"c0acfd91","img":"https://cdn.keycap-archivist.com/keycaps/c0acfd91.jpg","name":"OCCULT","isCover":false,"note":""},{"id":"824a74d1","img":"https://cdn.keycap-archivist.com/keycaps/824a74d1.jpg","name":"Satan","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/yu-keys.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 7f06313f,Yu.Keys,Rami,Pilot,https://cdn.keycap-archivist.com/keycaps/7f06313f.jpg 3 | fed1ae7b,Yu.Keys,Rami,Co-Pilot,https://cdn.keycap-archivist.com/keycaps/fed1ae7b.jpg 4 | 4499475e,Yu.Keys,Rami,PRIDE,https://cdn.keycap-archivist.com/keycaps/4499475e.jpg 5 | e10e2ada,Yu.Keys,Rami,Black Sheep,https://cdn.keycap-archivist.com/keycaps/e10e2ada.jpg 6 | be0ad97e,Yu.Keys,Rami,Blushing Black Sheep,https://cdn.keycap-archivist.com/keycaps/be0ad97e.jpg 7 | 2e723dbb,Yu.Keys,Rami,Lavender,https://cdn.keycap-archivist.com/keycaps/2e723dbb.jpg 8 | b0121c9d,Yu.Keys,Rami,Fledgling,https://cdn.keycap-archivist.com/keycaps/b0121c9d.jpg 9 | c6953260,Yu.Keys,Rami,Corni,https://cdn.keycap-archivist.com/keycaps/c6953260.jpg 10 | 84409f1f,Yu.Keys,Rami,Bouquet,https://cdn.keycap-archivist.com/keycaps/84409f1f.jpg 11 | 30a78c24,Yu.Keys,Rami,Candicorn,https://cdn.keycap-archivist.com/keycaps/30a78c24.jpg 12 | 2942e368,Yu.Keys,Rami,Timeless,https://cdn.keycap-archivist.com/keycaps/2942e368.jpg 13 | 4a2084cb,Yu.Keys,Rami,November Fog,https://cdn.keycap-archivist.com/keycaps/4a2084cb.jpg 14 | 94c22eab,Yu.Keys,Rami,Yip Yip,https://cdn.keycap-archivist.com/keycaps/94c22eab.jpg 15 | dd45aa94,Yu.Keys,Rami,Ti-Rami-Su,https://cdn.keycap-archivist.com/keycaps/dd45aa94.jpg 16 | f4d75322,Yu.Keys,Rami,Candicane,https://cdn.keycap-archivist.com/keycaps/f4d75322.jpg 17 | 2b44b460,Yu.Keys,Rami,Sogurt,https://cdn.keycap-archivist.com/keycaps/2b44b460.jpg 18 | 4234d2dc,Yu.Keys,Rami,Witch,https://cdn.keycap-archivist.com/keycaps/4234d2dc.jpg 19 | cb923738,Yu.Keys,Rami,LNY 2022,https://cdn.keycap-archivist.com/keycaps/cb923738.jpg 20 | e68568ba,Yu.Keys,Rami,S.A.D. & Valentine,https://cdn.keycap-archivist.com/keycaps/e68568ba.jpg 21 | d9ff7c00,Yu.Keys,Rami,Velvet,https://cdn.keycap-archivist.com/keycaps/d9ff7c00.jpg 22 | 4074f134,Yu.Keys,Rami,Hoshizora,https://cdn.keycap-archivist.com/keycaps/4074f134.jpg 23 | cb6092ad,Yu.Keys,Rami,Voynich,https://cdn.keycap-archivist.com/keycaps/cb6092ad.jpg 24 | 6b5b6ed8,Yu.Keys,Rami,Gelato,https://cdn.keycap-archivist.com/keycaps/6b5b6ed8.jpg 25 | f2b385f1,Yu.Keys,Rami,Creamsicle,https://cdn.keycap-archivist.com/keycaps/f2b385f1.jpg 26 | -------------------------------------------------------------------------------- /db/zellkey.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | fa94d1e8,ZellKey,CATLHU,Classic,https://cdn.keycap-archivist.com/keycaps/fa94d1e8.jpg 3 | 2e9795ea,ZellKey,CATLHU,Maleficent,https://cdn.keycap-archivist.com/keycaps/2e9795ea.jpg 4 | 2d01fc5c,ZellKey,CATLHU,Orange,https://cdn.keycap-archivist.com/keycaps/2d01fc5c.jpg 5 | be7f8765,ZellKey,CATLHU,Boreal,https://cdn.keycap-archivist.com/keycaps/be7f8765.jpg 6 | 9f30fe49,ZellKey,CATLHU,Striker,https://cdn.keycap-archivist.com/keycaps/9f30fe49.jpg 7 | 4909f1a7,ZellKey,CATLHU,Rainbow,https://cdn.keycap-archivist.com/keycaps/4909f1a7.jpg 8 | 9da1b375,ZellKey,CATLHU,Pumpkin,https://cdn.keycap-archivist.com/keycaps/9da1b375.jpg 9 | 94b69441,ZellKey,CHATVALIER,Classic,https://cdn.keycap-archivist.com/keycaps/94b69441.jpg 10 | 40a6a9dc,ZellKey,CHATVALIER,Orange&Purple,https://cdn.keycap-archivist.com/keycaps/40a6a9dc.jpg 11 | 649eab04,ZellKey,CHATVALIER,striker,https://cdn.keycap-archivist.com/keycaps/649eab04.jpg 12 | 1d018576,ZellKey,CHATVALIER,LightPink,https://cdn.keycap-archivist.com/keycaps/1d018576.jpg 13 | ef9866c4,ZellKey,CHATVALIER,Rainbow,https://cdn.keycap-archivist.com/keycaps/ef9866c4.jpg 14 | b14c2339,ZellKey,CHATVALIER,Pumpkin,https://cdn.keycap-archivist.com/keycaps/b14c2339.jpg 15 | 88549164,ZellKey,KINA,Rainbow,https://cdn.keycap-archivist.com/keycaps/88549164.jpg 16 | -------------------------------------------------------------------------------- /db/zellkey.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1SS3g7HabIxQhRCb9_dEKRBWkXF24XyeELFtlf09hOdQ","id":"225e11c2","name":"ZellKey","instagram":"https://www.instagram.com/__zellkey__/","website":"http://www.zellkey.art","discord":"","sculpts":[{"id":"df074bbd","name":"CATLHU","colorways":[{"id":"fa94d1e8","img":"https://cdn.keycap-archivist.com/keycaps/fa94d1e8.jpg","name":"Classic","isCover":false,"note":""},{"id":"2e9795ea","img":"https://cdn.keycap-archivist.com/keycaps/2e9795ea.jpg","name":"Maleficent","isCover":false,"note":""},{"id":"2d01fc5c","img":"https://cdn.keycap-archivist.com/keycaps/2d01fc5c.jpg","name":"Orange","isCover":false,"note":""},{"id":"be7f8765","img":"https://cdn.keycap-archivist.com/keycaps/be7f8765.jpg","name":"Boreal","isCover":false,"note":""},{"id":"9f30fe49","img":"https://cdn.keycap-archivist.com/keycaps/9f30fe49.jpg","name":"Striker","isCover":false,"note":""},{"id":"4909f1a7","img":"https://cdn.keycap-archivist.com/keycaps/4909f1a7.jpg","name":"Rainbow","isCover":false,"note":""},{"id":"9da1b375","img":"https://cdn.keycap-archivist.com/keycaps/9da1b375.jpg","name":"Pumpkin","isCover":false,"note":""}]},{"id":"2d29a1be","name":"CHATVALIER","colorways":[{"id":"94b69441","img":"https://cdn.keycap-archivist.com/keycaps/94b69441.jpg","name":"Classic","isCover":false,"note":""},{"id":"40a6a9dc","img":"https://cdn.keycap-archivist.com/keycaps/40a6a9dc.jpg","name":"Orange&Purple","isCover":false,"note":""},{"id":"649eab04","img":"https://cdn.keycap-archivist.com/keycaps/649eab04.jpg","name":"striker","isCover":false,"note":""},{"id":"1d018576","img":"https://cdn.keycap-archivist.com/keycaps/1d018576.jpg","name":"LightPink","isCover":false,"note":""},{"id":"ef9866c4","img":"https://cdn.keycap-archivist.com/keycaps/ef9866c4.jpg","name":"Rainbow","isCover":false,"note":""},{"id":"b14c2339","img":"https://cdn.keycap-archivist.com/keycaps/b14c2339.jpg","name":"Pumpkin","isCover":false,"note":""}]},{"id":"19eca88d","name":"KINA","colorways":[{"id":"88549164","img":"https://cdn.keycap-archivist.com/keycaps/88549164.jpg","name":"Rainbow","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/zero-keycaps.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 77acc6d5,Zero Keycaps,Juggy,OG,https://cdn.keycap-archivist.com/keycaps/77acc6d5.jpg 3 | b47939b0,Zero Keycaps,Juggy,Shiro,https://cdn.keycap-archivist.com/keycaps/b47939b0.jpg 4 | afba65c,Zero Keycaps,Juggy,ShanShui,https://cdn.keycap-archivist.com/keycaps/afba65c.jpg 5 | d88ef161,Zero Keycaps,Juggy,HouHai,https://cdn.keycap-archivist.com/keycaps/d88ef161.jpg 6 | f5983a8e,Zero Keycaps,Juggy,PinkBean,https://cdn.keycap-archivist.com/keycaps/f5983a8e.jpg 7 | c2c4cad1,Zero Keycaps,Juggy,Beluga,https://cdn.keycap-archivist.com/keycaps/c2c4cad1.jpg 8 | 94df8a25,Zero Keycaps,Juggy,TerrorBelow,https://cdn.keycap-archivist.com/keycaps/94df8a25.jpg 9 | 7bc5e54d,Zero Keycaps,Juggy,OliviaDark,https://cdn.keycap-archivist.com/keycaps/7bc5e54d.jpg 10 | 2009e88,Zero Keycaps,Juggy,OliviaLight,https://cdn.keycap-archivist.com/keycaps/2009e88.jpg 11 | f734c8ba,Zero Keycaps,Juggy,Jack,https://cdn.keycap-archivist.com/keycaps/f734c8ba.jpg 12 | ff22e18c,Zero Keycaps,Juggy,Satanic,https://cdn.keycap-archivist.com/keycaps/ff22e18c.jpg 13 | 35ee8738,Zero Keycaps,Porri,OG,https://cdn.keycap-archivist.com/keycaps/35ee8738.jpg 14 | -------------------------------------------------------------------------------- /db/zero-keycaps.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1pJjELN0W1faMi0kcwyrc9do4XwXorlruZfDVMh9Av3Q","id":"6848aaa0","name":"Zero Keycaps","instagram":"https://www.instagram.com/zerokeycaps/","website":"","discord":"https://discord.com/invite/BaJNmkgaks","sculpts":[{"id":"314032c3","name":"Juggy","colorways":[{"id":"77acc6d5","img":"https://cdn.keycap-archivist.com/keycaps/77acc6d5.jpg","name":"OG","isCover":false,"releaseDate":"Jan 2021","note":""},{"id":"b47939b0","img":"https://cdn.keycap-archivist.com/keycaps/b47939b0.jpg","name":"Shiro","isCover":false,"releaseDate":"Feb 2021","note":""},{"id":"afba65c","img":"https://cdn.keycap-archivist.com/keycaps/afba65c.jpg","name":"ShanShui","isCover":false,"releaseDate":"March 2021","note":""},{"id":"d88ef161","img":"https://cdn.keycap-archivist.com/keycaps/d88ef161.jpg","name":"HouHai","isCover":false,"releaseDate":"July 2021","note":""},{"id":"f5983a8e","img":"https://cdn.keycap-archivist.com/keycaps/f5983a8e.jpg","name":"PinkBean","isCover":false,"releaseDate":"September 2020","note":""},{"id":"c2c4cad1","img":"https://cdn.keycap-archivist.com/keycaps/c2c4cad1.jpg","name":"Beluga","isCover":false,"releaseDate":"October 2020","note":""},{"id":"94df8a25","img":"https://cdn.keycap-archivist.com/keycaps/94df8a25.jpg","name":"TerrorBelow","isCover":false,"releaseDate":"September 2020","note":""},{"id":"7bc5e54d","img":"https://cdn.keycap-archivist.com/keycaps/7bc5e54d.jpg","name":"OliviaDark","isCover":false,"releaseDate":"October 2020","note":""},{"id":"2009e88","img":"https://cdn.keycap-archivist.com/keycaps/2009e88.jpg","name":"OliviaLight","isCover":false,"releaseDate":"November 2020","note":""},{"id":"f734c8ba","img":"https://cdn.keycap-archivist.com/keycaps/f734c8ba.jpg","name":"Jack","isCover":false,"releaseDate":"November 2020","note":""},{"id":"ff22e18c","img":"https://cdn.keycap-archivist.com/keycaps/ff22e18c.jpg","name":"Satanic","isCover":false,"releaseDate":"December 2020","note":""}]},{"id":"145b9df0","name":"Porri","colorways":[{"id":"35ee8738","img":"https://cdn.keycap-archivist.com/keycaps/35ee8738.jpg","name":"OG","isCover":false,"releaseDate":"Nov 2021","note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/zomgkey.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 21a27974,ZOMGKEY,South East Asia Cuisine,Nasi lemak,https://cdn.keycap-archivist.com/keycaps/21a27974.jpg 3 | c58f5750,ZOMGKEY,South East Asia Cuisine,Nasi lemak with fried chicken,https://cdn.keycap-archivist.com/keycaps/c58f5750.jpg 4 | 81ad8818,ZOMGKEY,South East Asia Cuisine,Satay,https://cdn.keycap-archivist.com/keycaps/81ad8818.jpg 5 | a7ddb104,ZOMGKEY,South East Asia Cuisine,Fried flat noodle with prawn,https://cdn.keycap-archivist.com/keycaps/a7ddb104.jpg 6 | cd6e0ede,ZOMGKEY,South East Asia Cuisine,Grilled fish (ikan bakar),https://cdn.keycap-archivist.com/keycaps/cd6e0ede.jpg 7 | df0af1d8,ZOMGKEY,South East Asia Cuisine,Yong tau foo,https://cdn.keycap-archivist.com/keycaps/df0af1d8.jpg 8 | 5ad6bc,ZOMGKEY,Exotics,Rafflesia,https://cdn.keycap-archivist.com/keycaps/5ad6bc.jpg 9 | 73ff0d13,ZOMGKEY,Exotics,Durian,https://cdn.keycap-archivist.com/keycaps/73ff0d13.jpg 10 | -------------------------------------------------------------------------------- /db/zomgkey.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/1HhdYF-daQQdMQdY4JNWWv6SdPRhImsZ6aVoa8UIQkSc","id":"a1111d73","name":"ZOMGKEY","instagram":"https://www.instagram.com/zomg.key/","website":"","discord":"https://discord.com/invite/fWFbsEWTa9","sculpts":[{"id":"9a348fd","name":"South East Asia Cuisine","colorways":[{"id":"21a27974","img":"https://cdn.keycap-archivist.com/keycaps/21a27974.jpg","name":"Nasi lemak","isCover":false,"note":""},{"id":"c58f5750","img":"https://cdn.keycap-archivist.com/keycaps/c58f5750.jpg","name":"Nasi lemak with fried chicken","isCover":false,"note":""},{"id":"81ad8818","img":"https://cdn.keycap-archivist.com/keycaps/81ad8818.jpg","name":"Satay","isCover":false,"note":""},{"id":"a7ddb104","img":"https://cdn.keycap-archivist.com/keycaps/a7ddb104.jpg","name":"Fried flat noodle with prawn","isCover":false,"note":""},{"id":"cd6e0ede","img":"https://cdn.keycap-archivist.com/keycaps/cd6e0ede.jpg","name":"Grilled fish (ikan bakar)","isCover":false,"note":""},{"id":"df0af1d8","img":"https://cdn.keycap-archivist.com/keycaps/df0af1d8.jpg","name":"Yong tau foo","isCover":false,"note":""}]},{"id":"68ed4ee3","name":"Exotics","colorways":[{"id":"5ad6bc","img":"https://cdn.keycap-archivist.com/keycaps/5ad6bc.jpg","name":"Rafflesia","isCover":false,"note":""},{"id":"73ff0d13","img":"https://cdn.keycap-archivist.com/keycaps/73ff0d13.jpg","name":"Durian","isCover":false,"note":""}]}],"selfOrder":false} -------------------------------------------------------------------------------- /db/zuno-studio.csv: -------------------------------------------------------------------------------- 1 | id,artist,sculpt,name,img 2 | 68a17e4,Zuno Studio,Oink Oink,Oink Oink,https://cdn.keycap-archivist.com/keycaps/68a17e4.jpg 3 | 13130e58,Zuno Studio,Oink Oink,Pink Lightning,https://cdn.keycap-archivist.com/keycaps/13130e58.jpg 4 | dd4a773f,Zuno Studio,Oink Oink,KBM Fairy,https://cdn.keycap-archivist.com/keycaps/dd4a773f.jpg 5 | aa1d2721,Zuno Studio,Oink Oink,Yellow Star,https://cdn.keycap-archivist.com/keycaps/aa1d2721.jpg 6 | c82f494c,Zuno Studio,Oink Oink,Camping,https://cdn.keycap-archivist.com/keycaps/c82f494c.jpg 7 | f03ca96f,Zuno Studio,Oink Oink,Mictlan,https://cdn.keycap-archivist.com/keycaps/f03ca96f.jpg 8 | 2bb3b6d2,Zuno Studio,Oink Oink,Nazar,https://cdn.keycap-archivist.com/keycaps/2bb3b6d2.jpg 9 | e5662523,Zuno Studio,Oink Oink,Serika Yellow,https://cdn.keycap-archivist.com/keycaps/e5662523.jpg 10 | 2495ac6e,Zuno Studio,Oink Oink,Dairy Cow,https://cdn.keycap-archivist.com/keycaps/2495ac6e.jpg 11 | d2402f28,Zuno Studio,Oink Oink,Valentine,https://cdn.keycap-archivist.com/keycaps/d2402f28.jpg 12 | e568756b,Zuno Studio,Oink Oink,Justice Pao,https://cdn.keycap-archivist.com/keycaps/e568756b.jpg 13 | a4768f73,Zuno Studio,Oink Oink,Merry Christmas,https://cdn.keycap-archivist.com/keycaps/a4768f73.jpg 14 | 5c3eb211,Zuno Studio,Oink Oink,Serika Black,https://cdn.keycap-archivist.com/keycaps/5c3eb211.jpg 15 | ade400fc,Zuno Studio,Oink Oink,Inosuke,https://cdn.keycap-archivist.com/keycaps/ade400fc.jpg 16 | c83eb1b2,Zuno Studio,Oink Oink,Purple Dream,https://cdn.keycap-archivist.com/keycaps/c83eb1b2.jpg 17 | b094c870,Zuno Studio,Oink Oink,,https://cdn.keycap-archivist.com/keycaps/b094c870.jpg 18 | -------------------------------------------------------------------------------- /db/zuno-studio.json: -------------------------------------------------------------------------------- 1 | {"src":"https://docs.google.com/document/d/10Qsh838fnc0tO-7cPTtXCvXoQ-bMGwfZR_l0COHXGoU","id":"4f64080e","name":"Zuno Studio","instagram":"https://www.instagram.com/zunostudio/","website":"https://zunostudio.com/","discord":"https://discord.gg/qrrWzHp2ud","sculpts":[{"id":"9410f32","name":"Oink Oink","colorways":[{"id":"68a17e4","img":"https://cdn.keycap-archivist.com/keycaps/68a17e4.jpg","name":"Oink Oink","isCover":false,"note":""},{"id":"13130e58","img":"https://cdn.keycap-archivist.com/keycaps/13130e58.jpg","name":"Pink Lightning","isCover":false,"note":""},{"id":"dd4a773f","img":"https://cdn.keycap-archivist.com/keycaps/dd4a773f.jpg","name":"KBM Fairy","isCover":false,"note":""},{"id":"aa1d2721","img":"https://cdn.keycap-archivist.com/keycaps/aa1d2721.jpg","name":"Yellow Star","isCover":false,"note":""},{"id":"c82f494c","img":"https://cdn.keycap-archivist.com/keycaps/c82f494c.jpg","name":"Camping","isCover":false,"note":""},{"id":"f03ca96f","img":"https://cdn.keycap-archivist.com/keycaps/f03ca96f.jpg","name":"Mictlan","isCover":false,"note":""},{"id":"2bb3b6d2","img":"https://cdn.keycap-archivist.com/keycaps/2bb3b6d2.jpg","name":"Nazar","isCover":false,"note":""},{"id":"e5662523","img":"https://cdn.keycap-archivist.com/keycaps/e5662523.jpg","name":"Serika Yellow","isCover":false,"note":""},{"id":"2495ac6e","img":"https://cdn.keycap-archivist.com/keycaps/2495ac6e.jpg","name":"Dairy Cow","isCover":false,"note":""},{"id":"d2402f28","img":"https://cdn.keycap-archivist.com/keycaps/d2402f28.jpg","name":"Valentine","isCover":false,"note":""},{"id":"e568756b","img":"https://cdn.keycap-archivist.com/keycaps/e568756b.jpg","name":"Justice Pao","isCover":false,"note":""},{"id":"a4768f73","img":"https://cdn.keycap-archivist.com/keycaps/a4768f73.jpg","name":"Merry Christmas","isCover":false,"note":""},{"id":"5c3eb211","img":"https://cdn.keycap-archivist.com/keycaps/5c3eb211.jpg","name":"Serika Black","isCover":false,"note":""},{"id":"ade400fc","img":"https://cdn.keycap-archivist.com/keycaps/ade400fc.jpg","name":"Inosuke","isCover":false,"note":""},{"id":"c83eb1b2","img":"https://cdn.keycap-archivist.com/keycaps/c83eb1b2.jpg","name":"Purple Dream","isCover":false,"note":""},{"id":"b094c870","img":"https://cdn.keycap-archivist.com/keycaps/b094c870.jpg","name":"","isCover":false,"note":""}]}],"selfOrder":false,"nationality":"vn"} -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "too-much-artisans-db", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "lint": "standard | snazzy", 8 | "lint:fix": "standard --fix", 9 | "gen": "cp db/catalog.json catalog_old.json && rm db/catalog.json && node src/generate.js", 10 | "sync:img": "node src/sync-images.js", 11 | "prune:img": "node src/prune-images.js", 12 | "validate": "node src/validate.js", 13 | "remap:img": "node src/remap-img.js" 14 | }, 15 | "devDependencies": { 16 | "@types/node": "^18.16.3", 17 | "csv-generate": "^4.2.5", 18 | "csv-parse": "^5.3.9", 19 | "snazzy": "^9.0.0", 20 | "standard": "^17.0.0" 21 | }, 22 | "dependencies": { 23 | "@fastify/deepmerge": "^1.3.0", 24 | "@googleapis/docs": "^2.0.1", 25 | "@mixmaxhq/promise-pool": "^2.0.0", 26 | "ajv": "^6.12.6", 27 | "axios": "^1.6.8", 28 | "crc": "^4.3.2", 29 | "csv-stringify": "^6.3.3", 30 | "googleapis": "134", 31 | "he": "^1.2.0", 32 | "jsonpath": "^1.1.1", 33 | "lodash": "^4.17.21", 34 | "node-html-parser": "^6.1.5", 35 | "rimraf": "^5.0.5", 36 | "sharp": "^0.32.4", 37 | "slugify": "^1.6.6" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/catalog-img-dump.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | const axios = require('axios') 4 | 5 | const dumpFolder = path.join(__dirname, '..', 'dump') 6 | 7 | async function dumpCatalog (catalog, targetFolder) { 8 | for (const s of catalog.sculpts) { 9 | for (const c of s.colorways) { 10 | console.log(`download ${c.id}.jpg`) 11 | const r = await axios({ 12 | method: 'GET', 13 | url: `https://cdn.keycap-archivist.com/keycaps/${c.id}.jpg`, 14 | responseType: 'arraybuffer' 15 | }) 16 | fs.writeFileSync(path.join(targetFolder, `${c.id}.jpg`), r.data) 17 | console.log(`written ${c.id}.jpg`) 18 | } 19 | } 20 | } 21 | if (require.main === module) { 22 | const args = process.argv.slice(2) 23 | const catalog = args[0] 24 | if (!catalog) { 25 | throw new Error('No argument') 26 | } 27 | const jsonCatalog = JSON.parse(fs.readFileSync(catalog)) 28 | if (!fs.existsSync(dumpFolder)) { 29 | fs.mkdirSync(dumpFolder) 30 | } 31 | const outputFolder = path.join(dumpFolder, path.parse(catalog).name) 32 | if (!fs.existsSync(outputFolder)) { 33 | fs.mkdirSync(outputFolder) 34 | } 35 | dumpCatalog(jsonCatalog, outputFolder) 36 | } 37 | -------------------------------------------------------------------------------- /src/detect-dupes.js: -------------------------------------------------------------------------------- 1 | const { flatten } = require('./utils') 2 | const db = require('../db/catalog.json') 3 | 4 | const flatDb = flatten(db) 5 | const dupes = [] 6 | const t = [] 7 | for (const e of flatDb.full) { 8 | if (t.includes(e.id)) { 9 | dupes.push(e.id) 10 | } else { 11 | t.push(e.id) 12 | } 13 | } 14 | 15 | for (const d of dupes) { 16 | console.log(flatDb.full.find((x) => x.id === d)) 17 | } 18 | -------------------------------------------------------------------------------- /src/discord-update-report.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | const { execSync } = require('child_process') 3 | const slugify = require('slugify') 4 | 5 | function formatReport (report) { 6 | const out = [] 7 | for (const r of report) { 8 | out.push( 9 | `- [${r.catalog}](https://keycap-archivist.com/maker/${slugify(r.catalog, { 10 | replacement: '-', 11 | remove: /[#,.:?()'"/]/g, 12 | lower: true 13 | }).toLowerCase()}) :` 14 | ) 15 | if (r.addition) { 16 | out.push(`\` \`- ${r.addition} addition${r.addition > 1 ? 's' : ''}`) 17 | } 18 | if (r.deletion) { 19 | out.push(`\` \`- ${r.deletion} deletion${r.deletion > 1 ? 's' : ''}`) 20 | } 21 | } 22 | return out.join('\n') 23 | } 24 | 25 | function formatCatalogName (rawName) { 26 | const reg = /db\/(.*)\.csv/g 27 | const out = [] 28 | const n = reg.exec(rawName)[1] 29 | for (const word of n.split('-')) { 30 | out.push(word.charAt(0).toUpperCase() + word.slice(1)) 31 | } 32 | return out.join(' ') 33 | } 34 | 35 | async function main () { 36 | const r = execSync('git diff --numstat HEAD db/*.csv', { encoding: 'utf8', maxBuffer: 50 * 1024 * 1024 }).toString() 37 | let report = [] 38 | for (const line of r.split('\n')) { 39 | const result = line.split('\t') 40 | if (result.length !== 3) { 41 | // eslint-disable-next-line no-continue 42 | continue 43 | } 44 | report.push({ 45 | addition: parseInt(result[0], 10), 46 | deletion: parseInt(result[1], 10), 47 | catalog: formatCatalogName(result[2]) 48 | }) 49 | } 50 | report = report.filter((x) => x.catalog.toLowerCase() !== 'catalog') 51 | if (!report.length) { 52 | console.log('No Report. Skipping') 53 | process.exit(0) 54 | } 55 | const formattedReport = formatReport(report) 56 | 57 | console.log(formattedReport) 58 | await axios.post(process.env.DISCORD_HOOK, { 59 | content: null, 60 | embeds: [ 61 | { 62 | title: 'Database Update', 63 | description: `${formattedReport}`, 64 | color: 5814783 65 | } 66 | ] 67 | }) 68 | } 69 | 70 | main() 71 | -------------------------------------------------------------------------------- /src/discord-update-revision.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios') 2 | const { execSync } = require('child_process') 3 | 4 | async function main () { 5 | const revision = execSync('git rev-parse HEAD db/catalog.json', { encoding: 'utf8', maxBuffer: 50 * 1024 * 1024 }) 6 | .toString() 7 | .trim() 8 | 9 | await axios.post(process.env.DISCORD_HOOK, { 10 | content: `Revision: ${revision}` 11 | }) 12 | await axios 13 | .post( 14 | 'https://api.github.com/repos/keycap-archivist/website/dispatches', 15 | { event_type: 'poll-db' }, 16 | { 17 | headers: { 18 | Authorization: `token ${process.env.GH_REPO_TOKEN}` 19 | } 20 | } 21 | ) 22 | .catch((e) => { 23 | console.log('Unable to send data dispatch') 24 | console.log(e) 25 | }) 26 | } 27 | 28 | main() 29 | -------------------------------------------------------------------------------- /src/img-resizer.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | const { resize } = require('./utils') 4 | 5 | const myArgs = process.argv.slice(2) 6 | const SAVE_PATH = myArgs[0] 7 | const resizedPath = myArgs[1] 8 | 9 | async function main () { 10 | const basePath250 = path.join(resizedPath, '250') 11 | const basePath720 = path.join(resizedPath, '720') 12 | 13 | fs.existsSync(basePath250) || fs.mkdirSync(basePath250) 14 | fs.existsSync(basePath720) || fs.mkdirSync(basePath720) 15 | 16 | const srcImgs = fs.readdirSync(SAVE_PATH, { withFileTypes: true }) 17 | const size = srcImgs.length 18 | let idx = 0 19 | for (const img of srcImgs.filter(x => x.isFile())) { 20 | const filename = `${img.name.split('.')[0]}.jpg` 21 | const path250 = path.join(basePath250, filename) 22 | const path720 = path.join(basePath720, filename) 23 | if (!fs.existsSync(path250)) { 24 | await resize(path.join(SAVE_PATH, img.name), 'thumb').then((d) => { 25 | fs.writeFileSync(path250, d) 26 | }) 27 | } 28 | if (!fs.existsSync(path720)) { 29 | await resize(path.join(SAVE_PATH, img.name), 'full').then((d) => { 30 | fs.writeFileSync(path720, d) 31 | }) 32 | } 33 | idx += 1 34 | console.log(`${idx}/${size}`) 35 | } 36 | } 37 | 38 | main() 39 | -------------------------------------------------------------------------------- /src/importer/custom/gooey.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | const axios = require('axios') 4 | const { genId, sortBy } = require('../../utils') 5 | 6 | const CATALOG_JSON_URL = 'https://gooey.link/keycap-archivist.json' 7 | const ARTISAN_NAME = 'Gooey Keys' 8 | // Used for generating the catalog ID 9 | // (useful if an existing catalog uses an ID that differs from the artisan's name) 10 | const ARTISAN_ID = 'gooey keys' 11 | // Used for generating sculpt IDs 12 | const ARTISAN_NAME_KEBAB_CASE = 'gooey-keys' 13 | // If false, sculpts & colorways will be sorted alphabetically 14 | const USE_PROVIDED_SORTING = true 15 | 16 | async function scrap () { 17 | try { 18 | // Fetch the catalog's complete data, with the exception of the unique IDs 19 | // for the catalog, sculpts and colorways 20 | const catalog = await axios.get(CATALOG_JSON_URL).then((res) => res.data) 21 | 22 | // Generate a unique ID for the catalog 23 | catalog.id = genId(ARTISAN_ID) 24 | 25 | // Generate unique IDs for each sculpt 26 | for (const sculpt of catalog.sculpts) { 27 | sculpt.id = genId(`${ARTISAN_NAME_KEBAB_CASE}-${sculpt.name}`) 28 | 29 | if (!USE_PROVIDED_SORTING) { 30 | sculpt.colorways = sortBy(sculpt.colorways, 'name') 31 | } 32 | 33 | // Generate unique IDs for each colorway 34 | for (const colorway of sculpt.colorways) { 35 | colorway.id = genId(colorway.img) 36 | } 37 | } 38 | 39 | if (!USE_PROVIDED_SORTING) { 40 | catalog.sculpts = sortBy(catalog.sculpts, 'name') 41 | } 42 | 43 | return catalog 44 | } catch (e) { 45 | return { 46 | name: ARTISAN_NAME, 47 | hasError: true, 48 | error: e 49 | } 50 | } 51 | } 52 | 53 | if (require.main === module) { 54 | scrap().then((catalog) => { 55 | fs.writeFileSync(`${path.basename(__filename, path.extname(__filename))}.json`, JSON.stringify(catalog)) 56 | }) 57 | } 58 | 59 | module.exports = { 60 | scrap 61 | } 62 | -------------------------------------------------------------------------------- /src/importer/json/1of1keycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1p1r9wy1Url3ilU-Tn4ear2gtDtKsIkbG1WlCTTJjOKQ", 3 | "name": "1of1Keycaps", 4 | "instagram": "https://www.instagram.com/1of1keycaps/", 5 | "discord": "https://discord.gg/DP6txeyHuD" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/26studio-asterisk.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ibFx-5cB25empbAYZdMpKMB1SvUC9hDsG7Wg-sigLAw", 3 | "name": "26Studio Asterisk", 4 | "instagram": "https://www.instagram.com/26studio_asterisk/", 5 | "discord": "https://discord.gg/zrna2pHSzv" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/2m.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1erwMZyh07nwT9sIo6RZBUwDrmnGUaWFF1Cx-WUeLGco", 3 | "name": "2MCaps", 4 | "instagram": "https://www.instagram.com/2m_works", 5 | "discord": "https://discord.gg/RnY2knJhhb" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/2tcraft.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1aWFIxJmIVeJDZH1b_1TEWJBUOcqqsAzUJ6KgEwp069Y", 3 | "name": "2Tcraft", 4 | "instagram": "https://www.instagram.com/2tcraft/", 5 | "website": "https://2tcraft.com/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/404artisans.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Xjq3VloGrpGE9gmEcbdGhaX_NB0O5eqv7xg_PgVgHX0", 3 | "name": "404Artisans", 4 | "instagram": "https://www.instagram.com/404artisans/", 5 | "discord": "https://discord.com/invite/RGPyMJ9", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/8o8keys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "15rWfoHxCHXtWuRjZYYX6u98H9IG0U4AugsCEHDKzLas", 3 | "name": "8o8keys", 4 | "instagram": "https://www.instagram.com/8o8keys/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/ackeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1-pP9xJMH55xNGq3waZb6n5x0t6vNX9aqsQAUKaXLfv8", 3 | "name": "ACkeys", 4 | "instagram": "https://www.instagram.com/ac.keycaps/", 5 | "discord": "https://discord.gg/8TgdcFZsqA" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/aerokeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1EV-U7IQNdzmCElmV19TROyd3lSa2PPIFgCdjFkMrMFM", 3 | "name": "Aero Keys", 4 | "instagram": "https://www.instagram.com/aero_keys/", 5 | "website": "https://geekhack.org/index.php?topic=83503.0" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/alee-keycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1zpPBiIqL-AwWK3SCiJFMP7lmTZxr3d0HnU4rwGLlqEs", 3 | "name": "Alee Keycaps", 4 | "website": "https://aleekeycaps.com/", 5 | "instagram": "https://www.instagram.com/aleekeycaps/", 6 | "discord": "https://discord.gg/UFbbuGtjm9" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/alheckz.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1sPgSv9qsAgzIiDnhD92KphJSp5vYmICx-_Gp00qbrhY", 3 | "name": "alheckz", 4 | "instagram": "https://www.instagram.com/alheckz_/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/almondcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1VwfhlloIpnE_AbmKb2JEfx13SGMKusSZfecHr3zeBEs", 3 | "name": "ALMONDcaps", 4 | "instagram": "https://www.instagram.com/almondcaps/", 5 | "discord": "https://discord.gg/r9chFwZp" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/amano-studio.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1DN-q8DMa9fpZDle-S4tr_3kGelZxoC46xanykcYjvbA", 3 | "name": "Amano Studio", 4 | "instagram": "https://www.instagram.com/amanostudio.us/", 5 | "discord": "https://discord.com/invite/6WBQASs8CG" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/amidst.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "11BeNsND5cMw_NMfGhQfeitg4oFJGNbT4aJ9C_8_iB60", 3 | "name": "Amidst The Clouds", 4 | "instagram": "https://www.instagram.com/amidst.the.clouds/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/animech.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "15IRx6bobdBXas3CZT81qexe-qFcK6t9dgz3IVXkTVPw", 3 | "name": "Animech", 4 | "instagram": "https://www.instagram.com/animech.key/", 5 | "discord": "https://discord.gg/9xYjBGsVcd" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/anomalycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1zc0G7J3wd6sdOFcdLokOmom-mQmgm6gzhXUHZO8r3kI", 3 | "name": "Anomaly Caps", 4 | "instagram": "https://www.instagram.com/anomalycaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/apothecary-caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1291TtygV3rFf97ii9JVTk2ctg7vL7ztRWhvlEy_-g-w", 3 | "name": "Apothecary Caps", 4 | "instagram": "https://www.instagram.com/apothecarycaps/" 5 | } -------------------------------------------------------------------------------- /src/importer/json/archetype.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "15BEnP7aMDcNIDR0kBrI_6oYLjx9w8z1zE0muohkjpfg", 3 | "name": "Archetype", 4 | "instagram": "https://www.instagram.com/archetype_mk/", 5 | "website": "https://archetypemade.com", 6 | "discord": "https://discord.gg/e4zQb7aDeZ" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/arkeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1q__LoSd2vlzY95KKp0TStW2bA3XBPvKZcOQPrKprQh0", 3 | "name": "ARKEYS", 4 | "instagram": "https://www.instagram.com/arkeys.id/", 5 | "website": "http://www.arkeys.id", 6 | "discord": "https://discord.gg/tUz3cAG3M2" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/artkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1piD-uC3eAwy0dkqxnsZoYr_-AnezmelpFnHfuK3RslM", 3 | "name": "Artkey", 4 | "instagram": "https://www.instagram.com/artkey.universe/", 5 | "website": "https://artkeyuniverse.com/", 6 | "discord": "https://discord.com/invite/DwAzEpt", 7 | "artisanCollector": "https://artisancollector.com/artkey-universe/" 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/artzeikaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "11l5gZpMa9dCoSm3RYnhKc0YXSpSm__WIfLyQsg7asto", 3 | "name": "Artzeikaps", 4 | "website": "https://artzeikaps.com", 5 | "instagram": "https://www.instagram.com/artzeikaps/", 6 | "discord": "https://discord.gg/rPukxZMQnX" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/asianjoyco.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1s02KAr-bTy2ZHR6YU4O2NLqLNxM9cAeJ9HrZ1Q3uWYI", 3 | "name": "AsianJoyCo", 4 | "instagram": "https://www.instagram.com/asianjoyco/", 5 | "discord": "https://discord.gg/UwVWeTMMVD", 6 | "website": "http://www.AsianJoyco.com" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/atelier-axiom.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1vUt_jPo7E8DQeMVcr4r4fwJp3X8rt_5mJoJAzyGlckM", 3 | "name": "Atelier Axiom", 4 | "instagram": "https://www.instagram.com/atelier_axiom", 5 | "website": "https://www.atelieraxiom.com/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/atelier-rng.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "15tyk4aJGqs9pjdu38Up4XNrIoC_AmItoQlJytwTeQzM", 3 | "name": "Atelier Rng", 4 | "discord": "https://discord.gg/s3nVqVFyQn", 5 | "website": "https://www.atelier-rng.com/", 6 | "instagram": "https://www.instagram.com/atelier_rng/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/atoworks.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1rye8X24IRtPhhXHcuPhisZUs16oKWM7zeqtjBU_SSPg", 3 | "name": "Ato Works", 4 | "instagram": "https://www.instagram.com/atoworks_keycaps/", 5 | "website": "https://atoworks.com/", 6 | "discord": "https://discord.gg/TM428wrpVj" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/avocaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1hOGoAtIWAxII-y3X8cSJ4hKLHOlrdhkc6iObC0DzWt4", 3 | "name": "Avocaps", 4 | "instagram": "https://www.instagram.com/avocaps_/", 5 | "discord": "https://discord.gg/BXw7FksH" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/ax_studio.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "10pezHskqq5EVPEKb2fkm2e8gFrch-rWtXB3eQy_KbkI", 3 | "name": "AX Studio", 4 | "instagram": "https://www.instagram.com/a.x_studio/", 5 | "website": "https://linktr.ee/AX_studio" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/azi.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ysgu4CCl_hRjyGUqJbgEJrC69MYOcy5Mo0BgR6457fk", 3 | "name": "Azi Keycaps", 4 | "instagram": "https://www.instagram.com/azikeycaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/backward.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1eHoHMjOIaZv57h3XgOfamgWaE4nfMbFKLj827XNKSac", 3 | "name": "Backward Caps", 4 | "instagram": "https://www.instagram.com/backward.caps.sales/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/bad.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "15OgzFWmOJWM5h0JBMV85041Vjd88lNXfj6cWkwd-BFM", 3 | "name": "Bad and Booj Keys", 4 | "instagram": "https://www.instagram.com/badch4d/", 5 | "website": "https://www.badchad.work", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/badhabit.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1MUoyBLW1slC819V1IdDa2eAV5adU2IHGa5YjmFY5w88", 3 | "name": "Bad Habit Caps", 4 | "instagram": "https://www.instagram.com/bad.habit.caps/", 5 | "website": "https://badhabitcaps.com/", 6 | "discord": "https://discord.com/invite/H5rkNechrB", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/bailong.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1f3h3roO2nk229BoeQZxuQVd-HgAJXXqToNSKFVbyIEI", 3 | "name": "Bailong", 4 | "instagram": "https://www.instagram.com/bailong962/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/basilkeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1azIr0Ok_QxYpQsrZ1S0bX48rXI1v9DwzvETTSWHxdko", 3 | "name": "BasilKeys", 4 | "website": "https://basilkeys.com/", 5 | "instagram": "https://www.instagram.com/basilkeycaps/", 6 | "discord": "https://discord.gg/Q4XW4uythp" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/beetlecaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "12T82CMnIwcdEg36bIrE9hlyi4Ikd15kutuRbYsOFKnw", 3 | "name": "Beetlecaps", 4 | "instagram": "https://www.instagram.com/beetle.caps" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/bg-caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1M37Dyc3mBFYEEJTbi9ol_YSFHQ9MPScX0J0SH0nTSEo", 3 | "name": "BG Caps", 4 | "instagram": "https://www.instagram.com/bg_caps/", 5 | "discord": "https://discord.gg/ycpSQner4E" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/bhomasscaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1N8RgbXu7BVt1uXa38uyJMMQJ5FzqxgmvqktNpp9MA_Y", 3 | "name": "Bhomass Caps", 4 | "instagram": "https://www.instagram.com/bhomasx/", 5 | "discord": "https://discord.gg/G7ZRHXZDhA" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/binge.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1UGadEUhjZ-wyVywIb1-Qwpd32jPkobNaYisQTuJG-wQ", 3 | "name": "Hunger Work Studio", 4 | "instagram": "https://www.instagram.com/hungerworkstudio/", 5 | "website": "https://hungerwork.studio/", 6 | "artisanCollector": "https://artisancollector.com/hunger-work-studio/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/binirias.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "11EAZ-nVLgIKuRXEXQDQ1SJotvq871jPLMo9HlS3eAZg", 3 | "name": "Binirias", 4 | "instagram": "https://www.instagram.com/binirias/", 5 | "discord": "https://discord.gg/EN3jRqZ", 6 | "website": "https://www.binirias.com/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/bkmcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1LinZIytdrqwGE7H3TBWeIrj6ICQ_2DzWVm2Mmk904Y8", 3 | "name": "BKM Caps", 4 | "instagram": "https://www.instagram.com/bkmkeycaps/", 5 | "website": "https://bkmcaps.com/", 6 | "discord": "https://discord.gg/sUEm9qtNAh" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/blackmagecaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1uIATE-QeIMq_kZnXi_EVfZZoHpM3dmc2woBekYV4L2A", 3 | "name": "Black Mage Caps", 4 | "instagram": "https://www.instagram.com/blackmagecaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/blademx.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1phPDeQ05dFkGzaXeVZzCjv-E8c58xh6skD0cR_koE1k", 3 | "name": "BladeMX", 4 | "instagram": "https://instagram.com/blade.mx", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/blank-beast-caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1HlM9VlqperufYv2lU81nxNwHzsAzDEYCkv338k6MiuE", 3 | "name": "Blank Beast Caps", 4 | "instagram": "https://www.instagram.com/blankbeastcaps/", 5 | "discord": "https://discord.gg/ezpnDmftTh" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/blank-works.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ehAQBiLvDzM6FUqAKxP2kpJFEQaDnq3yR75TuM0L8vY", 3 | "name": "Blank Works", 4 | "instagram": "https://www.instagram.com/blank.works01/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/blanksy.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1tlH37yLHd9HnHJMF_rHTIdX64kkwhm_WvtC3vPRXa1E", 3 | "name": "Blanksy", 4 | "instagram": "https://www.instagram.com/blanksy.caps", 5 | "website": "https://www.blanksycaps.com" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/bludgeoned.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1KKMT4uvPquXcrWF1dX3p3R-PJ_0A98oUO2kwkNvLOd8", 3 | "name": "Bludgeoned Kaps", 4 | "instagram": "https://www.instagram.com/blud_kaps/", 5 | "website": "https://www.bludkaps.com/", 6 | "artisanCollector": "https://artisancollector.com/blud-kaps/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/bmtcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1SQIE9e--kJnyOBByAdMBvVKUhnbTq2JHR5yZjhL31E0", 3 | "name": "Bad Magic Trick", 4 | "instagram": "https://www.instagram.com/bmtcaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/bobhandcraft.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Igk_at2yvP_Bd6GNd3_GLCQmooNszkNDDvm2b6yqIQM", 3 | "name": "B.o.B Handcraft", 4 | "instagram": "https://www.instagram.com/bobkeycaps/", 5 | "website": "https://www.bobkeyboard.com", 6 | "discord": "https://discord.com/invite/HRkaz4k", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/bogancaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1n0ptNP1tZHnMtpJAI_s_qlnvulYl9SZBJwkCHdU5vHI", 3 | "name": "Bogan Caps", 4 | "instagram": "https://www.instagram.com/bogan.caps/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/bogwitch-brie.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "106B5I-IfI1pZex401MHj6c_e7MPUSPyplQsvUOPxmO4", 3 | "name": "Bogwitch Brie", 4 | "instagram": "https://www.instagram.com/bogwitch.brie/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/boomsnap.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Uj-JdFhGKaEhKw7-O3HGzzrNctD1c4a8zwC6lezk9nQ", 3 | "id": "BoomSnap! Caps", 4 | "name": "BoomSnap Caps", 5 | "instagram": "https://www.instagram.com/boomsnapcaps/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/boop.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "18QS_4zYR3rFtGLLV1fPZCce5vc6i8_3kauY36xUtTdk", 3 | "name": "Booper-Omniclectic", 4 | "instagram": "https://www.instagram.com/omniclectic/", 5 | "website": "http://omniclectic.com/", 6 | "artisanCollector": "https://artisancollector.com/omniclectic/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/bowbie.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1CyKhBbny0xMHcbHtdFQC_P0nrczYOpYdz3KV6ujdPnc", 3 | "name": "Bowbie", 4 | "instagram": "https://www.instagram.com/bowbie.keycaps/", 5 | "discord": "https://discord.com/invite/NFywSSkhjY" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/brewcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ibnukzm73aRIkBm83OhmPsT6wdyA1GH3MRQ6FPBkOSA", 3 | "name": "BrewCaps", 4 | "instagram": "https://www.instagram.com/brew_caps/", 5 | "website": "https://brewcaps.store/", 6 | "discord": "https://discord.gg/TuHKGXqC7H", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/bro.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1SLiSnTXJXR6X5jT5VnmAe4e3K2yFgZosxBUY1kQQKwo", 3 | "name": "Bro Caps", 4 | "website": "https://brocaps.gg", 5 | "discord": "https://discord.gg/PnNgEbDKsS", 6 | "instagram": "https://www.instagram.com/bro_caps/", 7 | "artisanCollector": "https://artisancollector.com/bro-caps/" 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/bungkee.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1n1Wcp3UNo6M161050sW-tFL1Wn7tgRYpG3CeKLo1jn4", 3 | "name": "Bungkee", 4 | "instagram": "https://www.instagram.com/bungkee.caps/", 5 | "discord": "https://discord.com/invite/Jsftagz66K" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/cantoclicks.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1AOw5Rczpa5NEohg5DQScnqi5Efvc6R8z4F46JIYoOP0", 3 | "name": "Cantoclicks", 4 | "instagram": "https://www.instagram.com/cantoclicks/", 5 | "discord": "https://discord.gg/fxyvzxNt46" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/captomaniacs.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "14VMtz60UJoIfm-Lq66lqJjpwwofk4ZlREq4JKSMEFPo", 3 | "name": "Captomaniacs", 4 | "instagram": "https://www.instagram.com/captomaniacs/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/cattocaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Lb8WPFy3mCNnt49yAkhJwqQugKJdo11PBLJfeMfodHI", 3 | "name": "Catto Caps", 4 | "instagram": "https://www.instagram.com/tifameows/", 5 | "discord": "https://discord.com/invite/B9M3q4KaXD" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/chickencap.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1pkiYq1bxrHYqydM7yj9dKZPG8vC8fNBMGOrQGSyT7qQ", 3 | "name": "ChickenCap", 4 | "instagram": "https://www.instagram.com/chickencap123/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/clack.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1C9I7PaXFtpNzI8Zb_6ZTjHLMrQ8ERyWn_IvMD8mVoq0", 3 | "name": "Clack Factory", 4 | "website": "https://wiki.geekhack.org/index.php?title=Clack_Factory", 5 | "artisanCollector": "https://artisancollector.com/clack-factory/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/clackeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1X05Agu-mAkGAuTwkrdX6TZJkSe42djf_aJA7U1GlB-M", 3 | "name": "Clackeys", 4 | "instagram": "https://www.instagram.com/clackeys/", 5 | "discord": "https://discord.gg/clackeys", 6 | "website": "https://www.clackeys.com/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/clover.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "18VXOqRajYKnkxWzlUVFf2vIm3JvqBVZ8W5rUs0cqVPI", 3 | "name": "CLOVER", 4 | "instagram": "https://www.instagram.com/cloverkeycaps/", 5 | "discord": "https://discord.gg/2UZ7BP4bQy" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/coconutkeycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1lx648GXchw4ZpctFtirPx_teQcpcgVWuy83W32JY4KU", 3 | "name": "Coconut Keycaps", 4 | "instagram": "https://www.instagram.com/coconut.keycaps/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/coz.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "14EBfRe0AxEbCok856_HrL6teQAlkeQL3kpa3z8lenTc", 3 | "name": "CozCaps", 4 | "instagram": "https://www.instagram.com/cozkeycaps/", 5 | "website": "https://www.cozcaps.com/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/craftkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Ruol_1a4kzgLyXkeQ4d7ayu2shpsJPrHVUu7dBIYOYQ", 3 | "name": "Craftkey", 4 | "instagram": "https://www.instagram.com/craftkey/", 5 | "website": "https://www.craftkeyartisan.com/", 6 | "discord": "https://discord.gg/GsQ8xj37MS", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/creasi.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "18paFGSBCcNjTMy1owk6vFbLOkLW6A7O1fNWG7a9jNTc", 3 | "name": "Creasi Workshop", 4 | "instagram": "https://www.instagram.com/creasiworkshop/", 5 | "website": "https://www.creasikey.com/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/crystal-pieces.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1cR7ceg-E5K8D-AxTq4-9Wm3s_qeUTFjTcJIJBWBZnJU", 3 | "name": "Crystal Pieces", 4 | "website": "https://crystalpieces.com/", 5 | "instagram": "https://www.instagram.com/crystalpieces.crp/", 6 | "discord": "https://discord.com/invite/E5SEYdvAuG" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/cyo.json: -------------------------------------------------------------------------------- 1 | { "docId": "1Rhig59IdZh5IZ3JP3R_FjZncRxo2M5tfPiUyxJBuLq8", "name": "C.Y.O Keycaps", "tabsOperations": ["pop"] } 2 | -------------------------------------------------------------------------------- /src/importer/json/cysm.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1c0H4ABr3csHH5B9WP7yyKfCcjLvBE7aJrNwlQzcczcI", 3 | "name": "CYSM", 4 | "instagram": "https://www.instagram.com/cysm_caps/", 5 | "discord": "https://discord.com/invite/mZZChn7" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/d-slime.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ws2UWWPH2DzJJR4jo0vLyfOUenc4QpkwL-xt0QnumhE", 3 | "name": "D.Slime", 4 | "instagram": "https://www.instagram.com/d.slime_team/", 5 | "discord": "https://discord.gg/TeugVqReP2" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/dalifu.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1JpL8NeP-J85x_Viy_VGzM5fRpEAMPw_giRO78eHnc4E", 3 | "name": "Dalifu Caps", 4 | "instagram": "https://www.instagram.com/dalifu.caps/", 5 | "discord": "https://discord.com/invite/dXDBwKgPfE" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/dc.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ENp3M-HymI9LsJRloDGuo3o9s-FXHzFj6hWazGfXSEQ", 3 | "name": "DCcaps", 4 | "instagram": "https://www.instagram.com/dccaps/", 5 | "discord": "https://discord.gg/swS7zWuT", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/deag.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1SsLhATHPRDOSAiywL5ktrGAuZbW9swCOd2cBGuUds3E", 3 | "name": "DeagCaps", 4 | "instagram": "https://www.instagram.com/deagcaps/", 5 | "discord": "https://discord.com/invite/B4zub6jC3S" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/death-dealer.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ffA0_Y8zC68So3XPeoP41JsAC2M68RSRfNAxzaFdslY", 3 | "name": "Death Dealer", 4 | "instagram": "https://www.instagram.com/deathdealercaps/", 5 | "discord": "https://discord.gg/8wKRfud2xu" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/deathcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Y1Ip37QbnjNNiOYEAvbv9KVz9A74DFEufDDF22F1OvA", 3 | "name": "Deathcaps", 4 | "instagram": "https://www.instagram.com/death_caps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/della-key.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1beOD7ijqhqVV3FaWnvMF08FQ5KQGO-PENN5hohyrEm4", 3 | "name": "DELLA KEY", 4 | "instagram": "https://www.instagram.com/della__key/", 5 | "discord": "https://discord.gg/VtyQmUyE6g" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/destroyercaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Me6mlm7YPdH0v5nkCQBZrGJ555gT2RAXwLzC_g4cdIg", 3 | "name": "Destroyer Caps", 4 | "instagram": "https://www.instagram.com/destroyer_caps/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/dollartaco.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1iAaGXFW6zqBa8lx6sKyQmKTvtiDA1zEiAM4jR4zd-Bs", 3 | "name": "Dollartacos", 4 | "instagram": "https://www.instagram.com/dollarta.co/", 5 | "website": "https://www.dollarta.co", 6 | "discord": "https://discord.com/invite/sCEE3Ce" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/doohickeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "16IlT-1jACqQYUyyEz15-XWG684vyM73z8zM_ABx_UMs", 3 | "name": "Doohickeys", 4 | "instagram": "https://www.instagram.com/doohickeycaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/dreadkeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1tzm7_NLV5XdM2tuM2naiZhDjMMygstN2XneBU_GWbeY", 3 | "name": "Dreadkeys", 4 | "website": "https://www.dreadkeys.com/", 5 | "instagram": "https://www.instagram.com/dreadkeys/", 6 | "discord": "https://discord.gg/cDdFgyYjWx" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/driiip-keys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1hIFJszQMhrQgfo0wjpplbWcvcWIAs5y3HwfwrbFI9e4", 3 | "name": "DRiiiP Keys", 4 | "instagram": "https://www.instagram.com/driiip_keys/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/dustycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1EZstC5O7OMdsCMMzs-YbV3Y5pooytHrHpLWaULr3pEI", 3 | "name": "DustyCaps", 4 | "website": "https://dustycaps.com", 5 | "instagram": "https://www.instagram.com/dustykeycaps/", 6 | "discord": "https://discord.com/invite/Dqyc2jc", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/dwarf-factory.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "19ZLn5CuGmPO3fLGz8bTkFIy12KJh6Z22lc0O_ofydxc", 3 | "name": "Dwarf Factory", 4 | "website": "https://www.dwarf-factory.com/", 5 | "instagram": "https://www.instagram.com/dwarf.factory/", 6 | "discord": "https://discord.gg/JwfwJknTsP" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/echopp-caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1EJ-AUHXajDE3Iih5Af9C3SF8N5guTOeTNC4C0BYlGbM", 3 | "name": "EchoppCaps", 4 | "instagram": "https://www.instagram.com/_echoppcaps_/", 5 | "discord": "https://discord.gg/r3B8zwdS9A" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/emotikeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1WsYf4DuKXKrQRyqN4HpmzcsqmwMPFL-9w53FP56qfFI", 3 | "name": "Emotikeys", 4 | "instagram": "https://www.instagram.com/emotikeys/", 5 | "discord": "https://discord.gg/aus7xkFMSs" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/ezkeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1NGfIh3aAU5CwE425oshmoUBEjs11In1j7pVUHrov8Vs", 3 | "name": "EzKeys", 4 | "website": "https://ezkeytriples.com/", 5 | "instagram": "https://www.instagram.com/ezkey.triples/", 6 | "discord": "https://discord.gg/s23JQE9XUY" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/fraktal.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "13LmVzCkuN7uGhair0QXq1sJkI7LK6jBs-uhnVU-hDII", 3 | "name": "Fraktal Kaps", 4 | "instagram": "https://www.instagram.com/fraktal.kaps/", 5 | "website": "https://fraktalkaps.com/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/from-scratch.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1xeyfq3YJTwOhGnUBFFZLMCj5S9D7gUrd6Umf12GPAzA", 3 | "name": "FromScratch Caps", 4 | "website": "https://fromscratchcaps.com/", 5 | "instagram": "https://instagram.com/fromscratchcaps", 6 | "discord": "https://discord.gg/nbfmnu7Mtu" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/frump.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "15arZPVtJHvLxrF20l_Oc-cZCwZrwtMI_SyiD2KDsvWg", 3 | "name": "Frumpzkeys", 4 | "instagram": "https://www.instagram.com/frumpzkeys/", 5 | "website": "https://www.frumpzkeys.com/", 6 | "discord": "https://discord.gg/JpgPENx" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/gaf.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1AdPXkALzPErnyMQZrWDJ6o-jCvFB34XeZyz00FDDvLY", 3 | "name": "Grimey as Fuck", 4 | "instagram": "https://www.instagram.com/gaf_caps/", 5 | "discord": "https://discord.com/invite/gaf", 6 | "artisanCollector": "https://artisancollector.com/gaf/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/gaia.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1EJ8IodjlMPG-TtmKwTZuCvIQYO9uuD_phTnMiNqjh4s", 3 | "name": "Gaia’s Creature", 4 | "website": "https://gaia-creature.com", 5 | "instagram": "https://www.instagram.com/gaia_creature" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/girlycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1cDD3aNsQXHJfyskP8906BUwfc1_4H_JJTtZ9akhQkOc", 3 | "name": "Girlycaps Studios", 4 | "instagram": "https://www.instagram.com/girlystudios_caps", 5 | "website": "https://girlystudios.com/", 6 | "discord": "http://discord.gg/YeZTMss" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/glyco.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1SOtOKEBn8oUXnECK0_9-sJ5YBh6BijlbKB6CZsNEBbc", 3 | "name": "Glyco Caps", 4 | "instagram": "https://www.instagram.com/glycocaps/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/goth.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "17YdYcvKifysUDk6mt750Jgq7Zke2kSi66kfqc9BE6RQ", 3 | "name": "Gothcaps", 4 | "instagram": "https://www.instagram.com/gothcaps/", 5 | "discord": "https://discord.gg/zCx5PXkSkD" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/gsk.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1QLj8fhK5z4a9k5imZBcA3Tb09Pdpkdv7sBxBQfIEsHI", 3 | "name": "Goldenstar Keycap", 4 | "instagram": "https://www.instagram.com/goldenstar_keycap/", 5 | "website": "https://goldenstarkeycaps.com/", 6 | "discord": "https://discord.gg/dppnfEaj" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/gtb.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1qoQ7zBUrkCvfu-xMHcCvxObflfy8z8fWJnkMBJcdp_w", 3 | "name": "GTB", 4 | "instagram": "https://www.instagram.com/glenntheblack/", 5 | "website": "https://gtblabs.com/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/haon.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "11ADpKXXtrG0ON4X1hjvVAvFZpB8HJlSPskIZtaTDUi4", 3 | "name": "haoN", 4 | "instagram": "https://www.instagram.com/nclootart/", 5 | "discord": "https://discord.gg/SYtfdkm9T9" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/hdkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1eAcxA8lthmxRaPe77X9QpFmThezCcr9BjPpw17aSB6U", 3 | "name": "HDKey", 4 | "instagram": "https://www.instagram.com/hdkey.official/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/hellbentcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "15NNk_ttTXCBCHTzyEE3_EigOHPYnc1M5fVGRZJIt0AA", 3 | "name": "Hellbent Caps", 4 | "instagram": "https://www.instagram.com/hellbentcaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/hello.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1r_RNJJW5uagd8SL47-c_b_lvb2TuxBsqU6zJhFzs2Vk", 3 | "name": "Hello Caps", 4 | "instagram": "https://www.instagram.com/hello__caps/", 5 | "discord": "https://discord.com/invite/T2pDdk9", 6 | "artisanCollector": "https://artisancollector.com/hello-caps/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/hotkeysproject.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1KcZjWQ59gmgNoX1piEdf6MX1r6sBig2_G9AYrs1SjBQ", 3 | "name": "Hot Keys Project", 4 | "website": "https://www.hotkeysproject.com" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/iisudas-studio.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1XpsJQPFYaKAPBLT41LxpP1bW1aVZuzdzQXwO7zMKLGc", 3 | "name": "IISUDAS STUDIO", 4 | "instagram": "https://www.instagram.com/iisudas_studio/", 5 | "discord": "https://discord.gg/ha3dDbUczC" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/inkblot.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1jE94XFa7QZPMtwjsbLwqNkgwGsFJNsyAEjdSlDcBaCE", 3 | "name": "Inkblot Caps", 4 | "instagram": "https://www.instagram.com/inkblot_caps/", 5 | "discord": "http://discord.com/invite/csvguCTPAJ", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/jak.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "15c2a6DnBQPJbnVhbjH54KIKVr_I-twb7EQgXB37GAlM", 3 | "name": "Just Another Keymaker", 4 | "instagram": "https://www.instagram.com/justanotherkeymaker/", 5 | "website": "https://www.keymaker.space/", 6 | "discord": "https://discord.com/invite/XMnxAYR", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/janky.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1nT-vBKIXCFuAPPUCewAcUcwGt9-1Bedkyd4CGdjQfBM", 3 | "name": "jankycaps", 4 | "instagram": "https://www.instagram.com/jankycaps/", 5 | "discord": "https://discord.gg/bwntKeGk8g", 6 | "website": "https://anky.studio/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/jellycap.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1yuo_c4hpBYWW8zryZXMi15Byzj-AR8iVWzx1QWT5O8k", 3 | "name": "Jelly Cap", 4 | "instagram": "https://www.instagram.com/jelly__cap/", 5 | "discord": "https://discord.gg/kBQjxMGHzq" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/jellykey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": ["1L4yqsOZ72jnB-E-KHqtH4wSs0d1OMcQWsTmBsOzlmxA", "1Va5vEYR8kyUiVTuLW7fBVPwdwzftzdDtHD3Flmav2fI"], 3 | "name": "Jelly Key", 4 | "website": "https://www.jellykey.com/", 5 | "instagram": "https://www.instagram.com/jelly.key/", 6 | "discord": "https://discord.gg/uR5YhWA" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/jibii.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1KTJ1Up_7Jjr81xbjNSzNswNBXnfSgOsEZr4wc2ODEEo", 3 | "name": "Jibii", 4 | "instagram": "https://www.instagram.com/jibii.key/", 5 | "discord": "https://discord.gg/bt57sq6Uea" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/jusherhoe.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "171XoC3BAC13iMQlAJ85impbm-jj7irgCDZwGwYfNTfc", 3 | "name": "Jusherhoe", 4 | "instagram": "https://www.instagram.com/jusherhoe/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/kaphaus.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1QXedbahyT1FndM9QdxZ8HC0RshpbyCvChTuQTY688lE", 3 | "name": "Kaphaus", 4 | "instagram": "https://www.instagram.com/kap_haus/", 5 | "website": "https://geekhack.org/index.php?topic=85295.0", 6 | "discord": "https://discord.gg/rmS2bgTFDU" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/kapsule-lab.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1aY15g26g_KGpSfBv5XPPeXPFnP9Lq9xgJUlF3IVsm_c", 3 | "name": "Kapsule Lab", 4 | "instagram": "https://www.instagram.com/kapsule.lab/", 5 | "discord": "https://discord.gg/KqmUFqYqNA" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/kb-keycraft.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "12mZSYQV5qtEyRFm-ojm3Bu6B1bX-pePAxoyz-5cE-v8", 3 | "name": "KB Keycraft", 4 | "instagram": "https://www.instagram.com/kbkeycraft/", 5 | "discord": "https://discord.gg/k3ztwCq8mp" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/kbk.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1656SEjL_uolfVYeUgiAjbelyM_HhxAg77oTCPWiviD8", 3 | "name": "KBK-KWK", 4 | "website": "https://geekhack.org/index.php?topic=55490.0", 5 | "instagram": "https://www.instagram.com/kultworshipkaps/", 6 | "artisanCollector": "https://artisancollector.com/kwk-kbk/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/key-capital.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "11s6cWXG1-_m0x4JpFF0kUD716laUxKUhtIzO0r_OP1U", 3 | "name": "Key Capital", 4 | "instagram": "https://www.instagram.com/key.capital/", 5 | "discord": "http://discord.gg/B276awEper" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/keycapcustoms.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1AkBXbURT4fcY65uW0HgU4lHXS0_YqGmdJoXUz8kXWCs", 3 | "name": "KeyCapCustoms", 4 | "instagram": "https://www.instagram.com/keycapcustoms/", 5 | "website": "https://www.keycapcustoms.com/", 6 | "discord": "https://discord.gg/rqyAEp7fXs" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/keycat.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1VNVGf02zR9t3QBYXbxV9SqJFuilQBpKxWHTj0iWrX3w", 3 | "name": "Keycat", 4 | "instagram": "https://www.instagram.com/thekeycat", 5 | "website": "https://thekeycat.com", 6 | "discord": "https://discord.com/invite/9fgWcFDb2f" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/keycravings.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1QjFV7yp4Ez8k51qPo2fx_2sXVH9l7SdbI3_sy_E7R_o", 3 | "name": "KeyCravings", 4 | "instagram": "https://www.instagram.com/keycravings/", 5 | "website": "https://keycravings.com", 6 | "discord": "https://discord.com/invite/GJdKu6r", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/keyforge.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1d-CVHj9vA0l-qQjYOFws6Wh9YPLSpCfFCwGDsmDLoJA", 3 | "name": "KeyForge", 4 | "instagram": "https://www.instagram.com/keyforge/", 5 | "website": "https://www.keyforge.com/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/keykollectiv.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "18jTzayNzUDECKOfe-ZXa6oDucNj8_Pp0jEjsdzvvSws", 3 | "name": "KeyKollectiv", 4 | "instagram": "https://www.instagram.com/keykollectiv/", 5 | "website": "https://www.keykollectiv.com/", 6 | "artisanCollector": "https://artisancollector.com/keykollectiv/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/keylabs.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1-VofkRGFmgtlq7R8986aXr8kdMYw9gsT59cjhEgn8D8", 3 | "name": "KeyLabs Keycaps", 4 | "website": "https://keylabs.gg/", 5 | "instagram": "https://instagram.com/keylabskeycaps", 6 | "discord": "https://discord.gg/myVMevJ" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/keysense.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1r_gYUt3oN5XwTqLPJsqQENOfD_i59AjMz_ujuGjCH8c", 3 | "name": "Keysense", 4 | "instagram": "https://www.instagram.com/keysense_mk/", 5 | "discord": "https://discord.gg/b2JDvdPnfs" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/keyzen.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "19TEE9_vnw-tzcigMxL-8ILUAmkkEWPrUQc4A9s7IkbE", 3 | "name": "Keyzen", 4 | "instagram": "https://www.instagram.com/keyzencaps", 5 | "website": "http://www.keyzen.art", 6 | "discord": "https://discord.gg/yv22JX2Byz" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/kin-caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1oSC6767-PT4EzL_qaj8Q1kFWyl64QqzH40Fgg_jzadw", 3 | "name": "Kin Caps", 4 | "instagram": "https://www.instagram.com/_kincaps/", 5 | "discord": "https://discord.gg/rXQdruaQ2E" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/kitanncaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1OKMEDz4c7rILX8aiH332n-wW3PjIN3meKu5ZXStgDTs", 3 | "name": "Kit Ann Caps", 4 | "instagram": "https://www.instagram.com/kitanncaps/", 5 | "discord": "https://discord.gg/yEPb992cUG", 6 | "website": "https://www.kitanncaps.com/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/kiyokaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1eC4oLh3QZ-4kUeejnhWTPEnh7_D2pqp7CsQDziXf6uQ", 3 | "name": "KiyoKaps", 4 | "instagram": "https://www.instagram.com/kiyokaps/", 5 | "discord": "https://discord.gg/S8pJJPe38f" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/klaykaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1U_Te4TY5Nxwme5CjnFMd3tGqSYXJxrkYK7c7VlkI2MU", 3 | "name": "Klaykaps", 4 | "instagram": "https://www.instagram.com/klaykaps/", 5 | "website": "https://klaykaps.com/", 6 | "discord": "https://www.discord.com/invite/TZDCwkr" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/kookcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1RI8quPYaJnGxMVBc1fTw_jL4skru4b--V7ORXfmaszw", 3 | "name": "Kook", 4 | "website": "https://discord.gg/74xdJEXRFE", 5 | "instagram": "https://www.instagram.com/kook_caps/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/krakenkap.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1zvIUqPg7D-vge_JzpzqmnD4lEkQgzaQCBFc10FXmasA", 3 | "name": "KrakenKap", 4 | "instagram": "https://www.instagram.com/krakenkap/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/krapshop.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1YUGAY-ZxuFC9dCF_fXZ8tVW8T0LSN9FlLjxRTscnoVc", 3 | "name": "Krap Shop", 4 | "instagram": "https://www.instagram.com/krapshop/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/kuco.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1EV8GvLdbn5Zh9NtU4uGPiswaqi0EGm5uamAjSuWDbiY", 3 | "name": "Kuco", 4 | "instagram": "https://www.instagram.com/kuco_series/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/kug.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1_GW1c005RK7X2olNW2flNdkJEcM9_TOZ1e4ONUfHUYU", 3 | "name": "KUG", 4 | "instagram": "http://www.instagram.com/kug.caps" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/landcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1qDHsR0Y2U0W_pBPgtvB_i_xh09a1VVInbg3rK7al7Ug", 3 | "name": "LandCaps", 4 | "instagram": "https://www.instagram.com/landcaps.keycap/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/latrialum.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1crfV15xlpsIIfDxo0PGoEE40ZZfMUkl4JOZO_d1sILY", 3 | "name": "Latrialum", 4 | "instagram": "https://www.instagram.com/latrialum/", 5 | "discord": "https://discord.com/invite/latrialum", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/lazercaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Q5o4ct05fGqAyo5QnaeaF0hWtJhRyuT5VE5CIAPW24Y", 3 | "name": "LAZERCAPS", 4 | "discord": "https://discord.gg/BVVVDXFtAw" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/lazy_factory.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1HgeNGFuyCjXeBdRq9AsoRHCinhzHbDObagYVoSvFJeg", 3 | "name": "Lazy Factory", 4 | "instagram": "https://www.instagram.com/lazyfactoryvn", 5 | "website": "https://lazy-factory.com/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/lazycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1yyLznWKS7QTrOLTTfP9izvDIlEE_q9n0To1Id3N_0FQ", 3 | "name": "LazyCaps", 4 | "instagram": "https://www.instagram.com/lazycaps/", 5 | "website": "http://lazycaps.club" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/level.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1YEx3xAI3r_MIXrrdWzTBdsPC7rdBoxd87TWwxpfsMyE", 3 | "name": "Level caps", 4 | "instagram": "https://www.instagram.com/level.caps/", 5 | "tabsOperations": [] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/lilith-project.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1MdvUtFZOLKyZhFE6RKRw5UpDSVcdNnrNHKaCGm3FLE0", 3 | "name": "Lilith Project", 4 | "instagram": "https://www.instagram.com/lilithprojectt/", 5 | "discord": "https://discord.gg/zZAXDQk7WY" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/lividity.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "18mc8abYoFIYDEqpvJzG5qYLXoQBTBUu9DUp7JSmIFxM", 3 | "name": "Lividity", 4 | "instagram": "https://www.instagram.com/lividitycaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/loki.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1QGRxPMGI-GIN63LCatprE60zDfcVmy67cG53aXLDf8M", 3 | "name": "Lo-Ki Caps", 4 | "website": "https://www.lokicaps.com/", 5 | "instagram": "https://www.instagram.com/loki_studios/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/lunakeycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1AV5u4TtQY2iKOisKygGIn7IYFGzcqU9hhjqI76UzkbM", 3 | "name": "Luna Keycaps", 4 | "instagram": "https://www.instagram.com/luna.keycaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/m1kart.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "13qOoogJEdf6DQlPHSbD7IY1WOadL6M_CkLXXMjDC5Tc", 3 | "name": "M1K ART", 4 | "instagram": "https://www.instagram.com/m1k_a.r.t/", 5 | "discord": "https://discord.com/invite/QkDrNTQaZP" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/macher.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1nSusf9xLZErFgheGcr7q5PsJYVqTVEyDUzKYWxR6PQ0", 3 | "name": "Macher Studio", 4 | "instagram": "https://www.instagram.com/macherstudio/", 5 | "discord": "https://discord.gg/sTBEgMTcqp", 6 | "website": "https://www.macherstudio.com/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/madlabskeycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "176oXSO83YXhYkVDBpoanyiroWaqXq7SmOY8OQfO6bfY", 3 | "name": "Mad Labs Keycaps", 4 | "website": "https://www.madlabskeycaps.com/", 5 | "instagram": "https://www.instagram.com/mad_labs_keycaps/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/maisonofthewest.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1HUaZBU-PDmvgBQCW7k9y9YdcI0pZ5S5_91jab7n539o", 3 | "name": "Maison of the West", 4 | "instagram": "https://www.instagram.com/maisonofthewest/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/mariotheguy.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1TJ-cV5VpMDm0qvF5bLE1cyp_UtZ0mMUK3XFhUXqfEmo", 3 | "name": "Mariotheguy", 4 | "website": "https://www.reddit.com/user/mariotheguy/", 5 | "instagram": "https://www.instagram.com/mariotheguyo/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/mastononkaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1XwH1785exI1NCfr3M-ZtkcTxDe4fICVP0Tmbvg00HXQ", 3 | "name": "Mastonon.kaps", 4 | "instagram": "https://www.instagram.com/mastonon.kaps/", 5 | "discord": "https://discord.gg/ySC64us" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/matae-keycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1PZ-Rf46GQiDdG3E6R837QEknkapMMbmqPPXnq0l2vbg", 3 | "name": "Matae Keycaps", 4 | "instagram": "https://www.instagram.com/mataekeycaps/", 5 | "discord": "https://discord.gg/FwtT5pNNGh" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/melon.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ceCQ48nyCfZ2u0jnzgnvVW0nuxd01a0QS48cx_TVh-U", 3 | "name": "MelonKeys", 4 | "instagram": "https://www.instagram.com/melonkeys.keycaps", 5 | "website": "https://www.melonkeys.com", 6 | "discord": "https://discord.gg/melonkeys" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/meof.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Gb0HeMF0jE8wfN6sUJEsVRcWjC88VmWJQnABIKEv28o", 3 | "name": "meof", 4 | "instagram": "https://www.instagram.com/meof.caps", 5 | "website": "https://www.meof-studio.com/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/mfc.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Q4JOAQQIY3iat1tBhDXs8aT8hw0JEk92aJlVRxRI3bY", 3 | "name": "MFC", 4 | "instagram": "https://www.instagram.com/mfc.artisan/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/mfcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1nslOUvKblaJqbTGDfV1zFzhfq7q5wD_VyrXhIEKs614", 3 | "name": "MFCAPS", 4 | "artisanCollector": "https://artisancollector.com/timeline/mfcaps-initial-sale/" 5 | } -------------------------------------------------------------------------------- /src/importer/json/miniworld.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1K2IP5lV4-6PLuJcFLhpR-gJAqHhxY7baxZSG2DaSPvo", 3 | "name": "Miniworld", 4 | "website": "https://www.miniworld.studio/", 5 | "instagram": "https://www.instagram.com/miniworld.keycaps/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/monstera.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1BVfiGhTs-8dCm2u_KpAxKGALy9X7CT94rDljgyFl0uE", 3 | "name": "Monstera Keycaps", 4 | "instagram": "https://www.instagram.com/monsterakeycaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/mozicaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1fq6yWk8Gsye4U5M1Fr7SWqTrBMBOx88855RhkUvC10k", 3 | "name": "MOZIcaps", 4 | "instagram": "https://www.instagram.com/mozicaps/", 5 | "discord": "https://discord.gg/SbUWe5PB7d", 6 | "website": "https://www.mozicaps.com/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/mubai.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ECfTBISa_HI2ahn37olTdTDQraxIBQppFfqbuttVLy4", 3 | "name": "MUBAI", 4 | "instagram": "https://www.instagram.com/mubaino1/", 5 | "discord": "https://discord.gg/SBknB4cx9X" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/mystic-world.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1oeXo0YesQfjJSZ9USDUd_fIQuib5i5m6LNfacSR-1T4", 3 | "name": "Mystic World", 4 | "instagram": "https://www.instagram.com/mysticworldcaps/", 5 | "discord": "https://discord.gg/5kQ6Va9pyB" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/myth-caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1-CkxK7KHUIy9gzJkguA36eC463cBHkNeGfgLa40BKVE", 3 | "name": "Myth Caps", 4 | "instagram": "https://www.instagram.com/myth_caps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/namong.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1PjxE3G_lAQe2heeHj_TxXw4AAwEbmNK6UVkF_lEPFSU", 3 | "name": "Namong", 4 | "instagram": "https://www.instagram.com/namong.art", 5 | "discord": "https://discord.gg/8gDWVMSz39" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/navacaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1YP-CG6HSuG04dWwG-PUyql0_sBwmae_3q3ukr5N8nJM", 3 | "name": "Navacaps", 4 | "instagram": "https://www.instagram.com/navacaps/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/nibbnubb.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1VDaL0vyFLSMyfmw2k-Aa3RleuEU9o3H6JPiV33zTDy4", 3 | "name": "NibbNubb Keycaps", 4 | "instagram": "https://instagram.com/nibbnubbkeycaps", 5 | "discord": "https://discord.com/invite/ATfDsmRfyE" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/nightcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": ["1GpFn7f6xb2hF0REHKe4ts2wUeHR5CLX8yUMAqSlGW0k","1GGuKNDrCMBnlICsww9Y5ySbWcE6Cy_gEDwZItqiVCQI"], 3 | "name": "Nightcaps", 4 | "instagram": "https://www.instagram.com/nightcaps.keycaps/", 5 | "website": "https://geekhack.org/index.php?topic=79513.0", 6 | "artisanCollector": "https://artisancollector.com/nightcaps/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/noob-studio.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1TUqpr6MrnkvMT79R7rrwQ330cZvuG-bQCovNNhOct14", 3 | "name": "Noob Studio", 4 | "instagram": "https://instagram.com/noobstudiovn/", 5 | "discord": "https://discord.gg/Ft9A2xxqFQ" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/nork.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "192BiqrPFiOag5NmKTmkAVl9jak0toBjxAOQO8coyO_M", 3 | "name": "Nork", 4 | "instagram": "https://www.instagram.com/nork.studios/", 5 | "discord": "https://discord.gg/BuP7S5V9st" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/not-caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1nnUMA_-ll05sFz-EGeCllZTRZyUilkhstPUNB6NJEUs", 3 | "name": "NOT Caps", 4 | "instagram": "https://www.instagram.com/n0tcaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/nubbinator.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1sjsPqvqcjt3Wm3MDomwffYVQYjn_g3SDQX-7G1bNN0U", 3 | "name": "Nubbinator", 4 | "website": "https://geekhack.org/index.php?topic=52829.0", 5 | "artisanCollector": "https://artisancollector.com/nubbinator/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/nuhz.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1-BcprHM7kp7znXKbCKrcCnKbd2q5GvX4UI8qod5J3rA", 3 | "name": "Nuhz Caps", 4 | "instagram": "https://www.instagram.com/nuhz_caps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/objectgarage.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1RWKUmcfE9XYslR5GDldajorjTxCqBVM0UE7wBxeB6G4", 3 | "name": "Object.Garage", 4 | "instagram": "https://www.instagram.com/object.garage/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/obscura.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1nhTGlHevXa6adT_nUrr8aSwt0MevlqlRA3K4_AAr7nE", 3 | "name": "Obscura", 4 | "instagram": "https://www.instagram.com/obscuracaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/ochre-moss.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1r3HhhDyLTnLJrDb5kpCazx_-j7SwOk9GHl9G-zek-N0", 3 | "name": "Ochre + Moss", 4 | "instagram": "https://www.instagram.com/ochre.moss/", 5 | "discord": "https://discord.gg/EAHpSPfTE6" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/okeydokey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1_khNYhY3YlyeRK9Tok3qDQ-FJU-lBittK0fsNiLbWhI", 3 | "name": "okeydokey studio", 4 | "website": "https://okeydokey.studio/", 5 | "instagram": "https://www.instagram.com/okeydokey.studio/", 6 | "discord": "https://discord.com/invite/8EDEy94zwJ" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/omega.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1b9lWjQr0m151takmQQPI7h40cLy_uo6HpDTan418SFE", 3 | "name": "Omega Keycaps", 4 | "instagram": "https://www.instagram.com/omega._.keycaps/", 5 | "discord": "https://discord.gg/bZtvPTVyJB" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/panduuh.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1K6KDWr_6c91n-3DkhybqseJNEvZT9_0u9HNVps6WV90", 3 | "name": "Panduuh Caps", 4 | "instagram": "https://www.instagram.com/panduuh.caps" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/pcraftstudio.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1SyKkp4PhrCCealubpwHz5GUWfZejQGspXmgWW2T0qzw", 3 | "name": "P.Craft Studio", 4 | "instagram": "https://www.instagram.com/pcraft_studio/", 5 | "discord": "https://discord.com/invite/tfmUzNuySv", 6 | "website": "https://pcraft.studio" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/phage.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1m7S6LaNaAg7vfZP9Bt23EYX7v3boC3TpTaqF0gBsEaM", 3 | "name": "Phage Caps", 4 | "instagram": "https://www.instagram.com/phage.caps/", 5 | "discord": "https://discord.gg/phage-caps" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/phangkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1awYbT9shWhsI6wnpXVUozJxwQjFbiYXhTNNPQOCeAvE", 3 | "name": "PhangKey", 4 | "instagram": "https://www.instagram.com/phangkey/", 5 | "website": "https://sale.phangkey.com/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/pixart-valley.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1DDUof0CPmirwcCbNGSkqX-_R4onwfbZQhuqHZqsTpHw", 3 | "name": "Pixart Valley", 4 | "instagram": "https://www.instagram.com/pixart.valley/", 5 | "discord": "https://discord.gg/wErrAnM7Ng" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/polymer.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "16FowOOELHP9DmQ7rKdVmgvvEGEgiOhwDtxAA58IDJCg", 3 | "name": "Polymer Salon", 4 | "instagram": "https://www.instagram.com/fendentkeys/", 5 | "website": "https://geekhack.org/index.php?topic=85461.0" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/prettypetitecrafty.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Zj5xCQ-ttgyYXNOrm8F9e28itOo_ESkAOP6fwhmVfjE", 3 | "name": "Pretty Petite Crafty", 4 | "instagram": "https://www.instagram.com/PrettyPetiteCrafty/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/prime.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1EwmD8ej34LImbIWi9hw_5Tsk7GAGZBhoVMJwIFG_Ad8", 3 | "name": "PrimeCaps", 4 | "instagram": "https://www.instagram.com/prime_caps/", 5 | "website": "https://primecaps.ca/", 6 | "artisanCollector": "https://artisancollector.com/primecaps/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/projectkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1UGwGloN5Cf6w_goJB6FX3FcDiB8EsCjHLLB4r17T3OE", 3 | "name": "ProjectKey", 4 | "instagram": "https://www.instagram.com/projectkey.hk", 5 | "discord": "https://discord.gg/9MvhVBgN8U" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/psycho.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1V0lB6MTcTkSoClOEakYI57sAI6xOThP9diEwCCQLR1c", 3 | "name": "Psycho Keycaps", 4 | "discord": "https://discord.gg/w4deZmEqFJ", 5 | "instagram": "https://www.instagram.com/psychokeycaps/", 6 | "website": "https://www.psychokeycaps.com/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/qqaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1D1Pt_Jp0Mm35O0a2vFQ6mh2UzcjT1JBWxjqUcc2tSBY", 3 | "name": "Q Qaps", 4 | "instagram": "https://www.instagram.com/cque.q_qaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/radcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1KINOK9cUUA28pSGnHc8ZI-RM36o12ADojXp7ZeNdTh4", 3 | "name": "RADcaps", 4 | "instagram": "https://www.instagram.com/radcaps_/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/rathcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1mX-wUILSjmOGULIju5SKD3zKn7VE9hLl2BHgZZPTnG0", 3 | "name": "Rath", 4 | "website": "https://www.rathcaps.com/", 5 | "instagram": "https://www.instagram.com/rathcaps/", 6 | "discord": "https://discord.gg/2FHTjWY" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/rawstudio.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1OzQDCTUqcSlwDDL9wTjx1Ifm0YKhx96hoBJyStTnIoo", 3 | "name": "Raw Studio", 4 | "instagram": "https://www.instagram.com/rawstudio.art/", 5 | "discord": "https://discord.gg/EPYkDHqYHV" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/resin-party.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "172dSOYEqvHX0ihkMkq-iB4fwqKAuKaoSQDDCdLDucVc", 3 | "name": "Resin Party", 4 | "website": "https://geekhack.org/index.php?topic=98079.0" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/ritual.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1ou0Nk0lPbYXwOHdAOOI9UgbIQHwzd7l3XidY9WK9E7w", 3 | "name": "Ritual Master", 4 | "instagram": "https://www.instagram.com/ritualmaster/", 5 | "website": "https://www.ritual-master.com/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/rtgcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1XNeLhAdqfwbgmpm4qbN9nUFQzLktN0JiEJGgRVCEnpk", 3 | "name": "rtg_caps_", 4 | "instagram": "https://www.instagram.com/rtg_caps_/", 5 | "tabsOperations": ["pop"] 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/rubrehose.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1dCtWhW9ng-IgVFi-98HyglVmfVLIqiFN6w8u5-0EU4E", 3 | "name": "Rubrehose", 4 | "instagram": "https://www.instagram.com/rubrehose/", 5 | "artisanCollector": "https://artisancollector.com/rubrehose/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/sandun.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1xvrzm5YONiCodBoYCWdL3hP1rDPPklq4WXNbsjDT-w4", 3 | "name": "Sandun", 4 | "instagram": "https://www.instagram.com/sandun_art/", 5 | "discord": "https://discord.gg/wKJ8ZFvf", 6 | "website": "https://www.sandun.art/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/savecaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1CmBPk8MTC3fLeUczX6CA0KeQGRZqLEKHS9AOC72OjWk", 3 | "name": "Save Caps", 4 | "instagram": "https://www.instagram.com/lbsave/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/scraft.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1zM8PAeSNFJ1Voo4m2Qpcjqtymy_umMBBMVt_USkoYCs", 3 | "name": "S-Craft Studio", 4 | "website": "https://s-craft.studio/", 5 | "instagram": "https://www.instagram.com/scraft.studio.keycap/", 6 | "discord": "https://discord.com/invite/tm6sXVMPHb" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/shirouu.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "177W_IQZ1HRQbSZ4pjLuWqGlhvS9sTpVZcKV_Ucs-h9M", 3 | "name": "shirouu.kaps", 4 | "instagram": "https://www.instagram.com/shirouu.kaps/", 5 | "discord": "https://discord.gg/Fg8mvxENhK" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/shuangmu.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1w3GGp0ChHrsKqnZARZobSjbFYKu0193KlS4zhA7_B7s", 3 | "name": "SM caps", 4 | "instagram": "https://www.instagram.com/shuangmu_studio", 5 | "discord": " https://discord.gg/ZvwfAKhkQS" 6 | } 7 | 8 | -------------------------------------------------------------------------------- /src/importer/json/simulacra.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1tY7twR6E65afan23BediwbxwvsjJqXtleE949r5mNeg", 3 | "id": "Simulacra", 4 | "name": "Simulacra Caps", 5 | "instagram": "https://www.instagram.com/simulacra_caps/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/sinpracaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1dQebU21O42zU2Qo8Sr4ZioGxYNwpYFptGopxrG4phn8", 3 | "name": "Sinpra Caps", 4 | "instagram": "https://www.instagram.com/sinpracaps/?hl=en", 5 | "discord": "https://discord.gg/PcmeZBCqqE" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/sirreal.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1EllRzUrKjgARXPRYy180K9ru_aYgVG89DQ8CxxFViRc", 3 | "name": "SirReal Caps", 4 | "instagram": "https://www.instagram.com/sir.realcaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/slimescholar.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "14jF0ewtoj5S2GPXkGrfppH3zu0Dd2Y8aZnJ_nP1kPuw", 3 | "name": "Slime Scholar", 4 | "instagram": "https://www.instagram.com/slimescholarcaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/sludgekidd.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1NDxNP0oKZOGW_13FrXevtgagTYmgHTGn66V7MYf7sx0", 3 | "name": "Sludgekidd", 4 | "instagram": "https://www.instagram.com/sludgekidd/", 5 | "website": "https://sludgekidd.co/", 6 | "discord": "https://discord.com/invite/CbwFfCk" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/smyleey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1pbpzRVKy4kv4yRc5Ztj8M6H-FlHCID4nASttnwn1pYE", 3 | "name": "Smyleey x Godmade", 4 | "instagram": "https://www.instagram.com/smyleeyxgodmade/", 5 | "discord": "https://discord.gg/mWuEQvwPxd" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/sodie.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1R2dHjC3M2dab4_pMVnc-ti11gazoD42Lqknjm5EW2R0", 3 | "name": "SodieCaps", 4 | "instagram": "https://www.instagram.com/sodiecaps/", 5 | "website": "http://sodiecaps.com/", 6 | "discord": "https://discord.com/invite/K6vGuvY", 7 | "artisanCollector": "https://artisancollector.com/sodie-caps/" 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/sondercaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1nZEhuaS3rNaGzJieik-EEhOtnLtTHwrbIOxc81uyKI8", 3 | "name": "Sonder Caps", 4 | "instagram": "https://www.instagram.com/sonder.caps/", 5 | "discord": "https://discord.gg/S7PRXTJvWA" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/soom.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "177BzpFJzLhYCSi7yAHRarOc39XFXND60Kfh4oV6pziE", 3 | "name": "Soom Caps", 4 | "instagram": "https://www.instagram.com/soom_caps/", 5 | "discord": "https://discord.gg/tsRn9sdXWE" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/stone-keys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1kVAbEYLLsFT4y6k0b7A1aenvKOtPzX93cSDXqC_f2eQ", 3 | "name": "Stone Keys", 4 | "instagram": "https://www.instagram.com/stone.keys.world/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/stupid-fruit.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1mhSVY5Z4vSmV1XNGcZzC-YZkvPnMRc43_F1dxGS1qxE", 3 | "name": "Stupid Fruit", 4 | "instagram": "https://www.instagram.com/stupidfruitcaps/", 5 | "website": "https://stupidfru.it/" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/sublymekeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Q6lOKRofrQXEFxQddLXDYC2B_9rZ6pd7qbUfueiranI", 3 | "name": "Sublyme Keys", 4 | "instagram": "https://www.instagram.com/sublyme_keys/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/suk.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "17XHW8yaMXVS5i82lOrjXIF7Q68NwCg6w9B6BiEn7A1k", 3 | "name": "Suited Up Keycaps", 4 | "instagram": "https://www.instagram.com/suitedupsuitedup/", 5 | "website": "https://suitedupkeycaps.com/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/sway.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1tRhoMKBVZuBxE9UAynqtBNrm__OEjQnOF07NIUamQtE", 3 | "name": "Sway Caps", 4 | "instagram": "https://www.instagram.com/sway.caps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/symbio.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1z3EL5InN-gdohDIwdSwJE7vR9jHRlZ0XeTJP45JOMrA", 3 | "name": "Symbio Keys", 4 | "instagram": "https://www.instagram.com/symbio.keys/", 5 | "discord": "https://discord.gg/D6JPUdFxjg" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/t-art.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1rAusxiqfPBB_5S7zeEOYX1TJNu4ehcZdxG8jmLLN5Ds", 3 | "name": "T-Art Universe", 4 | "instagram": "https://www.instagram.com/t.artuniverse/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/techstonedamish.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1CzwP-Zj8cLVvMdQRJqDFL_kiZOaOHAcgp3F0owh4-nY", 3 | "name": "Tech. Stoned. Amish.", 4 | "instagram": "https://www.instagram.com/techstonedamish/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/theboxkeycap.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1R-0hie5BZ66Uqv-FILFqHEfanQPAYwpBPMGqFWVGR_A", 3 | "name": "theboxkeycap", 4 | "instagram": "https://www.instagram.com/theboxkeycap/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/tiny.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "17Zb-LmujFdcnOZ2_VFhoPHKP1gZJmzEKJH2fawFeqpk", 3 | "name": "TinyMakesThings", 4 | "instagram": "https://www.instagram.com/tinymakesthings/", 5 | "website": "https://www.tinymakesthings.com/", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/tlab.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1sjUG3_qviJnpMV7w6hAAPKjcLtLVrk-8vrGVXqCptdc", 3 | "name": "T-Lab", 4 | "instagram": "https://www.instagram.com/the.tlab/", 5 | "discord": "https://discord.gg/JtrNBUK7RK" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/tokkipee.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1kZoXY-9rV25G5cSwgQxAHwmcjVXNL_LUj8vxhmYYk7k", 3 | "name": "Tokkipee", 4 | "instagram": "https://www.instagram.com/tokkipee/", 5 | "website": "https://tokkipee.com" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/triplenightkaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1q_LPkHEAF7Hp-_jBul6foA65RC6LHPKVeN9ExqghsrQ", 3 | "name": "TripleNight.Kaps", 4 | "instagram": "https://www.instagram.com/tn.kaps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/trmk.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "19r0FNbI7cLrjogfDviC7WT2HkuRax9RmPZwn3B_DNOY", 3 | "name": "trmk", 4 | "instagram": "https://www.instagram.com/trmkcaps/", 5 | "website": "https://trmkcaps.com/", 6 | "discord": "https://discord.com/invite/YrV6axHHze" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/txd.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1Okjx7x8MjAk_XvBRur64OmoI-QKP32N-RwkrN6VeQXU", 3 | "name": "TXD" 4 | } 5 | -------------------------------------------------------------------------------- /src/importer/json/unbrandedcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1nQIdjUjkWGyGAIgiEl2oXANX2MJj91uFhCPKOLx2qWw", 3 | "name": "Unbranded.caps", 4 | "instagram": "https://www.instagram.com/unbranded.caps/", 5 | "discord": "https://discord.com/invite/24hy8BA", 6 | "tabsOperations": ["pop"] 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/unknown-keycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "17Bhy7YSkXQQO2YC8hvCYsxbRprgMMNTpuMCFnFyDrts", 3 | "name": "Unknown Keycaps", 4 | "instagram": "https://www.instagram.com/unknownkeycaps/", 5 | "discord": "https://discord.gg/Ex3X8X9NTk" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/varsitykeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1uKCfFhB6auBi7zTUmFY-A7VkWkh1w5h5iPTvAVaNxuA", 3 | "name": "Varsity Keys", 4 | "instagram": "https://www.instagram.com/varsity.keys/", 5 | "discord": "https://discord.gg/sfZdDaNPyN" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/vice-caps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1WR23MyXbLOAi0Vh6UoeRQqmZ2UsilJNVunw0Y_Hf9fU", 3 | "name": "Vice Caps", 4 | "instagram": "https://www.instagram.com/vice.caps/", 5 | "discord": "https://discord.gg/t8FmsRYc" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/wheat-keys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1D4fIHx6vT3ZWPPdyKyfYrl4xc2ajbWETJP98Rk7HQOQ", 3 | "name": "Wheat Keys", 4 | "instagram": "https://www.instagram.com/wheatkeys" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/wildkeycaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1E4BbJAZYV0aRR8zCtrD9DI9vRWM3jD1EbLBsdtFl2-4", 3 | "name": "WildKeyCaps", 4 | "instagram": "https://www.instagram.com/wildkeycaps/", 5 | "discord": "https://discord.gg/tMecfZymp3" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/wildstory.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1745lR0WbiVE9-loe1n4evgd6cPE07yAysP-nZxF2ji0", 3 | "name": "Wildstory Caps", 4 | "instagram": "https://www.instagram.com/wildstory.caps/" 5 | } 6 | -------------------------------------------------------------------------------- /src/importer/json/winkeys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1RKX9sVYGkGQKnfGjaLeiFuYwA5zbi5UYfdwSYxHK90w", 3 | "name": "Win Keys", 4 | "instagram": "https://www.instagram.com/win.keebs/", 5 | "discord": "https://discord.com/invite/X9xnfH9QME", 6 | "website": "https://winkeebs.com/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/youngster.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1OB-qI-3izrbmWZG08Qi-ihNaCRRB_qmvivs0KCEWpAk", 3 | "name": "YoungsterHarris", 4 | "instagram": "https://www.instagram.com/youngsterharris/", 5 | "discord": "https://discord.com/invite/Dv88j529" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/yu.keys.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1OENdni0rgtO6J2cYKqD1ccrubulXDn-bCHt26TG4nHU", 3 | "name": "Yu.Keys", 4 | "instagram": "https://www.instagram.com/yu.keys/", 5 | "discord": "https://discord.gg/YZ7MY9aXfq" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/zellkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1SS3g7HabIxQhRCb9_dEKRBWkXF24XyeELFtlf09hOdQ", 3 | "name": "ZellKey", 4 | "instagram": "https://www.instagram.com/__zellkey__/", 5 | "website": "http://www.zellkey.art" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/zero.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1pJjELN0W1faMi0kcwyrc9do4XwXorlruZfDVMh9Av3Q", 3 | "name": "Zero Keycaps", 4 | "instagram": "https://www.instagram.com/zerokeycaps/", 5 | "discord": "https://discord.com/invite/BaJNmkgaks" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/zomgkey.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1HhdYF-daQQdMQdY4JNWWv6SdPRhImsZ6aVoa8UIQkSc", 3 | "name": "ZOMGKEY", 4 | "instagram": "https://www.instagram.com/zomg.key/", 5 | "discord": "https://discord.com/invite/fWFbsEWTa9" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/zorbcaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1_wtEVliorr29dTkO7NHHBkM3fu80V_rU6eJKMVwd8qQ", 3 | "name": "Zorbcaps", 4 | "instagram": "https://www.instagram.com/zorbcaps/", 5 | "website": "https://www.zorbcaps.com/", 6 | "artisanCollector": "https://artisancollector.com/zorbcaps/", 7 | "tabsOperations": ["pop"] 8 | } 9 | -------------------------------------------------------------------------------- /src/importer/json/zouabi.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1bbQYDOFizNYAt6StvoxHB7sbIzvY2i-PlFNRctjngg4", 3 | "name": "Zouabi Co.", 4 | "instagram": "https://www.instagram.com/zouabee/", 5 | "discord": "https://discord.com/invite/gVSNYxvbzd" 6 | } 7 | -------------------------------------------------------------------------------- /src/importer/json/zuno.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "10Qsh838fnc0tO-7cPTtXCvXoQ-bMGwfZR_l0COHXGoU", 3 | "name": "Zuno Studio", 4 | "instagram": "https://www.instagram.com/zunostudio/", 5 | "discord": "https://discord.gg/qrrWzHp2ud", 6 | "website": "https://zunostudio.com/" 7 | } 8 | -------------------------------------------------------------------------------- /src/importer/json/zycap.json: -------------------------------------------------------------------------------- 1 | { 2 | "docId": "1iFu8FhwjqIJSrweEA9ziazm0eD5rz3k3NgMtzIHzNw0", 3 | "name": "Zy.cap", 4 | "instagram": "https://www.instagram.com/zy.cap", 5 | "discord": "https://discord.gg/ZWbdyssyxb" 6 | } 7 | -------------------------------------------------------------------------------- /src/prune-images.js: -------------------------------------------------------------------------------- 1 | const { spawn } = require('child_process') 2 | const db = require('../db/catalog.json') 3 | const { promExec } = require('./utils') 4 | 5 | function getCurrentImages () { 6 | return new Promise((resolve) => { 7 | const cmd = spawn('aws', ['s3', 'ls', 's3://cdn.keycap-archivist.com/keycaps/']) 8 | const cmdData = [] 9 | cmd.stdout.on('data', (data) => { 10 | cmdData.push(data.toString()) 11 | }) 12 | cmd.on('close', () => { 13 | resolve( 14 | cmdData 15 | .filter(Boolean) 16 | .join('') 17 | .split('\n') 18 | .map((x) => { 19 | const re = /\b([\w.]+)$/gm 20 | const result = x.match(re) 21 | if (result && result.length !== 0) { 22 | return result[0].split('.')[0] 23 | } 24 | return '' 25 | }) 26 | .filter(Boolean) 27 | ) 28 | }) 29 | }) 30 | } 31 | 32 | async function main () { 33 | const imgs = [] 34 | const toDel = [] 35 | db.forEach((maker) => { 36 | maker.sculpts.forEach((s) => { 37 | s.colorways.forEach((c) => { 38 | imgs[c.id] = { id: c.id, src: c.img } 39 | }) 40 | }) 41 | }) 42 | 43 | const inDistant = await getCurrentImages() 44 | for (const i of inDistant) { 45 | if (!imgs[i]) { 46 | toDel.push(i) 47 | } 48 | } 49 | 50 | console.log(`In db: ${Object.keys(imgs).length} images`) 51 | console.log(`In distant: ${inDistant.length} images`) 52 | console.log(`To Del: ${toDel.length} images`) 53 | 54 | for (const i of toDel) { 55 | const p = [] 56 | p.push(promExec(`aws s3 rm s3://cdn.keycap-archivist.com/keycaps/${i}.jpg`)) 57 | p.push(promExec(`aws s3 rm s3://cdn.keycap-archivist.com/keycaps/720/${i}.jpg`)) 58 | p.push(promExec(`aws s3 rm s3://cdn.keycap-archivist.com/keycaps/250/${i}.jpg`)) 59 | await Promise.all(p) 60 | } 61 | } 62 | 63 | main() 64 | .then(() => { 65 | console.log('Finished') 66 | }) 67 | .catch((e) => { 68 | console.log(e) 69 | }) 70 | -------------------------------------------------------------------------------- /src/refresh-images.js: -------------------------------------------------------------------------------- 1 | const db = require('../db/catalog.json') 2 | const { promExec } = require('./utils') 3 | 4 | async function main (makerId) { 5 | const toDel = [] 6 | const m = db.find(x => x.id === makerId) 7 | if (!m) { 8 | console.log('no maker found') 9 | } else { 10 | console.log(`found maker ${m.id} ${m.name}`) 11 | } 12 | m.sculpts.forEach(s => { 13 | s.colorways.forEach((c) => { 14 | toDel.push(c.id) 15 | }) 16 | }) 17 | console.log(`${toDel.length} caps to delete`) 18 | for (const i of toDel) { 19 | const p = [] 20 | p.push(promExec(`aws s3 rm s3://cdn.keycap-archivist.com/keycaps/${i}.jpg`)) 21 | p.push(promExec(`aws s3 rm s3://cdn.keycap-archivist.com/keycaps/720/${i}.jpg`)) 22 | p.push(promExec(`aws s3 rm s3://cdn.keycap-archivist.com/keycaps/250/${i}.jpg`)) 23 | await Promise.all(p) 24 | } 25 | } 26 | const args = process.argv.slice(2) 27 | main(args[0]) 28 | .then(() => { 29 | console.log('Finished') 30 | }) 31 | .catch((e) => { 32 | console.log(e) 33 | }) 34 | -------------------------------------------------------------------------------- /src/remap-img.js: -------------------------------------------------------------------------------- 1 | const { readdirSync, writeFileSync } = require('fs') 2 | const { join } = require('path') 3 | 4 | async function main () { 5 | const dbPath = join(__dirname, '..', 'db') 6 | const files = readdirSync(dbPath) 7 | for (const f of files.filter(x => x.endsWith('json') && x !== 'catalog.json')) { 8 | const data = require(join(dbPath, f)) 9 | for (const s of data.sculpts) { 10 | for (const c of s.colorways) { 11 | c.img = `https://cdn.keycap-archivist.com/keycaps/${c.id}.jpg` 12 | } 13 | } 14 | writeFileSync(join(dbPath, f), JSON.stringify(data)) 15 | } 16 | const catData = require(join(dbPath, 'catalog.json')) 17 | for (const a of catData) { 18 | for (const s of a.sculpts) { 19 | for (const c of s.colorways) { 20 | c.img = `https://cdn.keycap-archivist.com/keycaps/${c.id}.jpg` 21 | } 22 | } 23 | } 24 | writeFileSync(join(dbPath, 'catalog.json'), JSON.stringify(catData)) 25 | } 26 | 27 | if (require.main === module) { 28 | main().catch(e => { 29 | throw e 30 | }) 31 | } 32 | -------------------------------------------------------------------------------- /src/scraper/gdoc.js: -------------------------------------------------------------------------------- 1 | const { genId, gDocUrl } = require('../utils') 2 | const { gDocParse, getCredentials, downloadJsonDoc } = require('../google') 3 | 4 | function scrapFrom (gdocID, pMeta = {}, tabsOperations = []) { 5 | const meta = { ...pMeta } 6 | delete meta.docId 7 | delete meta.tabsOperations 8 | 9 | if (gdocID === undefined) { 10 | throw new Error('Missing GoogleDoc identifier') 11 | } 12 | if (meta.name === undefined) { 13 | throw new Error(`Missing name in metadata for "${gdocID}"`) 14 | } 15 | 16 | return async function scrap () { 17 | try { 18 | const creds = await getCredentials() 19 | const jsonDoc = await downloadJsonDoc(gdocID, creds) 20 | const catalog = { 21 | src: gDocUrl(gdocID), 22 | id: '', 23 | name: '', 24 | instagram: '', 25 | website: '', 26 | discord: '', 27 | sculpts: [], 28 | ...meta 29 | } 30 | catalog.id = genId(meta.id || meta.name) 31 | return gDocParse(catalog, jsonDoc) 32 | } catch (e) { 33 | return { 34 | hasError: true, 35 | error: e, 36 | name: meta.name 37 | } 38 | } 39 | } 40 | } 41 | 42 | module.exports = { 43 | scrapFrom 44 | } 45 | -------------------------------------------------------------------------------- /src/validate.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | const AJV = require('ajv') 4 | 5 | const catalog = fs.readFileSync(path.join(__dirname, '..', 'db', 'catalog.json')) 6 | const schema = fs.readFileSync(path.join(__dirname, 'schema.json')) 7 | const ajv = new AJV() 8 | const validate = ajv.compile(JSON.parse(schema)) 9 | if (!validate(JSON.parse(catalog))) { 10 | console.log(validate.errors) 11 | process.exit(1) 12 | } else { 13 | console.log('Catalog validated') 14 | } 15 | -------------------------------------------------------------------------------- /templates/README.md: -------------------------------------------------------------------------------- 1 | # Keycap Archivist Database 2 | 3 | ![Discord](https://img.shields.io/discord/707159843751854141) 4 | 5 | Database currently contains: 6 | 7 | - Artists : 8 | - Sculpts : 9 | - Colorways : 10 | 11 | CSV/JSON database of artisan keycaps based on : [https://keycap.info/](https://keycap.info/) 12 | 13 | Synchronization is done on a daily basis using a cron github action. If there is a change, the database update itself. 14 | 15 | ## Develop 16 | 17 | To use you need to declare a Google API Key for Drive and export it as an env variable `G_API_KEY` 18 | 19 | ## Usage 20 | 21 | To use the master version of the catalog you can CURL those urls: 22 | 23 | - [csv](https://raw.githubusercontent.com/keycap-archivist/database/master/db/catalog.csv) 24 | - [json](https://raw.githubusercontent.com/keycap-archivist/database/master/db/catalog.json) 25 | 26 | To manipulate some attributes of the catalogs you can add those to the gdoc: 27 | 28 | - `(ka_cover)` will make the sculpt of the current cell as the cover of the catalog 29 | - `(ka_self_order)` anywhere in the document, will use the order of the gdoc instead of alphabetical order 30 | - `(XXXX YEAR)` will add the date on the sculpt or the colorway. Free input field. eg: `(March 2019)` or `(2019)` 31 | - `(ka_from_XX)` will add the nationality of the maker. Free input field using 2-digit ISO code for the country. eg: `(ka_from_fr)` 32 | - **Sculpt Header** `(ka_profile_xxx)` Specify the profile of the sculpt. Available values: `blank`/`sculpt` 33 | - **Sculpt Header** `(ka_design_xxx)` Specify how the design was made. Available values: `physical`/`digital`/`hybrid` 34 | - **Sculpt Header** `(ka_cast_xxx)` Specify how the cap is made. Availabe values: `resin`/`mixed` 35 | - **Colorway Header** `(count #)` will add the total count to the colorway page. Value should be an integer: `(count 1)`, `(count 13)` 36 | - **Colorway Header** `(*)` will add a "Commission" tag to the colorway page. `(*)` is removed from the colorway title. 37 | - **Colorway Header** `(giveaway)` or `(give-away)` to note if a colorway was specificly for a giveaway 38 | - **Colorway Header** `(pc Name)` will add photo credit to denote who owns the photo: `(pc Brandon Stanton)` 39 | - **Colorway Header** `(stemtype mx|topre|alps|choc|tmx|bs)` will add stem types to each colorway. Any number of options can be listed separated by a space: `(stemtype topre)` `(stemtype mx topre alps)` 40 | 41 | ## Source Catalogs 42 | 43 | | Id | Catalog | Url | 44 | | -- | ------- | --- | 45 | 46 | --------------------------------------------------------------------------------