4.5 KiB
4.5 KiB
F-Chat Ascending
This repository contains a modified version of the mainline F-Chat 3.0 client.
Key Differences
- Ad auto-posting
- Manage channel's ad settings via "Tab Settings"
- Automatically re-post ads every 11-18 minutes (randomized) for up to 180 minutes
- Rotate multiple ads on a single channel
- Ad Rating
- LFP ads are automatically rated and matched against your profile
- Link previews
- Hover cursor over any
[url]to see a preview of it - Middle click any
[url]to turn the preview into a sticky / interactive mode
- Hover cursor over any
- Profile
- Kinks are auto-compared when profile is loaded
- Custom kink explanations can be expanded inline
- Custom kinks are highlighted
- Gender, anthro/human preference, age, and sexual preference are highlighted if compatible or incompatible
- Guestbook, friend, and group counts are visible on tabs
- Character images are expanded inline
- Cleaner presentation for the side bar details (age, etc.), sorted in most relevant order
- Less informative side bar details (views, contact) are separated and shown in a less prominent way
- Cleaner guestbook view
Todo / Ideas
- Preview mode should allow detaching from the main window
- Split chat view
- Improvements to log browsing
- Highlight ads from characters most interesting to you
- Fix broken BBCode, such as
[big]in character profiles - Ad cache, so you can find your chat partners ads easily (channel names too)
- Which channels my chart partner is on?
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
- Clone the repo
- Install Yarn
- Change into the cloned directory and run
yarn install. If you only want to make a custom theme, you do not need to do this! - IntelliJ IDEA is recommended for development.
Building for Electron
- To build native Node assets, you will need to install Python 2.7 and the Visual C++ 2015 Build tools. More information can be found in the node-gyp docs.
- Change into the
electrondirectory. - Run
yarn build/yarn watchto build assets. They are placed into theappdirectory. - Run
yarn startto start the app in debug mode. UseCtrl+Shift+Ito open the Chromium debugger.
Packaging
See https://electron.atom.io/docs/tutorial/application-distribution/
- Run
yarn build:distto create a minified production build. - Run
yarn run pack. The generated installer is placed into thedistdirectory.- 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.
zipis required to be installed. - On Linux you can add a GPG key for signing and its password as arguments.
mksquashfsandzsyncmakeare required to be installed.
Building for Mobile
- Change into the
mobiledirectory. - Run
yarn build/yarn watchto build assets. They are placed into thewwwdirectory. - For Android, change into the
androiddirectory and run./gradlew assembleDebug. The generated APK is placed intoapp/build/outputs/apk. - For iOS, change into the
iosdirectory and openF-Chat.xcodeprojusing XCode. From there, simply run the app using the play button.
Building for Web
- Change into the
webchatdirectory. - Run
yarn build/yarn watchto build assets. They are placed into thedistdirectory. - 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.
- Change into the
scssdirectory. - Run
yarn install. - Run
yarn build themes/chat/{name}.scss. - Your theme file will be placed into the
scss/cssdirectory.
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.