GithubHelp home page GithubHelp logo

javluv / javluv Goto Github PK

View Code? Open in Web Editor NEW
35.0 4.0 1.0 80.18 MB

Your JAV Movie Organizer

License: MIT License

Batchfile 0.20% C# 99.80%
c-sharp japanese japanese-language movie-database movie-metadata video-browser wpf nsfw application metadata tagging windows windows-application japanese-adult-videos

javluv's Introduction

JavLuv

JavLuv is an application for browsing and organizing your Japanese adult video collection.

Requirements

JavLuv runs on Microsoft Windows 10 or later. You can find the latest releases here. To install, simply download and install JavLuv using the msi installer, or unzip and run JavaLuv.exe.

Features

  • Automatic identification of movies by ID embedded in file or folder names
  • Generation of Kodi-compatible .nfo metadata
  • Automated user-defined filtering of most movie metadata
  • Visual display of movies and actresses in browser and detail views
  • Search instantly by any keywords, such as ID, title, actress, genres, folder names, etc
  • Sort momvies by title, ID, actress, release date, and user rating
  • Sort actresses by name, age, birthday, movie count, and user rating
  • Supports user ratings to identify movie and actress favorites
  • Automatic moving / renaming of movie folders and filenames according to configurable rules
  • And more...

JavLuv Views

JavLuv lets you conveniently view your entire movie collection using the movie browser. You can search all metadata to filter the movie collection, like title, genre, actress, and more. You can also sort by title, ID, actresses, release date (both directions), and user rating.

JavLuv Movie Browser JavLuv movie browser


Double-clicking on a movie in the browser view shows you the movie details view, which displays the movies title, cover, and all associated metadata.

JavLuv Movie Details JavLuv movie details


You can also browse individual actresses in the actress browser by selecting the Actress tab at the top of the page, which are gathered from online sources when you scan movies. You can sort by name, age (both directions), birthday, number of movies, and user rating.

JavLuv Actress Browser JavLuv actress browser


Double-clicking an actress in the actress browser brings you to the actress detail view, where you can see the actress' portrait photo, her name in English and Japanese (including alternate names), various additional information, and a listing of all movies she appears in.

JavLuv Actress Details JavLuv actress details

Getting Started

To populate JavLuv with movies, click on the Scan movies... button on the left-hand pane, select a folder with movies in it, and click Scan. Assuming your movies are named correctly, JavLuv will proceed automatically from there.

JavLuv identifies movies by a alpha-numeric code (e.g. [ABC-123]) to identify a movie, and then retrieves information from a number of websites to generate metadata for the identified movie.

Metadata is stored in a Kodi-compatible XML file typically named the same as the movie file, but with a .nfo extension. A local cache of this data is used, but the .nfo metadata is considered to be the authoritative source for the movies. By using this standard format, stored locally, you never have to worry about losing access to your collection's metadata.

Compiling JavLuv

Visual Studio 2022 is required to compile the editor from source. The Wix plugin is required to compile the installer. You can build the project by running build.bat in the root folder, after which the installer and zip will be copied to the /build folder. You can also open the solution in the /src folder and build using Visual Studio's IDE.

Additional Information

If you want more information about all the features of JavLuv in greater detail, you can visit the JavLuv Wiki.

javluv's People

Contributors

javluv 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

Watchers

 avatar  avatar  avatar  avatar

Forkers

cdlkdt

javluv's Issues

Actress image names should be immutable

Base actress names on a GUID or something immutable. While seemingly handy to base it on a name, there are too many complications with the name potentially changing, dealing with collisions, etc. Users should not consider this a browsable collection, as it's in a hidden folder anyhow.

We can avoid duplications by scanning existing files associated with an image and checking for hash collisions based on the file content.

The inconvenience of not being able to browse can be partially mitigated with an export function which copies files to a more human-readable format, as well as being a manual backup of sorts.

Still on the todo list is to provide a proper backup function for all data, and this should include actress image data.

Don't allow empty actress names

Don't allow the user to set the name to an empty string in the Name field, as this would mess things up severely, and doesn't make sense anyhow.

Movie actress' names need to be normalized

After significant changes, like imports, movie actor names need to be normalized to match the actress database names. Otherwise, it tends to break things like the movie count, which only uses primary and not alternate names.

Auto-update names after any actress name change

If the user changes an actress name or merges actress entries, automatically launch a background command to scan all movies and update names appropriately.

The actress database will always be considered the authority, so the names in movies will reflect whatever is listed there. The actor alias data will be changed to reflect the actress database as well. In the case of an actress entry merger, duplicate entries will be located and eliminated. It may be simplest if the command does not distinguish any particular actress entry and simply updates all movie entries, making note of which ones actually change so the .nfo files can be saved at the end of the command.

When should this occur? After the user finishes the edit? What if it's in multiple parts, like swapping main and alternate names? Maybe after closing the current detail view would be safer then? Maybe don't update if the change set the name to empty, as that's not considered valid. In the case of a name change -easy enough. Launch the update when you click Merge.

Alternatively, this could be manually triggered. Not sure I like that, as the least surprising thing would be for the actress names in movie listings to automatically sync up to what's listed in the detail pages, I think.

I think I like the idea of launching this process after you either explicitly trigger it with Merge, or when you navigate away from the current detail page. Will have to keep track of an edit flag specifically for names.

