From a9f55aa64fe5cd0430e7d4b6e1baed4021160418 Mon Sep 17 00:00:00 2001 From: Cutls Date: Mon, 30 Sep 2019 02:22:44 +0900 Subject: [PATCH] Add: compatibility viewer --- app/js/login/manager.js | 68 +++++++++++++++++++++++++- app/source/version.json | 88 ++++++++++++++++++++++++++++++++++ app/view/make/acct.sample.html | 18 +++++++ 3 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 app/source/version.json diff --git a/app/js/login/manager.js b/app/js/login/manager.js index 64eb9d8c..00d15b1b 100644 --- a/app/js/login/manager.js +++ b/app/js/login/manager.js @@ -299,6 +299,7 @@ function login(url) { misskeyLogin(url); return; } + $("#compt").hide() if ($('#linux:checked').val() == "on") { var red = "urn:ietf:wg:oauth:2.0:oob" } else { @@ -327,6 +328,7 @@ function login(url) { localStorage.setItem("client_id", json["client_id"]); localStorage.setItem("client_secret", json["client_secret"]); $("#auth").show(); + versionChecker(url) $("#add").hide(); postMessage(["openUrl", auth], "*") if ($('#linux:checked').val() == "on") { } else { @@ -334,7 +336,71 @@ function login(url) { } } } - +} +function versionChecker(url) { + var start = "https://" + url + "/api/v1/instance"; + fetch(start, { + method: 'GET', + headers: { + 'content-type': 'application/json', + }, + }).then(function (response) { + return response.json(); + }).catch(function (error) { + todo(error); + console.error(error); + }).then(function (json) { + var version = json.version + if (version) { + var reg = version.match(/^[0-9]\.[0-9]\.[0-9]/u); + if (reg) { + reg = reg[0] + versionCompat(url, reg, json.title, version) + } + } + }); +} +function versionCompat(url, ver, title, real) { + $("#compt-instance").text(title) + $("#compt-ver").text(real) + $("#compt-list").html("") + var start = "../../source/version.json"; + fetch(start, { + method: 'GET', + headers: { + 'content-type': 'application/json', + }, + }).then(function (response) { + return response.json(); + }).catch(function (error) { + todo(error); + console.error(error); + }).then(function (json) { + var complete = false + var ct = 0 + Object.keys(json).forEach(function (key) { + var data = json[key]; + if (data) { + if (key != ver && !complete) { + for (var i = 0; i < data.length; i++) { + var e = "" + if (i == 0) { + e = "(" + key + ")" + } + $("#compt-list").append('
  • ' + data[i] + e + '
  • ') + ct++; + e = "" + } + } else if (!complete) { + complete = true + } + } + var lastkey = key + }); + if (lang.language == "ja" && ct > 0) { + $("#compt").show() + } + }); } //これが後のMisskeyである。 diff --git a/app/source/version.json b/app/source/version.json new file mode 100644 index 00000000..64666caa --- /dev/null +++ b/app/source/version.json @@ -0,0 +1,88 @@ +{ + "latest":[], + "3.0.0": [ + "プロフィールディレクトリの表示", + "ホワイトリスト式のトレンドタグ(3.0の機能)", + "Featuredハッシュタグの追加", + "ホームタイムラインと通知タイムラインの未読管理" + ], + "2.9.3": [], + "2.9.2": [], + "2.9.1": ["オーディオのアップロードと再生"], + "2.9.0": ["ユーザーごとの通知のフィルター"], + "2.8.4": [], + "2.8.3": [], + "2.8.2": [], + "2.8.1": ["blurhashによる閲覧注意画像表示"], + "2.8.0": [ + "アンケートの作成と投票", + "keybase等のアカウント認証対応", + "検索のオフセット等", + "ブロックされているアカウントを表示したときに「ブロックされています」と表示" + ], + "2.7.4": [], + "2.7.3": [], + "2.7.2": [], + "2.7.1": [], + "2.7.0": ["プロフィールディレクトリのユーザー追加", "時間指定投稿"], + "2.6.5": [], + "2.6.4": [], + "2.6.3": [], + "2.6.2": [], + "2.6.1": [], + "2.6.0": [ + "ダイレクトメールだけのタイムラインの表示", + "詳細画面の「これより後のタイムライン」の利用", + "タイムラインにおけるカードの表示" + ], + "2.5.2": [], + "2.5.1": [], + "2.5.0": ["リプライ数のカウント", "プロフィールに紹介する"], + "2.4.5": [], + "2.4.4": [], + "2.4.3": ["フィルター機能", "フォローレコメンデーション"], + "2.4.2": [], + "2.4.1": [ + "削除して再編集の画像を下書きに戻す", + "検索時のトゥート数のグラフ等の表示(v2 search)", + "トゥート内のURLからトゥートやアカウントの情報を開く", + "設定ページから製作者のアカウント情報を開く", + "TheDeskお知らせに添付されたトゥートを開く", + "Glance TLやtootsearchのトゥートやアカウント情報を表示する" + ], + "2.4.0": [ + "プロフィールのフィールド(4つの項目)を見る", + "プロフィールにカスタム絵文字を使用する" + ], + "2.3.3": [], + "2.3.2": [], + "2.3.1": [], + "2.3.0": [ + "トゥートに埋め込まれたYouTubeやニコ動などをその場で再生する", + "ローカル(メディア)と連合(メディア)タイムライン" + ], + "2.2.0": [], + "2.1.3": [], + "2.1.2": [], + "2.1.0": [ + "リスト機能", + "アカウント移行機能(移行された通知)", + "Glance TLのストリーミング" + ], + "2.0.0": ["カスタム絵文字"], + "1.6.1": [], + "1.6.0": ["トゥートのピン留め"], + "1.5.1": [], + "1.5.0": ["Mastodonのサーバー規定値による投稿範囲の変更"], + "1.4.7": [], + "1.4.6": [], + "1.4.5": [], + "1.4.4": [], + "1.4.3": [], + "1.4.2": [], + "1.4.1": ["ユーザーによるドメインブロック"], + "1.3.3": [], + "1.3.2": [], + "1.3.1": [], + "1.3.0": [] +} diff --git a/app/view/make/acct.sample.html b/app/view/make/acct.sample.html index 1e4aa144..4792963f 100644 --- a/app/view/make/acct.sample.html +++ b/app/view/make/acct.sample.html @@ -61,6 +61,19 @@ .first .hide-first { display: none; } + + #compt { + margin-top: 20px; + margin-bottom: 50px; + border: 1px solid; + border: 1px solid; + padding: 5px; + } + + #compt li { + list-style-type: disc; + margin-left: 20px; + } @@comment-start@@ @@ -120,6 +133,11 @@ @@codepastewarn@@

    +