tmp_biography mod公開
ぶっちゃけ汎用性があるか判らないので、とりあえずJScriptのソースだけ公開。
修正:2020/09/30 アーティスト画像が取れなくなったので暫定的修正。
修正:2019/10/23 おそらくlast.fmの画像を置くサーバの名前が変わったと思われる。
修正:2019/07/08 中の書き方が気に入らなかったので修正。急いだので適当な箇所があった。こっちの方がlast.fmの変更に強いハズ。まあ構成やクラス名変わったらだめだけど。
修正:2019/07/05 last.fmの中のタグのルールが変わっていたので修正。
修正:2018/08/28 アルバム画像が取れなくなっていたので修正。アルバムの時はタイトルも表示させた方がいいのか?
修正:2017/06/28 ウェイトの調整と優先テキストの導入、Wikipediaからのアーティスト検索を追加。ある動作でクラッシュするバグの修正。
修正:2017/06/25 スクリプトのダイエット実行(tmp_biography_mod の Cycleモードって要らないよなあ。)
修正:2017/02/22 流れをを見直す
修正:2017/02/18 search_artistプロパティ追加と多少の変更
修正:2017/02/17 間抜けなバグ修正
修正:2017/02/16 再度Last.fmの内部パスが変更になってたので修正。
修正:2017/01/27 Last.fmの内部パスが変更になってたので修正。
修正:2016/09/09 再生中の曲のカバーを表示させるスイッチのプロパティと、スクリプトの整理。
修正:2016/09/05 Biographyのテキストもファイルに保存することにした。ローカルに保存する設定の場合、レスポンスが良くなったと思う。テキストボックスあたりの修正。パネルの疑似透過に関しては、DUIだと変になるので背景色で何とかしてください。
追記:2016/08/01 一応コンテキストメニューの説明。触ればわかると思うけど。
追記:2016/07/31 あのfeat.問題が出てきたので、アーティスト名で%album artist%タグがあればそちらを優先することにした。あとファイル名でエラーを出す文字対策。
Biography ViewコンポーネントがLast.fmから情報が取れなくなったということで、代わりになるものを探していてtmp_biographyがいいだろうと。
ベースはこちらのロシア掲示板のページの最後の方にある、『Biography Text && Picture. www.last.fm for multilanguage』。
マルチ言語版といっても結局英語とロシア語しかないよ。
このさらに元になったのがこちらの真ん中あたりの『Biography Text && Picture. www.last.fm』。
こちらの方がシンプルなので書き直せる方々には美味しいかと。
ダウンロードはお手数ですがファイル置き場からお願いします。


・テキストの部分はある程度ドラッグで変更できる
・ダブルクリックでテキストを隠せる
・JScript Panelで動作
注:WSH Panel Modでのチェックはしてません。JScript Panelは1.3と2.1でチェック。
<<設置方法>>
JScript Panelをfoobar2000に組み込み、パネルconfigウィンドウのToolsボタンからインポートする。
以上。
ちゃんと動作していれば、「tmp_Biography」フォルダが自動的に作られる。
<<プロパティ>>
基本的な要素はプロパティで設定する。
毎回毎回画像を取りに行くのはlast.fmにも悪いので、動作確認出来たら
キャッシュのために画像保存
(save artist imageをTrue)
その画像の置き場所を決める
(save folder pathを設定)
のがおすすめ。
General
download limit ダウンロードする最大枚数。整数指定。欲張らないように。
language number 言語番号。スクリプトが利用する。いじらない。
picture/albums 画像をアーティストorアルバムのどちらかにする。スクリプトが利用。
save artist image ダウンロードした画像を保存するか否か。falseだと画像はtmp_Biographyフォルダに一時的に置かれ、変化した場合には削除される。
save folder path 上の項目をtrueにした場合、これのパスを基準として画像が保存される。
search artist artistタグとalbum artistタグの優先順位を決める。0=artist,1=album artist
selection mode 再生中の曲か選択した曲のどちらを優先するか指定する。スクリプトが利用。
*追加:wait time(sec) ダウンロード時に時間差でチェックする。3秒でもいいような感じだが、余裕をもって5秒が初期値。
Visual
color
artist name アーティスト名の文字色。RGB()指定。
background パネルの背景色。RGB()指定。
text テキストの文字色。RGB()指定。
text background テキスト背景の色。RGB()指定。
transparent テキスト背景の透過度。0 - 255。
font
artist アーティスト名のフォント。
biography テキストのフォント。
size-artist アーティスト名のフォントサイズ。 10 - 16。
size-biography テキストのフォントサイズ。 10 - 16。
image
position h 画像の表示位置、水平。left - center - right。
position v 画像の表示位置、垂直。top - center - bottom。
margin-picture 画像のマージン(余白)。整数(ピクセル)指定。
margin-text テキストのマージン(余白)。整数(ピクセル)指定。
nocover
image 見つけられなかった時の画像を使用するか。true - false。
path 上の項目がtrueの場合、使用する画像のパス。
show scrollbar スクロールバーの表示。true - false。
show text テキストの表示。true - false。
space between the lines 行間指定。小数可。
textbox_x テキストの表示位置。スクリプトが利用。
textbox_y 同上。
<<コンテキストメニュー>>

