place.sqliteに問題がありますか?奇妙に振る舞うようです。 $LAST_VISITED_URLを取得する方法は?

place.sqliteに問題がありますか?奇妙に振る舞うようです。 $LAST_VISITED_URLを取得する方法は?

出版しましたここ

これは私のものです。last-url.sh

    #!/bin/bash
    
    rm  -rf /tmp/db.sqlite 
    cp ~/.mozilla/firefox/*.default-esr/places.sqlite /tmp/db.sqlite ;
    LAST_URL=`sqlite3 /tmp/db.sqlite "select url from moz_places order by last_visit_date desc limit 1;"`;

    echo $LAST_URL

私のスクリプトは引き続き例を提供します。stackoverflow.com代わりにURLyoutube.com一方、ページをリロードしても同じです。

問題はどこにありますか?

プロフィールは1つだけですxxxxxx.default-esr

スクリーンショット: Firefoxの歴史 SQLiteデータベース

テスト例:「google test」は新しく訪問したURLで、他のページは更新されます。

今、私はFirefoxが(実際の履歴を反映する)履歴タブをどのように生成するかを諮問しています。どのファイルまたはSQLリクエストを使用しましたか? SQLite?

ベストアンサー1

スクリプトの変更

 #!/bin/bash
    
    rm  -rf /tmp/db.sqlite 
    cp ~/.mozilla/firefox/*.default-esr/places.sqlite /tmp/db.sqlite ;
    ORIG_QUERY=`select url from moz_places order by last_visit_date desc limit 1;`
    NEW_QUERY=`SELECT url FROM moz_places WHERE visited_count >=1 GROUP BY last_visit_date DESC ORDER BY id LIMIT 1
    LAST_URL=`sqlite3 /tmp/db.sqlite ${QUERY}`;
    TEST_URL=`sqlite3 /tmp/db.sqlite ${NEW_QUERY};`

    #echo $LAST_URL
    echo $TEST_URL

説明する

質問 以下の説明に基づいて、OPはデータベースがゼロベースでないことを確認しました。私のSQLは少し錆びましたが、保存されたクエリは「新しい()または更新()のいずれ${NEW_QUERY}かのURLの最初の行を返す必要があります。ここで、sは最大から最小までの日付でグループ化されています」言い換えれば:visit_count=1visit_count > 1id

今日の1,000ページ、昨日の500ページにアクセスして制限がない場合は、今日の日付の下に1,000ページ、昨日の日付の下に500ページをリストし、一番上にビッ​​グIDを表示する必要があります。 LIMITを設定すると、ページの更新を含む日付ごとにid最も高いURLが返されるはずです。last_visited

おすすめ記事