Coder Social home page Coder Social logo

swamp's People

Contributors

rubiojr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

swamp's Issues

Better error handling when downloading/streaming

Some edge cases not currently handled by swamp when downloading or streaming files from the restic repo:

  • The restic repository could be broken (partially missing data), meaning that the user could try to download/stream something that is indexed but that it's not available.

Index all the repositories periodically

Only the preferred repository (the one selected or configured as preferred) is indexed in the background periodically.

Swamp should iterate over the list of configured repositories and index them in the background periodically, so the user has a better chance of finding the index up to date when switching repositories.

React to Dark/Light theme changes

Swamp supports dark and light themes, but it doesn't react to theme changes while it's running, meaning you need to restart the app to take advantage of it.

I need to research the standard way to do it (assuming there's one), and see if Gotk3 bindings have support for it.

Tentatively for 1.0, depending on the work required, though I suspect theme changes don't happen very often and it'd be fine to ship 1.0 without it.

Indexer pane: add indexing status info and index stats

The indexer pane will show:

  • The number of documents per second when indexing
  • The number of snapshots being indexed
  • The total number of documents in the index
  • Estimated time it'll take the indexing process to finish
  • Indexing errors

GNOME Circle inclusion

Apply for the GNOME circle.

  • Swamp should reach beta++/rc quality before applying

  • Use an OSI-approved license

  • Not have a contributor license agreement (CLA)

  • Use the GNOME platform, including GTK

  • #36

  • Integrate with the GNOME desktop, including having an, app icon and a description and screenshots that appear in the Software app.

  • Have a well-designed UI which generally follows GNOME conventions (partially done, need to follow HIG closer)

Component events

Experiment with different implementations to emit/handle component events across the app (i.e. "file downloaded", "indexing finished", "something bad happened", etc). The topic needs further research but there are some options already being used or available.

Rolling our own

Typical observer pattern.

No external dependencies approach to register/store/notify interested listeners. It may need to be implemented from scratch with thread safety in mind, maybe adding it to component.Component so other components can benefit from it. Pseudo code:

// register listeners
func OnSomethingHappened(callback func()) {}

//notify something happened
notify(eventType, payoad)

Similar to what Gtk uses.

diamondburned has some apps worth reviewing.

Internal message bus

Using something like:

search via swp cli not working, even after adding a repo was confirmed.

I get "Returns: "swamp CLI doesn't currently support indexing repositories. Run the swamp app first..""

Looks like its failing here in that it cant find the repo that was added in Step 1 ?
https://github.com/swampapp/swamp/blob/master/cmd/swp/main.go#L215

reproduction:

# Step 1: add a restic repo 
swp add-repo --preferred ./swamp/_data/restic-repo
Repository Name: test
✔ Local/Rest
✔ Repository URI:  ./swamp/_data/restic-repo
Repository Password: *
Testing repository access...✅
Added!
Now you should open swamp, select the repository and manually index it.


# Step 2: search therestic repo 
swp search --repo ./swamp/_data/restic-repo 

🛑 swamp CLI doesn't currently support indexing repositories.
Run the swamp app first..

Refactor the queries package

A hand made parser/lexer will take care of parsing transforming Swamp queries into Bluge/Bleve queries, instead of the current queries proof of concept code.

Create a logger package

Swamp is tightly coupled to zerolog.

Create a logger internal package with the right interfaces to provide a singleton with sane defaults and decouple it.

swampd: export indexing status via HTTP

It should be possible to query the swampd daemon for the indexing status/progress.

swampd will expose read-only indexing metrics via HTTP, using a UNIX socket probably.

Quick start guide

Document the process of adding and indexing the first repository, including a GUI walkthrough:

  • Describe the different panes
  • Explain IDs, BHash, etc
  • Document most important features

Export downloaded files

Files can be exported from the search pane. Add the same functionality to the downloads pane.

Logging strategy

Several items related to application log.

  • Write debug logs to a file during the alpha/beta period
  • Disable logging before the final 1.0 release
  • Hidden (no GUI) config setting to enable debug logging and capturing on demand (to help with support/troubleshooting)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.