0.4.19 • Published 21 days ago

@tryghost/mg-substack-members-csv v0.4.19

Weekly downloads
7
License
MIT
Repository
github
Last release
21 days ago

Substack Ghost CSV Converter

Converts the "Total Email List" and "Subscribers" CSV exports from Substack to a CSV compatible with Ghost.

Install

To install the CLI, which is required for the Usage commands below:

npm install --global @tryghost/migrate

To use this package in your own project:

npm install @tryghost/mg-substack-members-csv --save

or

yarn add @tryghost/mg-substack-members-csv

Usage

To run a Substack CSV migration, the required command is:

migrate substack-members --pathToFile /path/to/emails.csv

To convert paid subscriptions, add --subs with a second file path:

migrate substack-members --pathToFile /path/to/emails.csv --subs /path/to/members.csv

It's possible to pass more options, in order to achieve a better migration file for Ghost:

  • --pathToFile (required)
    • Path to the signups CSV file as generated by Substack ("Total Email List").
    • string - default: null
  • -V --verbose
    • Show verbose output
    • bool - default: false
  • -s --subs
    • Path to the subscribers CSV file (paid, comp, gift) as generated by Substack ("Subscribers")
    • string - default: null
  • -l --limit
    • Define the batch limit for import files
    • int - default: 5000
  • --comp
    • Provide two values in the format YY|YYYYMMDD:none|free. YY is the threshold in years or YYYYMMDD as the exact date after which Substack comp members should receive a complimentary plan depending on the expiry date. none|free the option how to import members before this threshold, e. g. 5:free
    • string - default: 0:free
    • Choices: YY:none, YY:free, YYYYMMDD:none, YYYYMMDD:free
  • --compLabel
    • Provide a label for Substack comp subscribers
    • string - default: substack-comp
  • --gift
    • Provide two values in the format YY|YYYYMMDD:none|free. YY is the threshold in years or YYYYMMDD as the exact date after which Substack gift members should receive a complimentary plan depending on the expiry date. none|free the option how to import members before this threshold, e. g. 5:free
    • string - default: 0:free
    • Choices: YY:none, YY:free, YYYYMMDD:none, YYYYMMDD:free
  • --giftLabel
    • Provide a label for Substack gift subscribers
    • string - default: substack-gift
  • --freeLabel
    • Provide a label for Substack free subscribers
    • string - default: substack-free
  • --paidLabel
    • Provide a label for Substack paid subscribers
    • string - default: substack-paid
  • --cache
    • Persist local cache after migration is complete (Only if --zip is true)
    • bool - default: true

A more complex migration command that accounts for Stripe data could look like this:

migrate substack-members --pathToFile /path/to/emails.csv --subs /path/to/members.csv --giftLabel Gifted --freeLabel Free --paidLabel Supporter --compLabel 'Try It Out'

Develop

This is a mono repository, managed with lerna.

Follow the instructions for the top-level repo. 1. git clone this repo & cd into it as usual 2. Run yarn to install top-level dependencies.

Run

To run a local development copy, cd into this directory, and use yarn dev instead of migrate like so:

yarn dev substack-members --pathToFile /path/to/emails.csv

Test

  • yarn lint run just eslint
  • yarn test run lint and tests

Copyright & License

Copyright (c) 2013-2023 Ghost Foundation - Released under the MIT license.

0.4.19

21 days ago

0.4.18

2 months ago

0.4.17

4 months ago

0.4.16

5 months ago

0.4.15

5 months ago

0.4.9

10 months ago

0.4.10

9 months ago

0.4.13

7 months ago

0.4.14

7 months ago

0.4.11

9 months ago

0.4.12

7 months ago

0.4.8

11 months ago

0.4.5

1 year ago

0.4.7

1 year ago

0.4.6

1 year ago

0.4.4

1 year ago

0.4.3

1 year ago

0.4.2

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.6

1 year ago

0.3.5

1 year ago

0.3.7

1 year ago

0.3.0

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.4

2 years ago

0.3.3

2 years ago

0.2.20

2 years ago

0.2.19

2 years ago

0.2.18

2 years ago

0.2.16

2 years ago

0.2.14

2 years ago

0.2.13

3 years ago

0.2.12

3 years ago

0.2.11

3 years ago

0.2.10

3 years ago

0.2.9

3 years ago

0.2.8

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.3

3 years ago

0.2.2

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago