Jump to content

Recommended Posts

Apropos DB Filter

View File

This is NOT a mod

 

You can not "install" it as a mod and call it a thing. You will need to follow the instructions first. And understand what it does and what it does not.

Starting from version 0.1.0 you can install the files of it as a mod, it will properly place the tool into the Apropos folder. You will stil need to follow the instructions for getting PHP environment in case you don't have one.

 

Disclaimer

 

If you decide to use this software, you use it as is and to your own risk.

 

If you use this tool, like it and modified the config to your liking and want to support the community - please share your config.json!

 

Description

 

This is a simple script written in php. What it does? It allows you to filter unwanted animation phrases from Apropos. The filter works in two ways:

 

  • Based on a banned word. This filter will try to find a properly terminated word that is in the banned list and remove any phrases that contain these words.
  • Based on a synonym. This is very similar to words, but it will enclose the filtered word into the synonym braces and thus it's much safer to use

 

How To Install

 

You will need to have php environment in your system, place the script to the Apropos DB folder and run it. Again:

 

  • Go to PHP site.
  • Download the interpreter. Here's the link for the latest windows ones (7.4.2 at the moment of writing of this post).
  • Extract the zip to somewhere
  • Make sure to add PHP to your system PATH variable. This is important! Or else calling a script via "php" command will fail. Here's how to do it in Windows 10.
  • Install this mod via any mod manager
  • Open command line, you can do this with hitting Windows+R keys and then typing cmd command
  • Go to the Apropos DB installation path (use cd command in the terminal for that)
  • Run the script with php updater.php or double-click the updater.bat file

 

If you did everything correctly, you will see the script going through the database and modifying the files.

 

How To Customize

 

First thing first - this is a file I wrote for myself when I wanted to remove some of the stuff from Apropos DB. "Default" filters are done to my liking. You may or may not agree with it - that's not the point. You can easily modify the filters. There are a lot of comments I added before publishing the script and I might be not the best engineer, but I hope the comments are self-explanatory.

 

For filters you want to touch these config values:

 

"blacklist" : {
		"words": [...]
}

- for banned words, and

"blacklist" : {
		"synonyms": [...]
}

- for banned synonyms. See above what is the difference (and it is also mentioned in the script comments).

 

Another dimension of customization is to use file blacklisting. You can add files that you do not want to process into the filesToSkip config array. Initially it was created to skip global DB files like Synonyms.txt but will do the trick just fine for any other file. Example: if you want to remove bestiality references from non-bestiality animations phrases only, you can achieve it by adding bestiality-related keywords to the banned entries/synonyms and then also adding bestiality file names to the blacklist (this should also work on directories, so if you add a directory name then the entire file set under this directory will not be processed)

 

More?

 

Not much more to add. Just play with the variables and adjust them to your liking.

 

Why?

 

I like Apropos idea, but I do not like certain things, like bestiality, orgies, public sex etc etc - the list can go on, it's not the point. The point is that there are 2.2k+ files in apropos db and manually fixing them after every update would be impossible. And I needed to fix it every time because Apropos is not very well set by default. A virgin PC yells "you're better than those giants"? ... a scene in complete seclusion in an inner cell causes "the guys start to cheer on"? ... Huh? ...

 

So I let the software to do the trick.

 

Also, why php? I happen to have an interpreter installed already. I could've done in in java so that users can just double-click the precious .jar, but it takes some effort (and in java I then would probably need to add support for config files if I want to modify filters / anything else in the software and it's just too much hassle for such a simple task)


  • Submitter
  • Submitted
    02/09/2020
  • Category
  • Requires
  • Special Edition Compatible
    Not Applicable

 

Link to comment

This is a genius idea, I may not prefer to use it as of now, but I have to admit, wonderful initiative to create such a simple yet practical tool. Thank you sincerely for this, indeed some parts may actually be immersion breaking depending on the scene. Of course, the best way would be to somehow make the game "understand" some conditions to choose and list them for an ultimate apropos experience, but apparently that is not possible. At least now we can eliminate the unwanted parts without having to go through countless descriptions and synonym inputs.

Link to comment
On 2/15/2020 at 8:01 AM, Eadoo said:

