プロジェクト

全般

プロフィール

バグ #1238

mikutter account コマンドが使えなくなっている

Hiyowa Kyobashi2ヶ月前に追加. 約2ヶ月前に更新.

ステータス:
実装待ち
優先度:
通常
担当者:
-
対象バージョン:
プラグイン名:
ブランチ:
クラッシュする:
はい

説明

表題の通り。


再現手順

・ mikutter 3.7をcloneして bundle install --path vendor/bundle する。
・ bundle exec ruby mikutter.rb account を実行する。

次のエラーを出力してクラッシュする。
.../mikutter/core/miquire.rb:98:in `require': cannot load such file -- mikutwitter (LoadError)

履歴

#1 Hiyowa Kyobashi2ヶ月前に更新

3.6でも現象を確認。3.5では発生しない。

#2 Izumi Tsutsui2ヶ月前に更新

以下のパッチ

--- core/boot/shell/account.rb.orig    2018-01-02 11:34:04.902005885 +0900
+++ core/boot/shell/account.rb    2018-05-10 22:21:51.666406250 +0900
@@ -1,8 +1,9 @@
 # -*- coding: utf-8 -*-

 miquire :boot, 'delayer'
-miquire :lib, 'mikutwitter'
 miquire :core, 'plugin'
+miquire :lib, 'twitter'
+miquire :plugin, 'twitter/mikutwitter'

 puts "Register new account." 


を当てると
Register new account.

までは出ますね。

~/.mikutter/plugin/twitter_api_keys の plugin は見に行ってくれないのか、
core/config.rb の CK/CS を書き換えていない状態だと

401 Authorization Required (OAuth::Unauthorized)

になってしまいますが。

#3 Hiyowa Kyobashi2ヶ月前に更新

ありがとうございます。
ご指摘のパッチを当ててみたのですが、

/mikutter/core/miquire.rb:98:in `require': cannot load such file -- twitter (LoadError)

となってしまいました。ディレクトリ構造を確認しても、lib以下にtwitter.rbといったファイルは存在しないようです。
パス指定等は合っていますでしょうか。

#4 Izumi Tsutsui2ヶ月前に更新

あれ? と思って調べたところ mikutter とは関係なく gem で入れた twitter gem を見に行っていたのかもしれません。

試したところ 3.6.8, 3.7.0 いずれも以下だけで
Register new account.
まで出ましたがどうでしょう。

--- a/core/boot/shell/account.rb
+++ b/core/boot/shell/account.rb
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-

 miquire :boot, 'delayer'
-miquire :lib, 'mikutwitter'
+miquire :plugin, 'twitter/mikutwitter'
 miquire :core, 'plugin'

 puts "Register new account." 

#5 Hiyowa Kyobashi2ヶ月前に更新

ありがとうございます。無事、pinの入力までは出るようになりました。
が、CS/CKを書き換えた状態でpinを入力すると、以下のエラーが発生し、登録が完了しませんでした。

/home/User/mikutter/core/boot/shell/account.rb:24:in `<top (required)>': uninitialized constant Service (NameError)
from /home/User/mikutter/core/boot/option.rb:73:in `require' from /home/User/mikutter/core/boot/option.rb:73:in `block in parse'
from /home/User/.rbenv/versions/2.4.1/lib/ruby/2.4.0/optparse.rb:1062:in `initialize'
from /home/User/mikutter/core/boot/option.rb:24:in `new'
from /home/User/mikutter/core/boot/option.rb:24:in `parse'
from mikutter.rb:17:in `<main>'

別チケットを切った方がよければそうします。

#6 Izumi Tsutsui2ヶ月前に更新

適当にいじってみると

--- a/core/boot/shell/account.rb
+++ b/core/boot/shell/account.rb
@@ -1,8 +1,10 @@
 # -*- coding: utf-8 -*-

 miquire :boot, 'delayer'
-miquire :lib, 'mikutwitter'
 miquire :core, 'plugin'
+miquire :lib, 'diva'
+miquire :plugin, 'world/world'
+miquire :plugin, 'twitter/mikutwitter'

 puts "Register new account." 

2) Login twitter.
3) Input PIN code.
PIN code>4849064
Account register failed.
uninitialized constant Plugin::Twitter
% 

うーん。
としぁさんに聞いてみたほうが速そうですが、
twitter plugin はもはや mikutter 本体とは分離されているとすると
結構めんどくさいのかも?

#7 toshi_a 初音約2ヶ月前に更新

  • 題名mikutter account コマンドを実行するとLoadErrorで落ちる から mikutter account コマンドが使えなくなっている に変更
  • ステータス分類待ち から 実装待ち に変更

3.6で忘れられていて使えなくなってるようですね。

サブコマンドは今の所、一切プラグインがロードされない状態で実行されます。
3.5まではTwitterが組み込みだったので、Twitterを担当するコードだけ読み込んでいたのですが、3.6からはTwitterがプラグインとなり、アカウント機能自体もWorldプラグインになったため、新たなアカウントを登録するにはこれらのプラグインをどうしても読み込む必要があります。

幸い、World系プラグインはGUIには依存していないので、一応なんとかなるかなぁ…とは思っています。できるだけ3.7の範囲(バグ修正)で済ませたいですが、Twitter以外のWorldにも対応するのは3.8以降になってしまう可能性もあります。

他の形式にエクスポート: Atom PDF