hearmeneigh / fchat-rising

A heavily modded F-Chat 3.0 client for F-List
https://hearmeneigh.github.io/fchat-rising/
MIT License
39 stars 17 forks source link
f-chat f-list fchat flist furry

Download

Windows x64 | Windows arm64 | MacOS M1 | MacOS Intel | Linux x64 | Linux arm64

F-Chat Rising

This repository contains a heavily customized version of the mainline F-Chat 3.0 client.

TL;DR

Setting Up

FChat-Rising uses NodeJS 16.x and may not work on newer versions. Use nvm or nvm-windows to simplify your life.

# Windows only:
npm install --global --production --vs2015 --add-python-to-path windows-build-tools node-gyp

# Ubuntu only:
sudo apt install libsecret-1-dev

# MacOS only:
brew install python-setuptools

# All operating systems:
git clone https://github.com/hearmeneigh/fchat-rising.git
cd fchat-rising
yarn

# Optional; make sure your commits are anonymous
git config --local user.name "SOME NAME"
git config --local user.email "some@email.com"

Dev Mode

Run two processes simultaneously:

# Process 1 -- watch
cd electron
yarn watch
# Process 2 -- app
cd electron
yarn start
# Use `Ctrl+Shift+I` to open the Chromium debugger.

Build

cd electron
yarn build:dist
node pack.js

Key Differences

  1. Profile matching automatically compares your profile with others to determine with whom you are compatible.
  2. Automatic ad posting repeatedly posts and rotates ads on selected channels.
  3. Link previews popup shows a preview of an image / video when you hover your mouse over a link.
  4. Caching speeds up profile loads and other actions.
  5. Smart filters let you choose what kind of ads and posts you see in the chat.

More Detailed Differences

How to Set Up Ads

  1. Open a conversation channel of your preference, such as #Sex Driven LFRP
  2. Locate the Ad Editor button underneath your character overview on the left.
  3. Enter one or more ads and tag them appropriately
  4. Click Save
  5. Click the Post Ads underneath the Ad Editor option.
  6. Select the tags you wish to use and which channel to post them in and then click Start Posting Ads on the bottom.
  7. To stop, click the red stop button next to the Post Ads button.

FAQ

  1. The more information you have in your profile (non-custom kinks in particular), the better the matching quality will be. The algorithm considers the following data points:
    • Age
    • Gender
    • Sexual preference
    • Dominance preference
    • Human/anthro preference
    • Post length preference
    • Position preference
    • Non-custom kinks
    • Species
  2. Matching for non-binary genders relies on kinks. For example, if your non-binary character has a preference for females, make sure 'females' are listed as a favorite kink.
    • Similarly if you want to match with non-binary genders -- independent of your characters' gender -- add your preferred non-binary types into your kink list.
  3. 'Underage' kink is considered to apply to characters aged 16 or above; 'ageplay' kink is considered to apply to characters aged 16 or below.
  4. 'Older characters' and 'younger characters' kink preferences are interpreted as age difference of 8+ years.
  5. Comparison results will get faster over time, as more and more character data is cached.
  6. If you have a species-fluid character (e.g. you play both your character as both a human and an anthro), you can indicate this by setting your species in your character profile in the following ways. F-List Rising will then score you against the best fitting type.
    • Human or tiger
    • Human, tiger, or dragon
    • Anthro (Horse or Tiger)
    • Dragon (Dwarf, Elf, or Human)
    • Elf (optionally vampire or dwarf)
    • Feline (optionally horse, tiger, or elf)

Todo / Ideas

F-List Exported

This repository contains the open source parts of F-list and F-Chat 3.0. All necessary files to build F-Chat 3.0 as an Electron, mobile or web application are included.

Setting up a Dev Environment

Building for Electron

Building a Release Package (Electron)

  1. cd electron
  2. yarn build:dist
  3. node pack.js

Packaging

This section is outdated and left here for reference purposes only.

See https://electron.atom.io/docs/tutorial/application-distribution/ Run cd electron && yarn build:dist to create a minified production build. Run yarn run pack. The generated installer is placed into the dist directory. On Windows you can add the path to and password for a code signing certificate as arguments. On Mac you can add your code signing identity as an argument. zip is required to be installed. On Linux you can add a GPG key for signing and its password as arguments. mksquashfs and zsyncmake are required to be installed.

Building for Mobile

Mobile builds are not supported. This section is outdated and left here for reference purposes only.

Are you a kickass mobile developer? Maybe you can help us fix the build.

Change into the mobile directory. Run yarn build/yarn watch to build assets. They are placed into the www directory. For Android, change into the android directory and run ./gradlew assembleDebug. The generated APK is placed into app/build/outputs/apk. For iOS, change into the ios directory and open F-Chat.xcodeproj using XCode. From there, simply run the app using the play button.

Building for Web

Web builds are not supported. This section is outdated and left here for reference purposes only.

Are you a kickass web developer? Maybe you can help us fix the build.

Change into the webchat directory. Run yarn build/yarn watch to build assets. They are placed into the dist directory. The compiled main.js file can be included by an HTML file that is expected to provide a global const chatSettings: {account: string, theme: string, characters: ReadonlyArray<string>, defaultCharacter: string | null};. It should also normalize the page to 100% height.

Building a custom theme

See the wiki for instructions on how to create a custom theme.

Dependencies

Note: Adding and upgrading dependencies should only be done with prior consideration and subsequent testing.

That's why yarn.lock exists and is version controlled.

To upgrade NPM dependencies, run yarn upgrade locally. Run yarn outdated to see pending upgrades.

If you encounter error 'Could not detect abi for version X.X.X and runtime electron', try running npx uuaw node-abi