This is actually pretty great, even though its goal really is to undo my hard work.  :)

I'll link it in my mod's description.

 

Actually, no, because...

I like the edits and additions you did for the Apropos DB. Those edits will remain mostly intact.

The inconsistencies I mentioned in the main post aren't your fault at all - it's just how Apropos is set up, not very good in matching the scene and the circumstances.

 

.. and yes, because if not configured properly it will wipe out all the bestiality / orgy etc texts. But that can be avoided by adding proper files to skip.

Link to comment
56 minutes ago, Dellecross said:

Actually, no, because...

I like the edits and additions you did for the Apropos DB. Those edits will remain mostly intact.

The inconsistencies I mentioned in the main post aren't your fault at all - it's just how Apropos is set up, not very good in matching the scene and the circumstances.

 

.. and yes, because if not configured properly it will wipe out all the bestiality / orgy etc texts. But that can be avoided by adding proper files to skip.

I'm just giving you a hard time. 

Something like this was necessary.  I can't count the number of times someone has mentioned to me that they don't like a certain word or kink present in the DB.

Now someone just needs to figure out how to do the opposite - adding in content from some sort of package external to the DB.  There's plenty of content I don't care to deal with that people keep asking me for.

Link to comment
22 hours ago, Eadoo said:

I'm just giving you a hard time. 

Something like this was necessary.  I can't count the number of times someone has mentioned to me that they don't like a certain word or kink present in the DB.

Now someone just needs to figure out how to do the opposite - adding in content from some sort of package external to the DB.  There's plenty of content I don't care to deal with that people keep asking me for.

If the specs are clear, then the approach could be very simple. I can think of:

 

  • Step 1: Synonyms replace. Practically, get a phrase from your DB and replace words with synonyms. For the first attempt the simple 1 - 1 mapping via config will do the trick. Example: A man does xxx to a woman. You configure replacements "A man" => "{ACTIVE}", "does xxx" => '{NEW SYNONYM HERE}', "a woman" => "{PRIMARY}"
  • Step 2: Select the destination animation set. Can be deduced from whatever matched during the replace. In the example above, "a man" matched as "active" and "a woman" matched as "primary", so it will be Female-Male or Male-Female
  • Step 3: Add the phrase to the Apropos DB. As easy as unserialize -> add -> serialize

 

For step 1 it will probably be needed to also add replacements for different viewpoints (1/2/3 person) but it's just another dimension to the replacement registry. And of course not everything will work like a clock, I'm sure there are phrases what aren't as easily replaced. However in general English works surprisingly well with these mappings because there are no genders and cases for the nouns, the pronouns are fairly regular and Apropos always happens in present tense where the forms are very easy for replacement.

 

If you give me a sample of the DB I may think of adding the possibility to import data from the DB.

Link to comment
3 hours ago, 4nk8r said:

When the .NET framework came about for SE, I was hoping someone would write a connector for something like redis or some object cache.  Use that instead of all these loose json files.

While I love this idea, I think it would be a change to the Apropos2 engine, so maybe I can convince @gooser .  If nothing else it might be a fix for the memory limit problem we have with the synonym database (still in memory [fast], but external to game memory).

I don't know when he projects his next release, but until then we're stuck with loose json.  It works pretty well, though, for both in-game activity and player personal customization.

Link to comment
10 hours ago, Eadoo said:

While I love this idea, I think it would be a change to the Apropos2 engine, so maybe I can convince @gooser .  If nothing else it might be a fix for the memory limit problem we have with the synonym database (still in memory [fast], but external to game memory).

I don't know when he projects his next release, but until then we're stuck with loose json.  It works pretty well, though, for both in-game activity and player personal customization.

Under the covers, JContainers is built off a very fast and efficient c++ Boost library. I have a lot of respect for Earen (Silvericed) and his ability (You don't even want to know his opinions on the PapyrusUtil codebase).

Still I have a lot .Net experience so it is very tempting. I'm just not convinced "it" would be better that what we have. I'm currently working on a native windows tool for Apropos3 for database editing so there might be some actual synergy adopting meh's tool for the actual mod,

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use