Skip to content

Releases: akazukin5151/koneko

koneko こねこ v0.9.1

10 Jul 13:50
5402260
Compare
Choose a tag to compare

Changelog

Features

  • lscat app browse cache can now filter modes

Bug fixes

  • Browse cache (in lscat app and main):
    • Hide the history file
    • Fixed crash if filter hides all directories
    • Fixed mode 2 filter showing mode 1 dirs
    • Fixed filter mode 2 not filtering mode 1 (dirs with numbers will still be shown, but the mode 1 pages won't be, only the individual dir)

Code maintenance

  • Simplified code:
    • Restructure cli handling to be more modular like lscat_app
      • Launch functions directly from cli.py
    • main loop
    • Split up lscat_app.pick_dir_loop()
    • Await login before fetching by default, removing all manual awaits
    • Pass credentials into api.start() instead of exposing attribute to the public
    • Mode 3: Move your_id prompt to inside start() method
    • Instantiate blessed.Terminal() in init.py
    • Parametrize all cli tests
    • Split up lscat_app.config_assistance()
  • Moved a lot of functions to more appropriate modules
    • Move print-related functions from utils.py to printer.py
    • Move file-related functions from utils.py to files.py
    • Move functions with while loops from lscat_app to assistants.py
    • Move picker-related functions into picker.py (eg lscat app main picker, frequents mode picker, browse cache picker)
  • Document cache tree dir structure in HACKING.md
  • Unit tests
    • Added and improved tests with parametrization
    • Split up some large test functions
    • Use more fixtures
    • Tests no longer use test_config.ini file; removed it
    • Use namedtuples to replace some 'faker' classes

koneko こねこ v0.9.0

01 Jul 09:53
0d7ca94
Compare
Choose a tag to compare

Changelog

  • Interactive helper UI to assist configuring lscat numbers (lscat_app.py).

    • Configuration assistant
      • image_width
      • image_height
      • images_x_spacing
      • images_y_spacing
      • image_thumbnail_size
      • page_spacing
      • gallery_print_spacing
      • users_print_name_xcoord
    • Display 'testgallery' and 'testuser' paths (for internal and debugging use, just copy over the files)
    • Browse the cache and display a dir
    • Display any path (but all names must be left-padded with a three digit number)
  • Remove users_page_spacing: it's just gallery_page_spacing - 3

  • Rename gallery_page_spacing setting to page_spacing

  • Show frequently searched IDs/strings with an option to select them with pick.

    • On main screen:
      • prompt for a mode or
      • select all.
    • On prompt loop, allow '!freq' to launch pick that goes directly to the mode.

Fixed

  • Fixed a bug where downloading a single image crashes
  • Fixed a bug where some images or mode might not update outdated images
    • first_img attribute no longer used
  • If an invalid input is given in a loop prompt, it will ask for another, rather than going back to main()
  • Fixed giving invalid cli args crashing by re-prompting the user. However, leaving (including with ctrl+c) is impossible.
  • Fixed one-letter-two-digit-sequence not working
  • Fixed gallery -> image crashing

Code maintenance

  • Rename action_before_prefetch() to maybe_join_thread()
  • Extract out messy condition to bool variables in prompt.py
  • Use shutil.rmtree instead of rm via os.system
  • Improved attribute and method names in Loop classes
  • Removed useless prompted boolean variable
  • Remove pipey dependency in favour of flow from results
  • Use @funcy.once instead of boolean guards in api.py
  • Simplified generate_orders() to 2 lines
  • Wrap some test in a try-finally block so resources are always restored

koneko こねこ v0.8

23 Jun 15:45
8c2c15d
Compare
Choose a tag to compare

Changelog

  • lscat now slightly faster as the image number is calculated only when it finishes downloading, not on every recursion.
  • Improvement for lscat: the screen will be filled with the most rows as possible
  • HACKING.md split from CONTRIBUTING.md to better assist other developers
  • Image view can now preview the next four images in multi-image posts (need to enable its experimental flag)

Fixed

  • Fixed opening the manual in user modes not working
  • Fixed bug in lscat: number of columns now determines when to print page spacings

Code maintenance

  • Extract out common behaviour from Gallery and Users ui classes into AbstractUI
    • Gallery classes is now structued like Users. The most significant difference is the use of offset to prefetch and navigate pages.
    • Unified API requests for each mode
  • Simplified code everywhere
    • Reduced nesting with early returns
    • Removed dead code
    • Split up functions in:
      • config.py
      • main.py
      • cli.py
      • download.py
    • Renamed data classes (eg GalleryJson to GalleryData)
    • Simplify ui.display_page()
    • Extract common code in prompt.py; follow a common structure
  • Remove unused cytoolz dependency
  • More functional style
    • Use placeholder to make lambdas look better
    • Use pipey for functional-style postfix pipes
    • Using returns.result Result container in config.py and splitpoint
  • Make tests more professional
  • Move functions around modules to better reflect (im)purity

koneko こねこ v0.7

11 Jun 15:20
7401682
Compare
Choose a tag to compare

Changelog

Features

  • Users can now configure lscat numbers, including:
    • Image width
    • Image height
    • Image thumbnail size (For pixcat; the above two are more accurate)
    • x and y spacing/padding between images
    • Spacing between printed text
    • Spacing between pages
    • See MANUAL.md and example_config.ini for more details
  • Boolean settings in the config now accepts ('1', 'yes', 'true', or 'on') for True, and anything else as False.
  • Warn user for invalid credentials
  • Image mode can now jump to specified page number, in a multi-image post
  • Image mode now prefetches the next image in another thread
  • Fixed spinner not propagating exceptions
  • On reloading and clearing cache, the directory to be deleted will be shown
  • Fixed clearing the cache not working
  • Added -v/--version option
  • Added --help option
  • noprint option renamed to print_info (in the affirmative), and True by default (if no key or setting found)

Internal code

  • Added lots of tests
  • CI now tries to launch the application to make sure it doesn't crash on start and I didn't make any silly mistakes when building
  • Updated requirements.txt
  • Moved stuff like begin prompt and show man loop from utils.py to screens.py
  • Refactored cli.py and prompt.py
  • Move config functions in lscat and utils to config.py

koneko こねこ v0.6.2

27 May 18:43
4bf6b48
Compare
Choose a tag to compare

Changelog

Improved the horrendous file structure in v0.6.1, due to massive import errors in v0.6.

koneko こねこ v0.6.1

27 May 18:17
aff7cfe
Compare
Choose a tag to compare

Changelog

  • Depreciated legacy lscat (the shell script) and lsix support.
  • Fixed import errors in v0.6 (uploaded on PyPI)

Features

  • If there are cached images in the users modes (3 & 4), it will be shown immediately before requesting and parsing.
  • Gallery and User modes (all modes except mode 2) now prefetch the next page in another thread/in the background, freeing up the prompt to respond to user key presses.
  • If the cache dir has images, it will display the images before waiting for login, making it much faster.
  • Improved experience of invalid input: it will no longer reload to main after 2 seconds.
  • Fixed bug in Image mode where the first picture of a multi-picture post prints the current page indicator before the picture is displayed

Terminal reliability

  • lscat now calculates params using terminal size
  • Add option to turn off printing messages in lscat

Code

  • Removed the raw attribute from data classes
  • Moved view_post_mode() from main.py to ui.py
  • Renamed img_post_page_num to page_num
  • Updated unit tests and added more tests
  • Revamped lscat to use only the generators to display the images, rather than for loops, heavy classes, and fragile inheritance
    • Users view actually got faster, because two yield statements are apparently faster than two nested for loops
    • No significant speed difference for Galley views.
  • Continuous integration tested on linux and macos

koneko こねこ v0.5.1

12 May 22:08
6552f1a
Compare
Choose a tag to compare

Changelog

Hotfix:

  • Fixed bug where mode 5 won't launch

koneko こねこ v0.5

11 May 17:24
ede47f1
Compare
Choose a tag to compare

Changelog

Mostly code structural improvements and refactoring:

  • No more global variables (API_QUEUE, API_THREAD, API)
  • Use APIHandler() class for all api requests, in api.py
  • Separating mode UI from main.py
  • Move download functions to download.py
  • Move docopt stuff to cli.py
  • Move JSON manipulation to data.py
  • KONEKODIR now in __init__.py
  • Merge GalleryLikeMode into AbstractGallery; but pull out download and requests
  • IllustFollowModeLoop is now a function
  • Use pathlib instead of strings

Features:

  • Colored multi-image indicator in gallery view (mode 1, 5)
  • Image mode (mode 2) can now display the image in full resolution (useful for wide pictures)

Bug fixes:

  • Fixed the multi-image indicator for posts in gallery view (mode 1, 5) disappearing after going next or previous page.