Skip to content

rmo0/yarc

Repository files navigation

yarc

好きでつながるバーチャルワールド - Yay!(イェイ)のアカウント生成・自動フォローをコマンドラインで操作するCLIツールです。

機能

  • 生成したアカウントをMongoDBに保存
  • 24時間経過判定・自動フォロー(ON/OFF)
  • Proxy対応
  • BAN対策:タイムラインから投稿・カバー画像をコピー

必要環境

  • Node.js 18+
  • MongoDB(Atlas も可)

設定ファイル

.env(必須)

DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=yarc
DB_HOST=cluster0.xxxx.mongodb.net

(MongoDB Atlas の場合は DB_HOST にクラスターのホスト名を指定。URI は DB_USER / DB_PASSWORD / DB_NAME / DB_HOST から自動で組み立てます。)

config.json(必須)

{
  "api": {
    "apiKey": "your_api_key",
    "signedInfo": "your_signed_info",
    "yayApiHost": "https://api.yay.space",
    "userAgent": "your_user_agent",
    "apiVersionKey": "your_api_version_key"
  },
  "storage": { "mode": "json" },
  "proxy": { "url": "" },
  "logging": { "locale": "ja" }
}
  • logging.locale: ログ・メッセージの言語。"ja"(日本語)または "en"(英語)。未指定時は "ja"。環境変数 LOG_LANG または LOCALE を指定すると config より優先されます。

ログは次の形式に統一されています。1行1イベントで、必要に応じて [レベル] [コンテキスト] メッセージ(例: [INFO] [user@example.com] BAN対策: 動的にコピー元を選択します...)。

セットアップ

yarn install

or

npm install

構成

役割 パス
CLI エントリ・コマンド定義 bin/yarc-cli.cjs
定数(フォロー条件・タイムアウト等) lib/constants.js
設定の表示/取得/更新 cli/config-cli.js
プロキシ get/set/clear/test cli/proxy-cli.js
フォロー対象ユーザーID get/set cli/follow-target-cli.js
フォロー実行 cli/follow-cli.js
自動フォロー status/enable/run-once cli/autofollow-cli.js
アカウント生成 once/loop cli/generate-cli.js
生成 ON/OFF 状態の永続化 cli/generate-state-cli.js
環境・設定・アカウント数要約 cli/status-cli.js
ヘッドレス常駐 cli/run-cli.js
DB 接続と followers/blacklist モデル cli/db-models.js
JSON 読書・ドットパス・値パース utils/json-config.js

使い方(CLI)

# ヘルプ・バージョン(型表示は出さない)
yarc --help
yarc --version

# 環境・設定・アカウント数の要約
yarc status

# 設定の表示
yarc config show

# プロキシ設定
yarc proxy set --url "http://user:pass@host:port"
yarc proxy test

# フォロー対象ユーザーIDの設定
yarc target set --user 123456789
yarc target get

# フォロー実行(target 設定を使用)
yarc follow --mode all
# またはユーザーIDを直接指定
yarc follow --user 123456789 --mode one

# 自動フォロー ON/OFF
yarc autofollow enable
yarc autofollow disable
yarc autofollow run-once

# アカウント生成(指定件数)
yarc generate once --count 10
# 常駐用フラグ(admin-config に保存)
yarc generate enable --max 0
yarc generate disable

# ヘッドレス常駐(PM2 向け)
yarc run
yarc run --interval 300

常駐

yarc のフォルダで実行する場合(package.json の scripts):

npm run app:start
npm run app:logs
npm run app:stop
npm run app:restart

どこかのコマンドプロンプトから実行する場合(lockfile や package.json の場所に依存しない):

npm linknpm i -g . で yarc をグローバルに入れたうえで、任意のディレクトリで:

yarc app start
yarc app logs
yarc app stop
yarc app restart

このとき PM2 は「yarc をインストールした側のプロジェクト」を参照します(実行中の cwd は見ません)。

yarc runadmin-config.jsongenerateEnabled / autoFollowEnabled を参照し、有効な場合に生成・自動フォローを実行します。

バージョン

Semantic Versioning に従います。

  • Major: 大きな仕様変更・後方互換性のない変更
  • Minor: 新機能追加・後方互換性のある変更
  • Patch: バグ修正・小規模な修正

トラブルシューティング

MongoDB Atlas で「Could not connect」「accounts が null」

  • IP ホワイトリスト: Atlas は接続元 IP を許可リストで制限しています。
    Atlas の Network AccessAdd IP Address で、今使っている PC の IP を追加するか、開発時は Allow Access from Anywhere0.0.0.0/0)を追加してください。
  • コマンドプロンプトでは accounts が null、VSCode では上記エラーになる場合は、実行場所や .env の読み込み先が違うことがあります。どちらも「yarc のプロジェクト直下の .env」が読まれ、かつ Atlas の IP 許可が付いているか確認してください。

「MongoDB接続に失敗しました」「Client must be connected before running operations」

  • 原因: (1) .env の DB_* が未設定・誤り、(2) Atlas の IP ホワイトリストに未登録、(3) 常駐中に接続が切れた(ネット切れ・Atlas のアイドル切断など)。
  • 対処: .env と Atlas の Network Access を確認。常駐(PM2)では、接続が切れても次の周期で自動再接続を試みます。それでも続く場合は yarc app restart でプロセスを再起動してください。

「self-signed certificate in certificate chain」(API 呼び出し失敗)

  • 原因: 社内プロキシやセキュリティソフトが HTTPS を解析しており、証明書が「自己署名」扱いになっている。
  • 対処: 開発環境のみ、環境変数で SSL 検証を無効化することができます(セキュリティ上は非推奨)。PM2 なら ecosystem.config.cjsenvNODE_TLS_REJECT_UNAUTHORIZED: '0' を追加するか、起動前に set NODE_TLS_REJECT_UNAUTHORIZED=0(Windows)を実行してから yarc app start を実行。

npm link したあと .env が読まれない

  • yarc の CLI は yarc を置いたディレクトリ(パッケージルート)の .env を読みにいくようにしています。npm link 後も、その yarc 用 .env は yarc のリポジトリ側node_modules/yarc の実体になっているフォルダ)に置いてください。
  • 別プロジェクトから yarn link yarc などで使う場合は、リンク元の yarc フォルダに .env と config.json を用意すれば、どこから yarc を実行してもその .env が使われます。

注意

  • 同時生成 10 以上はプロキシ帯域とサーバー負荷の観点で非推奨です。

ライセンス

本ソフトウェアは LICENSE に基づき提供されています。

  • 利用範囲: 個人利用に限り使用・改変可能。再配布・サブライセンス・改変版の公開は著作権者の明示的な許可が必要です。
  • 免責: 本ソフトウェアは「現状のまま」提供され、明示・黙示を問わずいかなる保証もありません。本ソフトウェアの使用または使用不能により生じた損害(データ損失・サービス停止・第三者とのトラブル等を含む)について、著作権者は一切の責任を負いません。

About

好きでつながるバーチャルワールド - Yay!(イェイ)のフォロワーを制御するCUIアプリケーション

Topics

Resources

License

Stars

Watchers

Forks

Contributors