Commit Graph

320 Commits

Author SHA1 Message Date
SaltyCatFish
e12d2f95f0 Support keyword filtering (records having keywords a and b but not c and d) (#256)
* Support keyword filtering (records having keywords a and b but not c and d)

* Remove debug statements.

* Left a pass statement by mistake.

* Update cli help to show word list '[...]' after search options.

* Add space after method doc.

* Change cli option '-W --without' to '-x --exclude'
2018-03-25 23:10:06 +05:30
Arun Prakash Jana
f804233ef9
Sanitize PR #252 2018-03-23 05:10:48 +05:30
SaltyCatFish
6db194405b Add search_and_filter (#252)
* Add search_and_filter

* Update search_any_keyword_and_filter_by_tags and tests.
2018-03-23 04:15:20 +05:30
Arun Prakash Jana
1c5695fdbd
Fix #253: Localize tag error check, fix tag exclusion 2018-03-22 20:57:01 +05:30
Arun Prakash Jana
33c126a068
Use search option specific keyword lists 2018-03-13 08:29:27 +05:30
Arun Prakash Jana
1cb544fe1d
New tagline.
"Command-line bookmark manager with browser integration."
2018-03-06 07:38:47 +05:30
Arun Prakash Jana
2fa6fb07c7
Handle 'O' and '?' in taglist subprompt
These 2 inputs do not change the taglist. So we can do without losing context.
In addition, defer the handling of error cases.
2018-02-18 23:04:26 +05:30
Arun Prakash Jana
e43c0ea58d
Override text browser with 'O' 2018-02-18 22:51:23 +05:30
Arun Prakash Jana
f3ec54692f
Change double quotes to single 2018-02-18 06:54:59 +05:30
Alex
c2d21b8c24 Feature/order search results by keyword matches (#244)
* Add case statements to search_by_tag

* Add subselect so we don't return score column

* update tests to change expected order of results

* Add case statements to searchdb

* Add docstring to wrap_in_case_statement

* Add to comment in search_by_multiple_tags_search_any test

* Switch clause to fragment

* Change case_select variable to case_statement

* Remove wrap_in_case_statement function and use lambda instead
2018-02-18 06:52:59 +05:30
rachmadani haryono
19e8fff33d Feature/test copy url to clipboard support (#243)
* chg: dev: move new feature to its own function

* chg: test: test copy_to_clipboard func

* chg: test: remove pytest-catchlog

* chg: test: minimum pytest version

* chg: test: add exception on python 3.5&3.6 tests
2018-02-11 21:27:33 +05:30
Arun Prakash Jana
fc000c01f4 Copy URL to clipboard support 2018-02-11 05:12:57 +05:30
Arun Prakash Jana
3c78569508
Fix: auto-import fails on OpenBSD 2018-02-03 17:48:55 +05:30
Arun Prakash Jana
076cd02c98
Prepare for release v3.6 2018-01-01 20:00:01 +05:30
Arun Prakash Jana
d6c2ddb683
Fix build break 2017-12-26 22:14:28 +05:30
Arun Prakash Jana
42882a6a9a
Clear PoolManager resources 2017-12-02 20:20:41 +05:30
Arun Prakash Jana
1f0b666c42
Use urrllib3 to shorten, expand URLs.
Get rid of requests library from code.
Rename http_handler to manager.
2017-12-01 14:54:00 +05:30
Arun Prakash Jana
7860af2e6e
Use urllib3 to check latest version 2017-12-01 14:26:20 +05:30
Arun Prakash Jana
31f9c96f83
Remove kernel version from user agent 2017-11-26 16:24:58 +05:30
Arun Prakash Jana
0d60a58adb
Auto-import bookmarks on FreeBSD 2017-11-21 19:43:08 +05:30
Arun Prakash Jana
0b58fda16c
Fix build break 2017-11-15 03:13:31 +05:30
Arun Prakash Jana
e00e3eee18
Fix #235: skip bookmark add if edit aborted 2017-11-14 21:57:14 +05:30
Arun Prakash Jana
3566e26268
Prepare for release v3.5 2017-11-10 10:51:06 +05:30
Arun Prakash Jana
ac77c8fc18
Update documentation on import and export 2017-11-07 06:56:56 +05:30
rachmadani haryono
517ac6319d Chromium support (#232)
* new: dev: chromium support

* new: dev: path for windows and mac osx
2017-11-07 06:26:58 +05:30
Alex
2d037d00d7 Use set operations in suggest_similar_tag method; add tests (#230)
* Use set operations in suggest_similar_tag method; add tests

* remove extra blank line
2017-11-06 08:19:10 +05:30
Arun Prakash Jana
26d5e73788
Fix build error 2017-10-23 19:44:43 +05:30
Arun Prakash Jana
fa16f7fda8
Move import helper APIs to correct section 2017-10-17 23:31:56 +05:30
Alex
d46f272a30 Use set() to create list of unique tags (#224) 2017-10-16 21:01:18 +05:30
rachmadani haryono
956e3965f0 fix: test: logerr args (#222)
Thank you!
2017-10-14 20:09:57 +05:30
rachmadani haryono
567763238a Feature/exception on malformed url (#221)
* fix: dev: malformed url

* new: test; about and chrome protocol

* fix: dev: fix lint

* fix: dev: import error on urllib3

* fix: dev: urllib3 exceptions

* fix: test: test on protocols

* fix: dev: return value of is_bad_url

* chg: dev: update buku

- change logerr msg
- sort ignored_prefix
- check is_nongeneric_url and is_bad_url
2017-10-14 16:43:53 +05:30
Arun Prakash Jana
98fd16f075
Fix #219: catch BrokenPipeError 2017-10-12 09:14:48 +05:30
Arun Prakash Jana
f72f8af3d8
Edit last record in EDITOR (option -w) if id=-1.
This is a convenience feature. If the user is using a keyboard shortcut to add
a selected link as bookmark from the DE, he may want to edit it shortly. The -1
index enables him to open the last bookmark added without using option `-p -1`.
2017-10-09 01:21:13 +05:30
Arun Prakash Jana
848d9d7943
Add user agent string for Buku 2017-09-27 04:24:57 +05:30
Arun Prakash Jana
0c42ef3f12
Encode request, close() response 2017-09-27 04:23:54 +05:30
Cthulhux
9b3157b196 Fix #217 (#218)
* Fix #217

* revised #217: support for BUKU_COLORS

* #217 revised again: don't disable colors when BUKU_COLORS exists
2017-09-24 07:25:19 +05:30
Alex
cb95122be5 Search honors field filters: implements print_rec_with_filter (#216)
* Initial test of print_rec_with_filter

* Replace dummy code to actually pass test

* Call print_rec_with_filter if search options are used with --format

* Call print_rec_with_filter in print_rec; add field_filters, update test

* Add new format_filters to argparse arguments to --format

* Update help for --format

* Update man page and remove trailing whitespace

* Fix test cases

* Update README

* Call print_single_rec from print_rec_with_filter if filt is 0

* Add create=True to buku.print mock

* Update Help text

* Update README

* Update man page
2017-09-23 22:31:37 +05:30
Alex Bender
ca8d0f2d45 Get default profile path from profiles.ini file (#213)
* Get default FF profile from profiles.ini

* Fix get_firefox_profile_name

* Fix imports

* Remove unused variable

* Fix FF default profile path for Windows

* Fix autoimport GC bookmarks function

* Add comment to load_chrome_database

* Add quotes to comment

* Change loger to logdbg in get_firefox_profile_name

* Simplify log message in get_firefox_profile_name
2017-09-21 15:11:49 +05:30
Arun Prakash Jana
4a817e583c
Add comment on default profile naming convention 2017-09-20 09:39:45 +05:30
Arun Prakash Jana
a659ebe061
Fix #212: Check for '.default' in dir name 2017-09-20 09:14:22 +05:30
Arun Prakash Jana
21304b35c2
Fix #211: use user agent from elinks on Linux 2017-09-19 18:10:30 +05:30
Arun Prakash Jana
092a1f1ba6
Prepare for release v3.4. 2017-09-18 11:33:49 +05:30
Arun Prakash Jana
4e56a3744b
Shorten help. 2017-09-17 18:30:10 +05:30
Arun Prakash Jana
ff57ae5c2f
Support export to Buku database. 2017-09-17 11:53:18 +05:30
Arun Prakash Jana
bd53cba38d
Remove redundant string in markdown export. 2017-09-17 10:16:32 +05:30
Arun Prakash Jana
2a5cd4c8df
Merge --merge to --import. 2017-09-17 08:40:12 +05:30
Arun Prakash Jana
6aa8b59514
Update documentation. 2017-09-16 23:08:11 +05:30
Arun Prakash Jana
146584b8bb
Suggest bookmarks from prompt 2017-09-16 01:29:05 +05:30
Arun Prakash Jana
2085d9d2e2 Fix #208: Catch exception if Firefox is not installed 2017-09-12 18:50:26 +05:30
Arun Prakash Jana
618384e540
Fix #206: attribute must be initialized before API usage. 2017-09-12 04:31:31 +05:30
Arun Prakash Jana
07f5ab4aa9
Prepare for release v3.3.1. 2017-09-11 08:31:13 +05:30
Arun Prakash Jana
cb96692ebf
Prepare for release v3.3 2017-09-11 04:18:06 +05:30
Arun Prakash Jana
59ce276361
FF --ai: rework, folder as tag, check generic URL 2017-09-10 14:42:52 +05:30
Arun Prakash Jana
dbac74d440
Add generated tag in Firefox auto-import 2017-09-09 18:29:32 +05:30
Arun Prakash Jana
d3b263905b
Fix NumPy style 2017-09-09 18:17:01 +05:30
Arun Prakash Jana
0b69d53219
Fix #201: Google Chrome auto-import is broken
Changes:
- Traverse through JSON data and find individual records
- Support addition of unique tag in YYYYMonDD format
- Add parent folder name as tag
- Add the bookmarks to database
2017-09-09 15:03:24 +05:30
Alex
f54f7f24fd Sphinx (#200)
* Fix Parameters typo

* Almost working documentation generation

* Remove genarted html files, update conf and index

* Update docs/conf.py

* Add docs/source files

* Prevent creation of modules.rst; update index.rst

* Move conf.py and index.rst to docs/source

* Add opening paragraph to index.rst

* Fix flake8 issues
2017-09-09 09:10:05 +05:30
Arun Prakash Jana
94bcf90277
Enable browser output for text browsers 2017-09-09 00:43:26 +05:30
Arun Prakash Jana
6e2b459ca4
Remove dependency on webbrowser, call add_rec() for GC 2017-09-08 23:02:15 +05:30
Arun Prakash Jana
8c91a8ca7e
More informative exception message, typo fix 2017-09-08 21:47:18 +05:30
Arun Prakash Jana
e645784748
Add API to generate automatic timestamp tag
The format is: YYYYMonDD
where,
  YYYY - numeric year
  Mon  - month string
  DD   - numeric day of month

While importing bookmarks, this tag will be added and reported to user if
`--tacit` option is not specified.
2017-09-08 21:34:14 +05:30
Alex
a29be2e921 Format buku.py docstrings in NumPy style. (#199)
* Halfway through updating buku.py in numpydoc style

* Two thirds-through numpydoc style; before fixtags

* Begin work on Helper Functions

* Numpy docstrings up to Editor Mode Functions

* Finish rest of buku.py docstrings; add 'optional' to optional keyword args
2017-09-06 01:54:04 +05:30
Arun Prakash Jana
2e7e432fa2
Fix grammar in question 2017-09-03 19:24:13 +05:30
Arun Prakash Jana
83c7c59cd5
Simplify record printing 2017-08-28 22:46:00 +05:30
Arun Prakash Jana
aaf82ab67c
Fix build error 2017-08-25 04:03:57 +05:30
Arun Prakash Jana
e932525641
Fix broken --nc. 2017-08-25 03:26:51 +05:30
Arun Prakash Jana
3b0bd1c054
Remove hard-coded colors 2017-08-25 03:26:49 +05:30
Arun Prakash Jana
c9d15b4c98
Fix colors implementation 2017-08-25 03:26:42 +05:30
Arun Prakash Jana
3453369841
Sanitize colors (ongoing...) 2017-08-23 10:15:25 +05:30
Arun Prakash Jana
4cc733708a
Fix build 2017-08-23 03:48:27 +05:30
shv-q3
9dcbd67ac5 implement feature "Support custom colours" (#197)
* implement "Support custom colours" from (#174)

# imported collections module for named tuple
# add "colormap" from googler project
# add named tuple for id and title, url, desc, tag
# adjusted print_single_rec so colors can be changed for each item
# add valid color string checker from googler
# adjusted man options
# add autocompletions

* Hotfix - implement "Support custom colours" from (#174)
# sorted import in alphabetical order
# adjusted var name's
# add colors table to man file
# add color os ENV option
# add --color documentation in README under "Usage"

* fix typo error in man page color section

* Update buku-completion.bash

--color reordered in alphabetical order

* Update buku.fish

--color reordered in alphabetical order

* Update _buku

--color reordered in alphabetical order

* Hotfix2 - implement "Support custom colours" - restructure feature
# separated id from ID_str and ID_DB_STR so it can have separate color
# add 5 string color for (id, title, url, desc, tag)
# adjusted print_single_rec for 5 colors result
# fixed syntax .BI \--colors " COLORS" in man page
# replaced four with five letter string for color
# fixed default colors to "GKlxe" and "\x1b[2m" for DB index
# add example to README and man page
# removed check for colorstr_env set by user for the moment

* Fixed reviews

* Review fixes
2017-08-23 03:39:43 +05:30
Alex
bb1957bdba Fix incorrect docsting in prep_tag_search (#191) 2017-08-16 09:20:31 +05:30
Arun Prakash Jana
bb5523cb97
Re-factor parts of README into Wiki articles 2017-08-15 20:07:27 +05:30
Alex
2b7f142245 Feature/search multiple tags (#187)
* Implement feature "Search multiple tags, exclusion in tag search"

Add failing test for searching any multiple set of tags

Search any tags works; passing tests

Add failing test for searching all multiple tags

Search all tags works

Do not allow combination of search logics

Adds support for tag exclusion search

Update Search Options Group

Update README

Clean up

Fix man/readme language

Fix search_by_tag docstring

Split tags by ' - ' not '-': allows for hyphenation

Remove unnecessary else

Change search_logic lang to search_operator

Update exclusion language in readme and man

Print warning if ',' and '+' are both used in a search

* Add documentation and examples to manpage, improve documentation in README and buku.py

* Enforce space separation of '+' and document

* Fix under-indent in tests that causes build failure

* Add test to check that search_by_tag constructs correct sqlite query; also remove unittest.skips from search_by_tag tests

* Move tag search preparation work into prep_tag_search helper function; add test to test_buku.py

* Use pytest.mark.parametrize for test_prep_tag_search
2017-08-15 02:37:01 +05:30
Arun Prakash Jana
4cbc982d88
Update documentation, help 2017-08-13 17:23:05 +05:30
Arun Prakash Jana
ec3e50c445
Document auto-import option 2017-08-13 03:45:56 +05:30
rachmadani haryono
8afba2d826 Feature/pylint (#185)
* fix: dev: os function name

* new: test: pylint config

* new: test: pylint test

* chg: dev: linting guide

* new: dev: add alternative commented test run command

* chg: dev: max line length on PR template
2017-08-12 16:56:59 +05:30
Arun Prakash Jana
539f96eb65 Line length is more now! :) 2017-08-12 12:23:07 +05:30
Alex Bender
c8fe3e3f16 Import browser bookmarks (#183)
* WIP import bookmarks from browser database files

* WIP Import chrome bookmarks from browser

* Implement import from FF function

* Add default GC and FF folders for Linux, OS X and Windows

* Remove unused function

* Close file after usage

* Fix uncareful merge

* Fix merge conflicts, fix styling

* Add blank lines between functions

* Add new lines in docstrings

* Rename argument for auto import
2017-08-12 01:10:56 +05:30
Arun Prakash Jana
7454bdf5ea
Honor --tacit in auto-import 2017-08-11 21:28:31 +05:30
Arun Prakash Jana
944aa06ae1
Fix lint reports 2017-08-11 21:02:44 +05:30
Arun Prakash Jana
5d25deebf2
Fix FF auto-import issues
1. parse_tags() is a generic function
2. Filter out non generic URLs
2017-08-11 20:39:00 +05:30
Alex Bender
3154a6817c Import browser bookmarks (#180)
* WIP import bookmarks from browser database files

* WIP Import chrome bookmarks from browser

* Implement import from FF function

* Add default GC and FF folders for Linux, OS X and Windows

* Remove unused function

* Close file after usage

* Fix uncareful merge

* Fix merge conflicts, fix styling

* Add blank lines between functions

* Add new lines in docstrings
2017-08-10 08:26:44 +05:30
Arun Prakash Jana
22ef605f3b
Honor reduced verbosity 2017-08-04 09:44:07 +05:30
Arun Prakash Jana
f56d64d34f
Prepare for release v3.2 2017-08-03 09:49:20 +05:30
Arun Prakash Jana
90254d3af5
Add a newline after tag selection 2017-08-03 09:45:53 +05:30
Arun Prakash Jana
5b26d49044
Option --suggest - list similar bookmarks 2017-08-01 21:07:03 +05:30
Arun Prakash Jana
8a1177c176 Add function to suggest similar tags 2017-07-31 02:21:29 +05:30
Arun Prakash Jana
bb9810c093
Add prompt help 2017-07-25 09:28:32 +05:30
rachmadani haryono
50e89f58b7 refactor import db (#176)
* chg: dev: refactor bookmark html

* chg: dev: refactor bookmark markdown parser

* chg: dev: update refactor

* new: test: import_md

* fix: dev: newtag parameter on import_md

* new: test: import_html

* new: test:  add bs4 as test package

* chg: dev: rename fp to filepath

* new: test: import html and add parent as tag

* new: test: additional test for import_html

* new: test: simple bookmark html

* chg: dev: add round bracket !cosmetic

* chg: dev: maximalize line length !cosmetic
2017-07-22 09:01:29 +05:30
Arun Prakash Jana
a9f4cd502a
Honor --tacit: import folder names as tags if True 2017-07-20 10:14:37 +05:30
Arun Prakash Jana
55e0eb5767
Add parent folder as tag in same loop 2017-07-19 19:21:14 +05:30
Arun Prakash Jana
730b80f738
Fix #172: Get text of <DD> tag only, skip children 2017-07-18 23:11:46 +05:30
Arun Prakash Jana
45ab8034cd
Ignore spurious tags.
Please refer to #172. The spurious '<a></a>' tag leads to a crash; with or
without any text within.
2017-07-18 23:00:37 +05:30
rachmadani haryono
115c9651f8 Feature/test non generic url (#173)
* new: test: non generic url check method

* fix: test: test parameter

* chg: test: edit apt url

* fix: test: apt parameter

* chg: dev: allow `apt:` prefix

* new: test: `place:` url

* chg: doc: `apt:` prefix
2017-07-18 20:05:08 +05:30
Arun Prakash Jana
16cad432d7
Ignore some non-generic URLs.
URLs starting with `place:`, `file://` and `apt://` are ignored during import.
2017-07-18 10:50:27 +05:30
Arun Prakash Jana
d2037765d0
Fix #171: undocumented option '--db' 2017-07-16 15:08:01 +05:30
Arun Prakash Jana
e4cfb4b0f8
Prepare for release v3.1 2017-07-10 22:16:30 +05:30
Arun Prakash Jana
851711a78e
Add search args to history 2017-06-16 19:59:47 +05:30
Arun Prakash Jana
6abfea2e33
Support XDG_DATA_HOME, HOME to store DB file on all platforms 2017-05-29 01:09:33 +05:30