cachho / jadeship-browser-extension

Automatically convert all links on reddit and yupoo to your favorite shopping agent; enrich the page with online information and QC pics.
https://jadeship.com/tools/extension
GNU General Public License v3.0
13 stars 2 forks source link
1688 chrome chrome-extension firefox-addon firefox-extension reddit taobao tmall typescript webextension weidian yupoo

JadeShip.com Extension

Short summary: Automatically convert all links on reddit and yupoo to your favorite shopping agent; enrich the page with online information and QC pics.

Summary: My Agent Extension - automatically convert all links on reddit and yupoo to your favorite agent; enrich the page with online information, sales statistics and QC pictures. Works with all shopping agents and the Weidian, Taobao and 1688 marketplaces.

Formerly known as "My Agent Extension by RepArchive"


This extension is an essential quality of life upgrade for you as a customers of Chinese shopping sites (Taobao, Weidian, 1688), whether you're browsing the shopping site itself, via an agent or looking on reddit - you get link conversions, QC pics, prices and more.

It rewrites all links to your preferred shopping agent. (This includes shopping agent links and direct links to taobao.com and weidian.com.)

Pages become enriched with extra information about the products you're seeing, you get sales stats from www.jadeship.com and QC pics from finds.ly.

This leaves you with a seamless shopping experience, where you don't have to worry about the agents that others use. This extension turns the experience into a "click and buy" experience - like it should be.

Some other features:

Supported pages:

Safety & Privacy:

This is a free and open source project, available at: https://github.com/cachho/jadeship-browser-extension

Installation for Users

You can install the extension from the Chrome Web Store or Firefox Browser Add-Ons.

Side Loading

Alternatively, to use pre-release versions you can clone the repository and build from source (npm install and npm run build commands are all you need). Then install the zip files.

If you don't want to build from source, you can check this repo's releases page to directly download the zip files, ready for installation.

Development

This extension uses one codebase for firefox and chromium browsers.

Before you do anything else, clone the repository. Install the dependencies with npm install.

Codebase

This project is written in typescript.

Virtually all dependencies are for the developer experience and code maintainability.

current state: this project has gotten more ambitious than I initially anticipated. All the maintenance packages have been added after the majority of the code has been written. It's also my first browser extension. That's why some parts might be unconventional.

Testing in the browser

For testing on chromium and firefox you need to compile the typescript files. For this purpose you should have the typescript compiler installed globally (npm install -g typescript).

Webpack allows for hot reloads by running npm run watch.

If you change anything, you always have to reload the extension in the browser. Because chrome can load unpacked files, it's quicker and recommended for developing, however both browsers must remain compatible.

Test Suite: There is a subreddit that's specifically built to put all links that this extension has to work with in front of you: https://www.reddit.com/r/RADev/?f=flair_name%3A%22Test%22

Chromium

Chromium allows you to use use an unpacked folder, so running npm run dev or npm run watch is enough. The project is setup in a way, where you can go to chrome://extensions/, and load the root folder with manifest.json inside, it automatically points to the tsc-compiled files from inside build/. If you want to make sure everything works with the packaged zip, drag dist/chromium.zip into the chrome://extensions/ window.

Firefox

The extension needs to be packed as a zip. To do so run npm run build. It can then be found at dist/firefox.zip. Again, if you change anything you have to run the build script again.

In Firefox, to test it in the browser, you have to load the zipped extension (dist/firefox.zip) as a temporary addon. This can be done at about:debugging#/runtime/this-firefox.

To do / future developments

There's no reason this should only work on reddit. We can expand beyond that. However, for reasons of security, trust and performance, wildcard permissions for every site have to be avoided. That means that every site this extension is supposed to work on has to be defined in the manifest. If you have any other site this could work with, please open an issue.

I tried google sheets, but it seems very hard to modify the html there.

Bugs / Issues / Support

The following site can be used to quickly report bugs: https://www.jadeship.com/report?service=Browser+Extension

It's even better if you open an issue here on github, so we can methodically fix the issue.

Disclaimer

Not affiliated with reddit.com, weidian.com, taobao.com, tmall.com, 1688.com, or any of the agent pages listed in the manifest. We do not represent those websites or companies.