Parse db/html/json bookmarks file from (Chrome - Firefox - Custom source) and convert it to db/html/json format.
Project description
Bookmarks Converter
Bookmarks Converter is a package that converts the webpage bookmarks
from DataBase
/HTML
/JSON
to DataBase
/HTML
/JSON
. It can be used as a module
or using the CLI.
-
The Database files supported are custom sqlite database files created by the SQLAlchemy ORM model found in the
.models.py
. -
The HTML files supported are Netscape-Bookmark files from either Chrome or Firefox. The output HTML files adhere to the firefox format.
-
The JSON files supported are the Chrome
.json
bookmarks file, the Firefox.json
bookmarks export file, and the custom json file created by this package.
To see example of the structure or layout of the DataBase
, HTML
or JSON
versions supported by the packege, you can check the corresponding file in the data folder found in the github page data or the bookmarks_file_structure.md.
Table of Contents
Python and OS Support
The package has been tested on Github Actions with the following OSs and Python versions:
OS \ Python | 3.10 |
3.9 |
3.8 |
3.7 |
---|---|---|---|---|
macos-latest |
✓ | ✓ | ✓ | ✓ |
ubuntu-latest |
✓ | ✓ | ✓ | ✓ |
windows-latest |
✓ | ✓ | ✓ | ✓ |
Dependencies
The package relies on the following libraries:
- BeautifulSoup4: used to parse the HTML files.
- SQLAlchemy: used to create and manager the database files.
Install
Bookmarks Converter is available on PYPI
python -m pip install bookmarks-converter
Test
To test the package you will need to clone the git repository.
# Cloning with HTTPS
git clone https://github.com/radam9/bookmarks-converter.git
# Cloning with SSH
git clone git@github.com:radam9/bookmarks-converter.git
then you create and install the dependencies using Poetry
.
# navigate to repo's folder
cd bookmarks-converter
# install the dependencies
poetry install
# run the tests
poetry run pytest
Usage as Module
from bookmarks_converter import BookmarksConverter
# initialize the class passing in the path to the bookmarks file to convert
bookmarks = BookmarksConverter("/path/to/bookmarks_file")
# parse the file passing the format of the source file; "db", "html" or "json"
bookmarks.parse("html")
# convert the bookmarks to the desired format by passing the fomrat as a string; "db", "html", or "json"
bookmarks.convert("json")
# at this point the converted bookmarks are stored in the 'bookmarks' attribute.
# which can be used directly or exported to a file.
bookmarks.save()
Usage as CLI
# Activate the virtual environment if the "bookmarks-converter" package was installed inside one.
# run bookmarks-converter with the desired settings
# bookmarks-converter input_format output_format filepath
bookmarks-converter db json /path/to/file.db
# use -h for to show the help message (shown in the code block below)
bookmarks-converter -h
The help message:
usage: bookmarks-converter [-h] [-V] input_format output_format filepath
Convert your browser bookmarks file from (db, html, json) to (db, html, json).
positional arguments:
input_format Format of the input bookmarks file. one of (db, html, json).
output_format Format of the output bookmarks file. one of (db, html, json).
filepath Path to bookmarks file to convert.
optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for bookmarks-converter-0.3.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a4591b7c17d251fd4fa2009b06ac3ba6548587548a4220ad2428e91359594d9 |
|
MD5 | 99d564397866afd25ae95c0a4d6e3d5d |
|
BLAKE2b-256 | 9c2f8431da1a75486aa5c708179ef62af77f29e979119c3c02ddfdd6ba7191ed |
Hashes for bookmarks_converter-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 174a3d083df114dd62239a1f6bd413edddd17be3ab63a613252efc3fa7150df6 |
|
MD5 | 431ce81bb7493199b1ea93e9ea44816e |
|
BLAKE2b-256 | b81c760ef797c85b1314ee95ac9386c6e348f7fff951a6a609cd7378b709eaf5 |