initial commit
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
package browsers
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
|
||||
func (c *Chromium) GetDownloads(path string) (downloads []Download, err error) {
|
||||
db, err := GetDBConnection(filepath.Join(path, "History"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
rows, err := db.Query("SELECT tab_url, target_path FROM downloads")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
var (
|
||||
url, path string
|
||||
)
|
||||
if err = rows.Scan(&url, &path); err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
if url == "" || path == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
downloads = append(downloads, Download{
|
||||
URL: url,
|
||||
TargetPath: path,
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
return downloads, nil
|
||||
}
|
||||
|
||||
func (g *Gecko) GetDownloads(path string) (downloads []Download, err error) {
|
||||
db, err := GetDBConnection(filepath.Join(path, "places.sqlite"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
rows, err := db.Query("SELECT place_id, GROUP_CONCAT(content), url, dateAdded FROM (SELECT * FROM moz_annos INNER JOIN moz_places ON moz_annos.place_id=moz_places.id) t GROUP BY place_id")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
defer rows.Close()
|
||||
|
||||
for rows.Next() {
|
||||
var (
|
||||
content, url string
|
||||
placeID, dateAdded int64
|
||||
)
|
||||
|
||||
if err = rows.Scan(&placeID, &content, &url, &dateAdded); err != nil {
|
||||
continue
|
||||
}
|
||||
if url == "" || path == "" {
|
||||
continue
|
||||
}
|
||||
re := regexp.MustCompile(`file:///(.*?),`)
|
||||
result := re.FindStringSubmatch(content)
|
||||
if len(result) == 0 {
|
||||
continue
|
||||
}
|
||||
downloads = append(downloads, Download{
|
||||
URL: url,
|
||||
TargetPath: result[1],
|
||||
})
|
||||
}
|
||||
|
||||
return downloads, nil
|
||||
}
|
||||
Reference in New Issue
Block a user