やること: チケット
https://dev.mikutter.hachune.net/
https://dev.mikutter.hachune.net/favicon.ico?1619448608
2018-05-04T04:15:22Z
やること
Redmine
mikutter - 提案 #1224 (終了): Twitterの認証に失敗したときのメッセージのリンク切れ
https://dev.mikutter.hachune.net/issues/1224
2018-05-04T04:15:22Z
Satoshi Okuno
moguno12@gmail.com
<pre>
起動に必要なデータをTwitterが返してくれませんでした。
電車が止まってるから会社行けないみたいなかんじで起動できません。
ヽ('ω')ノ三ヽ('ω')ノもうしわけねぇもうしわけねぇ
Twitterサーバの情況を調べる→ https://dev.twitter.com/status
Twitterサーバの情況を調べたくない→ http://www.nicovideo.jp/vocaloid
</pre>
<p><a class="external" href="http://www.nicovideo.jp/vocaloidは既に存在しないようなので、類似のページhttp://ex.nicovideo.jp/vocaloidへの変更が適切だと思います">http://www.nicovideo.jp/vocaloidは既に存在しないようなので、類似のページhttp://ex.nicovideo.jp/vocaloidへの変更が適切だと思います</a>。<br />パッチを添付します。</p>
mikutter - 致命的 #1154 (終了): mikutter.rb specが落ちる
https://dev.mikutter.hachune.net/issues/1154
2018-01-07T14:10:28Z
Satoshi Okuno
moguno12@gmail.com
<p>mikutter.rb specすると、core/userconfig.rbをmiquireするところでDelayerが初期化されていないために落ちます。</p>
<p>spec.rbでboot/delayer.rbをmiquireすると動作しました。</p>
mikutter - バグ #1042 (却下): MessageMixinの:descriptionを書き換えても、本文の表示が変化しない
https://dev.mikutter.hachune.net/issues/1042
2017-05-17T14:39:28Z
Satoshi Okuno
moguno12@gmail.com
<p>MastodonにはCW(閲覧注意)と言う機能があって、初期状態ではメッセージの一部が隠れており、ボタンを押すことで全文が表示されるメッセージが作れます。</p>
<p>そんな感じの挙動をmikutterでも実現すべく、SubpartsIntractiveつきのメッセージを作って、ボタンを押すと本文が書き換わる感じの処理を作ろうとしました。<br />しかしながら、MessageMixinの:descriptionを書き換えてPlugin.call(:modify_message)しても、本文の表示が変化しませんでした。</p>
<p>調べると、MessageMixin::to_show()がメッセージ(から生成したPangoオブジェクト)をキャッシュしているのが原因とわかりました。</p>
<p>:descriptionに変化があったら、キャッシュを更新するようにしてみました。<br />マージご検討ください。</p>
<p>petitsurume</p>
mikutter - バグ #1019 (終了): MessageMixinの:modifiedが変更できないのだ
https://dev.mikutter.hachune.net/issues/1019
2017-04-05T13:55:04Z
Satoshi Okuno
moguno12@gmail.com
<p>MessageMixInをincludeしたモデルで、modifiedフィールドが書き変わらない事象に陥っています。</p>
<pre>
msg = MessageMixinをincludeしたモデル.new(:created => Time.now)
a = msg.modified
b = Time.now
msg[:modified] = b
b == msg.modified # <== false
a == msg.modified # <== true
</pre>
<p>これによって、:modifiedにTime.nowを入れてメッセージをageたり、Time.now + 10してメッセージを10秒TL上部に貼り付けたりする技が使えなくなっています。</p>
<p>原因はMessageMixin::modified()で、無条件で:createdの時間を返しているからと考えています。</p>
<p>改善案として、:modifiedがない時に:createdを流用するのは便利感が高いので生かしておいて、<br />:modifiedが定義されてるならそちらを優先するようにするのはどうでしょうか。</p>
<p>パッチ添付しますのでご確認いただければ。</p>
mikutter - 機能 #1002 (終了): インテントが発動しない。その2(提案)
https://dev.mikutter.hachune.net/issues/1002
2017-03-23T14:37:20Z
Satoshi Okuno
moguno12@gmail.com
<p>似たようなマッチ条件のインテントが複数ある場合で、とあるURLがそのどちらの条件もマッチした場合、「どの方法で開きますか?」が表示されます。<br />(例:まったく同じ条件のインテントが二つ以上登録されている場合)</p>
<p>intent_open()で、推奨インテントが一個なら発動。それ以外は「どの方法で?」が出るロジックになっているのが原因と思います。</p>
<p>動きとして、マッチしたインテントの中から、何らかの優先順位で一つが選ばれて発動するのが良いと考えます。</p>
<p>例えば、同じURLマッチ条件の(未定義)と対象(モデル)ありインテントが定義されていた場合、対象ありが優先されるべきと思います。</p>
<p>また、同じモデルでURLマッチ条件の長さが異なる場合、より長い文字列にヒットした方を優先するのはどうでしょうか。<br />(http://teokureとhttp://teokure/ahiruなインテントが定義されている場合、http://teokure/ahiru/yaki.htmlを「開く」時は、より具体的な後者が発動するべきと思っています)</p>
<p>上記をまとめると、こんな感じの優先順位が良いかと思っています。いかがでしょうか。</p>
<p>【優先度高】<br />対象(モデル)付きインテント(マッチ用文字列長が長い)<br />対象(モデル)付きインテント(マッチ用文字列長が短い)<br />対象が(未定義)インテント(マッチ用文字列長が長い)<br />対象が(未定義)インテント(マッチ用文字列長が短い)<br />【優先度低】</p>
<p>#1001も踏まえたintent_selector.rbを添付しますので、ご確認いただければ幸いです。</p>
mikutter - バグ #1001 (終了): インテントが発動しない
https://dev.mikutter.hachune.net/issues/1001
2017-03-23T14:30:22Z
Satoshi Okuno
moguno12@gmail.com
<p>(1):openイベントにURLを渡した場合に「どの方法で開きますか?」ダイアログで「次回から、次の内容から始まる〜」チェックボックスをONすると、対象が(未定義)の関連付けが作成されます。<br />しかし、条件に合致するURLを開いても関連付けが発動せず、再び「どの方法で開きますか?」ダイアログが表示されてしまいます。</p>
<p>直接的な原因は、core/plugin/intent_selector/intent_selector.rbの123行目。<br />divide_intents()で対象がnil(未定義)のインテントを除外しているからと思います。</p>
<p>単純に(未定義)インテントを除外しないようにすれば良いと考えています。</p>
<p>(2)同127行目<br />intentsの中身はStringです(or Stringの場合がある?)が、intent_slugsはSymbolなのでマッチしません。</p>
<p>intentsの中身を.to_symして比較すれば良いと思っています。</p>
mikutter - バグ #994 (終了): delayer-deferrd 1.1.0を使うと特定の操作でmikutterが落ちる
https://dev.mikutter.hachune.net/issues/994
2017-03-14T13:32:28Z
Satoshi Okuno
moguno12@gmail.com
<p>下記の環境で、Fiber由来の例外が頻発するようになりました。</p>
<ul>
<li>macOS Sierra</li>
<li>Ruby2.4.0p0(homebrew)</li>
<li>mikutter 3.5.4</li>
<li>delayer-deferrd 1.1.0</li>
</ul>
<p>確実に再現するのは以下のパターンです。<br />それぞれバックトレースを付けています。</p>
<ul>
<li>ポストボックスに文字列をコピペする</li>
<li>mikutter-uwm-hommageで追加されるポストボックス横のボタンを押下する。(ファイル選択ダイアログ表示)</li>
<li>設定画面から「リスト」ダイアログを表示</li>
</ul>
ここまでの調査結果はこんな感じです。
<ul>
<li>delayer-deferrdを1.0.4にすると不再現になります。</li>
<li>この例外は、Fiber生成時とresume読み出し時において、スレッドがC言語レベルで持ってるメンバprotect_tagが異なる時に発生するようです。protect_tagはrb_protect()と言う「Procを実行して例外とか大域脱出が起きたか否かを返す」関数で更新されるようです。</li>
</ul>
<ul>
<li>結局、何をやってるのかよくわからず、protect_tagが書き換わる条件が突き止められてない今日この頃です。</li>
</ul>
<p>たちまちは調査継続しようと思います。</p>
mikutter - 機能 #990 (終了): 拡張子jpegな画像ファイルがプレビューできるようにする
https://dev.mikutter.hachune.net/issues/990
2017-03-04T14:42:36Z
Satoshi Okuno
moguno12@gmail.com
<p>今や100万枚に1枚と言われる拡張子.jpegファイルに対応すべく、パッチを投稿いたします。</p>
mikutter - バグ #986 (終了): 抽出タブの条件設定画面で、条件を削除するボタンのアイコンが表示されない。
https://dev.mikutter.hachune.net/issues/986
2017-02-25T01:16:24Z
Satoshi Okuno
moguno12@gmail.com
<p>まぁ、僕しいたけ食べられないから別にいいんですけどね。</p>
<p>現状WebIconにSkin["close.png"]が渡されていますが、 load errorアイコンも出ずのっぺらぼうのボタンになります。</p>
<p>/Users/moguno/mikutter//core/mui/gtk_postbox.rbを参考に、WebIconにSkin["close.png"].get_pathを渡すようにしました。<br />でもWebIconって、モデルが渡されたらload_pixbufするはずだなぁ。とか思っています。</p>
mikutter - 環境対応 #954 (終了): UNIXぽくないファイルパス指定の OSでPlugin::Photo::Photo::[]が必ずnilを返す
https://dev.mikutter.hachune.net/issues/954
2016-12-25T15:13:35Z
Satoshi Okuno
moguno12@gmail.com
<p>3.5リリースおめでとうございます。<br />アルファ版参加できず、今更の報告をご容赦ください。</p>
<p>core/plugin/photo/model/photo.rbの24行目にある、uriがローカルファイルかどうかの条件が「先頭が"/"である」ことになっています。</p>
<p>しかしながら、超漢字やMS-DOSなどUNIXっぽくないOSのパス(c:¥や¥¥hoge¥の様な)はこの条件を通り抜けるため、nilが返ってきています。</p>
<p>今後のmikutter on 超漢字やmikutter for DOSを勘案して、ユニバーサルな判定方法に出来ればと考えています。</p>
<p>例えば、下記の様な条件を考えています。</p>
<p>・"http"から始まらないuriは、一律ローカルファイルとして扱う。<br />・File.exist?(uri)が真のものをローカルファイルとして扱う。</p>
<p>ご検討をお願いします。</p>
mikutter - 機能 #806 (終了): SubPartsQuoteのナウいメッセージ表示を、サードパーティのプラグインからも使いたい
https://dev.mikutter.hachune.net/issues/806
2016-01-03T05:34:20Z
Satoshi Okuno
moguno12@gmail.com
<p>あけましておめでとうございます。</p>
<p>mikutter3.3.0から所謂「ナウい引用」がシステムプラグインに昇格しましたが、<br />このナウいメッセージ表示をサードパーティのプラグインからも使えるようにしたいです。</p>
<p>なんでこんなことを言っているかと言うと、</p>
<p> ・従来型のリプライをナウく表示するプラグイン(mikutter-trendy-reply)を書いたが、ほぼSubPartsQuoteのコピペになったのでソースを共有したい。<br /> ・TLを見ていると、私以外にもニーズがありそう。<br /> (この前、「翻訳プラグインを作って翻訳結果をサブパーツに表示したいけど、作り方がようわからん」と言うつぶやきを見ました。)</p>
<p>具体的には、SubPartQuoteのサブパーツ描画部分をSubPartsMessageBaseと言うクラスに切り出しました。<br />そしてSubPartsQuote(とかサードパーティのプラグイン)はSubPartsMessageBaseを継承して、必要なメソッドを実装すれば良い様にしました。</p>
<p>3.3.1に対するパッチを作りましたので、お時間あるときにご検討ください。</p>
mikutter - 機能 #722 (終了): 機能追加:ユーザスキンの適用
https://dev.mikutter.hachune.net/issues/722
2014-10-19T15:42:13Z
Satoshi Okuno
moguno12@gmail.com
<p>TLで言っていた件です。<br />下記仕様のユーザスキンの仕組みを提案します。</p>
<p>(1)ユーザースキンディレクトリ<br />ユーザースキンは~/.mikutter/skin/のサブディレクトリに格納する事にします。</p>
<p>ユーザースキンディレクトリはUserConfig[:skin_dir]に相対パスで指定する事とします。</p>
<p>(2)設定画面<br />設定画面はプラグインとして実装します。<br />肝は前述のUserConfig[:skin_dir]の設定です。</p>
<p>設定画面は複数インストールされたスキンから1つを選ぶI/Fを持ちます。<br />現状は*.pngのあるディレクトリをユーザースキンディレクトリ候補としています。</p>
<p>これは最近出てきたスキン「miq」をそのまま展開して使える様にと言うポリシーです。<br />(miq/darkgray/64/*.pngとかそんな階層になってるので)</p>
<p>でも、これだとWebでのプレビュー用pngを置いているディレクトリもピックアップされるのでイマイチです。</p>
<p>ディレクトリ構成を決めてしまってもいいかも知れません。</p>
<p>ユーザースキンの変更は再起動にて反映される様にします。</p>
<p>(3)画像ファイルの優先度<br />ユーザースキンは全画像を用意する必要は無く、存在しない画像はデフォルトのスキンが適用されます。<br />それでもダメならデフォルトの画像(後述)を表示します。</p>
<p>(4)プラグインへのSkinの解放<br />miqでは一部のプラグインのアイコンも提供してくれています。<br />折角なのでプラグインもスキンの恩恵を受けられる様にしたいです。</p>
<p>具体的にはSkin::get()にデフォルト画像を渡せる様にします。</p>
<p>プラグインからはこんな感じに使います。第二引数がデフォルトの画像のパスです。</p>
<p>Skin.get(“hoge.png”, "プラグイン自前のhoge.png”))</p>
<p>ユーザースキンもしくはデフォルトスキンに該当する名前の画像があればそれを採用し、無ければプラグイン内蔵の画像を返す様にしたいなと。</p>
<p>なお、Skin.getの第二引数を省略した場合、従来通り、デフォルトスキンのnotfound.pngが適用されます。</p>
<p>こんな感じで実働する物を作ってみましたので添付します。<br />ぜひ一度揉んで頂ければと思います。</p>
mikutter - 機能 #602 (却下): TLのアイコンサイズを変更できるようにしたい
https://dev.mikutter.hachune.net/issues/602
2013-07-21T00:55:54Z
Satoshi Okuno
moguno12@gmail.com
<p>1ドットでも節約!第二弾です。</p>
<p>タイムラインのユーザアイコンのサイズを変更できる様にしたいです。<br />これも同様にCoordinatorに黒魔術を使わないと実現できなかったので。</p>
<p>developに対するformat-patchです。</p>
mikutter - 機能 #601 (却下): タブのアイコンサイズを変更できるようにしたい
https://dev.mikutter.hachune.net/issues/601
2013-07-21T00:26:15Z
Satoshi Okuno
moguno12@gmail.com
<p>おはようございます。</p>
<p>画面のピクセルは1ドットたりとも無駄にしたくない!<br />と言うピクセル難民(俺)の声にお答えすべく、タブのアイコンサイズを設定で小さく出来る様にしました。</p>
<p>逆に大きくも出来るので、来るタッチインターフェース時代にも対応可能かも知れません。</p>
<p>プラグインでも良いのですが、set_icon()に黒魔術(alias_method)を使わんと実現できないんで、<br />メインラインに入らないかなと思った次第です。</p>
mikutter - 環境対応 #536 (終了): 新規インストールしたmikutterが起動しない
https://dev.mikutter.hachune.net/issues/536
2012-11-23T01:39:57Z
Satoshi Okuno
moguno12@gmail.com
<p>新規インストール(~/.mikutterがない状態)のmikutterが以下の例外で起動しなくなりました。<br />(Twitter側の仕様変更?)</p>
<p>・事象<br />/Users/moguno/mikutter/core/lib/mikutwitter/query.rb:70:in `query!': 400 #<Net::HTTPBadRequest:0x2d68ad8> (MikuTwitter::Error)<br /> from /Users/moguno/mikutter/core/service.rb:187:in `user_initialize'<br /> from /Users/moguno/mikutter/core/service.rb:52:in `initialize'<br /> from /Users/moguno/mikutter/core/service.rb:23:in `new'<br /> from /Users/moguno/mikutter/core/service.rb:23:in `services_refresh'<br /> from /Users/moguno/mikutter/core/service.rb:28:in `all'<br /> from /Users/moguno/mikutter/core/service.rb:33:in `primary'<br /> from /Users/moguno/mikutter/mikutter.rb:37:in `<main>'</p>
<p>・原因<br /><a class="external" href="http://api.twitter.com/1/account/verify_credentials.json">http://api.twitter.com/1/account/verify_credentials.json</a><br />へのアクセスに対して、リザルトコード400で以下のようなjsonが返ってきていました。
{"errors":[{"message":"Bad Authentication data","code":215}]}</p>
<p>・対策<br />AdHocですが上記のjsonが返ってきた場合は、認証ウインドウを表示するようにしました。<br />パッチを添付しますので確認をお願いします。</p>