27 Commits
Author SHA1 Message Date
Tautvydas Derzinskas f7c6e058f2 ci(extension): check Edge certification notes fit Edge's limit 2026-10-20 09:23:27 +02:00
Tautvydas Derzinskas f240dce392 fix(extension): list sync storage and Snapmaker renewal in Edge notes 2026-10-20 09:18:43 +02:00
Tautvydas Derzinskas 900731fbd9 fix(extension): narrow the data claim in Edge certification notes 2026-10-20 09:09:15 +02:00
Tautvydas Derzinskas d33802d8c0 fix: prevent AMO rate limit errors in extension release
Serialize publish-firefox and publish-latest jobs with a 90-second delay
to prevent hitting AMO's rate limit when running in parallel. Ensure
publish-latest still runs even if publish-firefox fails, while
maintaining the job dependency.

Also simplify extension certification notes.
2026-10-20 08:56:24 +02:00
Tautvydas Derzinskas 930b9b48db feat: add Cults3D provider
Imports Cults3D models, anyone's likes and the user's own printlists, and
syncs them. Metadata comes from Cults3D's GraphQL API with each user's own
nickname and API key. The API never hands out files, and the site's pages are
behind a Cloudflare check only a browser passes, so Thingport Grab sends the
browser's _session_id and cf_clearance cookies with its User-Agent; with
them the server orders a free model for nothing, as its Download button
does, and follows the download page to the signed file link (CloudFront, or
Cults3D's Scaleway bucket for older models). Paid models download once
bought. A Cloudflare block defers a sync until the next visit with Grab.
2026-10-20 05:08:08 +02:00
Tautvydas Derzinskas 2591714c0c feat: add Thangs provider
Imports Thangs models, likes and collections, and syncs them. Metadata is
public; files need the user's own sign-in, which Thingport Grab sends and
Thingport renews from the refresh token. Paid models download once owned;
print-only ones are refused before any download. Free accounts' daily
download limit stops a batch and defers the rest of a sync to its next check.
2026-10-19 23:36:07 +02:00
Tautvydas Derzinskas 4037151e4a feat: enable NextPrint provider 2026-10-19 18:18:26 +02:00
Tautvydas Derzinskas 772b1acfef feat: enable Creality Cloud provider 2026-10-19 14:13:45 +02:00
Tautvydas Derzinskas 5bf3457e8c feat(providers): enable MakerOnline provider 2026-10-19 07:41:05 +02:00
Tautvydas Derzinskas 44f4bf2635 fix: handle malformed tokens, add refresh concurrency control, and improve list URL validation
- Wrap decodeURIComponent in try-catch to handle malformed percent-encoding
- Add inFlight promise to prevent concurrent callers from reusing single-use refresh tokens
- Require list parameter to be "likes" or "bookmarks" for Snapmaker list URLs
- Update documentation to clarify Snapmaker sign-in renewal and token transmission
2026-10-19 01:20:18 +02:00
Tautvydas Derzinskas ac5bf253c7 feat(providers): enable Snapmaker Space provider 2026-10-19 00:57:12 +02:00
Tautvydas Derzinskas 24bb8d430a refactor: update extension popup and address pr comments 2026-10-18 21:21:42 +02:00
Tautvydas Derzinskas a7a91902a0 feat: add MyMiniFactory as a provider
Import, collection import and synced collections from MyMiniFactory, alongside MakerWorld,
Printables and Thingiverse.

- Backend: API v2 client with an instance-wide API key for metadata, collections and
  authors; files from MyMiniFactory's own download links (free models need no login).
  Paid models, and free ones whose files are archives, download as the user from their
  MyMiniFactory library through their session (PHPSESSID), fetching the model files
  MyMiniFactory unpacked from each archive. Paid models are left out of collection
  listings and syncs.
- One migration: MyMiniFactory category ids, username and session columns, plus a data
  migration giving existing users' starter categories the new category ids. Category
  matching now prefers the most specific site category.
- Frontend: provider everywhere the others appear (badges, Configuration and
  Administration providers, sync Browse tab, user menu, link detection, System Health,
  category ids), shared instance-key form for Thingiverse and MyMiniFactory, en and lt.
- Thingport Grab: new provider sites are allowed once from the popup (optional
  all-sites access, content script registered at runtime), so adding one never makes
  the browser disable the extension; captures the signed-in MyMiniFactory username and
  session; paid-model notice.
- Docs, website, store assets and screenshots updated.
2026-10-18 18:19:43 +02:00
Tautvydas Derzinskas c775590655 ci: publish extension-latest with store releases, not every merge
The per-merge workflow now only runs checks. The store release moves
extension-latest to the released build, with an unlisted-signed .xpi.
2026-10-18 08:15:59 +02:00
Tautvydas Derzinskas b619084be7 feat: browse private collections functionality 2026-10-12 12:54:26 +02:00
Tautvydas Derzinskas e24e797999 docs: add synced collections guide and showcase 2026-10-09 07:42:42 +02:00
Tautvydas Derzinskas 9df01d0ed5 docs: update docs, screenshots & site 2026-10-08 19:20:54 +02:00
Tautvydas Derzinskas 30be8c4349 fix(extension): use template for Edge certification notes 2026-10-06 17:49:34 +02:00
Tautvydas Derzinskas e37073cf53 feat(extension): automate publishing to Chrome Web Store 2026-10-01 07:58:17 +02:00
Tautvydas Derzinskas 2380c566e5 feat(extension): add normalized download for MakerWorld 2026-09-30 19:33:31 +02:00
Tautvydas Derzinskas 9549148dfd fix(extension): drop unneeded tabs permission 2026-09-29 07:09:10 +02:00
Tautvydas Derzinskas dae33246aa chore: deal with formatting by adding prettier + reformat 2026-09-28 22:50:39 +02:00
Tautvydas Derzinskas e111dc27d7 chore: update licence and perform comment clean up 2026-09-28 22:34:47 +02:00
Tautvydas Derzinskas caeb394fdb ci(docs): edge store listing info and auto publishing 2026-09-27 13:35:25 +02:00
Tautvydas Derzinskas 427b08db59 refactor: make sure using correct paths in extension build 2026-09-27 10:28:42 +02:00
Tautvydas Derzinskas af7e15ab57 chore(extension): add store assets scripts 2026-09-27 10:19:09 +02:00
Tautvydas Derzinskas 80c79f624f refactor: major overhaul related to browser extension 2026-09-27 09:38:05 +02:00