Localize JavLuv to Japanese

Need volunteers to help localize experimental Japanese language version.

Consider perhaps also creating utility to generate resource pages from .csv source for easier third-party translation.

Create generic ObservablePair class

Create generic ObservablePair class to consolidate various one-off classes. The functionality of these one-offs is pretty much identical.

Add version-based filter to settings

Make a utility class for handling semantic versioning (assignment, comparison, current). Store last version in settings, to make it easier to choose appropriate settings default values on version changes.

Investigate feasibility of porting to Avalonia

It would be nice if JavLuv were cross-platform. Investigate how feasible it might be to port the app to Avalonia and support Mac and Linux as well. I've heard interest in an Android version, but that seems more like a separate project.

Changing IDs?

What happens if you actually change a movie's ID in the detail view? Probably nothing good. Doubly so if it actually conflicts with another movie in your list. I didn't really consider this when I made that field editable.

Need to investigate this at some point. I'm certain bugs are lurking here.

Properly capitalize / fix up titles

Create an algorithm to automatically capitalize titles. There have been more titles recently with very inconsistent capitalization, and frankly, most titles have been kind of bad about this.

  • Capitalize titles
  • Remove ID from front (already doing this - move functionality)
  • Detect proper names by using actress list (exclude the name "An", for example)
  • Fix list of actress names at end of title. (e.g. Emiri Momoka Risa Arisawa => - Emiri Momoka & Risa Arisawa

Add actress database and browser/detail view.

I'd like to add a browser and database for actresses. Maybe add a switch for choosing between actresses and movies to browse? Perhaps utilize browser and detail views for actresses, similar to the way browser and detail view for movies work.

Potential scraping sources:

  • JavDatabase.com
  • JavModel.com
  • jav.fandom.com
  • warashi-asian-pornstars.fr
  • javrave.club
  • xxx.xcity.jp
  • xslist.org

Extra files may be unexpectedly moved on scan / import in rare circumstances

This is sort of a complicated scenario. If scanning, and move/rename after scan is enabled, additional movies or other files may be unexpectedly moved, leading to a perception that they may have been deleted.

The scenario is this. The movies to scan must reside in a shared folder. All but one of the movies must have an error such as the ID of that movie already in the collection. This leads the scanner to believe that it is NOT a shared folder, and thus feels free to simply move the folder to the destination, taking along the movies that failed to import along for the ride.

Need to figure out a way to determine that a failed import doesn't necessarily mean the folder is no longer shared, which I think should fix the issue.

Add additional scraping sites

Need additional sites to scrape actresses from for more robustness.

Potential scraping sources for movies and actresses:

  • javct.net
  • xxx.xcity.jp

Potential scraping sources for actresses:

Potential scraping sources for movies:

  • javgg.net
  • javtrailers.com (English and Japanese)
  • Jav.guru (lists series)
  • sextb.net
  • javopen.co
  • javdb.com (Japanese only)

Plot:

  • missav.com

Add Merge Actresses command / dialog

Need to add a command to merge actresses. Moreover, it needs to be a visual dialog that shows both actresses, their stats, and pictures, and lets the user choose the entry to use in case of conflicting information.

Note that issue #32 discusses an automated process to scan through all movies and update names based on the new information.

Show birthdays

Show an option to display actresses whose birthday is today.

Bonus - maybe show a little birthday cake or something next to the date of birth in the details page. Would be a fun little touch.

Actress scraper is retrieving incorrect images

It appears the scraper for JavModel is retrieving incorrect actress images. The image being retrieved is the "previous model" image. Find a way to uniquely identify the current actress' image on the page.

Move / Rename while movie is open

If automatic move / rename is executed while a movie or other file is open, an exception will be thrown (which is fine), but the dialog will indicate it is cancelling and never closes.

It's possible this occurs with the move to folder command as well. Needs testing and a possible fix if it happens as well.

Back button navigation consistency

After viewing a movie from the actress detail page, the back button should return the user to the actress detail page from which they came, instead of the actress browser pages. I'll have to keep a variable storing where the movie page came from so I can return there.

Issue when viewing actress movie browser

When the actress' movie browser is open, if a scan is completed, the list will be refreshed to show all movies instead of just the movies associated with that actress. Need to add a condition to check if the actress detail view is open.

Edit: Even easier, just open a movie view from actress page and return, and the movie browser view is incorrect.

Click to search actresses and tags

User request: would like a quick way to click on a list of actresses and tags for searching. Will have to give this some thought about how this might work.

Enable file renaming without moving to folders

A user has requested the ability to rename files without moving them from the current directory. This allows them to make use of nice organizational features without necessarily requiring current directory structures to change. At the moment, though, a directory designation is required.

Extract names in parens as alternative names

In JavDatabase actress scraper, there are occasional names in parens, which are meant to be extra names. I've also seen multiple extra names, separated by commas, or seen just an opening paran (in which case, just extract to the end). Assume sloppy, inconsistent data, as always.

Preserve subtitle language identifier in name

Preserve the two-character language identifier in name when automatically renaming subtitles.

Perhaps if it's not there, autodetect language and add it. Would be useful for people working on translating subtitles.

Aoi Kururigi is missing

Find out why Aoi Kururigi/Kururugi is missing an entry in actress database after movies of hers are scanned. It clearly has something to do with the alternate spellings of her last name, but the system should be accounting for this.

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.