右クリックのメニュー。
・Language - 言語切り替え。
・再生中の曲優先 (Prefer now playing) - どの曲に対する情報なのかを決定する項目。現在、再生中の曲を優先する。
・選択した曲優先(Follow selected track) - プレイリスト等で選択した曲を優先する。
・アーティスト画像(Artist pictures) - 表示(ダウンロード)する画像の種類。アーティスト。
・アルバム画像(Albums pictures) - 表示(ダウンロード)する画像の種類。アルバム。
・last.fmでアーティストを検索(last.fm Artist) - 入力ダイアログが出て、入力したアーティストのlast.fmのページに飛ぶ。
・画像ダウンロード(force image download) - 「save artist image」プロパティをtrueにしているとき、指定フォルダに画像ファイルがあると、既にダウンロード済みとみなしてlast.fmに取りにいかないようになっている。このコマンドを実行すると一時的にそれを無視して画像をダウンロードする。設定が変わるわけではない。
・再読み込み(Reload) - このスクリプトを再読み込みする。
・プロパティ(Properties) - プロパティを表示。
・Configure... - パネルのconfigウィンドウを出す。スクリプトをいじるときに使う。
追記:

・「テキストを固定」がわかりにくいので「オリジナルテキストを作る」に変更。右クリックメニューからこれを選ぶとbio.txtをもとに_bio.txtが作られます。以下同文。
・「テキストを固定」の追加
プロパティsave_imageが《true》の時だけに使えるオプションです。
固定したテキストがある場合、言語の設定に関わらず、固定したテキスト_bio.txtが優先して読み込まれます。
_bio.txtを編集することで任意のテキストを表示可能です。
_bio.txtは自動的に削除されません。
・「Wikipediaでアーティストを検索」を追加
多少不安定な部分もあるが、情報を出すことに意義があるということもある。
メンドウクサいからだれか代わりにやってください。
動作
ActiveXObjectでURLにアクセス。
実質ブラウザでアクセスするのと同じくページのソースがXHTMLで返ってくるので解析。
get_b_text()がテキストを探す関数。 「div class="wiki-content" 」の中を探す。
get_pic()が画像用。画像のあるURLを抜き出してdownload.vbsに投げる。
以上。
>あれま
面目ないです。直しました。
まあ私はJPOPが多いのでアレなんですが、
artist優先にするとfeat.問題が面倒じゃないですか?
>さっそくどうもです
確かにfeat.面倒です。。
オムニバスで知らない人は情報欲しいなと思ってて、
last.fmからの返り値を知らずに欲を言えば、artistで該当なければalbum artistを見に行くとかだといいなぁとは思っています(汗)
ただ、どっちにしてもartistでリスト出すとfeat.が占拠してしまうので、
feat.の場合はcomment欄に移動しようかなと思ってはいる所ですw
>artist優先フラグ
プロパティにartist優先フラグをつけてみました。
アーティストのページはあるが画像はないとか、ページ側の条件設定がめんどいのでまあ検索すればいいか、と。
>またも早速どうもです!
さっそくartist優先使ってます!
ああ、確かにその辺面倒ですね…。
また別途気になった程度なのですが「Mr.Big」がファイル名等の置換で「Mr.Big」でlast.fmで検索で該当なしとなったりしてます。
全半角は本来last.fm側で処理すべきだと思うのですが…なかなかlast.fmも曲者ですね。
>全半角の問題
Last.fmの処理は割と頑張ってる方じゃないかな。
ローマ字変換もするし(imai+miki => 今井美樹とか)、ブルーハーツ or The blue heartsあたりもちゃんとしてる。
要するに置換するタイミングが早すぎるのか。ふむ。
>修正
Mr.BigとF.I.R.はOK、あとバグりそうな名前の奴いたっけ。
>さすがです
素晴らしいの一言です!
Sigur Rós、SOIL&'PIMP'SESSIONS、OKでした。
他変なのは持ってなかったので、今のところ完璧です!
>また、lastfmが更新しましたねー
画像が取れなくなったら、私にはこちらだけが頼りです。
早速、修正版を試してみます。
Youtubeの音が劇的に向上しているので最近利用頻度が上がっています。
これ昔は同期した動画も一緒に取れていた居たので組み込んでいたのですが
数年前から動画再生が組み込まれたfoo_youtubeが無くなり
音だけ再生になってしまいましたが70年代、80年代の楽曲が当時よりはるかに高音質で聴ける環境に満足しています。
>再修正
中の評価方法を見直しました。
おそらくこっちの方が真っ当なやり方だと思います。
>エラー
以下のようなエラーが出てしまいます。
JScript Panel v2.5.1 (Biography Text && Picture. www.last.fm v2020/09/30 by arranged by Junya Renno)
JavaScript 実行時エラー:
オブジェクトがコレクションではありません。
File:
Line: 726, Col: 3
>Jscript Panel Ver.2系には対応してなかった
特にアップデートする必要なかったからねえ。
怠慢です。
>応急手当て
ArtistタグおよびAlbum Artistタグが両方とも入ってない状態で起こるらしいので、726行の最後
fb.TitleFormat("[" + field + "]").Eval(true);
のtrueを消して、
fb.TitleFormat("[" + field + "]").Eval();
にしてみてはどうでしょうか。
>補足
Jscript Panel Ver.2.3以降でITitleFormatのパラメータが削除されたことに対する対応です。
>白い枠を消す方法
はじめまして
分からないなりに無事設置でき便利に使用させて頂いております
有難うございます
以下二点、ご指導いただければ幸いです
設置はできたのですがパネル左と上に白い枠線が出ます
CUI>Layout>Panel Stack Splitter>JScript Panelとし
Panel Stack SplitterのPaddingは4方向0としました
画像が貼り付けできないので説明が曖昧ですがCSSで言いますと
h2 {
border-top : solid 3px #f7f7f2 ;
border-right : solid 3px #f7f7f2 ;
}
と指定したときのような感じです
どこか見直す箇所は御座いますでしょうか?
それとlast.fmからの画像は表示せずテキストだけを表示する方法は御座いますでしょうか?
お忙しいとは存じますがご指導頂ければ幸いです
どうぞ、よろしくお願い致します
>とりあえず
お使いいただきありがとうございます。
白枠はおそらくconfig画面にあるPseudo Transparent(疑似透過モード)を試してみると治るかもです。
二つ目の方は基本的に画像を取ることがメインなんでそういうスクリプトになっとります。
316行目の画像取り実行 get_pic(); をコメントアウトすれば一応表示しないことはできますが、意図しない副反応が出るかもしれません。
では
>連投
Backgroundがいる場合、121行を gr.FillSolidRect(-1, -1, ww+1, wh+1, info_text.bio_font_background_color); みたいに広げてやるといいのかな。
>ご指導有難うございます
ご返答ありがとうございます
gr.FillSolidRect(-1, -1, ww+1, wh+1, info_text.bio_font_background_color);
とすることにより白枠が消えました
画像の非表示については画像に文字が重なるのを避けるためpanelを二枚上下に表示し上は画像のみ下は文字のみとしようと考えていましたが副反応の懸念との事でオリジナルのまま使用させて頂きます
大変便利なものをおつくり頂けまして感謝申し上げます
お陰様で音楽環境がより充実しております
ありがとうございます
>それは面白いかもしれない
もともと自分のスキンをコンパクトにしているせいで表示面積の節約でああなってるわけですが、二分割表示は面白いかもしれませんね。
コメントは日本語でお願いします。(URLは入力禁止:Do not URL writing.) :System message: コメントを受けつけています。
>バグ発見です
大変重宝しており感謝しております。
アーティスト名を%artist%優先に書き換えようと思いましたら、%が抜けておりましたのでお知らせします。
441行目 artist = Eval("%artist");
閉じ%抜けです。
すぐに気づかず30分ほど格闘しました(笑)
お手隙の際にでも見ていただければ幸いです。