ArticleSync - マルチプラットフォーム記事同期プラグイン

ArticleSyncは、ユーザーが複数のソーシャルプラットフォームに記事を簡単に同期・公開できるブラウザ拡張機能です。ローカルの下書きから、知乎(Zhihu)やBilibiliなどの主要プラットフォームに記事を公開することをサポートしています。これにより、異なるソーシャルメディアプラットフォーム間で記事を同期する作業が、シンプルかつ効率的になるワンストップソリューションを提供します。

ブラウザ拡張機能の仕組みに基づき、ローカルでログインしているアカウントを自動的に検出し、アカウント情報の漏洩や環境の異常といったリスクを防ぎます。

Chrome Manifest V3ブラウザ拡張機能の標準に基づいて開発されており、カーネルのバージョン要件にご注意ください。

背景

ご存知の通り、私は最近、いくつかのブログプラットフォームと多くのソーシャルサイトを新たに使い始めました。もし、それらすべてで活発に更新を続けたいと思ったらどうすればいいでしょうか。(私がまだ生きていることを証明するために)ついでに、ワンクリックで記事を転載することもできます。

私が最も頻繁に更新するのは自分の小さなサイトですが、他のプラットフォームはたまにしか更新しません。しかし、毎回手動で投稿するのは面倒です。そこで、ローカルでログインしているアカウントを自動検出し、自動で投稿してくれるプラグインが作れないかと考えました。

「自分のことは自分でやる」ということわざの通り、数日間いじくり回して、なんとか使えるものができました。残りの部分は時間があるときに更新します。お金をくれるなら話は別ですが。

このプラグインにはまだ多くの未完成な部分があり、本番環境で複数のプラットフォームでのテストも行っていません。エラーが発生するのはごく普通のことですので、その際はIssueを提出するか、自分で修正してPRを送ってください。てへぺろ〜

話の邪魔にならないように、スクリーンショットは最後に載せておきました。

それと、オープンソースは大変なので、スターを付けてくれると嬉しいです。へへへ〜

本当は、私のコミュニティプラットフォームを自動でフォローするような、個人的な機能を追加しようかとも思いました。

機能と特徴

Todoリスト

対応プラットフォーム

メディア カテゴリ ステータス URL 対応形式 更新日時
Bilibili (哔哩哔哩) 主要セルフメディア 対応済み https://bilibili.com/ HTML 2024/10/13
知乎 (Zhihu) 主要セルフメディア 対応済み https://www.zhihu.com/ HTML 2024/10/13
博客园 (Cnblogs) ブログ 対応済み https://cnblogs.com/ HTML 2024/10/14
新浪头条 (Sina Headline) 主要セルフメディア 対応済み https://weibo.com/ HTML 2024/10/14
Emlog オープンソースCMS 対応済み https://www.emlog.net/ HTML 2024/10/14
WordPress オープンソースCMS 対応済み https://cn.wordpress.org/ HTML,Markdown 2024/10/14
Discuz! オープンソースCMS 対応済み https://www.discuz.vip/ Markdown,Text 2024/10/15

インストール手順

  1. リポジトリをローカルにクローンします:

    PLAINTEXT
    git clone https://github.com/iAJue/Articlesync.git
    クリックして展開し、詳細を表示
  2. プロジェクトディレクトリに移動します:

    PLAINTEXT
    cd articlesync
    クリックして展開し、詳細を表示
  3. 依存関係をインストールします:

    PLAINTEXT
    npm install
    クリックして展開し、詳細を表示
  4. プロジェクトをビルドします

    PLAINTEXT
    npm run build
    クリックして展開し、詳細を表示
  5. 拡張機能を読み込みます:

    • Chromeブラウザを開き、chrome://extensions/ にアクセスします。
    • 「デベロッパーモード」を有効にします。
    • 「パッケージ化されていない拡張機能を読み込む」をクリックし、dist/ フォルダを選択します。
  6. 開発

    1. 開発環境を起動します

      PLAINTEXT
      npm run watch-reload
      クリックして展開し、詳細を表示
    2. ホットリロードが設定されているため、コードを修正するたびに拡張機能は自動的にビルドされ、Chromeも自動的に再読み込みします。

アダプターの追加方法

  1. src/adapters ディレクトリに、例えば PlatformAdapter.js のような新しいアダプターファイルを作成します。

  2. BaseAdapter クラスを継承し、以下のメソッドを実装します:

    • getMetaData(): 現在のページのメタデータを取得します。
    • addPost(post): 新しい記事を追加します。
    • editPost(post, post_id): 記事を編集します。
    • uploadFile(file): ファイルをアップロードします。
    • constructor コンストラクタを定義し、アダプターのバージョン、タイプ、名称、その他の初期化データを設定します。
      PLAINTEXT
      constructor() {
          super();
          this.version = '1.0';
          this.type = 'Twitter';
          this.name = '推特';
      }
      クリックして展開し、詳細を表示
  3. src/adapters/adapters.js で新しいアダプターをインポートし、登録します。

プロジェクト構造

PLAINTEXT
├── src
│   ├── adapters         # 各プラットフォームのアダプター
│   │   ├── ZhiHuAdapter.js
│   │   ├── BilibiliAdapter.js
│   ├── contents         # コンテンツスクリプト
│   ├── background.js    # バックグラウンドスクリプト
│   ├── popup            # 拡張機能のポップアップUI
│   │   ├── popup.js
│   │   ├── popup.html
│   ├── options          # 拡張機能のオプションページ
│   │   ├── options.js
│   │   ├── options.html
│   ├── dist             # ビルド後のファイル
│   ├── manifest.json    # Chrome拡張機能のマニフェストファイル
├── webpack.config.js    # Webpack設定ファイル
├── package.json         # プロジェクト設定ファイル
├── README.md            # プロジェクト説明ファイル
├── .gitignore           # Git無視ファイル
クリックして展開し、詳細を表示

貢献ガイド

プロジェクトへの貢献を歓迎します!改善提案や新しいプラットフォームの追加を希望される場合は、以下の手順に従ってください:

  1. リポジトリをフォークします。
  2. 新しいブランチを作成します。
  3. 変更をコミットします。
  4. プルリクエストを作成します。

フィードバック

使用中に問題や提案がありましたら、以下の方法でお知らせください:

寄付 ☕

PLAINTEXT
私はかわいいので、お金をください!
I am cute, please give me money!
クリックして展開し、詳細を表示

image

ライセンス

Copyright (c) 2024-present, iAJue

このプロジェクトは GPL-3.0 ライセンスに従います。

スクリーンショット

著作権表示

著者: MoeJue

リンク: https://ja.moejue.cn/posts/218/

ライセンス: クリエイティブ・コモンズ表示-非営利-継承4.0国際ライセンス

この作品は、クリエイティブ・コモンズ表示-非営利-継承4.0国際ライセンスに基づいてライセンスされています。

検索を開始

キーワードを入力して記事を検索

↑↓
ESC
⌘K ショートカット