Minor
This commit is contained in:
parent
bfb937ea61
commit
ffc9b097db
|
@ -2,6 +2,10 @@
|
|||
|
||||
## 1.21.2
|
||||
* Fixed image previews for `imgur.io`, `gifdeliverynetwork.com`, and `rule34.us`
|
||||
* Fixed dependencies
|
||||
* Profile analyser now warns about a missing portrait image
|
||||
* Added option for mini portraits in chat messages
|
||||
* Added convenience buttons to joining a channel and creating a private chat
|
||||
|
||||
## 1.21.1
|
||||
* Fixed a bug that skipped resolving profiles from channel ads
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Download
|
||||
[Windows](https://github.com/mrstallion/fchat-rising/releases/download/v1.21.1/F-Chat-Rising-1.21.1-win.exe) (82 MB)
|
||||
| [MacOS Intel](https://github.com/mrstallion/fchat-rising/releases/download/v1.21.1/F-Chat-Rising-1.21.1-macos-intel.dmg) (82 MB)
|
||||
| [MacOS M1](https://github.com/mrstallion/fchat-rising/releases/download/v1.21.1/F-Chat-Rising-1.21.1-macos-m1.dmg) (84 MB)
|
||||
| [Linux](https://github.com/mrstallion/fchat-rising/releases/download/v1.21.1/F-Chat-Rising-1.21.1-linux.AppImage) (82 MB)
|
||||
[Windows](https://github.com/mrstallion/fchat-rising/releases/download/v1.21.2/F-Chat-Rising-1.21.2-win.exe) (82 MB)
|
||||
| [MacOS Intel](https://github.com/mrstallion/fchat-rising/releases/download/v1.21.2/F-Chat-Rising-1.21.2-macos-intel.dmg) (82 MB)
|
||||
| [MacOS M1](https://github.com/mrstallion/fchat-rising/releases/download/v1.21.2/F-Chat-Rising-1.21.2-macos-m1.dmg) (84 MB)
|
||||
| [Linux](https://github.com/mrstallion/fchat-rising/releases/download/v1.21.2/F-Chat-Rising-1.21.2-linux.AppImage) (82 MB)
|
||||
|
||||
|
||||
# F-Chat Rising
|
||||
|
|
|
@ -43,11 +43,11 @@
|
|||
<div v-for="record in results" :key="record.character.name" class="search-result" :class="'status-' + record.character.status">
|
||||
<template v-if="record.character.status === 'looking'" v-once>
|
||||
<img :src="characterImage(record.character.name)" v-if="showAvatars"/>
|
||||
<user :character="record.character" :showStatus="true" :match="shouldShowMatch"></user>
|
||||
<user :character="record.character" :showStatus="true" :match="shouldShowMatch" :avatar="false"></user>
|
||||
<bbcode :text="record.character.statusText" class="status-text"></bbcode>
|
||||
</template>
|
||||
<template v-else v-once>
|
||||
<user :character="record.character" :showStatus="true" :match="shouldShowMatch"></user>
|
||||
<user :character="record.character" :showStatus="true" :match="shouldShowMatch" :avatar="shouldShowAvatar"></user>
|
||||
<bbcode :text="record.character.statusText" v-if="!!record.character.statusText" class="status-text"></bbcode>
|
||||
</template>
|
||||
</div>
|
||||
|
@ -151,6 +151,7 @@
|
|||
shouldShowMatch = true;
|
||||
state = 'search';
|
||||
hasReceivedResults = false;
|
||||
shouldShowAvatar = false;
|
||||
|
||||
debugSearchJson = JSON.stringify(
|
||||
{
|
||||
|
@ -521,6 +522,7 @@
|
|||
}
|
||||
|
||||
this.shouldShowMatch = core.state.settings.risingComparisonInSearch;
|
||||
this.shouldShowAvatar = core.state.settings.risingShowPortraitInMessage;
|
||||
|
||||
this.results = [];
|
||||
this.state = 'results';
|
||||
|
@ -644,11 +646,21 @@
|
|||
& > .status-crown {
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
height: 23px;
|
||||
height: 2em;
|
||||
padding-top: 5px;
|
||||
|
||||
.user-avatar {
|
||||
max-width: 2em;
|
||||
max-height: 2em;
|
||||
min-width: 2em;
|
||||
min-height: 2em;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
.status-text {
|
||||
opacity: 0.75;
|
||||
padding-left: 4px;
|
||||
display: inline-flex;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
</div>
|
||||
|
||||
<div><a href="#" @click.prevent="showProfileAnalyzer()" class="btn"><span class="fas fa-user-md"></span>
|
||||
Profile Analyzer</a>
|
||||
Profile Helper</a>
|
||||
</div>
|
||||
|
||||
<div class="list-group conversation-nav">
|
||||
|
@ -43,8 +43,8 @@
|
|||
</div>
|
||||
|
||||
|
||||
{{l('chat.pms')}}
|
||||
<div @click.prevent="showAddPmPartner()" class="pm-add"><a href="#"><span class="fas fa-plus"></span></a></div>
|
||||
<a href="#" @click.prevent="showAddPmPartner()" class="btn"><span class="fas fa-comment"></span>
|
||||
{{l('chat.pms')}}</a>
|
||||
|
||||
<div class="list-group conversation-nav" ref="privateConversations">
|
||||
<a v-for="conversation in conversations.privateConversations" href="#" @click.prevent="conversation.show()"
|
||||
|
@ -64,7 +64,10 @@
|
|||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="#" @click.prevent="showAddPmPartner()" class="new-conversation" :class="{ glowing: conversations.privateConversations.length === 0 }">Open Conversation</a>
|
||||
</div>
|
||||
|
||||
<a href="#" @click.prevent="showChannels()" class="btn"><span class="fas fa-list"></span>
|
||||
{{l('chat.channels')}}</a>
|
||||
|
||||
|
@ -82,6 +85,8 @@
|
|||
<span class="fas fa-times leave" @click.stop="conversation.close()" :aria-label="l('chat.closeTab')"></span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<a href="#" @click.prevent="showChannels()" class="join-channel" :class="{ glowing: conversations.channelConversations.length === 0 }">Join Channel</a>
|
||||
</div>
|
||||
</sidebar>
|
||||
<div style="display:flex;flex-direction:column;flex:1;min-width:0">
|
||||
|
@ -617,5 +622,37 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.new-conversation, .join-channel {
|
||||
font-size: 90%;
|
||||
margin-left: 0.2em;
|
||||
margin-top: 0.25em;
|
||||
}
|
||||
|
||||
.glowing {
|
||||
padding: 3px;
|
||||
margin-right: 0.5em;
|
||||
animation: noticeme 2.5s infinite alternate;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
.join-channel.glowing {
|
||||
animation-delay: 0.3s !important;
|
||||
}
|
||||
|
||||
@keyframes noticeme {
|
||||
0% {
|
||||
// box-shadow: 0 0 10px -10px #aef4af;
|
||||
color: var(--gray-dark)
|
||||
}
|
||||
80% {
|
||||
// box-shadow: 0 0 10px -10px #aef4af;
|
||||
color: var(--gray-dark)
|
||||
}
|
||||
100% {
|
||||
// box-shadow: 0 0 10px 10px #aef4af;
|
||||
color: var(--yellow)
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1042,4 +1042,13 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.user-avatar {
|
||||
max-height: 1.2em;
|
||||
min-height: 1.2em;
|
||||
margin-right: 2px !important;
|
||||
margin-top: 0;
|
||||
min-width: 1.2em;
|
||||
max-width: 1.2em;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -205,6 +205,13 @@
|
|||
Show character portrait by text input
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="risingShowPortraitInMessage">
|
||||
<input type="checkbox" id="risingShowPortraitInMessage" v-model="risingShowPortraitInMessage"/>
|
||||
Show character portrait with each message
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-show="selectedTab === '3'">
|
||||
|
@ -375,6 +382,7 @@
|
|||
risingColorblindMode!: boolean;
|
||||
|
||||
risingShowPortraitNearInput!: boolean;
|
||||
risingShowPortraitInMessage!: boolean;
|
||||
|
||||
risingFilter!: SmartFilterSettings = {} as any;
|
||||
|
||||
|
@ -418,6 +426,7 @@
|
|||
|
||||
this.risingColorblindMode = settings.risingColorblindMode;
|
||||
this.risingShowPortraitNearInput = settings.risingShowPortraitNearInput;
|
||||
this.risingShowPortraitInMessage = settings.risingShowPortraitInMessage;
|
||||
|
||||
this.risingFilter = settings.risingFilter;
|
||||
}
|
||||
|
@ -480,6 +489,7 @@
|
|||
risingComparisonInSearch: this.risingComparisonInSearch,
|
||||
risingShowUnreadOfflineCount: this.risingShowUnreadOfflineCount,
|
||||
risingShowPortraitNearInput: this.risingShowPortraitNearInput,
|
||||
risingShowPortraitInMessage: this.risingShowPortraitInMessage,
|
||||
|
||||
risingColorblindMode: this.risingColorblindMode,
|
||||
risingFilter: {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!-- Linebreaks inside this template will break BBCode views -->
|
||||
<template><span :class="userClass" v-bind:bbcodeTag.prop="'user'" v-bind:character.prop="character" v-bind:channel.prop="channel" @mouseover.prevent="show()" @mouseenter.prevent="show()" @mouseleave.prevent="dismiss()" @click.middle.prevent.stop="toggleStickyness()" @click.right.passive="dismiss(true)" @click.left.passive="dismiss(true)"><span v-if="!!statusClass" :class="statusClass"></span><span v-if="!!rankIcon" :class="rankIcon"></span><span v-if="!!smartFilterIcon" :class="smartFilterIcon"></span>{{character.name}}<span v-if="!!matchClass" :class="matchClass">{{getMatchScoreTitle(matchScore)}}</span></span></template>
|
||||
<template><span :class="userClass" v-bind:bbcodeTag.prop="'user'" v-bind:character.prop="character" v-bind:channel.prop="channel" @mouseover.prevent="show()" @mouseenter.prevent="show()" @mouseleave.prevent="dismiss()" @click.middle.prevent.stop="toggleStickyness()" @click.right.passive="dismiss(true)" @click.left.passive="dismiss(true)"><img v-if="!!avatar" :src="avatarUrl" class="user-avatar" /><span v-if="!!statusClass" :class="statusClass"></span><span v-if="!!rankIcon" :class="rankIcon"></span><span v-if="!!smartFilterIcon" :class="smartFilterIcon"></span>{{character.name}}<span v-if="!!matchClass" :class="matchClass">{{getMatchScoreTitle(matchScore)}}</span></span></template>
|
||||
|
||||
|
||||
<script lang="ts">
|
||||
|
@ -10,6 +10,7 @@ import { Score } from '../learn/matcher';
|
|||
import core from './core';
|
||||
import { EventBus } from './preview/event-bus';
|
||||
import { kinkMatchWeights, Scoring } from '../learn/matcher-types';
|
||||
import { characterImage } from './common';
|
||||
|
||||
|
||||
export function getStatusIcon(status: Character.Status): string {
|
||||
|
@ -137,6 +138,9 @@ export default class UserView extends Vue {
|
|||
@Prop({default: true})
|
||||
readonly preview: boolean = true;
|
||||
|
||||
@Prop({default: false})
|
||||
readonly avatar: boolean = false;
|
||||
|
||||
userClass = '';
|
||||
|
||||
rankIcon: string | null = null;
|
||||
|
@ -144,6 +148,7 @@ export default class UserView extends Vue {
|
|||
statusClass: string | null = null;
|
||||
matchClass: string | null = null;
|
||||
matchScore: number | string | null = null;
|
||||
avatarUrl: string | null = null;
|
||||
|
||||
// tslint:disable-next-line no-any
|
||||
scoreWatcher: ((event: any) => void) | null = null;
|
||||
|
@ -214,6 +219,7 @@ export default class UserView extends Vue {
|
|||
this.matchClass = res.matchClass;
|
||||
this.matchScore = res.matchScore;
|
||||
this.userClass = res.userClass;
|
||||
this.avatarUrl = characterImage(this.character.name);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ export default class AdLauncherDialog extends CustomDialog {
|
|||
|
||||
openAdEditor(): void {
|
||||
this.hide();
|
||||
(<AdCenterDialog>this.$parent.$refs['adCenter']).show();
|
||||
(<AdCenterDialog>this.$parent.$refs['adCenter'])!.show();
|
||||
}
|
||||
|
||||
selectAllChannels(e: any): void {
|
||||
|
|
|
@ -55,6 +55,7 @@ export class Settings implements ISettings {
|
|||
risingShowUnreadOfflineCount = true;
|
||||
risingColorblindMode = false;
|
||||
risingShowPortraitNearInput = true;
|
||||
risingShowPortraitInMessage = true;
|
||||
|
||||
risingFilter = {
|
||||
hideAds: false,
|
||||
|
|
|
@ -235,6 +235,7 @@ export namespace Settings {
|
|||
readonly risingShowUnreadOfflineCount: boolean;
|
||||
readonly risingColorblindMode: boolean;
|
||||
readonly risingShowPortraitNearInput: boolean;
|
||||
readonly risingShowPortraitInMessage: boolean;
|
||||
|
||||
readonly risingFilter: SmartFilterSettings;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ import {CreateElement, default as Vue, VNode, VNodeChildrenArrayContents} from '
|
|||
import {Channel} from '../fchat';
|
||||
import { Score } from '../learn/matcher';
|
||||
import {BBCodeView} from '../bbcode/view';
|
||||
import {formatTime} from './common';
|
||||
import { formatTime } from './common';
|
||||
import core from './core';
|
||||
import {Conversation} from './interfaces';
|
||||
import UserView from './UserView.vue';
|
||||
|
@ -38,7 +38,7 @@ const userPostfix: {[key: number]: string | undefined} = {
|
|||
if(message.type !== Conversation.Message.Type.Event) {
|
||||
children.push(
|
||||
(message.type === Conversation.Message.Type.Action) ? createElement('i', { class: 'message-pre fas fa-star-of-life' }) : '',
|
||||
createElement(UserView, {props: {character: message.sender, channel: this.channel}}),
|
||||
createElement(UserView, {props: {avatar: core.state.settings.risingShowPortraitInMessage, character: message.sender, channel: this.channel}}),
|
||||
userPostfix[message.type] !== undefined ? createElement('span', { class: 'message-post' }, userPostfix[message.type]) : ' '
|
||||
);
|
||||
if('isHighlight' in message && message.isHighlight) classes += ' message-highlight';
|
||||
|
|
|
@ -50,7 +50,7 @@ theme: jekyll-theme-slate
|
|||
changelog: https://github.com/mrstallion/fchat-rising/blob/master/CHANGELOG.md
|
||||
|
||||
download:
|
||||
version: 1.21.1
|
||||
version: 1.21.2
|
||||
|
||||
url: https://github.com/mrstallion/fchat-rising/releases/download/v%VERSION%/F-Chat-Rising-%VERSION%-%PLATFORM_TAIL%
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "fchat",
|
||||
"version": "1.21.1",
|
||||
"version": "1.21.2",
|
||||
"author": "The F-List Team and Mister Stallion (Esq.)",
|
||||
"description": "F-List.net Chat Client",
|
||||
"main": "main.js",
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
<li v-for="r in recommendations" class="recommendation" :class="r.level">
|
||||
<h3>{{r.title}}</h3>
|
||||
<p>{{r.desc}}</p>
|
||||
<p class="more-info" v-if="r.helpUrl"><a :href="r.helpUrl">Here's how</a></p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -48,9 +49,9 @@ export default class ProfileAnalysis extends Vue {
|
|||
const profile = new CharacterAnalysis(char.character);
|
||||
const analyzer = new ProfileRecommendationAnalyzer(profile);
|
||||
|
||||
this.analyzing = false;
|
||||
this.recommendations = await analyzer.analyze();
|
||||
|
||||
this.recommendations = analyzer.analyze();
|
||||
this.analyzing = false;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -87,5 +88,14 @@ export default class ProfileAnalysis extends Vue {
|
|||
background-color: var(--scoreWeakMismatchBg);
|
||||
}
|
||||
}
|
||||
|
||||
.more-info {
|
||||
margin-top: 1em;
|
||||
|
||||
a {
|
||||
color: var(--linkForcedColor) !important;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
import _ from 'lodash';
|
||||
import Axios from 'axios';
|
||||
|
||||
import { CharacterAnalysis, Matcher } from '../matcher';
|
||||
import { FurryPreference, Kink, mammalSpecies, Species } from '../matcher-types';
|
||||
import { characterImage } from '../../chat/common';
|
||||
|
||||
export enum ProfileRecommendationLevel {
|
||||
INFO = 'info',
|
||||
|
@ -18,6 +20,7 @@ export interface ProfileRecommendation {
|
|||
level: ProfileRecommendationLevel;
|
||||
title: string;
|
||||
desc: string;
|
||||
helpUrl?: string;
|
||||
urlParams?: ProfileRecommendationUrlParams
|
||||
}
|
||||
|
||||
|
@ -28,19 +31,20 @@ export class ProfileRecommendationAnalyzer {
|
|||
//
|
||||
}
|
||||
|
||||
protected add(code: string, level: ProfileRecommendationLevel, title: string, desc: string, urlParams?: ProfileRecommendationUrlParams): void {
|
||||
this.recommendations.push({ code, level, title, desc, urlParams });
|
||||
protected add(code: string, level: ProfileRecommendationLevel, title: string, desc: string, helpUrl?: string, urlParams?: ProfileRecommendationUrlParams): void {
|
||||
this.recommendations.push({ code, level, title, desc, helpUrl, urlParams });
|
||||
}
|
||||
|
||||
analyze(): ProfileRecommendation[] {
|
||||
async analyze(): Promise<ProfileRecommendation[]> {
|
||||
this.recommendations = [];
|
||||
|
||||
await this.checkPortrait();
|
||||
|
||||
this.checkMissingProperties();
|
||||
this.checkSpeciesPreferences();
|
||||
this.checkKinkCounts();
|
||||
this.checkCustomKinks();
|
||||
|
||||
this.checkPortrait();
|
||||
this.checkImages();
|
||||
this.checkInlineImage();
|
||||
this.checkDescriptionLength();
|
||||
|
@ -48,22 +52,27 @@ export class ProfileRecommendationAnalyzer {
|
|||
return this.recommendations;
|
||||
}
|
||||
|
||||
protected checkPortrait(): void {
|
||||
// this.profile.character.
|
||||
// do nothing
|
||||
protected async checkPortrait(): Promise<void> {
|
||||
const profileUrl = characterImage(this.profile.character.name);
|
||||
|
||||
const result = await Axios.head(profileUrl);
|
||||
|
||||
if (_.trim(result.headers['etag'] || '', '"').trim().toLowerCase() === '639d154d-16c3') {
|
||||
this.add(`ADD_AVATAR`, ProfileRecommendationLevel.CRITICAL, 'Add an avatar portrait', 'Profiles with an avatar portrait stand out in chats.', 'https://wiki.f-list.net/Guide:_Character_Profiles#Avatar');
|
||||
}
|
||||
}
|
||||
|
||||
protected checkImages(): void {
|
||||
if (!this.profile.character.image_count) {
|
||||
this.add(`ADD_IMAGE`, ProfileRecommendationLevel.CRITICAL, 'Add a profile image', 'Profiles with images are more attractive to other players.');
|
||||
this.add(`ADD_IMAGE`, ProfileRecommendationLevel.CRITICAL, 'Add a profile image', 'Profiles with images are more attractive to other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#Images');
|
||||
} else if (this.profile.character.image_count > 1 && this.profile.character.image_count < 3) {
|
||||
this.add(`ADD_MORE_IMAGES`, ProfileRecommendationLevel.NOTE, 'Add more profile images', 'Profiles with images are more attractive – try to have at least 3 images in your profile.');
|
||||
this.add(`ADD_MORE_IMAGES`, ProfileRecommendationLevel.NOTE, 'Add more profile images', 'Profiles with images are more attractive – try to have at least 3 images in your profile.', 'https://wiki.f-list.net/Guide:_Character_Profiles#Images');
|
||||
}
|
||||
}
|
||||
|
||||
protected checkInlineImage(): void {
|
||||
if (_.keys(this.profile.character.inlines).length < 1) {
|
||||
this.add(`ADD_INLINE_IMAGE`, ProfileRecommendationLevel.NOTE, 'Add an inline image', 'Profiles with inline images are more engaging to other players.');
|
||||
this.add(`ADD_INLINE_IMAGE`, ProfileRecommendationLevel.NOTE, 'Add an inline image', 'Profiles with inline images are more engaging to other players.', 'https://wiki.f-list.net/Frequently_Asked_Questions#How_do_I_add_an_inline_image_to_my_profile.3F');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,9 +80,9 @@ export class ProfileRecommendationAnalyzer {
|
|||
const desc = this.profile.character.description.trim();
|
||||
|
||||
if (desc.length < 20) {
|
||||
this.add(`ADD_DESCRIPTION`, ProfileRecommendationLevel.CRITICAL, 'Add description', 'Profiles with descriptions are more likely to draw attention from other players.');
|
||||
this.add(`ADD_DESCRIPTION`, ProfileRecommendationLevel.CRITICAL, 'Add a description', 'Profiles with descriptions are more likely to draw attention from other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#Description');
|
||||
} else if (desc.length < 400) {
|
||||
this.add(`EXPAND_DESCRIPTION`, ProfileRecommendationLevel.NOTE, 'Extend your description', 'Long descriptions are more attractive to other players. Try expanding your description to at least 400 characters.');
|
||||
this.add(`EXPAND_DESCRIPTION`, ProfileRecommendationLevel.NOTE, 'Extend your description', 'Long descriptions are more attractive to other players. Try expanding your description to at least 400 characters.', 'https://wiki.f-list.net/Guide:_Character_Profiles#Description');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -91,13 +100,13 @@ export class ProfileRecommendationAnalyzer {
|
|||
}, { filled: 0, total: 0 });
|
||||
|
||||
if (counts.total === 0) {
|
||||
this.add(`ADD_CUSTOM_KINK`, ProfileRecommendationLevel.CRITICAL, 'Add custom kinks', `Custom kinks will help your profile stand out. Try adding at least 5 custom kinks.`);
|
||||
this.add(`ADD_CUSTOM_KINK`, ProfileRecommendationLevel.CRITICAL, 'Add custom kinks', `Custom kinks will help your profile stand out. Try adding at least 5 custom kinks.`, 'https://wiki.f-list.net/Guide:_Character_Profiles#Custom_Kinks');
|
||||
} else if (counts.total < 5) {
|
||||
this.add(`ADD_MORE_CUSTOM_KINKS`, ProfileRecommendationLevel.NOTE, 'Add more custom kinks', `Players pay a lot of attention to custom kinks. Try adding at least 5 custom kinks.`);
|
||||
this.add(`ADD_MORE_CUSTOM_KINKS`, ProfileRecommendationLevel.NOTE, 'Add more custom kinks', `Players pay a lot of attention to custom kinks. Try adding at least 5 custom kinks.`, 'https://wiki.f-list.net/Guide:_Character_Profiles#Custom_Kinks');
|
||||
}
|
||||
|
||||
if (counts.filled < counts.total && counts.total > 0) {
|
||||
this.add(`ADD_MORE_CUSTOM_KINK_DESCRIPTIONS`, ProfileRecommendationLevel.NOTE, 'Add descriptions to custom kinks', `Some or all of your custom kinks are missing descriptions. Add descriptions to your custom kinks to attract more players.`);
|
||||
this.add(`ADD_MORE_CUSTOM_KINK_DESCRIPTIONS`, ProfileRecommendationLevel.NOTE, 'Add descriptions to custom kinks', `Some or all of your custom kinks are missing descriptions. Add descriptions to your custom kinks to attract more players.`, 'https://wiki.f-list.net/Guide:_Character_Profiles#Custom_Kinks');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -114,11 +123,11 @@ export class ProfileRecommendationAnalyzer {
|
|||
const totalCount = counts.favorite + counts.yes + counts.maybe + counts.no;
|
||||
|
||||
if (totalCount < 10) {
|
||||
this.add(`ADD_MORE_KINKS`, ProfileRecommendationLevel.CRITICAL, `Add more kinks`, `You should have at least 10 kinks for the matching algorithm to work well.`);
|
||||
this.add(`ADD_MORE_KINKS`, ProfileRecommendationLevel.CRITICAL, `Add more kinks`, `You should have at least 10 kinks for the matching algorithm to work well.`, 'https://wiki.f-list.net/Guide:_Character_Profiles#Kinks');
|
||||
} else {
|
||||
_.each(counts, (count, key) => {
|
||||
if (count < minCountPerType) {
|
||||
this.add(`ADD_MORE_KINKS_${key.toString().toUpperCase()}`, ProfileRecommendationLevel.CRITICAL, `Add more '${key}' kinks`, `You should have at least ${minCountPerType} '${key}' kinks for the matching algorithm to work well.`);
|
||||
this.add(`ADD_MORE_KINKS_${key.toString().toUpperCase()}`, ProfileRecommendationLevel.CRITICAL, `Add more '${key}' kinks`, `You should have at least ${minCountPerType} '${key}' kinks for the matching algorithm to work well.`, 'https://wiki.f-list.net/Guide:_Character_Profiles#Kinks');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -128,35 +137,39 @@ export class ProfileRecommendationAnalyzer {
|
|||
const p = this.profile;
|
||||
|
||||
if (p.age === null) {
|
||||
this.add('AGE', ProfileRecommendationLevel.CRITICAL, 'Enter age', 'Specifying the age of your character will improve your matches with other players.');
|
||||
this.add('AGE', ProfileRecommendationLevel.CRITICAL, 'Enter age', 'Specifying the age of your character will improve your matches with other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#General_Details');
|
||||
}
|
||||
|
||||
if (p.orientation === null) {
|
||||
this.add('ORIENTATION', ProfileRecommendationLevel.CRITICAL, 'Enter sexual orientation', 'Specifying the sexual orientation of your character will improve your matches with other players.');
|
||||
this.add('ORIENTATION', ProfileRecommendationLevel.CRITICAL, 'Enter sexual orientation', 'Specifying the sexual orientation of your character will improve your matches with other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#General_Details');
|
||||
}
|
||||
|
||||
if (p.species === null) {
|
||||
this.add('SPECIES', ProfileRecommendationLevel.CRITICAL, 'Enter species', 'Specifying the species of your character – even if it\'s \'human\' – will improve your matches with other players.');
|
||||
this.add('SPECIES', ProfileRecommendationLevel.CRITICAL, 'Enter species', 'Specifying the species of your character – even if it\'s \'human\' – will improve your matches with other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#General_Details');
|
||||
}
|
||||
|
||||
if (p.furryPreference === null) {
|
||||
this.add('FURRY_PREFERENCE', ProfileRecommendationLevel.CRITICAL, 'Enter furry preference', 'Specifying whether you like to play with anthro characters will improve your matches with other players.');
|
||||
this.add('FURRY_PREFERENCE', ProfileRecommendationLevel.CRITICAL, 'Enter furry preference', 'Specifying whether you like to play with anthro characters will improve your matches with other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#RPing_Preferences');
|
||||
}
|
||||
|
||||
if (p.subDomRole === null) {
|
||||
this.add('SUB_DOM_ROLE', ProfileRecommendationLevel.CRITICAL, 'Enter sub/dom role', 'Specifying your preferred sub/dom role will improve your matches with other players.');
|
||||
this.add('SUB_DOM_ROLE', ProfileRecommendationLevel.CRITICAL, 'Enter sub/dom role', 'Specifying your preferred sub/dom role will improve your matches with other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#Sexual_Details');
|
||||
}
|
||||
|
||||
if (p.position === null) {
|
||||
this.add('POSITION', ProfileRecommendationLevel.CRITICAL, 'Enter position', 'Specifying your preferred position (e.g. "top", "bottom") will improve your matches with other players.');
|
||||
this.add('POSITION', ProfileRecommendationLevel.CRITICAL, 'Enter position', 'Specifying your preferred position (e.g. "top", "bottom") will improve your matches with other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#Sexual_Details');
|
||||
}
|
||||
|
||||
if (p.postLengthPreference === null) {
|
||||
this.add('POST_LENGTH', ProfileRecommendationLevel.CRITICAL, 'Enter post length preference', 'Specifying your post length preference will improve your matches with other players.');
|
||||
this.add('POST_LENGTH', ProfileRecommendationLevel.CRITICAL, 'Enter post length preference', 'Specifying your post length preference will improve your matches with other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#RPing_Preferences');
|
||||
}
|
||||
|
||||
if (p.bodyType === null) {
|
||||
this.add('BODY_TYPE', ProfileRecommendationLevel.CRITICAL, 'Enter body type', 'Specifying your character\'s body type will improve your matches with other players.');
|
||||
this.add('BODY_TYPE', ProfileRecommendationLevel.CRITICAL, 'Enter body type', 'Specifying your character\'s body type will improve your matches with other players.', 'https://wiki.f-list.net/Guide:_Character_Profiles#General_Details');
|
||||
}
|
||||
|
||||
if (p.gender === null) {
|
||||
this.add('GENDER', ProfileRecommendationLevel.CRITICAL, 'Enter gender', 'Specifying your character\'s gender will help matching you with other players', 'https://wiki.f-list.net/Guide:_Character_Profiles#General_Details');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "f-list-rising",
|
||||
"version": "1.21.1",
|
||||
"version": "1.21.2",
|
||||
"author": "The F-List Team and and Mister Stallion (Esq.)",
|
||||
"description": "A heavily modded F-Chat 3.0 client for F-List",
|
||||
"license": "MIT",
|
||||
|
|
Loading…
Reference in New Issue