Simple bookmark manager built with Go
Find a file
Felipe Martin Garcia 05fee53bd0
fix: saving bookmarks inconsistencies (#500)
* chore: updated go-migrate dependencies

* fix: specify if we're saving bookmarks expecting a creation

up until now the SaveBookmarks method was doing some "magic" to do
"upserts" on the databases, but consistency between engines was scarce
and not knowing if we were expecting saving a new bookmark or updating
an existing one was leading to errors and inconsistencies in logic all
around the place. Now we need to specify a creation boolean when
saving and a differnt query will be make (INSERT vs UPDATE).

* fix(api): using incorrect bookmark for content downlaod

* test(db): added test pipeline for databases

Added functions that will share logic among the engines and will be
called on fresh databases on each test run

* dev: added basic docker-compose for development

* chore: uncommented tests

* ci(test): added mysql service

* typo

* test(mysql): select database after reset

* fix(mysql): ignore empty row errors when parsing tags

* fix(mysql): handle insert errors

* chore: added mysql variables to compose

* ci: explicit mysql service port exposed
2022-10-11 23:47:38 +02:00
.githooks Add GitHub Action for tests & coverage 2020-08-06 21:08:43 +02:00
.github fix: saving bookmarks inconsistencies (#500) 2022-10-11 23:47:38 +02:00
docs docs: fix remember represented as a number instead of a bool (#472) 2022-09-30 12:17:05 +02:00
internal fix: saving bookmarks inconsistencies (#500) 2022-10-11 23:47:38 +02:00
.dockerignore Setup new CI/CD workflows (#365) 2022-02-13 16:38:54 +01:00
.gitignore feat: sqlite migrations (#398) 2022-03-26 08:33:57 +01:00
.goreleaser.yaml Setup new CI/CD workflows (#365) 2022-02-13 16:38:54 +01:00
app.json Revert "Restructure build files" 2019-09-26 16:25:19 +07:00
CODE_OF_CONDUCT.md Update links and email addresses 2020-08-06 22:26:59 +02:00
docker-compose.yaml fix: saving bookmarks inconsistencies (#500) 2022-10-11 23:47:38 +02:00
Dockerfile feat: upgrade to go 1.19 (#469) 2022-08-11 14:22:10 +02:00
Dockerfile.compose fix: saving bookmarks inconsistencies (#500) 2022-10-11 23:47:38 +02:00
go.mod fix: saving bookmarks inconsistencies (#500) 2022-10-11 23:47:38 +02:00
go.sum fix: saving bookmarks inconsistencies (#500) 2022-10-11 23:47:38 +02:00
LICENSE Update LICENSE 2019-01-06 17:00:20 +07:00
main.go Update Dependencies and Replace mattn/go-sqlite with modernc.org/sqlite (#345) 2022-02-11 13:59:49 +01:00
modd.conf Add GitHub Action for tests & coverage 2020-08-06 21:08:43 +02:00
Procfile Added Heroku deploy. Fixed go-shiori/shiori#45 2019-09-25 13:45:08 +03:00
README.md docs: migrate documentation from the wiki (#394) 2022-05-26 19:49:30 +02:00

Shiori

IC Go Report Card #shiori@libera.chat Containers

Check out our latest Announcements

Shiori is a simple bookmarks manager written in the Go language. Intended as a simple clone of Pocket. You can use it as a command line application or as a web application. This application is distributed as a single binary, which means it can be installed and used easily.

Screenshot

Features

  • Basic bookmarks management i.e. add, edit, delete and search.
  • Import and export bookmarks from and to Netscape Bookmark file.
  • Import bookmarks from Pocket.
  • Simple and clean command line interface.
  • Simple and pretty web interface for those who don't want to use a command line app.
  • Portable, thanks to its single binary format.
  • Support for sqlite3, PostgreSQL and MySQL as its database.
  • Where possible, by default shiori will parse the readable content and create an offline archive of the webpage.
  • [BETA] web extension support for Firefox and Chrome.

Comparison of reader mode and archive mode

Documentation

All documentation is available in the docs folder. If you think there is incomplete or incorrect information, feel free to edit it by submitting a pull request.

License

Shiori is distributed under the terms of the MIT license, which means you can use it and modify it however you want. However, if you make an enhancement for it, if possible, please send a pull request.