#๋ฆฌ๋ทฐ ๋ช…๋ น (ko-KR)

์‚ฌ์ „ ์ค€๋น„์™€ registered-apps.json ์„ค์ •์€ README๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

#review:collect

๊ฒฝ์Ÿ ์•ฑ ๋ฆฌ๋ทฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฉ”์ธ ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.

  • npm run review:collect -- --my-app <owner> ...
  • node dist/cli.js ...

#CLI ์˜ต์…˜

  • --my-app (ํ•„์ˆ˜): ๋‚ด ์•ฑ ID ํ•ด์„ ํ‚ค
  • --play: ๊ฒฝ์Ÿ ์•ฑ Google Play app id
  • --ios: ๊ฒฝ์Ÿ ์•ฑ App Store app id
  • --platform: both | ios | android (๊ธฐ๋ณธ๊ฐ’ both)
  • --auto-top: ์ž๋™ ํƒ์ƒ‰ ์‹œ ์Šคํ† ์–ด๋ณ„ ์ƒ์œ„ N๊ฐœ (๊ธฐ๋ณธ๊ฐ’ 5)
  • --limit: ์†Œ์Šค ์š”์ฒญ๋‹น ๋ฆฌ๋ทฐ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’ 200, ๊ณ ์ • ์ƒํ•œ ์•„๋‹˜)
  • --global: ๊ธ€๋กœ๋ฒŒ ๋งˆ์ผ“ ์ˆœํšŒ ์ˆ˜์ง‘ (๊ธฐ๋ณธ ํ™œ์„ฑํ™”)
  • --no-global: ๊ธ€๋กœ๋ฒŒ ์ˆœํšŒ ๋น„ํ™œ์„ฑํ™” (Play us/en, App Store us๋งŒ)
  • --append-existing: ๊ธฐ์กด ์ถœ๋ ฅ JSON๊ณผ ๋ณ‘ํ•ฉ ํ›„ reviewId ๊ธฐ์ค€ dedupe (๊ธฐ๋ณธ๊ฐ’ false)
  • --apps: ๊ฒฝ์Ÿ ์•ฑ ๋ชฉ๋ก JSON ๊ฒฝ๋กœ
  • --registered-apps-path: ๋“ฑ๋ก ์•ฑ ํŒŒ์ผ ๊ฒฝ๋กœ ์ปค์Šคํ…€
  • --output text|json: ์ถœ๋ ฅ ๋ชจ๋“œ (๊ธฐ๋ณธ๊ฐ’ text)
  • --dry-run: ์‹คํ–‰ ๊ณ„ํš๋งŒ ์ถœ๋ ฅ
  • --validate-only: ๊ฒ€์ฆ๋งŒ ์ˆ˜ํ–‰

#์˜ˆ์‹œ

npm run review:collect -- --my-app golden-horizon --apps apps.json --limit 200
npm run review:collect -- --my-app golden-horizon --auto-top 5 --limit 200
npm run review:collect -- --my-app golden-horizon --apps apps.json --platform ios --limit 200
npm run review:collect -- --my-app golden-horizon --apps apps.json --limit 200 --append-existing
npm run review:collect -- --my-app golden-horizon --apps apps.json --output json

#์ถœ๋ ฅ

  • data/{myAppId}/reviews/{competitor}.json
  • reviews[] ํ•ญ๋ชฉ์—๋Š” ์•„๋ž˜ ํ•„๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
    • reviewId: dedupe ๋ฐ preview ์ƒํƒœ ์—ฐ๋™์šฉ ์•ˆ์ • ID
    • storeReviewId (์„ ํƒ): ์Šคํ† ์–ด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์›๋ณธ ๋ฆฌ๋ทฐ ID (๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ)

#review:collect-by-name

์•ฑ ์ด๋ฆ„์œผ๋กœ id๋ฅผ ์ฐพ์€ ๋’ค ๋ฆฌ๋ทฐ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.

  • npm run review:collect-by-name -- --my-app <owner> --name "<query>" ...
  • node dist/addByName.js ...

#CLI ์˜ต์…˜

  • --my-app (ํ•„์ˆ˜): ์†Œ์œ  ์•ฑ ํ‚ค
  • --name (ํ•„์ˆ˜): ์•ฑ ์ด๋ฆ„ ๊ฒ€์ƒ‰์–ด
  • --play-id: Play id ๊ฐ•์ œ ์ง€์ •(์„ ํƒ)
  • --ios-id: App Store id ๊ฐ•์ œ ์ง€์ •(์„ ํƒ)
  • --platform: both | ios | android (๊ธฐ๋ณธ๊ฐ’ both)
  • --limit: ์†Œ์Šค ์š”์ฒญ๋‹น ๋ฆฌ๋ทฐ ์ˆ˜ (๊ธฐ๋ณธ๊ฐ’ 200, ๊ณ ์ • ์ƒํ•œ ์•„๋‹˜)
  • --global / --no-global: ๊ธ€๋กœ๋ฒŒ ์ˆœํšŒ ํ† ๊ธ€
  • --append-existing: ๊ธฐ์กด ์ถœ๋ ฅ JSON๊ณผ ๋ณ‘ํ•ฉ ํ›„ reviewId ๊ธฐ์ค€ dedupe (๊ธฐ๋ณธ๊ฐ’ false)
  • --registered-apps-path: ๋“ฑ๋ก ์•ฑ ํŒŒ์ผ ๊ฒฝ๋กœ ์ปค์Šคํ…€
  • --output text|json: ์ถœ๋ ฅ ๋ชจ๋“œ

#์˜ˆ์‹œ

npm run review:collect-by-name -- --my-app golden-horizon --name "BJJBuddy" --limit 200
npm run review:collect-by-name -- --my-app golden-horizon --name "BJJBuddy" --platform ios
npm run review:collect-by-name -- --my-app golden-horizon --name "BJJBuddy" --append-existing
npm run review:collect-by-name -- --my-app golden-horizon --name "BJJBuddy" --output json

#์ถœ๋ ฅ

  • data/{myAppId}/reviews/manual__play-<id>__ios-<id>.json (ํ•ด์„๋œ id ์กฐํ•ฉ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง)

#review:backfill-ids

์ด๋ฏธ ์ €์žฅ๋œ ๋ฆฌ๋ทฐ JSON์—์„œ ๋ˆ„๋ฝ๋œ reviewId๋ฅผ ์žฌ๋‹ค์šด๋กœ๋“œ ์—†์ด ์ฑ„์›๋‹ˆ๋‹ค.

  • npm run review:backfill-ids -- --my-app <owner> ...
  • node dist/backfillReviewIds.js ...

#CLI ์˜ต์…˜

  • --my-app (ํ•„์ˆ˜): ์†Œ์œ  ์•ฑ ํ‚ค
  • --registered-apps-path: ๋“ฑ๋ก ์•ฑ ํŒŒ์ผ ๊ฒฝ๋กœ ์ปค์Šคํ…€
  • --input-dir (๊ธฐ๋ณธ๊ฐ’: data/{myAppId}/reviews)
  • --dry-run: ํŒŒ์ผ ์ˆ˜์ • ์—†์ด ์ ๊ฒ€๋งŒ ์ˆ˜ํ–‰
  • --output text|json: ์ถœ๋ ฅ ๋ชจ๋“œ

#์˜ˆ์‹œ

npm run review:backfill-ids -- --my-app golden-horizon
npm run review:backfill-ids -- --my-app golden-horizon --dry-run
npm run review:backfill-ids -- --my-app golden-horizon --input-dir data/golden-horizon/reviews-ko
Review - Pabal App Review Miner | Pabal | Pabal