Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenBooks v4 #39

Merged
merged 43 commits into from
Sep 19, 2021
Merged

OpenBooks v4 #39

merged 43 commits into from
Sep 19, 2021

Conversation

evan-buss
Copy link
Owner

@evan-buss evan-buss commented Sep 19, 2021

Many updates across the board to both the web interface and the back-end structure.

Overview:

  • Servers, Authors, Titles, and Formats are now filterable on the book search results grid.
  • If the --persist flag is used, you can re-download previously downloaded books at any time.
  • Update UI to latest version of Evergreen so it looks more modern,
  • Improved server logging
  • Improved search result parser
  • Files are now sent via HTTP rather than base64 over websocket. This results in better performance.
  • Add notification drawer to view previous notifications that have timed out.
  • A lot of behind the scenes architecture changes.

Closes #36

  • Added two new sub-commands to the CLI for one-off search and download requests
  • Example usage openbooks cli download '!book identifier string' and openbooks cli search "my book"

Closes #35

  • Fixed bug where connection was not being properly set before user input was submitted.

Closes #24

  • Books Grid now adapts to the browser height and fixes scrolling issues

Closes #19

  • Books are now searchable in the grid and you can hover over the text to to see the full name if it is truncated.

- Use map instead of slice to reduce complexity
- Server sorting is now case insensitive.
- Add tests for server sorting order.
- Use chi router and group all routes under basepath
- Remove need for global variables
- Update build script
- Trying to clean up the architectecture and reduce the coupling between modules.
- Removing instances of shared global stage
- Still not entirely sure where I'm going.
- Treat anything in "Core" as independent of the project and create clear boundaries
- Update Core APIs to reduce coupling and internal state
- Rewrite DCC Downloader / Parser for better error handling
  and more idiomatic Go.
- Create test implementations of IRC and DCC servers for
  use in testing / debugging changes.
- Add more unit tests
- Add Title / Author text filters
- Add format filtering
- Make grid height fit the page size automatically
- Rewrite CLI to be cleaner and simpler
  - Allow one off search and download commands
  - Use contexts for cancellation
- Rewrite core irc reader and event dispatcher
  - No longer using an interface for event
    handling but a map of func handlers.
  - This allows callers to specify only the
    events they care about
  - Callers are also responsible for logging instead of the core package
  - Reader takes a context.Context instead of a custom channel solution
- Web Interface
  - Various UI tweaks
  - Convert server package to use contexts for both the main hub and
  individual clients
  - Convert server to use new "map-based" reader. Removed old
  "interface-based" reader and its handlers
- Updated todo with future improvements.
- Improve messages
- Add progress bar to CLI when downloading files
- Remove dcc.ProgressFunc. Callers can implement
  their own progress tracking by monitoring calls
  to the io.Writer they pass in.
@evan-buss evan-buss merged commit 1961646 into master Sep 19, 2021
@evan-buss evan-buss deleted the development branch September 19, 2021 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant