Last updated:
0 purchases
pbm 0.6.4
pbm works with Chrome and Chromium bookmarks JSON.
Free software: BSD license
Source: https://github.com/westurner/pbm
PyPI: https://pypi.python.org/pypi/pbm
Features
List Chrome and Chromium Bookmarks JSON files (-l / -L)
Print all bookmarks (--print-all)
Reorganize all bookmarks into the Bookmarks Bar (--organize)
Bookmarks Bar Folders
Name
Description
yearly
date-based folders: YYYY > YYYY-MM > YYYY-MM-DD
bookmarklets
bookmarklets (additions will be merged with a default set)
chrome
select chrome:// URLs
quicklinks
custom quicklinks (optional; copied as-is)
starred
bookmarks ending in one or more # are copied here
searchably prefixed with [XO], [XOOOO]
queue
default folder for new bookmarks
Installation
Install from PyPI with pip:
pip install pbm
Development:
pip install -e git+ssh://[email protected]/westurner/pbm#egg=pbm
Usage
List available Bookmarks files in Chrome and Chromium User Data
directories:
pbm -l # or -L to also list Bookmarks.%FT%T%z.bkp backups
Reorganize all bookmarks into Bookmarks Bar folders:
bmarks=$(pbm -l | grep "Profile 1" | head -n1)
pbm --organize "${bmarks}"
Serve and search bookmarks with the Tornado webapp:
pbmweb -H localhost -P 8080 -f "${bmarks}"
Then access the searchable bookmarks jstree at
http://localhost:28881/bookmarks/chrome
History
release/0.6.4 (2016-04-28 21:00:48 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.6.3..release/0.6.4
MRG: Merge tag ‘v0.6.3’ into develop [c1c2ef6]
BLD,BUG: pbm/static/brw: upgrade [7ff47be]
RLS: setup.py, __init__: v0.6.4 [5405e90]
v0.6.3 (2016-04-28 18:37:59 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.6.2..v0.6.3
MRG: Merge tag ‘v0.6.2’ into develop [449ad8b]
BUG,DOC: HISTORY.rst: escape * [6e9f74d]
BUG,DOC: HISTORY.rst: escape * [158ad09]
BLD: MANIFEST.in: recursive-include * LICENSE* [251cb7e]
BLD: MANIFEST.in: recursive-include pbm/templates *.jinja [bd9a93a]
RLS: setup.py, __init__: v0.6.3 [d477d74]
BLD,BUG: Makefile: build, dist [d7b62a4]
DOC: HISTORY.rst: git-changelog.py -r release/0.6.3 –hdr=- | pbcopy [bd174ab]
MRG: Merge branch ‘release/0.6.3’ [d66f624]
v0.6.2 (2016-04-28 18:18:06 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.6.1..v0.6.2
MRG: Merge tag ‘v0.6.1’ into develop [f69ab60]
BUG,BLD: setup.py: install_requires jinja_tornado [189210d]
BLD: src/jinja_tornado: upgrade [850198b]
RLS: setup.py, __init__: v0.6.2 [5298786]
DOC: HISTORY.rst: git-changelog.py -r release/0.6.2 –hdr=- | pbcopy [b3e6597]
MRG: Merge branch ‘release/0.6.2’ [376e14f]
v0.6.1 (2016-04-28 16:28:14 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.6.0..v0.6.1
MRG: Merge tag ‘v0.6.0’ into develop [c74bd7f]
BUG,DOC: HISTORY.rst: escape * [d14de7c]
BLD: MANIFEST.in: recursive-include pbm/static *.html *.js [bd07338]
BLD: Makefile: release w/ twine because HTTPS [56a72d3]
RLS: setup.py, __init__: v0.6.1 [511ee6a]
DOC: HISTORY.rst: ‘git-changelog.py -r release/0.6.1 –hdr=- | pbcopy’ [d884851]
MRG: Merge branch ‘release/0.6.1’ [d5ddf17]
v0.6.0 (2016-04-28 16:11:26 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.5.3..v0.6.0
Merge tag ‘v0.5.3’ into develop [d330a7e]
ENH: app.py: add HTTP_ACCESS_CONTROL_ALLOW_ORIGIN (optional CORS) [a17eb19]
CLN: rm filenames ending with ‘ ‘ from sed -i’ ‘ [17459bd]
BLD: setup.py, requirements.txt: add tornado as a dependency (for pbmweb) [b670e1c]
UBY: main.py: -y/–yes/–skip-prompt [91ff556]
BUG: pbm/main.py: ./Bookmarks -> Bookmarks (toward path.py/pathlib compat) [47838d0]
BLD: setup.py, requirements-test.txt: test deps: urlobject, rdflib [fb41197]
DOC: setup.py: package description [6c934cc]
TST,CLN: remove old /bookmarks/chrome/dict route [482f141]
REF: app.py: cls.template_path [e77b2b2]
BLD: pbm/static/brw: git submodule [1aa753f]
ENH: templates/main.jinja: link to //static/brw/index.html [4aa0804]
TST,UBY: pbm/main.py: logging.basicConfig(format=) [d50b31d]
BLD: Makefile: UNAME_S:=$(shell uname -s) [2a70f57]
CLN: .gitignore: add vim .swp, .swo [c177f25]
ENH: views, /logout, navlinks, /about, –open [ba9f16b]
BLD: pbm/static/brw: :fast_forward: to 3cb3d6f [4698efe]
DOC: HISTORY.rst: 0.6.0 [467eef1]
RLS: setup.py, __init__.py: v0.6.0 [d8191b5]
UBY: index.html: css [c44144f]
MRG: Merge branch ‘develop’ of https://github.com/westurner/pbm into develop [df28218]
BLD: src/jinja_tornado: upgrade [656c89d]
BLD: pbm/static/brw: upgrade [a782e17]
RLS: setup.py, __init__: v0.6.0 [dfa0da9]
MRG: Merge branch ‘release/0.6.0’ of ssh://github.com/westurner/pbm into release/0.6.0 [60875ae]
DOC: HISTORY.rst: ‘git-changelog.py -r release/0.6.0 –hdr=- | pbcopy’ [5345b84]
MRG: Merge branch ‘release/0.6.0’ [73af3ea]
v0.5.3 (2015-04-23 21:12:41 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.5.2..v0.5.3
Merge tag ‘v0.5.2’ into develop [c7d528f]
BUG: app.py: main argv handling, logging [21a669e]
DOC: v0.5.3 docs, version [cf2e2ee]
Merge branch ‘release/0.5.3’ [ff5b2bd]
v0.5.2 (2015-04-23 20:53:01 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.5.1..v0.5.2
Merge tag ‘v0.5.1’ into develop [b2f5992]
DOC: __init__.py, setup.py, HISTORY.rst: v0.5.2 [0cb8e87]
Merge branch ‘release/0.5.2’ [cfeed42]
v0.5.1 (2015-04-23 20:47:26 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.5.0..v0.5.1
Merge tag ‘v0.5.0’ into develop [0ecf417]
DOC: HISTORY.rst: v0.5.0, [a1111d4]
DOC: README.rst [b6ac7ee]
BUG,TST,REF: generate longdates, regular imports, test that queue[‘id’] is the max [fb1ab15]
DOC: HISTORY.rst: v0.5.1 [ad04316]
RLS: __init__.py: version v0.5.1 [a84d4e2]
Merge branch ‘release/0.5.1’ [4cda097]
v0.5.0 (2015-04-23 15:05:47 -0500)
git log --reverse --pretty=format:'* %s [%h]' v0.4.1..v0.5.0
ENH: main.py: Add –print-all output formatter [016a601]
BUG,ENH: main.py encoding errors w/ getwriter, print_json_link_list [f26b867]
ENH,TST: print_html_tree, tornado app, recursive RDFa template (todo: simplify) [102c5c8]
ENH: /bookmarks (jstree, /bookmarks/dict), /bookmarks/list [4bea937]
BUG: make window.open work with middle-click [4e7673d]
ENH,REF,CLN: JSON handlers, ##searchterm! onhashchanged, css, [markdown](url://formatting) [578c0ff]
BUG,REF: onhashchange sync (‘bindings’), css [8145dc6]
TST: tests/test_app.py: tornado.testing.AsyncHTTPTestCase [ba24573]
REF: /bookmarks -> /bookmarks/chrome [ac47841]
TST,REF: main function signature, explicit stdout, q [19f50a8]
BUG: main() argv must default to sys.argv[1:] for console_script [3ee4438]
TST: tests/data: current output [0b2384f]
REF: utils.get_template, imports [3cfbaca]
REF: -> pbm [c1e292e]
REF: -> pbm [9d57407]
REF: -> pbm [6481879]
REF: -> pbm [abae5ed]
RLS: setup.py, __init__.py: v0.5.0 [ab5e5e3]
Merge branch ‘release/0.5.0’ [c6096e8]
v0.4.1 (2015-03-02 04:24:00 -0600)
git log --reverse --pretty=format:'* %s [%h]' v0.4.0..v0.4.1
Merge tag ‘v0.4.0’ into develop [604f9d3]
BLD: MANIFEST.in: exclude .ropeproject and .bak [86a9090]
RLS: HISTORY.txt: v0.4.1 release notes [a93991d]
BLD,CLN: MANIFEST.in, Makefile: clean [3617d0c]
RLS: HISTORY.txt: v0.4.1 release notes [2c0300f]
RLS: setup.py: v0.4.1 [2990c02]
Merge branch ‘release/v0.4.1’ [f9a5a67]
Merge tag ‘vv0.4.1’ into develop [357d223]
v0.4.0 (2015-03-02 04:11:08 -0600)
git log --reverse --pretty=format:'* %s [%h]' v0.3.0..v0.4.0
Merge tag ‘v0.3.0’ into develop [08b5088]
BLD: Makefile: make test -> nosetests ./tests/test_promiumbookmarks.py [c934e99]
BUG: promiumbookmarks.plugins.PromiumPlugin: accept a conf={} argument [261a855]
TST: test_promiumbookmarks: remove import of promiumbookmarks.plugins.other [91d8132]
REF: promiumbookmarks/promiumbookmarks.py: factor BookmarksObject back into ChromiumBookmarks [4df13c9]
DOC: promiumbookmarks.ChromiumBookmarks.walk_bookmarks: docstring [780da1f]
BUG: promiumbookmarks.ChromiumBookmarks.bookmarks_list: bookmarks_list consume the iterable [1d1ab48]
CLN: dbf plugin: cleanup and simplify [26e3c07]
ENH: bookmarkletsfolder.py: add “notetab (800px)” bookmarklet (closes #2) [53582c9]
BUG: promiumbookmarks.ChromiumBookmarks.walk_bookmarks: pass filterfunc through [ee41454]
TST: tests/data/Bookmarks: set date_added to a nonzero date [c88f78b]
BUG: set date_added to a nonzero date [326c4fe]
ENH: Add plugins.DedupePlugin to deduplicate bookmarks on (url, date_added) [9369891]
TST: Bookmarks [1620af5]
TST: tests/data/Bookmarks: add starred, queued [ca7278e]
DOC: README.rst: fix title underline [5c8dc9f]
REF: promiumbookmarks.plugins plugin API [773ff26]
ENH: plugins.starred: O instead of # (searchable) [aa95b9c]
ENH: plugins.starred: prefix with X [783411d]
BLD: Makefile: check readme syntax [1309ac4]
RLS: HISTORY.txt: v0.4.0 release notes [39ef2b2]
Merge branch ‘release/0.4.0’ [ca63866]
v0.3.0 (2015-02-08 02:50:29 -0600)
git log --reverse --pretty=format:'* %s [%h]' v0.2.5..v0.3.0
Merge tag ‘v0.2.5’ into develop [2a1cfaa]
CLN,ENH: refactoring, initial plugin support [aaf96dc]
CLN: auto-lint [1b25145]
ENH: refactor to plugins, move tests to test_promiumbookmarks.py, add allinone and starred plugins [67dc734]
Merge with 0.2.5 [4dca76e]
DOC: README.rst, HISTORY.rst: headings [5f0a8a1]
RLS: setup.py: version 0.3.0 [b191c91]
Merge branch ‘release/0.3.0’ [fcd8496]
v0.2.5 (2014-12-25 08:18:16 -0600)
git log --reverse --pretty=format:'* %s [%h]' v0.2.4..v0.2.5
Merge tag ‘v0.2.4’ into develop [0a7ca31]
BUG: Add support for “linux2” platform [eb7621d]
RLS: setup.py, HISTORY.rst: v0.2.5 [6057e77]
Merge branch ‘release/0.2.5’ [59df7fe]
v0.2.4 (2014-12-13 17:58:55 -0600)
git log --reverse --pretty=format:'* %s [%h]' v0.2.3..v0.2.4
Merge tag ‘v0.2.3’ into develop [52555ac]
DOC: pip install -e git+, Bookmarks Bar Folders RST Table (Riv.vim) [ad01158]
RLS: version=0.2.4, keywords [7f1b08d]
DOC: README.rst: Bookmarks Bar Folders table (Riv.vim) [fa12164]
Merge branch ‘release/0.2.4’ [a582d44]
v0.2.3 (2014-12-13 17:37:45 -0600)
git log --reverse --pretty=format:'* %s [%h]' v0.2.2..v0.2.3
Merge tag ‘v0.2.2’ into develop [adfe382]
DOC: README.rst: https://pypi.python.org/pypi/promiumbookmarks [e5f6464]
RLS: setup.py version=0.2.3 [2e36d52]
Merge branch ‘release/0.2.3’ [7251ab5]
v0.2.2 (2014-12-13 17:33:12 -0600)
git log --reverse --pretty=format:'* %s [%h]' v0.2.1..v0.2.2
Merge tag ‘v0.2.1’ into develop [d2390e9]
BLD: MANIFEST.in: exclude tests/data/*.bkp [634235a]
RLS: setup.py version=0.2.2 [85b111e]
Merge branch ‘release/0.2.2’ [92b79d9]
v0.2.1 (2014-12-13 17:27:52 -0600)
git log --reverse --pretty=format:'* %s [%h]' v0.2.0..v0.2.1
Merge tag ‘v0.2.0’ into develop [b8e1f96]
RLS,DOC,CLN: setup.py description, classifiers, README.rst, HISTORY.rst, .gitignore [8e2e0c6]
Merge branch ‘release/0.2.1’ [dc8465a]
v0.2.0 (2014-12-13 17:10:04 -0600)
git log --reverse --pretty=format:'* %s [%h]' 0677946..v0.2.0
CLN: plain refactor into ChromiumBookmarks(object) [9eef12b]
ENH: Add ChromiumBookmarks.__init__, __iter__ and ChromiumBookmarks.reorganized [6cc0635]
CLN: -> ChromiumBookmarks.reorganize_by_date [648f64e]
CLN: update .gitignore [aa4bd44]
ENH,DOC: CLI actions and options [8384381]
CLN: move to chromium_bookmarks.py [5e9d0e6]
CLN: pep8, lint, rename to chromium_bookmarks.py [2847bfd]
BLD: Update Makefile [745b370]
ENH: Add chrome://history and chrome://bookmarks links to bookmarks bar [cf12e50]
ENH,DOC: bookmarklets, chrome:// URIs, docstrings, filterfunc param [05c7634]
ENH,CLN: Add ‘quicklinks’ Bookmarks Bar folder passthrough [1d49949]
ENH,BUG: date-based backups, merge defaults into ‘bookmarklets’, add a default ‘queue’ folder, filterfunc passthrough [577cd1c]
PRF: optimize chrome_filterfunc [522a3e6]
TST: test filenames, assertRaises(IOError) if ./Bookmarks does not exist [ac68e3e]
BLD,CLN: Makefile, chromium_bookmarks.py -> promiumbookmarks.py [21d6dd1]
CLN: chromium_bookmarks.py -> promiumbookmarks.py [6ce5194]
CLN: .gitignore [87e0962]
ENH: -l/-L to list Bookmarks [5090209]
TST: Update test Bookmarks [fb0e632]
ENH: get_chromedir, get_chromiumdir for (platform, release) [4d423d1]
BLD: promiumbookmarks.py -> promiumbookmarks/promiumbookmarks.py [6655625]
BLD: Add templated cookiecutter-pypackage [5038500]
BLD: Makefile: merge with cookiecutter [57ce9dd]
DOC: README.rst: Feature descriptions [a65ce02]
BLD: setup.py: promiumbookmarks console_script entrypoint [935aaa5]
DOC: README.rst: comment out travis badge for now [e3ea2b4]
DOC: README.rst: feature descriptions [91d304f]
DOC: README.rst: feature descriptions [886126d]
DOC: README.rst: feature descriptions [2c53107]
DOC: README.rst: Installation, Usage [5267be5]
RLS: setup.py: version=0.2.0 [a06a2a2]
Merge branch ‘release/0.2.0’ [87eece7]
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.