やること: チケット
https://dev.mikutter.hachune.net/
https://dev.mikutter.hachune.net/favicon.ico?1619448608
2024-03-13T14:16:48Z
やること
Redmine
mikutter - 機能 #1596 (新規): Ruby 3.3
https://dev.mikutter.hachune.net/issues/1596
2024-03-13T14:16:48Z
toshi_a 初音
toshi.alternative@gmail.com
<ul>
<li>Ruby 3.3をサポートする</li>
<li>mikutter 5.1では、Rubyのバージョン下限を3.2.0にする(過去1バージョンのみ対応)</li>
<li>Ruby 3.0, 3.1, 3.2で追加された要素を使ってリファクタリング</li>
</ul>
mikutter - 機能 #1473 (終了): .rubocop.yml を用意する
https://dev.mikutter.hachune.net/issues/1473
2020-09-15T12:09:22Z
toshi_a 初音
toshi.alternative@gmail.com
<p>現在もmikutterのコーディングの指針は存在するが、現在のコーディング規約を知るためには直近のコミットを参照して察するしか無い。</p>
<ul>
<li>サードパーティプラグインを取り込むときに、そのプラグインとmikutterの現在のコーディング規約と一致しない</li>
<li>パッチを貰ったときに、コーディング規約に合うようにコミッタが書き換えることがある
<ul>
<li>が、明確な指針がないため、コミッタの判断だとブレることがある</li>
</ul></li>
</ul>
<p>そこで、コードを取り込むときにコードを修正する明確な指標として.rubocop.ymlを設置し、コーディング規約としてこのファイルをメンテナンスする。</p>
<a name="close後の運用"></a>
<h1 >close後の運用<a href="#close後の運用" class="wiki-anchor">¶</a></h1>
<a name="以前のコードについて"></a>
<h2 >以前のコードについて<a href="#以前のコードについて" class="wiki-anchor">¶</a></h2>
<p>以前のコードの中には多くのコーディング規約違反が発生するはずだが、修正しない。blameの結果が見辛くなってバグの原因を追跡する時のコストが上がるからだ。</p>
<p>ただし、不具合修正やリファクタリングなどで編集した位置が規約に違反している場合、規約に沿うように書き換える(現在と同じ運用)。</p>
<p>「編集した位置」の定義は、行単位にするか、あるいはreviewdogなどのツールを使うか……(ゆくゆくCIなどで評価することになることを考えたら、ツールに頼ったほうが良さそう?)。</p>
mikutter - 機能 #1420 (終了): pulseaudioプラグインを追加する
https://dev.mikutter.hachune.net/issues/1420
2020-01-04T09:23:34Z
Yuto Tokunaga
yuntan.sub1@gmail.com
<p>リマインダー用のチケットです.</p>
mikutter - 機能 #1407 (終了): miquireユーティリティの利用をやめる
https://dev.mikutter.hachune.net/issues/1407
2019-11-30T07:54:29Z
toshi_a 初音
toshi.alternative@gmail.com
<p>Twitterプラグインを切り離すタイミングでmiquireを廃止しておかないと、一生廃止できなくなるので、このタイミングでやっておきたい。</p>
<p>miquireの機能は、現在全てrequireで事足りる:</p>
<ul>
<li>第一引数は、core/以下のディレクトリ名
* :core が指定された場合は無視する</li>
<li>第一引数にmuiが指定された場合、ロードするファイル名にプレフィックスとしてcairo_かgtk_をつけて探索する
* オプションでcairo版とgtk版を切り替える機能はもうないので、プレフィックスを普通に書いたらいい</li>
</ul>
<p>いらんやんけ!←結論</p>
<p>ただし、Miquire::Pluginは、プラグインのロードのために必要なので残す。</p>
mikutter - 機能 #1380 (実装待ち): Gtk::CRUDに依存しているコードを減らす
https://dev.mikutter.hachune.net/issues/1380
2019-09-15T02:08:00Z
toshi_a 初音
toshi.alternative@gmail.com
<p><a class="issue tracker-2 status-5 priority-4 priority-default closed parent" title="機能: gtk3 (終了)" href="https://dev.mikutter.hachune.net/issues/887">#887</a> Gtk3のために、Gtkに依存するなかでもかなり複雑な、Gtk::CRUDへの依存を緩和して、Gtk依存部分を減らす。</p>
<a name="読み取り専用のGtkCRUD"></a>
<h1 >読み取り専用のGtk::CRUD<a href="#読み取り専用のGtkCRUD" class="wiki-anchor">¶</a></h1>
<p>実は多くの利用箇所で、Gtk::CRUDをListViewのためだけに使っており、Create, Update, Deleteの機能を潰して使っている。<br />もはやCRUDではないので、そういうのをわかりやすいように一旦別のクラスにしてしまって、どこまで使っているのかを明確にする。</p>
<a name="Form-DSLにlistviewを追加"></a>
<h1 >Form DSLにlistviewを追加<a href="#Form-DSLにlistviewを追加" class="wiki-anchor">¶</a></h1>
<p>設定でGtk::CRUDを使っている箇所を、Gtk非依存にできる。</p>
<p>- Intent<br />- World<br />- Extract<br />- Mastodon<br />- Shortcut key</p>
<p>WorldだけDnDで入れ替えとか対応しちゃってるので、これも全体に適用できるようになるはず。</p>
<a name="Mtkをobsoleteに"></a>
<h1 >Mtkをobsoleteに<a href="#Mtkをobsoleteに" class="wiki-anchor">¶</a></h1>
<p>Mtkモジュールは、Gtk::CRUDの編集ダイアログからしか使われていない。</p>
<p>このダイアログをDialog DSLで置き換えてしまっても動くようにしたら、Mtkをまるごと消せる(一応互換性のために、消すのは4.0のタイミング)。</p>
<p>Form DSLで同等のものが再実装されているので、置き換えで障害になるとしたらレイアウトくらい?</p>
mikutter - 機能 #1349 (終了): 通知にffiを利用しない
https://dev.mikutter.hachune.net/issues/1349
2019-06-20T11:54:20Z
toshi_a 初音
toshi.alternative@gmail.com
<p>通知にlibnotify.soを使うために、ffiを利用しているが、謎の環境ではこのために導入難易度が上がるらしい。<br />ffiはこのためにしか使っておらず、デメリットのほうが大きいので、一度notify-sendを使った方式に戻す。</p>
<p>今後同様のことを行うなら、既に利用しているGIを利用する線で考えてもよいかも。</p>
mikutter - 機能 #1340 (実装待ち): Mastodonのtootの情報をアイコンボタンに反映させる
https://dev.mikutter.hachune.net/issues/1340
2019-06-02T10:29:18Z
toshi_a 初音
toshi.alternative@gmail.com
<p>Tootの情報がアイコンボタンにいろいろ反映させる</p>
<a name="不具合"></a>
<h1 >不具合<a href="#不具合" class="wiki-anchor">¶</a></h1>
<p>- リプライアイコンがstickyになる条件が間違っている<br /> - mentioned_by_me? が真を返すのは、そのMessageに自分がリプライを既に送っている時(返信済み)<br /> - 「自分」とは、登録されているWorldのうちのいずれか</p>
<a name="追加"></a>
<h1 >追加<a href="#追加" class="wiki-anchor">¶</a></h1>
<p>subparts_status_infoが既にあるが、これを廃止してアイコンボタンにまとめる。</p>
<a name="未収載非公開ダイレクト"></a>
<h2 >未収載、非公開、ダイレクト<a href="#未収載非公開ダイレクト" class="wiki-anchor">¶</a></h2>
<p>鍵が外れたようなアイコン等を用意して、左上に表示する。<br />マウスオーバーした時には、retweetにする。</p>
<p>左上はもともとMessageの公開範囲を表示する場所なので、未収載などを表示することには問題はない。</p>
<a name="bot"></a>
<h2 >bot<a href="#bot" class="wiki-anchor">¶</a></h2>
<p>アカウントがBOTであるなら、左下にロボットみたいなアイコンを作って表示する。<br />既にまりもは、Twitterのverifiedを表すために利用しているので、ここで違和感はないと思う。</p>
<a name="pin"></a>
<h2 >pin<a href="#pin" class="wiki-anchor">¶</a></h2>
<p>どうしようかなぁ、困ったなぁ</p>
mikutter - 機能 #1337 (終了): 汎用Modelビューア
https://dev.mikutter.hachune.net/issues/1337
2019-05-26T03:46:33Z
toshi_a 初音
toshi.alternative@gmail.com
<p>プロフィールタブやメッセージ詳細といったプラグインで個別に対応するのを止め、特定のModelに着目したタブを表示するプラグインを新設する。</p>
<a name="目標"></a>
<h1 >目標<a href="#目標" class="wiki-anchor">¶</a></h1>
<ul>
<li>World追加系プラグインを作ったときに、プロフィールタブなどの実装を簡単にする</li>
<li>それを使って現在のTwitterのプロフィールと同様のことを実現できる</li>
<li>これを利用して、Mastodonのプロフィール画面などを作る</li>
</ul>
<a name="サードパーティプラグイン"></a>
<h1 >サードパーティプラグイン<a href="#サードパーティプラグイン" class="wiki-anchor">¶</a></h1>
<p>以下のようなコードで、Modelに対応したIntentが定義され、それを発行すれば開けるようにする。画面レイアウトとしては、今と同じように左に <code>model.icon</code> の画像があれば表示して、右側にkey-valueリストを表示する。<br />このkey-valueリストだけは自動的に判別できないので、開発者にコーディングしてもらう。</p>
<pre><code class="ruby syntaxhl"><span class="n">defmodelviewer</span><span class="p">(</span><span class="n">model_slug_or_class</span><span class="p">)</span> <span class="k">do</span> <span class="o">|</span><span class="n">model</span><span class="o">|</span>
<span class="p">[</span>
<span class="p">[</span><span class="s1">'名前'</span><span class="p">,</span> <span class="n">model</span><span class="p">.</span><span class="nf">title</span><span class="p">]</span>
<span class="p">[</span><span class="s1">'所属インスタンス'</span><span class="p">,</span> <span class="n">model</span><span class="p">.</span><span class="nf">instance</span><span class="p">.</span><span class="nf">domain</span><span class="p">]</span>
<span class="p">]</span>
<span class="k">end</span>
</code></pre>
<ul>
<li><strong>model_slug_or_class</strong>: ビューアを定義する対象となるModel</li>
</ul>
<p>ユーザの操作などでModelが開かれたときに呼ばれるブロック:</p>
<ul>
<li><strong>model</strong>: 対象となるDiva::Model</li>
</ul>
<a name="fragmentの拡張"></a>
<h1 >fragmentの拡張<a href="#fragmentの拡張" class="wiki-anchor">¶</a></h1>
<pre><code class="ruby syntaxhl"><span class="n">deffragment</span> <span class="n">model_slug_or_class</span><span class="p">,</span> <span class="n">fragment_slug</span><span class="p">,</span> <span class="nb">name</span> <span class="k">do</span> <span class="o">|</span><span class="n">model</span><span class="o">|</span>
<span class="n">set_icon</span> <span class="no">Skin</span><span class="p">[</span><span class="ss">:timeline</span><span class="p">]</span>
<span class="n">tl</span> <span class="o">=</span> <span class="n">timeline</span><span class="p">()</span>
<span class="n">tl</span> <span class="o"><<</span> <span class="n">model</span><span class="p">.</span><span class="nf">latest_toot</span>
<span class="k">end</span>
</code></pre>
<ul>
<li><strong>model_slug_or_class</strong>: fragmentを定義する対象となるModel</li>
<li><strong>fragment_slug</strong>: fragmentの固有名。並び替えに必要になりそうだけど、実際どうなんかな</li>
<li><strong>label</strong>: タブの名前</li>
<li><strong>model</strong>: 対象となるDiva::Model</li>
</ul>
<p>現在だとプロフィールタブの下にいっぱいあるタブ。defmodelviewerの中で定義せず、Modelに関連付ける。<br />あとから動的に差し込んだり、modelviewerを定義したのと異なるプラグインでfragmentを拡張できるようにすることで、プラグインを分けられるようにする。</p>
<a name="その他"></a>
<h1 >その他<a href="#その他" class="wiki-anchor">¶</a></h1>
<a name="プロフィールのレジュームについて"></a>
<h2 >プロフィールのレジュームについて<a href="#プロフィールのレジュームについて" class="wiki-anchor">¶</a></h2>
<p>user_detail_viewプラグインでは起動後に前回終了時に開いていたタブをレジュームするが、modelviewerでは実装しない。<br />人類はタブを閉じないが、今のmikutterには大量のタブを管理する良い方法がない。</p>
mikutter - 機能 #1336 (終了): HiDPIのためにスケーリングに対応する
https://dev.mikutter.hachune.net/issues/1336
2019-05-25T19:02:49Z
toshi_a 初音
toshi.alternative@gmail.com
<a name="やりたいこと"></a>
<h1 >やりたいこと<a href="#やりたいこと" class="wiki-anchor">¶</a></h1>
<p>HiDPI環境において、mikutterの一部のUIがDot by Dotで表示されてしまい、実際のサイズが非常に小さくなる場合がある。<br />具体的には:</p>
<p>- UIのアイコンなど、Pixbuf全般<br />- MiraclePainter</p>
<p>にこの問題が起こる。</p>
<a name="やること"></a>
<h1 >やること<a href="#やること" class="wiki-anchor">¶</a></h1>
<a name="DPIからスケールを自動計算"></a>
<h2 >DPIからスケールを自動計算<a href="#DPIからスケールを自動計算" class="wiki-anchor">¶</a></h2>
<p><code>Gdk::Visual.system.screen.resolution</code> でDPIを取れる。</p>
<a name="スケールを選択可能にする"></a>
<h2 >スケールを選択可能にする<a href="#スケールを選択可能にする" class="wiki-anchor">¶</a></h2>
<p>設定画面でスケールを選択可能にする。<br />選択肢のなかに <code>:auto</code> も入れておき、デフォルトではDPIからスケールを自動計算するようにしておく。</p>
mikutter - 機能 #1329 (終了): Worldのロード時にアカウントの復元に失敗しても設定を保持する
https://dev.mikutter.hachune.net/issues/1329
2019-05-01T13:05:04Z
toshi_a 初音
toshi.alternative@gmail.com
<p>起動時等、Worldがアカウントを復元するときにそのプラグインがロードされていないときにアカウント登録が消えるが、消えないようにしたい。<br /><a class="issue tracker-2 status-5 priority-4 priority-default closed" title="機能: Slackアカウントを作成したあとSlackプラグインを抜くと起動しなくなる (終了)" href="https://dev.mikutter.hachune.net/issues/1125">#1125</a> でボツにしていたことだが、以下のような理由から、やっぱりやる。</p>
<a name="やりたいこと"></a>
<h1 >やりたいこと<a href="#やりたいこと" class="wiki-anchor">¶</a></h1>
<ol>
<li>3.9でMastodonプラグインを使っているプロファイルを3.8にロードするだけで、Mastodonの登録が解除されてしまう。</li>
<li>4.0に上げることでTwitterアカウントの登録が消え、サードパーティプラグインとしてTwitterをインストールしてもアカウント登録が復活しないということを避けたい。</li>
</ol>
<p>主にやりたいのは2.に関してで、ちゃんと起動しなかったりやっぱり3.9に戻したときに、登録してたTwitterアカウント情報が消えてしまってユーザが辛くなるということが起こらないようにしてあげたい。<br />アカウントが消えるのはいつだって辛いからね。</p>
mikutter for Android - 機能 #1014 (終了): 宣伝用ヘッダ画像を差し替える
https://dev.mikutter.hachune.net/issues/1014
2017-03-28T22:43:19Z
toshi_a 初音
toshi.alternative@gmail.com
<p>ヘッダ画像に使われているみくったーちゃんが古いものなので、新しい絵に差し替える</p>
mikutter for Android - 機能 #1013 (終了): アイコンを差し替える
https://dev.mikutter.hachune.net/issues/1013
2017-03-28T22:42:37Z
toshi_a 初音
toshi.alternative@gmail.com
<p>アイコンが古いものを使っているので、3.5用に書かれたものを利用する</p>
mikutter - 機能 #765 (終了): streamingプラグインのguiプラグインへの依存を解消
https://dev.mikutter.hachune.net/issues/765
2015-08-17T02:23:44Z
toshi_a 初音
toshi.alternative@gmail.com
<a name="問題"></a>
<h1 >問題<a href="#問題" class="wiki-anchor">¶</a></h1>
<p>UIなしで起動したとき、streamingプラグインがguiプラグインに依存しているため、UserStreamが利用できない</p>
<ol>
<li>streamingプラグインは、接続が切れたことをステータスバーに表示するためだけにguiプラグインに依存している</li>
<li>UserStreamの接続・切断を通知するコードは既にMikuTwitter::StreamingFailedActionにある</li>
<li>MikuTwitter::StreamingFailedActionは、呼び出し元のプラグインがactivityに依存していることを前提にしている</li>
</ol>
<a name="解決策"></a>
<h1 >解決策<a href="#解決策" class="wiki-anchor">¶</a></h1>
<a name="1"></a>
<h2 >1<a href="#1" class="wiki-anchor">¶</a></h2>
<ol>
<li>streamingプラグインは、UserStreamの切断時の通知をやめる</li>
<li>MikuTwitter::StreamingFailedAction は、ストリームの接続・切断時に特定のイベントを発生させる</li>
<li>そのイベントを受け取ってactivityに通知するプラグインを新たに作る</li>
</ol>
<a name="2"></a>
<h2 >2<a href="#2" class="wiki-anchor">¶</a></h2>
<ol>
<li>streamingプラグインは、UserStreamの切断時の通知をやめる</li>
<li>activityプラグインを、通知を発生・取得するメソッドを提供するプラグインと、Gtkに依存する表示部分を分けて二つのプラグインにすることで、activityに依存するプラグインを間接的にgtkに依存させないようにする</li>
</ol>
mikutter - 機能 #754 (終了): ドイツのトリ
https://dev.mikutter.hachune.net/issues/754
2015-04-28T10:03:55Z
Akira Ouchi
<p><a class="external" href="https://twitter.com/Asyley_/status/592986657181208578">https://twitter.com/Asyley_/status/592986657181208578</a></p>
<p>(サイトで対応しているので)Twitter Webでも画像が展開される模様。<br />d250g2.comも対応しないとダメですね。<br /><a class="external" href="https://twitter.com/Akkiesoft/status/592989463778754560">https://twitter.com/Akkiesoft/status/592989463778754560</a></p>
<pre>
diff --git a/core/plugin/photo_support/photo_support.rb b/core/plugin/photo_support/photo_support.rb
index 880f8d9..f432fb4 100644
--- a/core/plugin/photo_support/photo_support.rb
+++ b/core/plugin/photo_support/photo_support.rb
@@ -148,6 +148,11 @@ Plugin.create :photo_support do
open("http://instagram.com/p/#{shortcode}/media/?size=l")
end
+ # ドイツのトリ
+ defimageopener('ドイツのトリ', %r#\Ahttp://600eur.gochiusa.net/?\Z#) do
+ open('http://600eur.gochiusa.net/tori/600eur.png')
+ end
+
# d250g2
defimageopener('d250g2', %r#\Ahttp://d250g2.com/?\Z#) do
open('http://d250g2.com/d250g2.jpg')
</pre>
mikutter - 機能 #742 (終了): リスト抽出タブをより少ない手順で作成する方法を提供
https://dev.mikutter.hachune.net/issues/742
2014-12-31T08:30:36Z
toshi_a 初音
toshi.alternative@gmail.com
<p>現在リストタブ相当のものを作るには、抽出タブになったことでmikutter 3.0以前と比べて手順が多くなってしまっている。<br />従来のように、リストの設定画面からタブを作る方法を提供したい。</p>
<p>具体的には、設定画面のリストの追加・削除ボタンの並びに、「タブを作成」ボタンを設けて、それをクリックすることで、最初から以下の設定がされた抽出タブを作成する。</p>
<ul>
<li>データソース
<ul>
<li>そのリスト</li>
</ul>
</li>
<li>条件
<ul>
<li>すべてのツイート</li>
</ul>
</li>
<li>オプション
<ul>
<li>名前: そのリストの名前(作成ユーザ名などは含まない)</li>
<li>アイコン: リストのアイコン</li>
</ul></li>
</ul>
<p>作成を確認する意味でも、抽出タブつくるときのダイアログくらいは表示してもいいかもしれん</p>