Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/buildext.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,20 +38,20 @@ jobs:
- name: Create ZIP for Extension
run: |
cd dist/ext
zip ../../ArchiveWeb.page-${{ steps.package-version.outputs.current-version }}-extension.zip -r ./
zip ../../Packrat-${{ steps.package-version.outputs.current-version }}-extension.zip -r ./

- name: Upload Extension ZIP to GitHub
uses: softprops/action-gh-release@v1
with:
files: ArchiveWeb.page-${{ steps.package-version.outputs.current-version }}-extension.zip
files: Packrat-${{ steps.package-version.outputs.current-version }}-extension.zip
tag_name: v${{ steps.package-version.outputs.current-version }}
fail_on_unmatched_files: true
draft: true

- name: Upload Extension ZIP to Chrome Web Store
uses: mnao305/chrome-extension-upload@3.0.0
with:
file-path: ArchiveWeb.page-${{ steps.package-version.outputs.current-version }}-extension.zip
file-path: Packrat-${{ steps.package-version.outputs.current-version }}-extension.zip
extension-id: fpeoodllldobpkbkabpblcfaogecpndd
client-id: ${{ secrets.CHROME_WEBSTORE_CLIENT_ID }}
client-secret: ${{ secrets.CHROME_WEBSTORE_CLIENT_SECRET }}
Expand Down
80 changes: 12 additions & 68 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,19 @@
<h1>
<div align="center">
<img alt="ArchiveWebpage" src="src/assets/brand/archivewebpage-lockup-color-dynamic.svg" width="90%">
<img alt="Packrat by OPFN" src="src/assets/brand/packrat-lockup-color-dynamic.svg" width="90%">
</div>
</h1>

ArchiveWeb.page is a JavaScript based application for interactive, high-fidelity web archiving that runs directly in the browser. The system can be used as a Chrome/Chromium based browser extension and also as a standalone Electron app.
Packrat is an browser extension for Chromium-based browsers that lets you create high-fidelity web archives out of your browsing history.

The system creates, stores, and replays high-fidelity web archives stored directly in the browser's storage (via IndexedDB).

For more detailed info on how to use the extension and standalone app, see the [ArchiveWeb.page User Guide](https://archiveweb.page/guide).

The browser extension is available on the [Chrome Web Store](https://chrome.google.com/webstore/detail/webrecorder/fpeoodllldobpkbkabpblcfaogecpndd).

Downloads for the desktop are are available on the [GitHub Releases page](https://github.com/webrecorder/archiveweb.page/releases).
Packrat is available on the Chrome Web Store.

## Architecture

The extension makes use of the Chrome debugging protocol to capture and save network traffic, and extends the [ReplayWeb.page](https://github.com/webrecorder/replayweb.page) UI and the [wabac.js](https://github.com/webrecorder/wabac.js) service worker system for replay and storage.
Packrat is based on Webrecorder's [ArchiveWeb.page](https://webrecorder.net/archivewebpage) which uses the Chrome debugging protocol to capture and save network traffic. Like ArchiveWeb.page, Packrat also uses Webrecorder's [ReplayWeb.page](https://webrecorder.net/replaywebpage) viewer to replay archived content.

## Development

The Chromium extension and Electron app are built from the same source code for ease of development.

### Prerequisites

- Node >=12
Expand All @@ -31,73 +23,25 @@ The Chromium extension and Electron app are built from the same source code for

To build the extension or Electron app locally for development, do the following:

1. Clone this repo:
```sh
git clone https://github.com/webrecorder/archiveweb.page.git
```
2. Change the working directory:
```sh
cd archiveweb.page
```
3. Install dependencies:
1. Clone this repo and `cd` to the working directory
2. Install dependencies:
```sh
yarn install
```
4. Make development build:
3. Create a development build:
```sh
yarn build-dev
```
OR
Run `yarn start-ext` to update the build automatically as you make changes

The development build can now be used to develop the extension or Electron app.

### Developing the Chromium extension
### Adding the development extension to Chrome

To install the extension locally, load the development build as an unpacked extension:

1. Open the Chrome Extensions page ([chrome://extensions](chrome://extensions)).

2. Choose 'Load Unpacked Extension' and point to the `./dist/ext` directory in your local copy of this repo.

3. Click the extension icon to show the extension popup, start archiving, etc...

#### Update extension on code changes

To watch source code files and recompile the development build on change, run:

```sh
yarn run start-ext
```

Now, saving changes to source will automatically rebuild the `dist/ext` directory.

After making changes, the extension still needs to be reloaded in the browser.

1. From the Chrome extensions page, click the reload button to load the latest version.

2. Click the extension icon to show the extension popup, start recording, etc... The dev build of the extension will be a different color from the production version.

### Developing the Electron app

To start the Electron app using development build:

```sh
yarn run start-electron
```

The Electron app will open recording in a new window. It is is designed to support Flash, better support for IPFS sharing.

#### Update app on change

Currently, the dev workflow for the Electron app does not support automatically rebuilding on file changes.

After making changes, rerun `yarn run build-dev` and `yarn run start-electron` to view your changes in the app.

## Standalone Build

To create a platform-specific binary, run:

```sh
yarn run pack
```

The standalone app will then be available in the `./dist/` directory.
> [!NOTE]
> You'll still have to refresh the extension from chrome://extensions as you make changes, even if you're using live reloading.
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"name": "@webrecorder/archivewebpage",
"productName": "ArchiveWeb.page",
"name": "@opfn/packrat",
"productName": "Packrat",
"version": "0.15.0",
"main": "index.js",
"description": "Create Web Archives directly in your browser",
"description": "Create an archive of every page you browse",
"repository": {
"type": "git",
"url": "git+https://github.com/webrecorder/archiveweb.page.git"
},
"author": "Webrecorder Software",
"author": "OPFN",
"license": "AGPL-3.0-or-later",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.0",
Expand Down
1 change: 0 additions & 1 deletion src/assets/brand/archivewebpage-lockup-color-dynamic.svg

This file was deleted.

1 change: 0 additions & 1 deletion src/assets/brand/archivewebpage-lockup-color.svg

This file was deleted.

Loading
Loading