日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2024-02-19 20:56:57

Re①:Chromeのブックマークフォルダ内のブックマークをランダムで開きたい

TKI さん

Chromeのブックマークフォルダ内のブックマークをランダムで開きたい

お世話になります。
なでしこ1で実装したかったのですが、3の方が無難かと思いご指南ください。
 (3に初チャレンジしてみようかと・・・)

Chromeのブックマークフォルダに複数のブックマークを登録しています。
 (ブックマーク名=「動画」→「Youtube」)
ボタンをクリックしたら、上記フォルダ内のブックマークを開きたい(新規タブ)です。

すみませんが、ご教示ください。

※ 知ってる限りで書いていますので嘘の場合があります。 お気づきの点があれば補足お願いします。

じつは なでしこ1のほうが 無難かもしれない
なでしこ3はローカルのデータを扱うのにセキュリティうんぬんでアクセス制限に突き当たることが多いみたい。


なでしこ3ブラウザ版でも起動しているブラウザからブックマークを取得はできなさそうなので
ブックマークの一覧はファイルから取得します

Chromeのブックマークは
 \Users\ユーザー名\AppData\Local\Google\Chrome\User Data\Default\Bookmarks
にあるそうです。
(ユーザープロファイルが複数ある場合は「Default」の部分がかわる)

「Bookmarks」というファイルの中身がブックマークです。
ここに直接アクセスできるのはなでしこ1、なでしこ3コンソール版だけです。

なでしこ3配布キット版は一部のローカルファイルにだけアクセスできるので、その範囲にコピーして使います。

貯蔵庫などにあるなでしこ3ブラウザ版ではローカルファイルにアクセスできないので、
毎回クリップボード経由かファイルをドロップすることになります。
それ以外だと中身をプログラム内に直接書くか、どこかにアップロードするか。


Bookmarksのファイルの中身を見る感じJSON形式っぽいので「(ファイルを)AJAX_JSON取得」か「(中身を)JSONデコード」で辞書型の変数に変換します。
構造を見るためにコンソール表示

#-----------------------------------------------------------------------
//なでしこ3
json = クリップボード取得 //または「開く」など
Bookmarks = jsonをJSONデコード
Bookmarksをコンソール表示
#-----------------------------------------------------------------------

コンソール(開発者ツール)を開き、目的の動画が入っているchildrenを探して右クリックから「プロパティパスのコピー」を選びます
roots.bookmark_bar.children
みたいなものがコピーできます。

これをなでしこ3の配列の書き方に直して配列を得ます。
配列シャッフルすればランダム順になります。

#-----------------------------------------------------------------------
//なでしこ3
Bookmarks = jsonをJSONデコード
動画配列 = Bookmarks["roots"]["bookmark_bar"]["children"]
動画配列を配列シャッフル
動画 = 動画配列[0]
動画["name"]を表示
動画["url"]を表示
#-----------------------------------------------------------------------
ブックマーク内のランダムな動画URLがとれました。


なでしこ1ならurlを「起動」すれば既定のブラウザの別タブで起動するはず。
なでしこ3コンソール版か配布キット版ならブラウザのexeパスとurlを使って「起動」でいけそう。

なでしこ3のブラウザ版なら「ブラウザ移動」で移動はできるが別タブにはならず。
ブラウザ移動でも視聴後にブラウザバックすればなでしこのプログラムからまたランダムに移動するのでそれで良しとするか、
HTMLのAタグを「DOM部品作成」してなにか設定すれば別タブで開けるリンクが作成できるはず。



(編集パスワード送信)

子記事

親記事 (No.1828)
返信した記事(元) (No.1828)

この内容(No.1829)に返信

この内容(No.1829)をダウンロード

この内容(No.1829)のテキスト表示





www.eznavi.net