2011-07-21 9 views
1

twitter.comで実行されているGreasemonkeyスクリプトの場合、メインタイムラインのtwttr.streams.TweetStreamインスタンスにアクセスする必要があります(内部的に 'ホーム'と呼びます)。私はFirebugとJavascript Deminifierを使用してJSコードを読み込み可能な形式にしています。その方法で、私は以前私のGMスクリプトでtwttr.app.currentPage().streamManager.streams.current経由でアクセスすることができました。twitter.comで内部オブジェクトモデルのstreamManagerへの参照を取得

これが最後のヶ月の間に完全に働いています。今日、Twitterは私のアプローチを破ってコードを変更したようです(明らかに彼らのせいではありません)。

私はまだtwttr.app.currentPage()を経由して、現在のページに得ることができます。ただし、それ以上のフィールドはありませんstreamManagerフィールド。

私はそこにさまざまなパスを試みたが、すべては行き止まりでした。残念ながら、私は彼らがまだ使っているクラスシステムを完全に理解していません。 streamManagerのようなプロパティが残っているようです - mixins/streamablePageと呼ばれるミックスインでは、クラスtwttr.components.pages.Homeによって提供されるはずです。私はそれにアクセスする方法を理解することはできません。 (あるいは、クラスシステムがそれをある程度隠すことができない場合)。mixinはまたgetStreamManager()メソッドを提供しますが、私はそれにアクセスできません。 twttr.app.currentPage().getStreamManager()でこれらのミックスインに外部からアクセスするために必要なトリックはありますか?

誰もがこのインスタンスを取得するための別の方法を見つけることができますか?タイムラインページで使用されている元のインスタンスが必要です。はい、私は簡単にnew twttr.streams.TweetStream()経由で新しいインスタンスを作成することができましたが、元のイベントにフックしようとしています。

私は、このユースケースは、私は彼らが、あなたを求めているではない理由です、それを取得としてサポートされていないことを完全に承知しています。 :)記録のために、私は何か悪いことをやろうとせず、自分自身に追加機能を提供するだけです。

答えて

1

twttr.app.currentPage()._ instance.getStreamManager()

+0

すごくありがとう!そのヒントを使って、5分で私のスクリプト全体を修正することができました。どうやってそこに行ったのか分かち合いますか?これを理解するためのあなたのアプローチは何でしたか? (たとえば、答えに編集することができます)。 –

関連する問題