やること: チケット
https://dev.mikutter.hachune.net/
https://dev.mikutter.hachune.net/favicon.ico?1619448608
2018-01-07T14:10:28Z
やること
Redmine
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 - 機能 #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 - 致命的 #829 (終了): cairo_sub_parts_message_base.rb:引数の型誤りにより落ちる
https://dev.mikutter.hachune.net/issues/829
2016-05-08T01:08:34Z
Satoshi Okuno
moguno12@gmail.com
mikutter - 環境対応 #776 (終了): 大文字拡張子の画像ファイルのプレビュー対応
https://dev.mikutter.hachune.net/issues/776
2015-09-23T09:52:33Z
Satoshi Okuno
moguno12@gmail.com
<p>例えば、下記のように大文字拡張子の画像ファイルが世の中に存在します。</p>
<p><a class="external" href="https://upload.wikimedia.org/wikipedia/commons/e/e3/JUSCO.JPG">https://upload.wikimedia.org/wikipedia/commons/e/e3/JUSCO.JPG</a></p>
<p>openimg.rbの画像直リンの正規表現を大文字小文字無視とするのはいかがでしょうか。</p>
<p>3.2.8へのパッチを添付しております。</p>
mikutter - 環境対応 #775 (終了): instagramの画像プレビューが動作していない
https://dev.mikutter.hachune.net/issues/775
2015-09-21T22:14:02Z
Satoshi Okuno
moguno12@gmail.com
<p>下記instagramのリンクがプレビューできなくなっています。</p>
<p><a class="external" href="https://instagram.com/p/75fazIITDQ/">https://instagram.com/p/75fazIITDQ/</a><br /><a class="external" href="http://instagram.com/p/75fazIITDQ/">http://instagram.com/p/75fazIITDQ/</a></p>
<p>どうやらinstagram側にhttps化の流れがあり、それにmikutterが追従できていないようです。<br />パッチを書きましたので、マージの検討をお願いします。</p>
<p>(1)URL検出用の正規表現がhttps://〜なアドレスを考慮できていない。<br />→正規表現を修正。</p>
<p>(2)プレビューのURLが不適切。<br />現状mikutterがリクエストしているhttp://instagram.com/p/ショートコード/media/は、https://instagram.com/p/ショートコード/media/にリダイレクトされるようになりました。<br />しかし、open-uriの仕様でhttp→httpsへのリダイレクトは不可のため、プレビュー画像の取得に失敗しています。<br />→https://instagram.com/p/ショートコード/media/をリクエストするように変更。</p>
<p>3.2.8からのdiff(git format-patch)を添付します。</p>
mikutter - 機能 #763 (終了): settingsに「ディレクトリを開く」DSLを追加
https://dev.mikutter.hachune.net/issues/763
2015-07-31T13:36:22Z
Satoshi Okuno
moguno12@gmail.com
<p>Twitterでお話ししたsettingsの「ディレクトリを開く」DSLの件です。</p>
<p>core/plugin/settings/builder.rbを改造して、dirselect()を追加してみました。<br />fileselectとほぼ同じコードなので、処理を共通化しています。</p>
<p>マージを検討頂ければ嬉しいです。</p>
<p>お体くれぐれもご自愛くださいね。</p>
mikutter - 致命的 #734 (却下): アクティビティ設定の「タイムラインに表示」を選択すると落ちる
https://dev.mikutter.hachune.net/issues/734
2014-11-28T15:15:38Z
Satoshi Okuno
moguno12@gmail.com
<p>つらい。</p>
<p>gen_listener_for_visible_check()とgen_listener_for_invisible_check()は、UserConfig[:activity_show_statusbar]またはUserConfig[:activity_show_timeline]に配列が入っている前提の処理になっています。<br />しかしながら、mikutterを新規導入した人などはここがnilなのでおちます。</p>
<p>対策として、gen_listener_for_visible_check()の頭で、処理対象のUserConfigに[]で初期化されるようにしました。</p>
<p>どないでしょうか。</p>
mikutter - 致命的 #715 (終了): 起動時にmikutterがNameErrorで終了する(achievement.rb)
https://dev.mikutter.hachune.net/issues/715
2014-10-05T10:22:37Z
Satoshi Okuno
moguno12@gmail.com
<p>アナウンスする未解除実績によって、achievement.rbの 46行目付近でNameErrorが発生します。</p>
<pre><code>result = @options[:depends].map{ |slug| unachievements[slug] }.any? <- Booleanが帰る<br /> if result <- Trueのみ成立<br /> result.notachieved_parent <- TrueClassに対してnotachieved_parentを呼び出してNameError<br /> else<br /> self end<br /> else</code></pre>
<p>多分any?じゃなくfirstが正解かなと思います。<br />パッチ添付しますので、評価お願いします。</p>
mikutter - バグ #692 (終了): 認証に失敗した場合の再認証で、無効なURLが提示される
https://dev.mikutter.hachune.net/issues/692
2014-06-08T01:46:52Z
Satoshi Okuno
moguno12@gmail.com
<p>mikutter 3.0.0リリースおめでとうございます!</p>
<p>(1)みくったーちゃんにデレデレしつつ、即されるまま認証URLをクリックしてPINを得る。<br />(2)デレデレしているので、当然PINの入力を誤る。<br />(3)みくったーちゃんが笑顔(こいつタコか・・・)でもう一度認証URLを提示してくれるけど、無効なトークンを使ってると言われて認証できない。</p>
<p>(1)で@request_tokenがキャッシュされるので、認証失敗したトークンを保持続けるのが問題と思います。</p>
<p>認証の際にはキャッシュをクリアするようにいじって見ました。<br />内容確認いただければ。</p>
mikutter - バグ #686 (終了): friendship/create,friendship/destroyのリクエストに不要なオプションが付く
https://dev.mikutter.hachune.net/issues/686
2014-06-01T08:25:45Z
Satoshi Okuno
moguno12@gmail.com
<p>追い込み時期にごめんなさい。</p>
<p>profile.rbにて、follow()/unfollow()のオプションとしてUserオブジェクトが渡されているため、<br />オブジェクトのメンバがすべてAPIリクエストのオプションとして渡されています。</p>
<p>それでもTwitterはリクエストをいい感じに解釈してちゃんと仕事をしてくれるのですが、<br />on Windows環境ではクエリの組み立て時にUserに含まれる日本語文字列が原因で例外が発生してしまいます。</p>
<p>対策として、follow()/unfollow()が要求するuser[:id]のみを渡すことで事象が改善しました。</p>
<p>パッチ送付しますので、マージご検討ください。</p>