Releases: akazukin5151/koneko
Releases · akazukin5151/koneko
koneko こねこ v0.9.1
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()
- Restructure cli handling to be more modular like lscat_app
- 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
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)
- Configuration assistant
-
Remove
users_page_spacing
: it's justgallery_page_spacing - 3
-
Rename
gallery_page_spacing
setting topage_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.
- On main screen:
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()
tomaybe_join_thread()
- Extract out messy condition to bool variables in
prompt.py
- Use
shutil.rmtree
instead ofrm
viaos.system
- Improved attribute and method names in Loop classes
- Removed useless
prompted
boolean variable - Remove pipey dependency in favour of
flow
fromresults
- Use
@funcy.once
instead of boolean guards inapi.py
- Simplified
generate_orders()
to 2 lines - Wrap some test in a try-finally block so resources are always restored
koneko こねこ v0.8
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
- Gallery classes is now structued like Users. The most significant difference is the use of
- 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 inconfig.py
andsplitpoint
- Use
- Make tests more professional
- Move functions around modules to better reflect (im)purity
koneko こねこ v0.7
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
toscreens.py
- Refactored cli.py and prompt.py
- Move config functions in lscat and utils to config.py
koneko こねこ v0.6.2
Changelog
Improved the horrendous file structure in v0.6.1, due to massive import errors in v0.6.
koneko こねこ v0.6.1
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
Changelog
Hotfix:
- Fixed bug where mode 5 won't launch
koneko こねこ v0.5
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.