samhh / bukubrow-host Goto Github PK
View Code? Open in Web Editor NEWHost application for the Bukubrow WebExtension
License: GNU General Public License v3.0
Host application for the Bukubrow WebExtension
License: GNU General Public License v3.0
See here: The maximum size of a single message from the application is 1 MB.
The 4GB limit going the other way is large enough that we can just ignore it.
Pagination of all returning payloads may be the simplest solution. Alternatively we could split the payload into 1MB chunks and require the consumer on the other end to concatenate and parse them.
Update POST, PUT, DELETE to all act upon Vec<T>
rather than T
. This is a breaking change.
Hi,
I've updated to version bukubrow 5.4.0 and now I cannot add new bookmarks entries.
This issue happens in Firefox but not in Chrome. I'm reporting here because I've no installed a new version of bukubrow-host.
However I can edit and delete entries.
Firefox version is 94.0 (64-bit) and bukubrow-webext is 5.0.3.0.
If you need more information I could provide it.
Thanks in advance!
SB
I currently have the following bound to a hotkey in my WM config: buku -p -f 3 | rofi -dmenu -p bookmark | cut -d ' ' -f 1 | xargs --no-run-if-empty buku -o
Unfortunately there's a lot of latency before it responds, presumably because it's written in the interpreted language Python.
Let's add flags to recreate this behaviour at lightning, compiled, Rust speed!
Two approaches:
-l
/--list
and -o
/--open
.Just wondering if it is possible to build with OpenBSD. I could try to build using the darwin flag...
Include the path that the file has been placed in so that the user can verify themselves if they'd like to.
error[E0308]: mismatched types
--> src\cli.rs:93:34
|
93 | .value_delimiter(",")
| ^^^ expected `char`, found `&str`
For more information about this error, try `rustc --explain E0308`.
error: failed to compile `bukubrow v5.3.0 (...\bukubrow-host)`, intermediate artifacts can be found at `...\bukubrow-host\target`
Caused by:
could not compile `bukubrow` due to previous error
Apparently, cargo install
pulls in the newest semver-matching version of all dependencies, instead of strictly respecting Cargo.lock
.
In clap-v3.0.0-beta.4
, the syntax of Arg.value_delimiter
was changed, and due to the strange non-locked default behaviour of cargo install
, this version is used instead of the beta.2
version specified in the lockfile.
A temporary workaround is to use cargo install --locked
. Updating the lockfile (using cargo update
) will provide a more permanent fix.
Odd as it may sound, Buku may not technically be a dependency of this project beyond the creation of its database. Given how many dependencies Buku pulls in on the AUR, this may be something to investigate...
Windows / Firefox support (thanks @dragonmaus!)
Windows / Chromium-based support (thanks @dragonmaus!)
CI builds
On my machine using the KDE desktop bukubrow automatically closes when for instance an on screen display (volume etc.) pops up. When you're adding a bookmark you lose it, so I think it might be better to not automatically close bukubrow when adding bookmarks if possible.
This annoys me more than it should.
ID
dir
Thanks so much for creating this tool. It works like a charm on my linux box but I'm having issues on my Mac.
The host compiles without error but when executed simply reports "Failed to locate Buku database.". The buku command works just fine.
Sadly, I'm not familiar enough with rust to submit a patch.
Cheers
How exactly can I set up buku on local network, so that PCs on the network would be able to use the same database?
I downloaded the code from master (461b28e), compiled and configured with firefox correctly. However there are some warnings that probably will be errors in the future.
Warnings:
Compiling bukubrow v5.0.0 (/home/XXX/bukubrow-host-master)
warning: trait objects without an explicit `dyn` are deprecated
--> src/buku/database.rs:85:39
|
85 | &bm.flags as &ToSql,
| ^^^^^ help: use `dyn`: `dyn ToSql`
|
= note: #[warn(bare_trait_objects)] on by default
warning: trait objects without an explicit `dyn` are deprecated
--> src/buku/database.rs:101:42
|
101 | &bm.metadata as &ToSql,
| ^^^^^ help: use `dyn`: `dyn ToSql`
Finished release [optimized] target(s) in 1m 56s
Rust version:
$ rustc --version
rustc 1.37.0
Also refer to this comment for other exploratory options: samhh/bukubrow-webext#116 (comment)
This might be useful: https://www.reddit.com/r/rust/comments/c7l11k/diffr_a_diff_highlighting_tool/esg2s9l/?context=3
I get the following error on step 4 of the Installation section of the readme:
bukubrow-linux-x64 --install-firefox
Failed to install host for Firefox:
Unrecognised operating system
I also noticed during step 2 that this message was displayed:
cargo build --release --target=x86_64-unknown-linux-gnu
Thanks for any help in advance!
I decided to see if I could get this and the associated web extension running from Brave.
Since Brave is chromium based, I tried running bukubrow --install-chromium
. This does not fully work.
Copying ~/.config/chromium/NativeMessagingHosts/com.samh.bukubrow.json
to the ~/.config/BraveSoftware/Brave-Browser/NativeMessagingHosts/
directory
appears to fix the issue.
Something has broken the CI script(s)... ๐ค
Compiling bukubrow v5.1.0 (/home/me/yay/bukubrow/src/bukubrow-host-5.1.0)
warning: trait objects without an explicit `dyn` are deprecated
--> src/buku/database.rs:85:39
|
85 | &bm.flags as &ToSql,
| ^^^^^ help: use `dyn`: `dyn ToSql`
|
= note: `#[warn(bare_trait_objects)]` on by default
warning: trait objects without an explicit `dyn` are deprecated
--> src/buku/database.rs:101:42
|
101 | &bm.metadata as &ToSql,
| ^^^^^ help: use `dyn`: `dyn ToSql`
error: linking with `cc` failed: exit code: 1
|
.... whole bunch of errors
collect2: error: ld returned 1 exit status
error: aborting due to previous error; 2 warnings emitted
error: could not compile `bukubrow`
To learn more, run the command again with --verbose.
I have two chromiums with different user-data-dir locations. The same feature also exists for other browsers too. It would be nice if one could optionally specify a custom data dir location to use for the installation process.
If this is possible, it'll be simpler and more discoverable than Azure.
Hi @samhh
I recently noticed that, for some reason, my Edge (Dev Channel) on Linux has stopped working and is giving me an error:
I decided to re-install it, but when I do bukubrow --help
, I don't see the Edge option anymore ๐ค
bukubrow 5.2.0
Sam A. Horvath-Hunt
Bukubrow native messaging host installer
USAGE:
bukubrow [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
--install-brave Install the native messaging host for Brave
--install-chrome Install the native messaging host for Chrome
--install-chromium Install the native messaging host for Chromium
--install-firefox Install the native messaging host for Firefox
--install-vivaldi Install the native messaging host for Vivaldi
-l, --list Print all bookmarks in a list to stdout
-V, --version Prints version information
OPTIONS:
-o, --open <ID[,ID]> Open bookmark(s) in the browser by ID
And the output of bukubrow --version
is bukubrow 5.2.0
So, I had a couple of questions for you:
--install-edge
option? ๐bukubrow
, but I'd appreciate if you help ๐ )Personal repro:
$ xdg-settings set default-web-browser vimb.desktop
$ bukubrow -o 207
Doesn't seem to affect Firefox, at least when some instances are already open.
Buku (buku -o 207
) doesn't suffer the same issue.
See prior comment here.
It seems that the fix for finding the database on macOS commit actually caused a regression on linux. The latest git version doesn't work, version 5.1.0 does however work correctly on linux.
Some relevant info:
$ echo $XDG_DATA_HOME
/home/username/.local/share
Location of bookmarks.db
:
/home/sandersantema/.local/share/buku/bookmarks.db
Always provide a helpful error message back to the WebExtension no matter what's gone wrong.
Once this is complete, corresponding work will need to take place to utilise it in the WebExtension.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.